Methodology
Where the numbers come from, how they are computed, and what they cannot tell you.
Sources
Everything here derives from the NHTSA Office of Defects Investigation flat files, which are United States government work and in the public domain. Three sets are used:
| File | What it provides | Records |
|---|---|---|
| FLAT_CMPL | Owner complaints. Field 18 carries mileage at failure. | 2,116,934 |
| FLAT_RCL_POST_2010 | Recall campaigns since 2010, including the DO NOT DRIVE and PARK OUTSIDE severe advisories. | 217,256 |
| FLAT_INV | Defect investigations. | — |
How pages are grouped
Pages cover a model generation, not a model year. Generation is how a vehicle is actually engineered and how buyers think about it, and grouping this way avoids thousands of near-empty pages. The generation map was compiled from public references and audited for overlaps, gaps and boundary errors before use.
Where a manufacturer sold an old and a new generation in the same model year — the 2007 Silverado, the 2014–15 Rogue, the 2024 Traverse — NHTSA records do not separate them. Those years are assigned to the newer generation and flagged on the page as mixed. Where NHTSA does file the carryover separately (Malibu Classic, for instance), no ambiguity arises.
What is computed
For each generation: the distribution of mileage-at-failure across all complaints that record one; the same distribution per vehicle system; complaint counts by model year; recall campaigns; and reported crashes, fires, injuries and fatalities. Mileage values above 500,000 or at or below zero are discarded as data-entry errors. A distribution is only drawn when at least 30 complaints carry mileage, and a page is only published at 100 or more.
The shape label — early, late, spread, or two separate populations — is derived mechanically from the share of failures below 12,000 miles, above 100,000, and in between. No judgement is applied.
What these numbers are not
They are not a failure rate. Complaint counts reflect what owners chose to report, not how often a part fails per vehicle sold. Converting to a rate needs production volume by model and year, and no free, authoritative source for that exists. The obvious substitute — the affected-vehicle count published with recall campaigns — was tested against known US sales figures and rejected: it overstates by a median factor of 7.6, because most campaigns span several model years while the affected count is given for the campaign as a whole.
So this site does not rank vehicles against each other. It describes what happens to a given vehicle, and when. Popular models accumulate more complaints simply by being common, and a larger number here is not by itself evidence of a worse car.
Reproducibility
The full pipeline is public at github.com/bilingoplusllc/mileagecurve. It is plain Python with no external dependencies: download the source files, build the database, render the site. Anyone can reproduce every figure on this site from the original government data.
Data snapshot: 2026-08-12. Rebuilt monthly, as NHTSA publishes.