BEV Trajectories • Gallery

BEV Trajectories

Tracking the electric vehicle transition — country by country, month by month.

Open Gallery

For each market, monthly new-car registration data is fitted to a generalized S-curve model. The result describes how far along a country is in its BEV transition — not a forecast, but a real-time snapshot of the transition as it stands today.

Browse

Gallery

Filter charts by country, date, and type. Click any chart to zoom. "Latest only" shows the current state of each market without historical clutter.

Browse

World Map

See BEV share geographically. Color-coded by transition stage — useful for spotting regional patterns at a glance.

Rankings

Thresholds

When does a market cross 20%, 50%, or 80% BEV share? Computed from the fitted curve, sortable and exportable.

Rankings

Durations

How long does it take to move from one share level to another — e.g. 20% → 80%? Comparable across all markets.

DIY Curves

Builder

Aggregate curves for custom country groups — by region, weight class, or any selection. The global bottom-up trajectory lives here.

DIY Curves

Compare

Put multiple countries side by side on the same chart. Useful for spotting which markets lead, lag, or have stalled.

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.

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 →

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 (years)

Export current table

Choose a custom threshold, then sort the table. Use the variant filter to include multiple categories. Default selects “New Cars”. Exports reflect your current filter and custom setting.
Color coding: green = threshold already reached; red = 80% threshold after Jan 2035.

Loading params.csv

Durations (time to move between thresholds)

Export current table

This view shows the projected time to progress from one market share threshold to another. Columns include 20→80%, 10→90%, a user‑defined X→Y%, and the model’s numerical speed at the inflection point (slope of the tangent). Values are computed client‑side from params.csv. Rows with a trailing-12-month BEV share below 1%, or whose curve has no inflection (v2 ≤ 1) or whose peak adoption rate stays under 1 percentage-point per year, are flagged as ”shows no transition”.
Indonesia’s fitted parameters round to almost zero in CSV precision, so the table reconstructs them on the fly by anchoring the model to the most recent observation — its entries can therefore be off by a few months in either direction.

Loading params.csv

Transition Time Interval

Export

Each bar shows the modelled time span from the From% to the To% BEV share; the dot marks the Mid dot% threshold. Bars truncated at the right edge (➜) indicate the transition continues beyond the visible window. Defaults: 20 / 50 / 80%. Hover a bar for exact years.

Loading params.csv

Region / World Curve Builder

This builder aggregates national BEV transition models into regional or global curves. Multiple countries are stacked into a single trajectory.
Aggregation is weighted by market size using weights.csv, ensuring that large markets dominate the result while small markets contribute proportionally.
The x-axis uses index time internally (see t0 parameter). Minor rounding artefacts are expected due to time conversion and general limitation while rounding, since these calculations run client side on your device.
The builder defaults to passenger cars (= New Cars) (4-Wheelers = legacy for India) in case there are no parameters for a variant like HDV or Vans.
If the variant exists (for example in Thresholds or Durations Tab), then the Builder will create the variant curve.

Compare Curves

Side-by-side comparison of 2–3 curves. Each slot can be an individual country (including a specific variant like Italy · Rental) or an aggregated region (e.g. EU, World), weighted by weights.csv like in Builder. The powertrain selector switches all slots together — you can only compare BEV vs. BEV, ICE vs. ICE, or PHEV vs. PHEV (no mixing). The Variant (groups) selector applies only to aggregate slots; individual country slots carry their own variant.

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

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.

Fleet-Debug (Loading-Status): → waiting for Tab-Activation ...

World Map

Same country data as the Thresholds and Durations tabs, painted on a world map. Only the default (whole-market, passenger-car) variant is shown.

Metric i
i

View Zoom

Color scale is clipped at the 5th and 95th percentile so regular countries get a useful gradient. Cyan = pioneers that have already reached the threshold. Purple = countries whose fitted model does not project a transition within a reasonable horizon. 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.