About
What this portal is
Pz.Kpfw. III db is a trilingual, digital archive tracing the fate of individual Pz.Kpfw. III tanks — not the general history of the design (that has already filled dozens of books), but microhistory: what happened to a specific tank with a specific chassis number. Where it was built, which unit it served in, when and under what circumstances it disappeared from the records — and sometimes, whether it survived to this day. The portal accompanies a community of armor history enthusiasts gathered around the Pancerne Wraki page.
Fgst.Nr. — and why it isn't a magic key to the whole story
At the center of the project is the chassis number — Fahrgestellnummer (Fgst.Nr.) — the factory serial number stamped into the armor of each vehicle. The database covers the number range 60,000–80,000, assigned to the Pz.Kpfw. III — and with it, the entire family of vehicles built on this chassis: alongside line tanks, also command tanks (Pz.Bef.Wg.), artillery observation vehicles, Flammpanzer, recovery vehicles (Bergepanzer), and occasionally StuG III assault guns, if their number falls within this range. Knowing the Fgst.Nr. makes it possible to determine the exact production version (Ausführung), the assembly plant, and the month of production.
It has to be said honestly, though: knowing the Fgst.Nr. alone rarely allows the full history of a tank to be reconstructed. A huge share of German military documentation was destroyed during the war and shortly after it. What survives today is fragmentary. Finding a document in which a specific chassis number appears is always exciting — but it usually shows only a single "snapshot" from the vehicle's life: one report, one date, one status. Being able to trace several months of continuous history for the same vehicle happens rarely — in the few cases where a longer series of reports from the same unit and period has survived.
Where the data comes from — archival documents
The foundation is original German army documents from the war period. The two main archives — the American NARA (microfilmed captured Wehrmacht records) and the German BA-MA (Bundesarchiv-Militärarchiv) — are currently represented in the database in roughly equal numbers; it's hard to say either one leads. Material from the Russian CAAMO archive appears as a supplement. Document signatures in the database are recorded in a uniform dot notation, mirroring the original archival designations — e.g. T313.R387.S0488 for a NARA microfilm frame, or RH.021.04.451.S0290 for BA-MA records.
Among the material processed so far, the most common document type is Bestandsmeldung — an official armoured vehicle status report. Since it is the backbone of the portal, it has its own section below. This observation applies to the material processed so far — mostly 1943 reports issued within 4. Panzerarmee (Pz.A.O.K. 4); it isn't yet known whether the same document type dominates material from other years or formations.
Besides Bestandsmeldungen, the database also includes, among others, Verlustmeldungen (total-loss reports) and Lageskizze/Skizze — hand-drawn situational sketches showing exactly where on the map a tank was disabled.
Bestandsmeldung — how to read an armoured vehicle status report
The Gep. Kfz.-Bestandsmeldung (armoured vehicle status report) was a mandatory return in which a division — or an independent battalion, company or school — told its superiors how many armoured vehicles it had, what condition they were in, and what had happened to them since the previous report. It went up the chain of command: division to corps, corps to panzer army (in our material usually Pz.A.O.K. 4), then to army group and the Inspector General of Panzer Troops. Many covers carry receipt stamps and initials of successive recipients, and the tables often show pencil tick marks where a staff officer checked the figures.
Reporting rhythm: the 10th, 20th and last day of the month
In 1943 reports were submitted every ten days — for periods ending on the 10th, the 20th and the last day of the month. The cover then reads e.g. "für die Zeit vom 1. bis 10.12.1943", "vom 11. bis 20.5.1943" or "vom 21. bis 31. August 1943"; the report itself was usually written one to three days after the period closed ("den 11.12.43", "den 21.5.43", "den 1.6.43"). Some units gave a single Stichtag instead — the day the figures refer to ("Stichtag: 30.11.43"). In 1944 the rhythm changed: fortnightly reports ("14-tägliche Bestandsmeldung") and half-monthly periods (1st–15th, 16th–end of month) appear. The database stores both dates separately — the date of the letter and the period/Stichtag — because they are not the same.
Earlier name and basis: the Pz.A.O.K. 4 order of December 1942
An order of the staff of the 4th Panzer Army has survived (Oberkommando der 4. Panzerarmee, O.Qu./Qu.1, Nr. 3171/42 geh., "Geheim", dated 20 Dec 1942). It lists the reports that subordinate divisions and corps had to submit on ammunition, fuel, rations, medical and veterinary services, prisoners and vehicles. The part on vehicles refers to "the known forms", which suggests that it describes existing practice rather than introducing it from scratch.
In the order, the report on armoured vehicles is called a Panzerlagemeldung (on two forms: one for tanks and assault guns, a separate one for armoured wheeled and half-track vehicles), while "Kfz.-Bestandsmeldung" there means unarmoured vehicles. In 1943 the documents on tanks are titled Gep. Kfz.-Bestandsmeldung. We treat them as the same line of reports because the rhythm, the chassis-number lists, the loss sketches and the Pz.III columns match — but we know of no document that records a change of name.
What the order lays down: Panzerlagemeldungen were submitted in four copies to Pz.A.O.K. 4 O.Qu./V for the periods 1st–10th, 11th–20th and 21st–end of the month, due on the 12th, the 22nd and the 2nd of the following month respectively. A list of chassis numbers (Fahrgestell-Nr.-Verzeichnisse) had to be attached to items 2a–c of every report, in two copies and for tanks and reconnaissance vehicles only. For vehicles entered as "Totalausfälle" (enemy action, demolition, accident, missing), situation sketches and a statement giving the chassis number, the kind of damage and the place where the vehicle was left ("Liegeorte") had to be added. This is where both the Fgst.Nr. lists and the "Skizze zum Totalausfall" sketches in our database come from. The tank report also required an additional column "Pz.Kpfw. III 7,5 cm k (L/24)" — our column 20.
The surviving text does not contain the armoured-vehicle form itself. The rows it describes (Soll, Ist, Abgänge, Zugänge) concern unarmoured vehicles, so we do not carry their codes over to the tank table.
What a report consists of
A Bestandsmeldung is almost never a single sheet but a set of several microfilm frames, stored in the portal as one "set":
- Cover ("Beilage 1 zur Anlage 2") — unit, date of the letter, reporting period, signature (usually the Divisions-Ingenieur or the Ib).
- Table pages — the form was wide and printed on several sheets: tanks first (Pz I–IV, Panther, Tiger, command tanks), then assault and self-propelled guns, armoured cars, radio vehicles and armoured personnel carriers (SPW). The Pz.III columns are usually on the first page; command tanks are sometimes on the second.
- Bemerkungen (remarks) — a field at the right edge or below the table explaining the figures: who assigned new vehicles and when, where and how a lost vehicle was destroyed — this is where chassis numbers most often appear.
- Annexes — "Aufschlüsselung der Fahrgestellnummern": lists of the chassis numbers of all vehicles, grouped by type and condition (operational / under repair / in workshops). The 1943 form states explicitly that such a list is attached only to the report for the last day of the month — which is why most Fgst.Nr. come from end-of-month reports (the Pz.A.O.K. 4 order of December 1942 required the list with every report — we do not know when or why this changed). Sketches of loss locations ("Skizze zum Totalausfall", "Lageskizze") are often added as well.
The table: columns and rows
Columns are vehicle types. On printed forms they have fixed numbers — e.g. 17–25 is the Pz.Kpfw.III family (17 with the 3.7 cm gun, 18 with 5 cm L/42, 19 with 5 cm L/60, 20 with 7.5 cm L/24, 21 Flammwagen), 41–46 are command tanks (Sd.Kfz. 265–268 and Pz.Bef.Wg. with the 5 cm gun). Units often filled empty columns with handwritten headings: "Art.Beob.Wg. III", "Mun.-Träger f. Wespe", "T 34 (r)". Earlier forms (spring 1943) have no numbers — columns are labelled briefly as "III k" (short gun) and "III lg." (long gun). The portal maps a column to the dictionary by its description, not its number — the same number sometimes meant different things in different editions of the form.
Rows are vehicle status:
| Row | Meaning | Type of figure |
|---|---|---|
| 1 Soll | authorised strength — what the unit should have | plan |
| 2 Ist | actual strength — what the unit has | stock on the Stichtag |
| 2a | einsatzbereit — combat ready | part of Ist |
| 2b | under repair within the unit (bei der Truppe) | part of Ist |
| 2c / 2d | under repair outside the unit — Pz.Inst.Abt., H.K.P., K-Werkstatt | part of Ist |
| 3 Abgänge | losses in the period: 3a — handed over for repair to a Heereszeugamt (He.Za.), 3b — total losses (Totalausfälle) | movement in the period |
| 4 Zugänge | additions in the period: 4a — back from repair, 4b — new OKH allocation, 4c — captured (Beute) | movement in the period |
Around February 1944 (the earliest example seen: a report dated 31 January 1944) new status rows appeared on the form. The 1944 form breaks repairs down further (2b — up to 14 days, 2c — over 14 days, 2d — K-Werk) and adds row 5 — "Leistung des Instandsetzungsdienstes", i.e. how many vehicles the workshops took in and returned.
How to count — and what not to add up
- How many tanks did the unit have? — that is row 2 (Ist) and nothing else. Neither Soll, nor rows 2a–2d (its breakdown), nor losses and additions are added to it.
- Check: 2a + 2b + 2c (+ 2d) = 2, and 3a + 3b = 3, 4a + 4b + 4c = 4. When figures don't add up, it is usually an error in the original or a shifted digit — the portal then records what is on the paper, with a note.
- How many were combat ready? — row 2a. The ratio of 2a to Ist is the simplest indicator of a unit's condition.
- Balance between reports: the previous Ist − Abgänge + Zugänge should roughly give the current Ist — although corrections, transfers between columns (e.g. re-arming from L/42 to L/60) and errors are fairly common.
- A dash is not an empty cell. "–" means the unit reported zero; an empty cell means nothing was entered. Soll is sometimes added in red ink by a different hand.
Bestandsmeldung in the portal
Reports are used in two ways. Chassis numbers from the remarks and annexes go into the assignments of individual vehicles (vehicle card, matrix views). Figures from the table — limited to the columns of the Pz.Kpfw.III family and command tanks on its chassis — are stored separately and shown below the division matrices: side by side you can see how many vehicles the unit had according to the form, and how many of them are known by number.
Example: Gep. Kfz.-Bestandsmeldung of the 2. SS-Panzer-Division "Das Reich", 1 December 1943 (period 20–30 November 1943) — cover, table pages and chassis number list (click to enlarge):
Glossary — terms used on this site
- Ausf. (Ausführung) — production version of the tank, from Ausf.A to Ausf.N.
- Spalte — a column in the status report table, assigned to a specific vehicle type/variant.
- status_row — a row in the same table, describing the vehicle's condition.
- Stichtag — the reference date, "status as of" — the period the report covers, often different from the date the document was issued.
Still looking for documents
The database keeps growing for as long as new documents with visible Fgst.Nr. numbers keep turning up. One of the trickier puzzles is pinning down the exact chassis-number ranges for each version and factory — for the early Ausf. these are fairly well established, but at the Ausf.J (L/42) to Ausf.L (L/60) transition the cutoff point was different for each factory, and some of them are still being pinned down through cross-checking documents.
How this portal gets built
This is a private hobby project, run under the pseudonym sil3nt, and at the same time an experiment testing how far you can get today with free AI tools (mainly Gemini — no limits when processing large numbers of scans). The division of labor is simple — the sources are supplied: scans of archival documents, data from specialist literature, and a vision of what the end result should look like. AI handles the rest: it reads the source data and — following an established verification protocol and closed dictionaries of unit names and vehicle types — turns it into structured database records, and also writes the PHP code responsible for what you see on screen. It isn't uncritical pasting of whatever the model reads — every step requires approval before it makes it into the database.
I don't assume this project will ever be "finished" — it will most likely keep growing for as long as it stays fun.
Guide to the portal
- Main (Ausf. Index) — vehicles grouped by version, each chassis number a clickable "block" with a count of source mentions and a camera icon where photo documentation exists.
- Vehicle card — the full "life record" of a tank: production data, a chronological timeline (unit assignments, technical notes, conversions, survival status), and a photo gallery.
- Overview by Units — the same material from the perspective of the German order of battle, with separate matrix views for selected 1943 divisions.
- Production statistics — charts of production trends by month, version, and factory.
- Document Archive — a full list of processed sources with links to transcriptions and scans, including a document viewer alongside the original scan with zoom and microfilm-frame browsing.
- Database statistics — overall data coverage: how many vehicles have assignments, how many have photos, breakdown by division.