Monthly new-car registrations, fitted to an S-curve. A snapshot of each market’s transition — not a forecast. Open data. 40+ markets, updated as new registrations land.
Filter charts by country, date, and type. Click any chart to zoom. "Latest only" shows the current state of each market without historical clutter.
See BEV share geographically. Color-coded by transition stage — useful for spotting regional patterns at a glance.
When does a market cross 20%, 50%, or 80% BEV share? Computed from the fitted curve, sortable and exportable.
How long does it take to move from one share level to another — e.g. 20% → 80%? Comparable across all markets.
Aggregate curves for custom country groups — by region, weight class, or any selection. The global bottom-up trajectory lives here.
Put multiple countries side by side on the same chart. Useful for spotting which markets lead, lag, or have stalled.
Where each country's numbers come from — the upstream registry or portal, what they count, and the caveats to watch. One page per country.
BEV adoption follows a structured transition: slow start, acceleration once a tipping point is passed, then gradual stabilisation toward 100%. An S-shape fits this pattern consistently — and breaks visibly when the data doesn't support a transition.
The model uses a generalized Weibull-style logistic curve with two free parameters — enough flexibility to capture asymmetric transitions (early-heavy vs. late-heavy) without overfitting. Market size is used as a weight so large-volume months aren't dominated by small-market outliers.
The curve represents the best fit to today's data. When new registrations arrive, the curve updates. This is a description of what has happened so far — "if things simply continued from here" — not a statement about the future.
The search for a third country to split like Italy and Spain turned into something bigger: Denmark's private market at 92% BEV, Finland's leader flipping the year a subsidy died, and four countries that cut incentives and cratered on cue. The pattern that falls out — removal damage shrinks as the transition matures, and no market stays down — gets its final test in Hong Kong, live, right now.
The promised sequel. Split Spain's DGT registrations by channel and the mid-table headline number falls apart: non-rental buyers run a ~11.5-year transition — outpacing all of South Korea — while the rental third of the market sits frozen on a fifty-year curve, buying hybrids for the tourist season. Plus: the diesel-to-hybrid migration, the two charging networks, and the solar card nobody plays.
Split the data and you see it's not the people of Italy. Strip out the rental fleets and the transition time drops from ~25 years to ~17 — Spain/Korea territory. The rental market is effectively frozen, and the reason is infrastructure tourists can't work around.
Europe posted record H1 BEV numbers — 20.7% of EU registrations — yet sits mid-pack, behind China (~43% domestic BEV) and Thailand, ahead of Japan and the US. The argument: domestic BEV share is an industrial KPI, and leaning on hybrids and "technology openness" buys time, not a strategy. With Ray Wills and Peter Newman.
Two clubs of carmakers, split by home-market BEV share. China's fleet-wide 30%-by-2030 NEV target and Thailand's export pivot put both on a steep trajectory, while Japan and the US stay stuck near the bottom. The case that whoever electrifies at home fastest sets the export hierarchy — China's NEV exports have already overtaken its combustion exports. With Ray Wills and Peter Newman.
The Australian read on the same data: as a vehicle taker, not maker, Australia imports whatever its suppliers choose to build — and China has just overtaken Japan as its top source, with 80%+ of its EVs China-made. Singapore as the clean-policy example, and why the NVES is Australia's real signal to global manufacturers. With Ray Wills and Peter Newman.
Add a new monthly data point or correct an existing one. The form opens a pull request against the country's CSV in this repo, the maintainer reviews and merges, then triggers the render Action — your numbers appear on the page within a few minutes after merge. Multiple rows (multiple months / corrections) can ship in one submission.
Found a bug? Question about the data? Idea for how something could be shown better? Just let me know — no account required. Replies appear right here, visible to everyone.
Smoothed model. Dates are when the fitted S-curve of new-vehicle BEV share crosses each level — not raw monthly data.
Green — fitted curve already crossed Red — fitted 80% after January 2035
params.csv…Which month each country's data currently runs to, when it last arrived, and when the next point is due. Due and late are measured against the source's own publication window — the days our fetcher polls — so a country is never flagged before its publisher has actually released. Hand-maintained sources have no such window and are marked by hand rather than judged.
sources/schedule.json…What actually landed, and what is due. Past days show the drops that really happened — one flag per country whose charts were produced that day. Future days mark where each source's publication window opens, the earliest a new figure can appear; fetchers keep polling after that, so those are possibilities rather than promises. Click a day for the detail, or a flag to open that country's charts. The country filter above narrows this too.
Smoothed model. How long the fitted S-curve takes to move between share levels — not raw monthly data.
No-transition rows: TTM below 1%, or the fit never really takes off.
params.csv…Each bar is the modelled span from From% to To% BEV share; the dot is the mid threshold. A bar truncated at the right edge (➜) continues past the visible window. Defaults 20 / 50 / 80%. Hover a bar for exact years.
params.csv…
National BEV curves stacked into one regional or global trajectory, weighted by market size from weights.csv — large markets dominate, small ones contribute in proportion. Defaults to New Cars when a country has no HDV or Vans parameters; if the variant exists (as in Rankings), the builder uses it. Rounding artefacts are expected: this runs on your device.
Every frame re-runs the fit on the observations available at that month, back to 2015. It shows the model changing its mind as data arrives — it is not a forecast, and not a record of what the gallery published at the time.
Three pinned series keep their labels. Add as many more as you like — past three, only fitted curves (no monthly steps), extras named on hover.
The country CSVs, drawn. One bar per period, each summing the trailing
N months ending there — rolling, the way the TTM charts roll.
Nothing here is modelled: every number is a number that is in
data/<Country>.csv, or a sum of such numbers.
What the bands mean. BEV is battery-electric; PHEV plug-in hybrid; HEV a full hybrid that does not plug in; Hybrid a combined bucket where the source does not separate those two; ICE combustion that the source does not split into petrol and diesel; Other a category the source reports but does not name (LPG, CNG, fuel-cell). Where a source only started splitting a category out partway through, the later band is folded back into the one it used to be counted in — otherwise the chart shows a cliff that is a change of definition, not of market. Selecting a second country collapses both to whatever they can both fill; the footnote says which collapse was applied. A period is drawn only where the window is a whole multiple of the coarsest observation inside it, so a quarterly stretch appears at T3M, T6M and T12M but not at T1M. Everything held back and why: the data-quality checklist.
What this shows. The same fleet and the same projection as the Vehicles view,
converted into the energy it needs. Reading left to right: what comes out of the ground,
what reaches the tank or battery, which cars burn it, what actually arrives at the wheels,
and what that work is spent on. Losses branch off where they happen, so you can see that a
combustion car wastes roughly three quarters of its fuel before the wheels turn, while an
electric one wastes about a fifth — the single reason electrification changes the total.
Nothing here is inferred behaviour. Energy is conserved and every conversion step has a
measured efficiency, so the chart balances by construction. Accounting follows the
IEA physical energy content method. The grid mix is held constant, which credits the
power sector with no future improvement — electrified transport is therefore shown at
its worst. Factors and their sources live in energy_factors.csv; the method is
written up in architecture/energy-view-methodology.md.
The emissions strip reads the same fleet as CO2 equivalent,
well-to-wheel: the greenhouse gas of getting the fuel or electricity to the car and using it,
stacked by source across the years so you can watch it develop as the fleet electrifies. Fuels use JEC
well-to-wheel CO2e. For the power grid you pick the scenario:
decarbonises — the grid falls linearly from today's world average (Ember, ~480 gCO2e/kWh)
to a net-zero target (IEA Net Zero by 2050, ~2040) — or today's grid held, the honest worst
case for the electrified side. Both endpoints are single sourced values in energy_factors.csv,
so the trajectory is easy to check or swap. It counts the use phase only — building the car or
its battery is a separate, embodied question.
Observed fleet stock (on the road) by drivetrain. Projections use modeled inflow & attrition (see controls above).
When multiple countries are selected they are stacked by category. If a country lacks a PHEV/HEV split, both appear under HYBRID; if PETROL/DIESEL detail is missing they appear under OTHERS.
BEV transition geographically as per smoothed out model.
Color scale is clipped at the 5th and 95th percentile so regular countries get a useful gradient. The scale runs light → dark in a single hue, so it stays readable with any form of colour blindness — dark always means further along. Amber = pioneers that have already reached the threshold. Grey = countries whose fitted model does not project a transition within a reasonable horizon. Both sit outside the scale and carry a heavier outline, so they never read as just another step. Exact values always live in the hover tooltip.
Leaders / Laggards are the top and bottom five normal countries for the selected metric. Pioneers have already reached the threshold at the time of the last data point. No transition countries have a fitted Weibull that does not reach the threshold within a reasonable horizon — usually because v2 is very small (flat curve) or the model is still in its early phase.