Monthly new light-vehicle SALES in the United States — cars and light trucks including pickups, SUVs and vans (GVWR up to 10,000 lb) — with battery-electric, plug-in hybrid and hybrid counts, compiled by Argonne National Laboratory (ANL) from Wards Auto. These are sales, not registrations, and pickups cannot be separated out.
Go and check the numbers yourself:
Access to the machine endpoint behind this page needs credentials — the developer doc at the foot of the page has the details.
The fetcher opens ANL's historical-data page with a browser User-Agent and takes the link whose URL or text contains "total" and "sales" and ends in .pdf ("Total Sales for Website_<Month> <Year>.pdf").
pypdf turns the PDF into text; every line that starts with a month tag (e.g. "Aug-25") followed by four numbers is a row — BEV, PHEV, HEV, Total LDV. Legend text after the numbers and the "PEV Sales by Size" box are ignored.
ANL's light-duty total is every new car and light truck up to 10,000 lb GVWR sold in the month. Nothing is reclassified.
Before anything is written the whole table must pass — no missing month between the first and the last, no negative value, BEV + PHEV + HEV not above the total, and the total between 0.5 M and 2.5 M. Any failure stops the run and leaves the CSV untouched. A value identical in two consecutive months, a PDF more than two months behind, and older CSV rows that no longer match the PDF are reported as warnings.
ICE = TOTAL − BEV − PHEV − HEV; OTHERS = 0. The file is rewritten only when a value changed, then render-country.yml is dispatched for USA. The exact PDF and its text are kept as a 7-day workflow artifact (anl-total-sales).
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 | PDF — parsed from a published PDF |
|---|---|
| Vehicle scope | New light-duty vehicle sales (cars + light trucks incl. pickups, ≤ 10,000 lb GVWR) as compiled by ANL from Wards Auto. Sales, not registrations. Compare with other countries' passenger-car (M1) curves with care — the US light-truck share is very large. |
| HEV (full hybrids) | ANL reports HEV (conventional, non-plug-in hybrids) as its own column; ANL does not say whether mild hybrids are counted as HEV. |
| Backfill | none needed — every PDF carries the full history from Dec-2010; a full refresh (`--months 0`) rewrites all rows from the current release. |
| Auth | none (anl.gov returns 403 to non-browser User-Agents; the fetcher sends a desktop browser UA) |
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 | All new light-duty vehicles SOLD in the US — passenger cars AND light trucks (pickups, SUVs/crossovers, minivans, vans) up to 10,000 lb GVWR. Not EU M1 — pickups (≈ 15% of US production per EPA's Automotive Trends Report) and light commercial vans are inside. Not registrations. | 2010-12 – 2026-09 190 rows | data/USA.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 2010-12–2026-09 (190 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 | ICE | OTHERS | |
|---|---|---|---|---|---|
| Whole | reported | reported | reported | reported | always zero |
reported column exists but is zero in every row not reported by this source. Hover a cell for the row count.