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 type | Source | Refresh cadence |
|---|---|---|
| Recalls | Federal recall API + günlük flat-file | Daily (03:00 UTC) |
| Complaints — 2023+ | Şikayet API | Every 3 hours |
| Complaints — pre-2023 | Aylık flat-file | Monthly (1st, 03:00 UTC) |
| Investigations | Aylık flat-file | Monthly (1st, 04:00 UTC) |
| Manufacturer communications | Beş-yıllık bulk arşivler | Monthly (1st, 05:00 UTC) |
| Vehicle catalog | Resmi araç kataloğu bulk dump | Monthly (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.