BEV Trajectories

How fast is each country replacing combustion cars?

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.

S-curves, not noise

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.

Weibull formulation

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.

Not a forecast

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.

Incentives Buy Speed, Not the Destination

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.

Read article →

Spain's BEV Transition Is Two Stories — and the Gap Is Wider Than Italy's

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.

Read article →

Italy's Slow BEV Transition Is Really Two Stories

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.

Read article →

One in Five Isn't EV Leadership

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.

Read on CleanTechnica ↗

Domestic EV Policy Decides the Global Car Hierarchy

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.

Read on CleanTechnica ↗

Global EV Leaders, Domestic Laggards

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.

Read on The Driven ↗

FAQ

Submit Data

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.

Feedback & Questions

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.

All categories 🐛 Bug ❓ Question 💡 Idea ⚠️ Data error 💬 Comment All statuses Open Answered Resolved

New topic

Markdown supported. Max. 4,000 characters.
Drag & drop or click to attach (PNG, JPG, GIF, WebP · max 2 MB)
Tab, filters, current settings… (show)

      
Spam guard, no tracking.
Heads up: Your submission is displayed publicly on the site and cannot be edited after posting. Please do not include personal data, email addresses, or similar.

Thresholds

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

Export
Loading params.csv…

Data freshness

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.

Loading sources/schedule.json…

Calendar

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.

landed window opens

Durations

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.

Export
Loading params.csv…

Time Interval

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.

Export
Loading params.csv…

Builder

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.

Time-lapse — what the model said, as the data came in

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.

The curves behind it

Compare

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.

Raw Data

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.

Fleet

Projection When does the projection run, and how far?
i
Inflow of new vehicles How many new cars are sold each year, and what mix?
i
i
i
Robotaxi / shared-mobility decay i off — floor = 1
i
i
i
Hazard & attrition How many vehicles leave the fleet each year as they age
i
Weibull settings i active
i
Annual hazard / attrition by category i
i
i
i
i
i
i
i
Linear age curve settings i off
i
i
Same countries, same projection settings — counted as cars, or as the energy they need.

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.

World Map

BEV transition geographically as per smoothed out model.

%

View Zoom
@LeRaffl

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

      Pioneers

        No transition

          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.