What every column means
All 165 columns that can appear in a CSV or JSON export, explained — with the official source where there is one, and the traps worth knowing before you build on them.
Vehicle type keys
The German registration system identifies a vehicle TYPE, not an individual car, by a pair of numbers. They are issued by the KBA and appear in every German registration document.
hsnManufacturer key — 4 digits, identifies the manufacturer (Herstellerschlüsselnummer).
KBA SV 4
tsnType key — 3 characters, identifies the type within that manufacturer (Typschlüsselnummer).
KBA SV 4
hsn_tsnBoth keys joined, the usual way to reference a type in Germany.
varianteVariant key (VSN) where the type is subdivided further.
kennzifferInternal ordinal of the key within its listing.
hsn_tsn_schluessel_im_katalogHow many type keys of this brand or model range exist in our catalogue.
Watch out: A count of keys, not of vehicles.
typschluessel_gesamtTotal number of type keys in scope.
typschluesselThe individual HSN/TSN keys that make up this variant, separated by spaces.
Watch out: Several keys can describe the same car; this column names them all so the row can be traced back.
typschluessel_anzahlHow many type keys this variant is built from.
typschluessel_mit_abweichender_leistungHow many of those keys carry an engine power that European registers state differently from the German catalogue.
Watch out: A disagreement between sources, not an error in either — the figure is shown so the row can be judged.
generation_kennungIdentifier of the model generation the row belongs to, as model-range:generation.
Watch out: Our own identifier. The KBA does not publish generations.
belegstufe_nameEvidence grade of the variant name: amtlich (the official trade name), abgeleitet (taken from our catalogue) or beschrieben (assembled from the key’s attributes).
Watch out: Only an official name is one the manufacturer actually used. A described one says what the car is, not what it was called — and it is the most common case.
typschluessel_groesste_markeHow many type keys under this manufacturer key (HSN) are mapped to a model range in our catalogue.
Watch out: Counts only the keys of the LARGEST mapped brand behind this HSN — the brand that marke_eigene_zuordnung names. Where one HSN carries several mapped brands, the figure is lower than the number of mapped keys. It counts keys, not vehicles.
zugeordnetWhether this key is mapped to a model range (yes/no).
Makes and models
Two vocabularies sit side by side: what the KBA publishes, and what we curate. Columns ending in `_kba` carry the official wording verbatim.
markeBrand, in our curated spelling (e.g. “Mercedes-Benz”).
marke_kbaBrand exactly as the KBA writes it.
Watch out: Differs from ours for the largest names: the KBA writes “VW” and “MERCEDES”. Do not join the two columns on equality.
marke_eigene_zuordnungOur brand assignment where the official one is ambiguous or outdated.
marken_kennungStable brand identifier (slug), safe to join on.
konzernParent group the brand belongs to (e.g. Volkswagen AG).
modellModel designation, curated.
modell_kbaModel designation exactly as published by the KBA.
modellreiheModel range — the level at which the KBA reports monthly registrations.
modellreihe_kbaModel range as published by the KBA.
baureiheModel range — the assignment by Fahrzeugstatistik.de (our curated grouping across generations), not an official KBA field.
reihen_kennungStable identifier of the model range.
handelsname_kbaTrade name as recorded in the register.
generationGeneration within the model range (e.g. a facelift or a new platform).
baujahr_vonFirst production year of that generation.
baujahr_bisLast production year; empty while still in production.
produktionsstatusWhether the brand is still producing, or historical.
produktkategorienVehicle categories the brand covers (cars, motorcycles, commercial, agricultural, trailers).
herkunftslandCountry of origin of the brand as classified by the KBA.
KBA FZ 17
segment_der_modellreiheOfficial KBA market segment of the model range (e.g. Kompaktklasse, SUVs).
KBA FZ 12
karosserie_zuordnungBody type assignment.
kba_segmentOfficial KBA market segment, in the KBA spelling (KOMPAKTKLASSE, SUVs, OBERE MITTELKLASSE …). Thirteen of them.
Watch out: Two views use this header for two different mappings: in the competitive environment it is the segment we file the model range under (name-based, see zuordnung_guete), in the segment powertrain mix it is the segment the KBA itself files the registrations under. The list of 13 names is identical in both.
KBA FZ 12 / FZ 8.3
segmentThe KBA segment the registrations are reported under in FZ 8.3.
Watch out: A model range can appear in TWO segments — the Fiat Ducato under WOHNMOBILE (motorhome base) and under UTILITIES. The key of that file is segment AND model range together; looking a range up by name alone picks the wrong row.
KBA FZ 8.3
zuordnung_gueteHow well the model range matches the segment it is filed under: name similarity between our range and the KBA range, 0 to 1, where 1.00 means an identical name.
Watch out: Never official, not even at 1.00 — the KBA publishes no range-to-segment mapping. Below 0.70 we treat it as doubtful; 232 of 865 ranges are below that line, and belegstufe_zuordnung says the same in words.
ist_gewaehlte_baureiheMarks the one row the file was built around: “ja” for the model range you asked for, “nein” for the competitors in its segment.
geteilt_mitOther brands that share the KBA manufacturer entry behind this row — Jaguar and Land Rover, for instance. Empty where the brand has its entry to itself.
Watch out: Where this cell is filled, the figures belong to the shared entry, not to the brand alone. Summing the stock column over all rows counts those vehicles twice.
Fleet stock
Stock is the number of vehicles registered on a given date — not sales. The KBA reports it as of 1 January each year.
bestandRegistered vehicles on the reference date.
KBA FZ 6
bestand_jahrThe year the stock figure refers to.
bestand_2019Registered vehicles of the generation on 1 January 2019 (regional comparison).
KBA FZ 2
bestand_2026Registered vehicles of the generation on 1 January 2026 (regional comparison).
KBA FZ 2
anteil_2026_pctThe state's share of the generation's national stock on 1 January 2026, in percent.
KBA FZ 2
pkw_bestandPassenger cars in stock.
KBA FZ 2 / FZ 27
pkw_bestand_erfasstThe share of that stock our catalogue can attribute to a type key.
Watch out: Around 3.1 % of German cars are recorded without a type key at all and cannot appear in any HSN/TSN-level figure.
stichtagReference date of the figure (usually 1 January or a quarter start).
jahrReference year.
berichtsjahrReporting year of the underlying KBA release.
co2_bezugsjahrReference year of the CO₂ figure, which may differ from the stock year.
stichjahrReference year of the stock figure — always 1 January of that year.
fahrzeugklasseVehicle class of the row: Pkw (passenger car), Motorrad (motorcycle), Nutzfahrzeug (commercial vehicle), Zugmaschine (tractor unit) or Anhänger (trailer).
quelleWhich KBA publication the figure in this row comes from — “KBA FZ 2” for passenger cars, “KBA FZ 6” for the other four classes.
Watch out: Both count stock on 1 January, but they do not count the same thing: FZ 6 only breaks down what is reported per type key and comes out below FZ 2 for cars. Do not add or compare figures across the two.
jahr_vonThe earlier of the two stock years being compared; bestand_jahr_von carries its figure.
jahr_bisThe later of the two stock years being compared; bestand_jahr_bis carries its figure.
bestand_jahr_vonRegistered vehicles in the year named by jahr_von, on 1 January.
bestand_jahr_bisRegistered vehicles in the year named by jahr_bis, on 1 January.
lkw_bestandRegistered lorries (Lkw) held by this industry in this federal state.
Watch out: Counted at the holder’s registered address, not where the lorries are used.
KBA FZ 23
vergleichsstichtagThe earlier reference date the change column is measured against.
Watch out: The oldest date we hold, not a fixed one-year step — it moves as new quarters arrive.
New registrations
Monthly counts of newly registered vehicles. “Jahr kumuliert” means year to date, from January up to and including the reporting month.
neuzulassungen_monatNew registrations in the reporting month.
KBA FZ 10
neuzulassungen_jahr_kumuliertNew registrations year to date.
neuzulassungen_berichtsjahrNew registrations in the reporting year.
berichtsmonatReporting month, as the first day of that month.
marktanteil_monat_pctShare of all new registrations in that month, in percent.
marktanteil_jahr_kumuliert_pctShare of all new registrations year to date, in percent.
veraenderung_zum_vorjahresmonat_pctChange against the same month one year earlier, in percent.
Watch out: A percentage change, not a factor: +110 % means 2.1 times as many, not 1.1 times.
allrad_monatOf the month’s registrations, how many were all-wheel drive.
cabrio_monatOf the month’s registrations, how many were convertibles.
neuzulassungenNew registrations in the period of the row.
Watch out: Which period depends on the view, and the row itself says so: with jahr and monat it is that single month; with bis_monat and monate it is the year up to and including that month.
neuzulassungen_gesamtAll new registrations of the row’s month across every powertrain — the denominator for the powertrain columns beside it.
monatReporting month as a number, 1 to 12.
bis_monatThe last month contained in the figure (8 means up to and including August).
monateHow many months the figure adds up.
Watch out: The current year is a part year. Holding it against a full earlier year measures the missing months as a market collapse — that is what this column is here to prevent.
umschreibungen_monatUsed-car ownership transfers (Besitzumschreibungen) in that month — a change of keeper, not a new registration.
Watch out: Gap-free only from January 2023. In 58 months between 2009 and 2022 individual brands are missing entirely, VW among them — mostly September to December.
KBA FZ 9
pkw_neuzulassungenPassenger cars newly registered in that federal state during the year.
Watch out: Up to 2005 the KBA reports only every fifth year, from 2010 annually; the eastern states begin in 1995. The gaps stay in the file and are not filled in — count the years, not the rows.
KBA FZ 26
lkw_neuzulassungenLorries newly registered in that federal state during the year.
KBA FZ 26
kraftraeder_neuzulassungenMotorcycles and mopeds newly registered in that federal state during the year.
KBA FZ 26
Powertrains
The trap in this block is the one that catches everyone: plug-in hybrids are a SUBSET of hybrids in the official statistics, not a separate class beside them.
antriebPowertrain classification.
kraftstoffFuel type, official KBA wording.
KBA SV 1
bevBattery-electric vehicles.
bev_monatBattery-electric registrations in the reporting month.
bev_jahr_kumuliertBattery-electric registrations year to date.
bev_anteil_am_bestand_pctBattery-electric share of the fleet, in percent.
diesel_monatDiesel registrations in the reporting month.
hybrid_inkl_plugin_monatHybrids INCLUDING plug-in hybrids.
Watch out: Do not add plug-in hybrids to this column — they are already contained in it.
hybrid_ohne_steckerHybrids EXCLUDING plug-in hybrids.
plugin_hybridPlug-in hybrids.
plugin_hybrid_monatPlug-in hybrid registrations in the reporting month.
gas_lpg_cngVehicles running on LPG or CNG.
alternative_antriebeAll powertrains other than petrol and diesel, combined.
elektroBattery-electric vehicles — what the KBA fuel statistics call “Elektro”. The same thing the column bev holds in other views.
benzinPetrol vehicles, as the source reports them.
Watch out: Where a file calls the column benzin_restgroesse instead, the figure is not reported but calculated — read that entry before you use it.
dieselDiesel vehicles.
benzin_restgroessePetrol registrations, CALCULATED: FZ 10 has no petrol column, so this is what remains of the month’s total after electric, plug-in hybrid, hybrid and diesel are taken off.
Watch out: The remainder also contains gas (LPG/CNG) and hydrogen vehicles, so it runs slightly high. It is the one derived column in those files, and belegstufe_benzin marks it as such.
hybridHybrids in the brand’s car stock, INCLUDING the plug-in ones.
Watch out: davon_plug_in_hybrid is the part of this column that plugs in — a subset, never something to add. In 0 of 80 rows is the plug-in figure larger than this one.
KBA FZ 13.6
davon_plug_in_hybrid“davon” means “of which”: the plug-in hybrids already contained in the hybrid column beside it.
Watch out: Adding it to hybrid counts those cars twice.
KBA FZ 13.6
hybrid_sammelkategorieHybrids as FZ 8 collects them: one bucket holding plug-in and full hybrids together.
Watch out: The fuel statistics do not split this bucket. Where a view has separate plugin_hybrid and voll_hybrid columns, those come from a different KBA table (FZ 8.3) — the two are not interchangeable.
KBA FZ 8
voll_hybridFull hybrids — hybrids that do not plug in. Reported next to plugin_hybrid in the same row.
Watch out: The fuel statistics of the same KBA series roll both into one figure (see hybrid_sammelkategorie).
KBA FZ 8.3
elektro_bevBattery-electric cars in the brand’s stock.
Watch out: Battery-electric only: plug-in hybrids sit in the hybrid column, not here.
KBA FZ 13.6
sonstigeEverything else in the brand’s car stock — gas, hydrogen and whatever the KBA does not break out.
Watch out: benzin + diesel + elektro_bev + hybrid + sonstige adds up to pkw_bestand, checked in 80 of 80 rows with a largest deviation of 0. That is also why an empty source cell is shipped as 0 here: it means no cars, not “unknown”.
KBA FZ 13.6
elektro_anteil_pctElectric share of the month’s new registrations in that federal state: battery-electric registrations divided by all registrations of the same row. We compute it; the row carries both numbers.
Watch out: ⚠️ The KBA column of the same name in its district table measures something else entirely — the electric share OF THE ALTERNATIVE POWERTRAINS (47.8 % nationally) rather than of the fleet (4.76 %), a factor of ten. We do not ship that column. Here the base is the row’s own total, and it is registrations, not stock.
antriebsart_vorherThe powertrain that led this model range before the switch — the largest single group in the fleet, not a majority.
antriebsart_nachherThe powertrain that leads it now.
Watch out: ⚠️ A switch does not mean the old powertrain disappeared, only that it is no longer the largest group — and it can switch back: the Cupra Formentor went from plug-in hybrid back to petrol.
wechsel_jahrThe year in which the lead changed, measured on the fleet at 1 January.
Watch out: ⚠️ Fleet, not new registrations. The fleet is slow: battery-electric passed diesel among new registrations back in 2023, while in the fleet it still trails by a factor of 8.4. Of 294 model ranges with at least 20,000 vehicles, exactly 21 have switched.
KBA FZ 6
bestand_mit_antriebsangabeFleet of the model range counting only keys whose fuel code in the German type catalogue is unambiguous.
Watch out: ⚠️ This is deliberately not the full fleet. Where a key carries several fuel codes we leave it out rather than guess. Across all mapped passenger-car keys that is 38 keys with 736 vehicles (0.0015 %), and none at all in the ranges listed here — but the column name says which of the two numbers you are holding.
KBA FZ 6
Technical data
Some of these come from the German type catalogue, others from European type-approval registers. The KBA does not publish vehicle dimensions at all.
leistung_kwEngine power in kilowatts. Multiply by 1.36 for metric horsepower (PS).
hubraum_ccmEngine displacement in cubic centimetres.
leistung_kw_vonLowest engine power in kilowatts among the type keys that make up this variant.
Watch out: A variant can cover several type keys; where they differ, this is the lower bound rather than a single figure.
leistung_kw_bisHighest engine power in kilowatts among the type keys that make up this variant.
hubraum_ccm_vonSmallest engine displacement in cubic centimetres among the type keys of this variant.
hubraum_ccm_bisLargest engine displacement in cubic centimetres among the type keys of this variant.
bauformBody shape of the variant — saloon, estate, hatchback and so on.
Watch out: Derived from the official body classification, not a manufacturer marketing term.
sitzplaetzeNumber of seats including the driver.
zulaessige_gesamtmasse_kgMaximum permissible laden mass in kilograms.
aufbauBody type, official KBA classification.
KBA SV 1
abgasnormEmission standard (Euro 4, 5, 6 …).
co2_der_modellreihe_gkmAverage CO₂ emissions of the entire model range in the reporting year, across all powertrains.
Watch out: A range average, not the value of the individual type key — and not meaningful for a battery-electric key.
KBA FZ 14
co2_schnitt_gkmAverage CO₂ emissions in grams per kilometre.
benzin_verbrauch_l_je_100kmAverage petrol consumption in litres per 100 km.
diesel_verbrauch_l_je_100kmAverage diesel consumption in litres per 100 km.
co2_gkmVolume-weighted average CO₂ emissions of the registrations in that row, in grams per kilometre.
Watch out: A zero is a value, not a blank — almost every zero row is one whose registrations were all battery-electric. An empty cell means the KBA reports no figure.
KBA FZ 8.3
co2_mittel_gkmAverage CO₂ emissions of the brand’s new registrations in that month, in grams per kilometre.
Watch out: Only from January 2023 — FZ 8.2 does not reach further back. Earlier months are empty, not zero.
KBA FZ 8.2
Regions
Germany has 16 federal states and around 400 registration districts. The district is the finest level the official statistics publish for most figures.
bundeslandFederal state (Bundesland) — the 16 top-level regions.
zulassungsbezirkRegistration district (Zulassungsbezirk) — the authority a vehicle is registered with.
Watch out: Roughly 400 districts. Not identical to administrative counties, and their boundaries have changed over time.
regionRegion of the row: “Deutschland” is the national total, the 16 federal states stand beside it.
Watch out: The national row is a sum, not a 17th region — adding every row of a year counts each car twice.
zulassungsbezirkeHow many registration districts the figures of that federal state are summed from.
ebeneWhich cut the row is: “Gemeinde” (municipality) or “PLZ” (postcode).
Watch out: Two separate cuts of the same cars. Adding a municipality row to a postcode row double-counts them. Postcode rows also carry no federal state — the source does not assign one.
ortName of the municipality, or the postcode itself — whichever the ebene column says.
ort_zusatzFor a municipality, the registration district it belongs to. Empty for postcode rows.
Holders
The KBA separates private holders from commercial ones and breaks the commercial side down by industry. Two things trip people up here: the groups rarely add up to the total, and the age and sex figures are measured against a different base from the private/commercial split.
halter_privatOf the month’s new registrations, how many went to private holders.
KBA FZ 8.9
halter_gewerblichOf the month’s new registrations, how many went to commercial holders.
KBA FZ 8.9
halter_ohne_gruppeThe rest: registrations for which the KBA reports no holder group.
Watch out: This is why halter_privat + halter_gewerblich never quite reaches neuzulassungen. It is the gap to the total, shown as its own column instead of being folded into one of the two groups — small but present in all 127 months (78 cars across 18 brands in August 2026).
KBA FZ 8.9
privatCars in stock held privately. In the federal-state view this is exactly the KBA holder group of private holders — “Nichtselbstständige Halterinnen und Halter” (non-self-employed holders) since reference year 2026, “Arbeitnehmende und Nichterwerbspersonen” (employees and non-employed persons) before; in the municipality and postcode view it is the private total the source reports.
Watch out: Stock, not registrations — the holder columns of the new-registration views are halter_privat and halter_gewerblich.
gewerblichCars in stock held commercially.
Watch out: In the federal-state view this is a remainder: everything except the private holders (“Nichtselbstständige Halterinnen und Halter”, before 2026 “Arbeitnehmende und Nichterwerbspersonen”), which includes the KBA’s own “Unbekannt” (unknown) group — 5,395 of 5,710,671 commercial cars in reference year 2025.
gewerblich_anteil_pctCommercially held cars as a percentage of that state’s car stock.
halter_brancheIndustry of the holder in the KBA’s own wording, following the German classification of economic activities — 22 groups (23 since reference year 2026), e.g. “Verkehr und Lagerei” (transport and storage) or “Baugewerbe/Bau” (construction).
Watch out: Two of the groups (22 until reference year 2025, 23 since the KBA’s 2026 reclassification) are not industries: the private holders (“Nichtselbstständige Halterinnen und Halter”, before 2026 “Arbeitnehmende und Nichterwerbspersonen”) and “Unbekannt”, where the holder could not be classified. The KBA’s “darunter” (of which) sub-rows are left out, so the groups do not overlap and can be added up.
KBA FZ 23
privat_pct_vom_bestandPrivately held cars as a percentage of THAT BRAND’S car stock.
Watch out: The KBA reports this per manufacturer, not per brand, and the mapping between the two is our own work. Where it is missing the brand is missing: 42 of 90 car brands are in the file.
KBA FZ 2
gewerblich_pct_vom_bestandCommercially held cars as a percentage of that brand’s car stock.
KBA FZ 2
frauen_pct_der_privatenWomen as a percentage of the brand’s PRIVATE holders — not of its stock.
Watch out: A different denominator from privat_pct_vom_bestand and gewerblich_pct_vom_bestand, which go against the whole brand stock. Legal entities have neither age nor sex, so they cannot be in this base. Using one denominator for both put two pages of this portal 7.0 percentage points apart.
KBA FZ 2
bis_29_pct_der_privatenPrivate holders under 30, as a percentage of the brand’s private holders — same base as frauen_pct_der_privaten.
KBA FZ 2
ab_60_pct_der_privatenPrivate holders aged 60 and over, as a percentage of the brand’s private holders.
KBA FZ 2
Shares, denominators and changes
Every percentage in an export carries its own denominator in the same row, so you never have to guess what it is measured against — and so that you can combine rows correctly: add the counts first, then divide. All changes are percentages, not percentage points.
klasse_bestandTotal stock of the row’s vehicle class — the denominator of anteil_an_klasse_pct.
Watch out: The class total, not the sum of the rows in the file: manufacturer entries we cannot map to a brand are counted here but have no row, so the shares of a class do not add up to 100 %.
anteil_an_klasse_pctThe brand’s share of its vehicle class, in percent.
pkw_marke_insgesamtThe brand’s entire car stock at that reference date — the denominator of anteil_im_markenbestand_pct.
anteil_im_markenbestand_pctThe powertrain of this row as a percentage of the brand’s car stock.
Watch out: The powertrain rows overlap by design — “Elektro gesamt” contains BEV, plug-in hybrids and fuel cells — so these shares do not add up to 100 %.
pkw_bezirk_insgesamtThe registration district’s entire car stock — the denominator of anteil_im_bezirk_pct.
anteil_im_bezirk_pctThe powertrain of this row as a percentage of that district’s car stock.
Watch out: Valid for its own row only. To combine districts or states, add the counts first and divide afterwards.
anteil_im_land_pctThis industry’s share of the lorries registered in that federal state, in percent.
Watch out: Against the state, never against Germany: the national denominator depends on whether centrally registered holders without a state are counted. Add the counts first, then divide.
bestand_bund_der_markeThe brand’s national car stock — the denominator of anteil_am_bund_pct.
Watch out: Larger than the 16 state figures added together: cars without a state assignment appear only in the national figure (Volkswagen 10,326,185 against 10,313,070, a difference of 0.13 %).
anteil_am_bund_pctThat state’s share of the brand’s national car stock, in percent.
segment_bestand_jahr_bisStock of the entire KBA segment in that federal state, in the later of the two years.
anteil_am_segment_pctThe model range’s share of its segment, in percent.
Watch out: The denominator is the sum of the ranges in THIS file — every range we file under the same segment — not an official segment total. The mapping behind it is name-based; zuordnung_guete says how good it is.
verteilung_ueber_laender_pctHow the model range spreads across the country: that state’s share of the range’s 16-state total, in percent.
Watch out: Adds up to 100 % across the states, which makes it a different figure from anteil_am_segment_pct in the same row.
veraenderung_pctChange in stock from jahr_von to jahr_bis, in percent.
Watch out: A percentage change, not a factor: +110 % means 2.1 times as many. Empty where the earlier year is zero.
bev_veraenderung_pctChange in the number of battery-electric cars since the comparison date, in percent.
Watch out: Measured against vergleichsstichtag — the oldest reference date we hold, which is not a fixed one-year step.
Evidence grades (belegstufe…)
Every export says how well its figures are backed, in the same four words the German site uses. `amtlich` — straight from an official source, the KBA or a type approval, unchanged. `abgeleitet` — mapped or calculated by us from what we hold: one source, no second witness. Two further grades exist in the system, `belegt` (an independent source names the value) and `offen` (the sources contradict each other and we do not guess); `belegt` appears in no export today, `offen` only in the competitive view. Where a file carries SEVERAL of these columns, it is because one row holds several kinds of statement — a single grade would have to either downgrade the official figures or upgrade the calculated ones.
belegstufeOne grade for the whole row, used where every column of the file is of the same kind.
Watch out: In most files it reads “amtlich”. In the brand catalogue and the federal-state overview it reads “abgeleitet”, because not one column there stands unchanged in a KBA publication: the stock is a sum over our catalogue mapping, and the shares are computed.
belegstufe_schluesselGrade for the key data itself — HSN, TSN and what the type register records about them. “amtlich”.
belegstufe_zuordnungGrade for our mapping: brand, model range, generation, segment. “abgeleitet”, because the KBA publishes no such mapping.
Watch out: In the competitive view this column can also read “offen”: there the mapping rests on name similarity, and below a score of 0.70 we do not stand behind it — 232 of 865 ranges. zuordnung_guete carries the number itself.
belegstufe_modellreiheGrade for the columns that describe the MODEL RANGE rather than the single key — CO₂ and segment. “abgeleitet”, because they reach the row through our range mapping.
belegstufe_abgasnormGrade for the emission standard. “abgeleitet”: unlike every other column of that file it does not come from the KBA but from publicly available engine tables.
belegstufe_bestandGrade for the stock counts in the row — “amtlich”, they stand unchanged in the KBA publication. Where a share sits beside them, that share is graded separately by belegstufe_anteil.
belegstufe_anteilGrade for the share column beside it — “abgeleitet”, because we compute it ourselves while the counts in the same row are official.
belegstufe_werteGrade for the measured values in the row (CO₂, consumption) — “amtlich”. The range name in front of them is mapped, and that is what belegstufe_zuordnung grades.
belegstufe_kba_spaltenGrade for the columns that stand unchanged in the KBA report: total, electric, plug-in, hybrid and diesel. “amtlich”.
belegstufe_benzinGrade for the petrol column alone — “abgeleitet”, because it is a remainder we calculate. See benzin_restgroesse.
Something missing?
If a column is unclear or you need a field we do not publish yet, write to us. We answer in English, and we would rather tell you a figure does not exist than let you infer it from something that looks close.