Methodology

How We Source the Data

Sources and refresh cadence

Car and Problems relies exclusively on publicly released federal safety sources. Each data category has its own refresh cadence:

Data typeSourceRefresh cadence
RecallsFederal recall API + günlük flat-fileDaily (03:00 UTC)
Complaints — 2023+Şikayet APIEvery 3 hours
Complaints — pre-2023Aylık flat-fileMonthly (1st, 03:00 UTC)
InvestigationsAylık flat-fileMonthly (1st, 04:00 UTC)
Manufacturer communicationsBeş-yıllık bulk arşivlerMonthly (1st, 05:00 UTC)
Vehicle catalogResmi araç kataloğu bulk dumpMonthly (auto-detected release)

How we match vehicles

Each federal data feed identifies a vehicle differently — some use "MAKETXT/MODELTXT/YEARTXT", others use "ProductsAffected" JSON arrays. We normalize all of them to a canonical (make, model, year) triple and bind to the same vehicle record. Name variations (e.g. "Mercedes-Benz" vs "Mercedes Benz" vs "Mercedes") are reconciled with a slugify + ensureUniqueSlug pipeline.

When one campaign affects multiple (year, make, model) combinations, we list it under each vehicle while preserving the original scope in an affectedVehicles field — the campaign you see on a profile always applies to that vehicle, and you can also see every other vehicle named in the source.

Known limitations

  • Lag: campaigns typically surface on Car and Problems 6-24 hours after the source publishes them. For very fresh events, the primary source is faster.
  • Missing images: PDF image extraction does not work for every document; you may see a default graphic in place of a hero image on some articles.
  • Motorcycles and heavy commercial: these categories live on different data pipelines and are only partially covered.
  • Translations: Turkish summaries are produced with large language models and reviewed by an editor; technical terms retain the original English in parentheses.

Freshness indicator

Last-sync timestamps are surfaced transparently on the homepage footer. If a vehicle profile shows "Last checked: 3 hr ago", the underlying data is no newer than that timestamp.