Vehicle registrations in Belgium straight from the FPS Mobility and Transport (DIV, the vehicle registration service) — the monthly open-data files behind ACEA's Belgian figure, published on the 2nd of the following month, about three weeks before ACEA. New cars (Whole), private and VAT-registered keepers, vans, lorries and buses, monthly from 2013, with plug-in and non-plug-in hybrids counted separately.
Go and check the numbers yourself:
The fetcher asks the file server for the monthly CSVs by name (YYYYMM_Immatriculations-Inschrijvingen.csv), starting three months before the last DIV month in the CSV and stepping forward until the server answers 404 ("not published yet"). There is no directory listing. A run whose target month is already a DIV row in every CSV makes no request; a backfill also reads the 28 MB history file 2013–2024.
Each file is an aggregate — one row per month, new or used vehicle, new or reused plate, keeper type, engine-size band, use group and fuel, with a count. Only new vehicles are counted; the use group decides the variant and, for passenger cars, the keeper type decides Private or Industry.
DIV's fuel field ("Fuel Plus") decides the column. Plug-in hybrids and other hybrids have values of their own; DIV does not tell full from mild hybrids.
The header must be exactly DIV's 14 columns and every row of a monthly file must belong to that month. Unknown use-group, fuel, keeper or vehicle-flag values may not exceed 2% of a month (below that they go to OTHERS with a warning). A Whole month below a quarter of the usual volume is not written. Whole is compared with the ACEA row it replaces and the difference reported (more than 2% is flagged); it is not enforced, because three of ACEA's Belgian rows were wrong.
Each new or changed month re-renders the country. Shares are read from the CSV as column ÷ TOTAL and grouped into three curves. A generalized Weibull S-curve is fitted to the BEV and the ICE share, and the charts, the fitted parameters, the twelve-month totals and the uncertainty bands are rewritten.
| Acquisition | File — downloaded as a data file (XLSX / Parquet / ODS / zip) |
|---|---|
| Vehicle scope | Registrations of new vehicles in the month as DIV booked them — a new car counts whether it got a new plate or a plate transferred from the keeper's previous car (Belgian plates follow the owner). Used-vehicle registrations are not written (see caveats). |
| HEV (full hybrids) | DIV's fuel field has "Plug-in Hybrid Petrol / Gasoil / LPG" for plug-in hybrids (→ PHEV) and "Hybrid Petrol / Gasoil / LPG" for every other hybrid (→ HEV). DIV does not tell full from mild hybrids, so HEV here counts both — about 2.5 times ACEA's full-hybrid figure for Belgium, with PETROL and DIESEL correspondingly lower (they hold no hybrid at all). BEV + PHEV + the rest is unaffected. |
| Backfill | Every variant is DIV from 2013-01 (the start of the history file). The former ACEA rows — Whole quarterly 2018-01…2022-09 and every ACEA row of Vans/HDV/Buses (yearly 2021–2022, then quarterly) — are kept in data/Belgium_legacy.csv. Whole's ACEA monthly rows 2022-10…2026-08 were replaced; each DIV row's note keeps ACEA's figure where it differed. |
| Auth | none |
Each variant is its own series with its own CSV. Not every variant is charted in the gallery — the CSV is the authoritative record either way.
| Variant | What it counts | Held | Raw data |
|---|---|---|---|
| Whole | New passenger cars registered in Belgium (DIV "New vehicle", use group Passenger car — new plate or a transferred plate), monthly from 2013-01. The figures behind ACEA's Belgian series; DIV runs ~0.4% above it. | 2013-01 – 2026-10 166 rows | data/Belgium.csv |
| Private | New passenger cars whose keeper is not VAT-registered (DIV keeper type "Natural/Legal Person") — in practice private persons. From 2013-01. Private + Industry = Whole. | 2013-01 – 2026-10 166 rows | data/Belgium_Private.csv |
| Industry | New passenger cars whose keeper is a VAT-registered legal person (DIV "Legal Person (VAT)") — companies, leasing and rental fleets; Belgium's large company-car market — plus the few rows without a keeper type (0–63 cars a month), so that Private + Industry = Whole. From 2013-01. | 2013-01 – 2026-10 166 rows | data/Belgium_Industry.csv |
| Vans | New light goods vehicles (camionnettes, up to 3.5 t). Monthly from 2013-01 (yearly/quarterly ACEA before, kept in data/Belgium_legacy.csv). | 2013-01 – 2026-10 166 rows | data/Belgium_Vans.csv |
| HDV | New lorries and tractor units for semi-trailers (over 3.5 t). Monthly from 2013-01 (ACEA before, kept in data/Belgium_legacy.csv). | 2013-01 – 2026-10 166 rows | data/Belgium_HDV.csv |
| Buses | New buses and coaches (DIV use group Bus). Monthly from 2013-01 (ACEA before, kept in data/Belgium_legacy.csv). | 2013-01 – 2026-10 166 rows | data/Belgium_Buses.csv |
Every bar is the span actually present in our stored CSV — breaks in a bar are real gaps in the series, not rendering. Cadence is shown on the right.
Whole 2013-01–2026-10 (166 rows), Private 2013-01–2026-10 (166 rows), Industry 2013-01–2026-10 (166 rows), Vans 2013-01–2026-10 (166 rows), HDV 2013-01–2026-10 (166 rows), Buses 2013-01–2026-10 (166 rows).
A blank column almost never means "no such cars" — it means this source does not split them out, and those vehicles are counted inside another column. Check the caveats for where they land.
| BEV | PHEV | HEV | PETROL | DIESEL | OTHERS | |
|---|---|---|---|---|---|---|
| Whole | reported | reported | reported | reported | reported | reported |
| Private | reported | reported | reported | reported | reported | reported |
| Industry | reported | reported | reported | reported | reported | reported |
| Vans | reported | reported | reported | reported | reported | reported |
| HDV | reported | reported | reported | reported | reported | reported |
| Buses | reported | always zero | reported | reported | reported | reported |
reported column exists but is zero in every row not reported by this source. Hover a cell for the row count.