MileageCurve

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. Two sets are used:

FileWhat it providesRecords
FLAT_CMPLOwner complaints, counted once per complaint (the file lists a complaint once for every component it names). Field 18 carries mileage at failure. The count is complaints about the generations on this site.881,231
FLAT_RCL_PRE_2010
FLAT_RCL_POST_2010
Every recall campaign, before and since 2010, including the DO NOT DRIVE and PARK OUTSIDE severe advisories. The count is campaigns covering the generations on this site.3,051

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 or spread — is derived mechanically from complaint density (reports per 1,000 miles) in three windows: 0–12,000, 20,000–80,000 and 100,000–200,000 miles. Density, not share, because windows of different width are not comparable as shares. 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 pipeline 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-10-20. Rebuilt monthly, as NHTSA publishes.

How to read a page here

Start with your model year. Every vehicle page opens with a row of tiles, one per model year, each carrying that year’s own median. Most people arrive knowing the year on the title rather than which generation it belongs to, and the tiles exist so you do not have to work that out. A year with fewer than thirty reports carrying an odometer reading shows no number at all rather than one drawn from a handful — a median of nine reports looks exactly as solid on a page as a median of nine hundred.

Read the shape before the number. A generation whose reports cluster tightly at one mileage is describing a part that fails; one spread across the whole range is describing ordinary wear. The two call for different decisions — the first is worth asking a seller about by name, the second is just an old car — and a single average sits between them and describes neither.

The middle half is the honest part of the curve. Every page shows the range between the 25th and 75th percentile, and that band is where half the reports live. The tails matter less than they look: one report at 300,000 miles proves that a car reached it, not that yours will.

Twelve thousand miles is a line this site draws, not one the world draws. Reports filed below it describe something that was wrong from the start rather than something that wore out, and the pages shade that region so the distinction is visible. It is a convention, stated plainly so you can disagree with it.

Figure 1 · Toyota Prius, two generations

Same model name, different mileage curve

Share of each generation’s own mileage-tagged reports filed at or below each mileage, on a linear 0–200,000-mile axis. Shares of reports, not failure rates — and not a ranking.

  • Prius 2004–2009 — 5,987 reports with mileage
  • Prius 2010–2015 — 3,205 reports with mileage

Half of the Prius 2010–2015 reports arrive by 11,000 miles; the Prius 2004–2009 takes 54,000. Same nameplate, different curve — that is what every page here shows.

Source: NHTSA Office of Defects Investigation, public domain.

Reading a generation page, part by part

Each generation page carries only its own figures. What those figures mean, and what they cannot tell you, is set out once, here.

Complaints, not a failure rate

A count of complaints can’t rate a car on its own: NHTSA records what owners chose to report, not how many of each car were sold. The short answer at the top of every page gives the count and the median together so that neither is read without the other. Why no rate can be computed is set out under What these numbers are not.

Why the mileage is not a lifespan

Complaint records can’t measure how long a car lasts; they show when reported failures happened. “Half of the reports came by 60,000 miles” means half of the failures owners filed had happened by then, not that a car is finished at 60,000. A report filed past 150,000 or 200,000 miles is evidence that a car got there, not that it failed there.

The three figures

Figure 1, mileage at failure. Complaints that record an odometer reading, counted in equal-width bins on a linear scale from 0 to 200,000 miles; reports above 200,000 are drawn as one detached bar. The percentiles under it are rounded the same way as everywhere else on the page.

Figure 2, when each system fails. Each bar spans the middle half of one system’s reports, from the 25th to the 75th percentile, and the notch inside it is the median. The axis is proportional (logarithmic): equal distances are equal ratios, not equal miles, so a system failing at 5,000 and one at 100,000 both stay readable. The first 12,000 miles are shaded: that is the boundary this site uses between a manufacturing defect and ordinary wear, not a property of the world.

Figure 3, share of reports below each mileage. The share of mileage-tagged reports filed at or below each odometer reading. Steps rise only at bin edges, by exact counted shares; nothing is smoothed or interpolated.

All three are drawn from the NHTSA Office of Defects Investigation complaint file, which is in the public domain.

Where your car sits

Enter an odometer reading and each system is placed against it. Earlier: most of that system’s reports came below your mileage, so ask for its repair records. In window: your mileage sits inside the middle half of its reports. Later: most of its reports came above it. That describes reports, not your odds: most cars never have a complaint filed at all.

Counts by model year

A yearly count follows how many cars of each year were sold and how long they have been on the road as much as how often they failed, so a year with more complaints is not by itself evidence of a worse year. What each year’s reports name, in its card and its row of the table, is the useful part.

Complaints filed after 2020

Since 2021 most complaints carry no odometer reading: mileage is recorded on about 15–20% of them, against 70–90% before. Where at least 40% of a year’s or a generation’s complaints were filed after 2020, its median rests on the earlier reports and likely understates the mileage these failures happen at. Such years carry a † on their tile and in the table.

Recalls

A recall means the manufacturer or the regulator concluded there was a safety defect or a standard was not met, and that a free remedy is owed to owners — including second and later owners. Repairs are free at an authorized dealer. Recall status belongs to the individual vehicle, not the model: checking a VIN against NHTSA’s lookup is free, takes under a minute, and is the only way to know whether a particular car has had the work done. A generation with no recall on file is not a generation without problems: recalls address safety defects, and many complaints concern faults that are expensive or annoying without meeting that threshold.

Several campaigns on one area

Several campaigns against one area can mean a remedy that did not hold, or separate defects in parts filed under the same heading. The summaries on each page name each defect, so the two cases can be told apart.

Crashes, fires and injuries

These flags are self-reported by complainants and unverified by NHTSA. One report can carry several of them, so the counts overlap and do not sum to a total, and none is adjusted for how many of these vehicles are on the road. No chart is drawn for them on purpose: overlapping counts spanning very different magnitudes cannot be honestly encoded as lengths.

The before-you-buy checklist

The checklist is built from the page’s own data: the recall count, the systems that fail early, and the documented problems. An open recall is a free repair you can make the seller’s problem. Aggregate data describes the population; the car in front of you has its own history, and none of this replaces a pre-purchase inspection.