Skip to content
team banzai

tech demo · automotive

Anticipating car recalls by reading driver complaints

What if the signals were already there, months before the problem had a name?

Each row is a car model. Each mark, a month of complaints. The signal lights up before the recall exists.

summary

the data
The public complaints database of the U.S. road-safety agency (NHTSA): CSV files anyone can download, with over a million complaints written by drivers over twenty years.
the question
Some of those cars ended up recalled to be fixed. Was the warning hidden in the complaints all along?
the test
A system reads only the old complaints, with the future hidden, and raises its hand when something smells wrong. Then we compare against what actually happened.
what came out
The system warned in half the cases that ended in a recall: on average, more than a year ahead. And where there was no problem, it almost never cried wolf.

Every year, thousands of drivers in the United States write to the road-safety agency (NHTSA) complaining about their cars. Years later, some of those problems become an official recall. The question: before the problem had a name, were its signals already in those complaints? The same head start, smelling the problem in hand-written complaints before it blows up, works for an appliance maker, a hospital piling up incident reports, or anyone who gets scattered warnings and never crosses them.

We rebuilt the past month by month. The system only sees complaints received up to each moment; it groups the ones telling the same story in different words, and raises its hand when one of those families grows abnormally. Rules, thresholds and every parameter were frozen on July 9, 2026, before looking at a single result, in a record with a cryptographic fingerprint (6fe218f). Then we opened the future.

What came out

Across 889 recall cases (2015-2024) and 760 control cells (the same cars, in components that never had a recall): the system raised its hand in 53% of recall cases and only 11% of the control. Simple detectors (counting complaints, spotting spikes) fire on 40% of the control: they can't tell the difference. The point isn't seeing more; it's telling apart.

When there was an alert, it came a median of 374 days before the official recall. Where the agency opened an investigation, our alert came a median of 122 days earlier than the investigation (though in 1 out of 4 cases, later, we count those too).

And a caveat we would rather raise ourselves: half the pool are airbags from the Takata era, heavily covered in the press. Take them out and the system still tells apart nearly 4 times better than chance, and the median lead time does not move: 374 days.

Full distribution of lead times: median 374 days, n=473 alerts

try it

Move it yourself: time, in your hands

Drag through time and you'll see exactly what the system saw: only the complaints received up to that moment. The future, hidden.

complaints received system alert official recall hidden future

Three cases, with the future opened

Illustrative cases, picked with a declared rule: manufacturer-initiated, not famous, lead time between 2 and 15 months. The full distribution is the histogram above, not every case fires, and not every case looks like these.

Ford Explorer 2020, Power Train: alert 235 days before the recall
the signal lights up · Ford Explorer 2020 · alert 235 days before the recall
Jeep Gladiator 2021, Engine: alert 254 days before the recall
the signal lights up · Jeep Gladiator 2021 · alert 254 days before the recall
Chevrolet Malibu 2013, Suspension: alert 265 days before the recall
the signal lights up · Chevrolet Malibu 2013 · alert 265 days before the recall

How to read this without fooling yourself

  • It's not volume, it's anomaly. Ten complaints in two months telling the same story, on a car that barely generates any, are a scream. On a best-seller they'd be noise.
  • Every complaint is the tip of an iceberg. Writing to a federal agency is a rare act; behind each complaint there are usually many more cases.
  • Coherence is the filter. Eight random complaints mean nothing; eight describing the same new failure in different words do.
  • The alert only looks backwards. It fires at the start of each month with what was received until then. It never sees the future.

The caveats, hiding none

  • Today's public file is cleaner than the one that existed back then (withdrawn or corrected complaints disappear): there is no exact snapshot of the past.
  • 25% of complaints mention the word "recall": the strict cut by reception date is the barrier, and content is verified on top.
  • Most recalls have no observable complaint history: of ~8,900 in the period, only ~890 cells had enough mass to be evaluated.
  • This shows early signal was recoverable in specific cases. It is not a validated predictive rate, it does not predict future recalls, and it judges no one.

References

Anticipating defects from complaints is not a new idea, and anyone claiming otherwise is selling you snake oil. There is a decade of literature, and NHTSA itself uses machine learning in its screening. What this demo adds is the protocol: rules frozen before looking, a control group, and failures published.

  • Ghazizadeh, McDonald & Lee (2014), Text Mining to Decipher Free-Response Consumer Complaints, Human Factors.
  • Zhang et al. (2015), Predicting Vehicle Recalls with User-Generated Contents, Springer.
  • Li et al. (2025), XGBoost-based risk prediction model for massive vehicle recalls, Risk Analysis.
  • NHTSA, Risk-Based Processes for Safety Defect Analysis (DOT HS 812 984) and Early Warning Reporting (TREAD Act).

Data and acknowledgements

If this demo is possible at all, it is because NHTSA (U.S. Department of Transportation) publishes its consumer complaint, recall and investigation databases in the open. Thank you.

All data used is public.

Can you use this? Yes. Our signals, the frozen rules and the texts on this page are published under the CC BY 4.0 licence: use them, share them or analyse them freely, citing the source, Team Banzai (team-banzai.com). Third-party data (NHTSA complaints and recalls, US public domain) keeps the terms of its original sources.

Built with Python and SQLite. TF-IDF, clustering with a frozen taxonomy, and a Poisson test. No language model decides anything: the alert is geometry and statistics with frozen parameters.

About this demo

A retrospective study for illustrative purposes, on public NHTSA data. All recalls shown are historical campaigns, already published and managed by their manufacturers. Consumer complaints are unverified testimonies; their presence does not prove a defect. This analysis does not claim any current vehicle has problems, does not evaluate manufacturers or NHTSA, which run far more complete surveillance processes, with data this study cannot see, and is not safety advice. Brands are cited solely as part of the public historical record. No affiliation with NHTSA or any manufacturer.

What about your company?

The same thing works for reading a product's reviews to catch a manufacturing defect before it becomes a serious problem, a fleet's maintenance logs to spot which machine is about to give trouble, or support messages to notice that an update just broke something.

If one of these experiments reminds you of a problem of yours: a fleet with alerts nobody cross-references, warranties that trip on the same thing every time, customer complaints read one by one and forgotten, write to us and we'll talk it through. No fluff: we'll tell you whether it can be done.

← All tech demos