nhtsa nhtsa @ asof-2026-10-08
llm_report · data_report.md
nhtsa: stage 01 Data
Inputs. NHTSA ODI flat files fetched 2026-10-10 from static.nhtsa.gov/odi/ffdd: FLAT_CMPL.zip (complaints since 1995, 2,255,013 rows), FLAT_RCL_PRE_2010.zip and FLAT_RCL_POST_2010.zip (recalls since 1966, 327,565 rows), field lists CMPL.txt and RCL.txt. Kept unaltered under raw/.
Output. nhtsa on line universal: 2,449,969 events on 99,014 streams, 1979-10-12 to 2026-10-08. Stream is the vehicle, MAKE | MODEL | MODEL YEAR; 91% of vehicle complaints share their key with some vehicle recall.
Decisions (owner-confirmed 2026-10-10).
tsisDATEA, the date the record was added to ODI's file, on both tables. Since 2005 it
equals the complaint's received date in 99%+ of rows; recalls land 0–3 days after the Part 573 filing. Before 2005 complaints were keyed in with lags of weeks to months. Received, incident, filing and owner-notification dates stay in raw/ only.
- Verb: the component recoded by prefix into 23 families shared by both taxonomies (complaint
intake switched to consumer names around 2012, recalls kept engineering names); unmatched components are other (mostly UNKNOWN OR OTHER, child seats, interior lighting, trailer hitches). The full component string is the fact component; the model year is the fact model_year (9999 means unknown).
- Recalls are distinct on campaign, vehicle and component: since 2020 the file lists a recall once
per part number (132,446 repeats rejected). 163 complaint rows rejected: 24 with no make/model/year, 139 with no component.
kindiscomplaintorrecall. Facts: complaint severity, vehicle attributes and source
(cmpl_type); recall type, origin (influenced_by: MFR, ODI, OVSC), units affected, FMVSS. Narratives and personal fields (VIN, city, dealer, operator name) are not facts.
Drift. At ingest, 51 verb flags (27 spikes, 24 dropouts), the large ones real-world episodes: Firestone tires 2000, Toyota acceleration 2010, forward-collision braking 2022. At the 2021-06 split, verb-mix TVD 0.21: driver-assist families are nearly absent before it (forward_collision ×55, back_over ×32), air bags and tires halve.
Open questions and caveats.
- NHTSA's May 2021 file rebuild says make, model and component names "may have changed over
time"; complaints received before then may carry components recoded after the fact, possibly toward a later recall. Test anchors are kept after 2021-06-01; training-era labels and the component of training anchors carry this caveat. Old complaints keep old-era names, so there was no wholesale rename.
- A recall usually spans several model years (61% of campaigns since 2010); the universal line
cannot link sibling streams.
- Tires, equipment and child-seat products are in the spine as their own streams; targets filter
them with prod_type and rcltypecd.
Next stage. Author the Atlas with its cutoff at 2021-06-01, so vocabularies and fact kinds are read on training events only.
Receipts (2)
ingest_report.json{
"source": "nhtsa",
"tables": [
{
"table": "FLAT_CMPL.txt",
"format": "tsv",
"rows_read": 2255013,
"events": 2254850,
"envelope": {
"ts": "DATEA",
"stream": [
"MAKETXT",
"MODELTXT",
"YEARTXT"
],
"type": "family",
"parent_id": "ODINO",
"event_id": "CMPLID"
},
"facts": {
"CRASH": "crash",
"FIRE": "fire",
"INJURED": "injured",
"DEATHS": "deaths",
"COMPDESC": "component",
"STATE": "state",
"MILES": "miles",
"OCCURENCES": "occurences",
"CMPL_TYPE": "cmpl_type",
"POLICE_RPT_YN": "police_rpt_yn",
"ORIG_OWNER_YN": "orig_owner_yn",
"ANTI_BRAKES_YN": "anti_brakes_yn",
"CRUISE_CONT_YN": "cruise_cont_yn",
"NUM_CYLS": "num_cyls",
"DRIVE_TRAIN": "drive_train",
"FUEL_SYS": "fuel_sys",
"FUEL_TYPE": "fuel_type",
"TRANS_TYPE": "trans_type",
"VEH_SPEED": "veh_speed",
"PROD_TYPE": "prod_type",
"MEDICAL_ATTN": "medical_attn",
"VEHICLES_TOWED_YN": "vehicles_towed_yn",
"YEARTXT": "model_year"
},
"constants": {
"kind": "complaint"
}
},
{
"table": "FLAT_RCL_PRE_2010.txt",
"format": "tsv",
"rows_read": 81710,
"events": 81369,
"envelope": {
"ts": "DATEA",
"stream": [
"MAKETXT",
"MODELTXT",
"YEARTXT"
],
"type": "family",
"actor": "MFGNAME",
"parent_id": "CAMPNO",
"event_id": "RECORD_ID"
},
"facts": {
"COMPNAME": "component",
"RCLTYPECD": "rcltypecd",
"POTAFF": "potaff",
"INFLUENCED_BY": "influenced_by",
"FMVSS": "fmvss",
"YEARTXT": "model_year"
},
"constants": {
"kind": "recall"
}
},
{
"table": "FLAT_RCL_POST_2010.txt",
"format": "tsv",
"rows_read": 245855,
"events": 113750,
"envelope": {
"ts": "DATEA",
"stream": [
"MAKETXT",
"MODELTXT",
"YEARTXT"
],
"type": "family",
"actor": "MFGNAME",
"parent_id": "CAMPNO",
"event_id": "RECORD_ID"
},
"facts": {
"COMPNAME": "component",
"RCLTYPECD": "rcltypecd",
"POTAFF": "potaff",
"INFLUENCED_BY": "influenced_by",
"FMVSS": "fmvss",
"YEARTXT": "model_year"
},
"constants": {
"kind": "recall"
}
}
],
"rows_read": 2582578,
"events": 2449969,
"rejected": {
"FLAT_CMPL: no stream": 24,
"FLAT_CMPL: no type": 139,
"FLAT_RCL_POST_2010: repeats an earlier row on CAMPNO, MAKETXT, MODELTXT, YEARTXT, COMPNAME": 132105,
"FLAT_RCL_PRE_2010: repeats an earlier row on CAMPNO, MAKETXT, MODELTXT, YEARTXT, COMPNAME": 341
},
"reject_examples": [
{
"table": "FLAT_CMPL",
"row": 102117,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 106524,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 109090,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 109371,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 109379,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 111830,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 113638,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 116308,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 116320,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 138044,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 138054,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 138056,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169333,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169506,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169605,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169729,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169788,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169793,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169797,
"reason": "no type"
},
{
"table": "FLAT_CMPL",
"row": 169798,
"reason": "no type"
}
],
"streams": 99014,
"types": 24,
"bundles": 493549,
"bundled_events": 1353966,
"first_ts": "1979-10-12T00:00:00Z",
"last_ts": "2026-10-08T00:00:00Z",
"drift": {
"n_periods": 563,
"n_events": 2449969,
"structural_types": [],
"verb_flags": [
{
"period": "2000-09",
"verb": "tires",
"kind": "spike",
"count": 5747,
"trailing_median": 102.5,
"ratio": 56.06829268292683
},
{
"period": "2000-08",
"verb": "tires",
"kind": "spike",
"count": 3115,
"trailing_median": 92.0,
"ratio": 33.858695652173914
},
{
"period": "2000-10",
"verb": "tires",
"kind": "spike",
"count": 3815,
"trailing_median": 129.0,
"ratio": 29.573643410852714
},
{
"period": "2017-11",
"verb": "equipment",
"kind": "spike",
"count": 2257,
"trailing_median": 106.0,
"ratio": 21.29245283018868
},
{
"period": "2007-03",
"verb": "equipment",
"kind": "spike",
"count": 1446,
"trailing_median": 159.5,
"ratio": 9.065830721003135
},
{
"period": "2022-02",
"verb": "forward_collision",
"kind": "spike",
"count": 1506,
"trailing_median": 169.5,
"ratio": 8.88495575221239
},
{
"period": "2010-02",
"verb": "service_brakes",
"kind": "spike",
"count": 2893,
"trailing_median": 352.0,
"ratio": 8.21875
},
{
"period": "2017-12",
"verb": "equipment",
"kind": "spike",
"count": 816,
"trailing_median": 106.0,
"ratio": 7.69811320754717
},
{
"period": "2004-04",
"verb": "other",
"kind": "spike",
"count": 915,
"trailing_median": 128.5,
"ratio": 7.120622568093385
},
{
"period": "2010-02",
"verb": "speed_control",
"kind": "spike",
"count": 1937,
"trailing_median": 284.0,
"ratio": 6.820422535211268
},
{
"period": "2006-03",
"verb": "exterior_lighting",
"kind": "spike",
"count": 895,
"trailing_median": 132.0,
"ratio": 6.78030303030303
},
{
"period": "1995-04",
"verb": "structure",
"kind": "spike",
"count": 255,
"trailing_median": 41.5,
"ratio": 6.144578313253012
},
{
"period": "2010-02",
"verb": "stability_control",
"kind": "spike",
"count": 315,
"trailing_median": 54.5,
"ratio": 5.779816513761468
},
{
"period": "1995-04",
"verb": "seat_belts",
"kind": "spike",
"count": 274,
"trailing_median": 51.0,
"ratio": 5.372549019607843
},
{
"period": "2013-09",
"verb": "latches_locks",
"kind": "spike",
"count": 436,
"trailing_median": 81.5,
"ratio": 5.3496932515337425
},
{
"period": "2006-05",
"verb": "fuel_propulsion",
"kind": "spike",
"count": 917,
"trailing_median": 171.5,
"ratio": 5.346938775510204
},
{
"period": "2013-11",
"verb": "latches_locks",
"kind": "spike",
"count": 544,
"trailing_median": 103.0,
"ratio": 5.281553398058253
},
{
"period": "2010-03",
"verb": "speed_control",
"kind": "spike",
"count": 1782,
"trailing_median": 353.5,
"ratio": 5.041018387553041
},
{
"period": "2009-04",
"verb": "exterior_lighting",
"kind": "spike",
"count": 832,
"trailing_median": 171.0,
"ratio": 4.8654970760233915
},
{
"period": "1996-04",
"verb": "electrical",
"kind": "spike",
"count": 1000,
"trailing_median": 207.5,
"ratio": 4.819277108433735
},
{
"period": "2010-02",
"verb": "steering",
"kind": "spike",
"count": 1547,
"trailing_median": 342.0,
"ratio": 4.523391812865497
},
{
"period": "2015-07",
"verb": "other",
"kind": "spike",
"count": 984,
"trailing_median": 219.5,
"ratio": 4.482915717539863
},
{
"period": "2021-02",
"verb": "back_over",
"kind": "spike",
"count": 167,
"trailing_median": 38.0,
"ratio": 4.394736842105263
},
{
"period": "1998-09",
"verb": "equipment",
"kind": "spike",
"count": 233,
"trailing_median": 54.0,
"ratio": 4.314814814814815
},
{
"period": "1998-10",
"verb": "suspension",
"kind": "spike",
"count": 495,
"trailing_median": 115.0,
"ratio": 4.304347826086956
},
{
"period": "2007-10",
"verb": "equipment",
"kind": "spike",
"count": 1010,
"trailing_median": 235.0,
"ratio": 4.297872340425532
},
{
"period": "2024-10",
"verb": "stability_control",
"kind": "spike",
"count": 88,
"trailing_median": 21.5,
"ratio": 4.093023255813954
},
{
"period": "1990-11",
"verb": "seat_belts",
"kind": "dropout",
"count": 0,
"trailing_median": 22.0,
"ratio": 0.0
},
{
"period": "1990-11",
"verb": "equipment",
"kind": "dropout",
"count": 0,
"trailing_median": 33.5,
"ratio": 0.0
},
{
"period": "1990-12",
"verb": "equipment",
"kind": "dropout",
"count": 0,
"trailing_median": 20.0,
"ratio": 0.0
},
{
"period": "1991-01",
"verb": "equipment",
"kind": "dropout",
"count": 0,
"trailing_median": 20.0,
"ratio": 0.0
},
{
"period": "2020-12",
"verb": "stability_control",
"kind": "dropout",
"count": 1,
"trailing_median": 260.5,
"ratio": 0.003838771593090211
},
{
"period": "2021-01",
"verb": "stability_control",
"kind": "dropout",
"count": 1,
"trailing_median": 260.5,
"ratio": 0.003838771593090211
},
{
"period": "1990-09",
"verb": "equipment",
"kind": "dropout",
"count": 1,
"trailing_median": 20.0,
"ratio": 0.05
},
{
"period": "1991-12",
"verb": "service_brakes",
"kind": "dropout",
"count": 2,
"trailing_median": 24.0,
"ratio": 0.08333333333333333
},
{
"period": "2026-10",
"verb": "latches_locks",
"kind": "dropout",
"count": 3,
"trailing_median": 36.0,
"ratio": 0.08333333333333333
},
{
"period": "2021-03",
"verb": "stability_control",
"kind": "dropout",
"count": 5,
"trailing_median": 37.5,
"ratio": 0.13333333333333333
},
{
"period": "1990-10",
"verb": "seat_belts",
"kind": "dropout",
"count": 3,
"trailing_median": 22.0,
"ratio": 0.13636363636363635
},
{
"period": "2018-05",
"verb": "equipment",
"kind": "dropout",
"count": 54,
"trailing_median": 382.0,
"ratio": 0.14136125654450263
},
{
"period": "2020-11",
"verb": "stability_control",
"kind": "dropout",
"count": 46,
"trailing_median": 260.5,
"ratio": 0.1765834932821497
},
{
"period": "2021-02",
"verb": "stability_control",
"kind": "dropout",
"count": 29,
"trailing_median": 152.5,
"ratio": 0.1901639344262295
},
{
"period": "2026-10",
"verb": "equipment",
"kind": "dropout",
"count": 24,
"trailing_median": 119.0,
"ratio": 0.20168067226890757
},
{
"period": "2026-10",
"verb": "wheels",
"kind": "dropout",
"count": 20,
"trailing_median": 90.5,
"ratio": 0.22099447513812154
},
{
"period": "1997-02",
"verb": "suspension",
"kind": "dropout",
"count": 27,
"trailing_median": 117.0,
"ratio": 0.23076923076923078
},
{
"period": "2026-10",
"verb": "forward_collision",
"kind": "dropout",
"count": 138,
"trailing_median": 579.5,
"ratio": 0.23813632441760138
},
{
"period": "1995-08",
"verb": "wheels",
"kind": "dropout",
"count": 7,
"trailing_median": 29.0,
"ratio": 0.2413793103448276
},
{
"period": "1995-08",
"verb": "parking_brake",
"kind": "dropout",
"count": 8,
"trailing_median": 33.0,
"ratio": 0.24242424242424243
},
{
"period": "2026-10",
"verb": "tires",
"kind": "dropout",
"count": 38,
"trailing_median": 156.5,
"ratio": 0.24281150159744408
},
{
"period": "2014-03",
"verb": "latches_locks",
"kind": "dropout",
"count": 74,
"trailing_median": 301.5,
"ratio": 0.24543946932006633
},
{
"period": "2026-10",
"verb": "engine",
"kind": "dropout",
"count": 414,
"trailing_median": 1684.5,
"ratio": 0.24577025823686555
},
{
"period": "2026-10",
"verb": "seat_belts",
"kind": "dropout",
"count": 34,
"trailing_median": 138.0,
"ratio": 0.2463768115942029
}
],
"volume_flags": [
{
"period": "1980-05",
"n_events": 38.0,
"trailing_median": 128.5,
"ratio": 0.29571984435797666
},
{
"period": "1980-06",
"n_events": 16.0,
"trailing_median": 117.0,
"ratio": 0.13675213675213677
},
{
"period": "1980-07",
"n_events": 209.0,
"trailing_median": 79.0,
"ratio": 2.6455696202531644
},
{
"period": "1980-10",
"n_events": 26.0,
"trailing_median": 117.5,
"ratio": 0.22127659574468084
},
{
"period": "1980-11",
"n_events": 12.0,
"trailing_median": 68.0,
"ratio": 0.17647058823529413
},
{
"period": "1980-12",
"n_events": 99.0,
"trailing_median": 32.0,
"ratio": 3.09375
},
{
"period": "1981-06",
"n_events": 144.0,
"trailing_median": 70.0,
"ratio": 2.057142857142857
},
{
"period": "1981-09",
"n_events": 54.0,
"trailing_median": 84.0,
"ratio": 0.6428571428571429
},
{
"period": "1981-11",
"n_events": 18.0,
"trailing_median": 84.0,
"ratio": 0.21428571428571427
},
{
"period": "1981-12",
"n_events": 51.0,
"trailing_median": 84.0,
"ratio": 0.6071428571428571
},
{
"period": "1982-02",
"n_events": 80.0,
"trailing_median": 52.5,
"ratio": 1.5238095238095237
},
{
"period": "1982-04",
"n_events": 82.0,
"trailing_median": 53.0,
"ratio": 1.5471698113207548
},
{
"period": "1982-06",
"n_events": 103.0,
"trailing_median": 54.5,
"ratio": 1.889908256880734
},
{
"period": "1982-07",
"n_events": 27.0,
"trailing_median": 67.5,
"ratio": 0.4
},
{
"period": "1982-08",
"n_events": 28.0,
"trailing_median": 67.5,
"ratio": 0.4148148148148148
},
{
"period": "1982-11",
"n_events": 134.0,
"trailing_median": 47.5,
"ratio": 2.8210526315789473
},
{
"period": "1983-03",
"n_events": 47.0,
"trailing_median": 74.5,
"ratio": 0.6308724832214765
},
{
"period": "1983-05",
"n_events": 44.0,
"trailing_median": 74.5,
"ratio": 0.5906040268456376
},
{
"period": "1983-06",
"n_events": 21.0,
"trailing_median": 67.0,
"ratio": 0.31343283582089554
},
{
"period": "1983-07",
"n_events": 27.0,
"trailing_median": 56.0,
"ratio": 0.48214285714285715
},
{
"period": "1983-08",
"n_events": 79.0,
"trailing_median": 45.5,
"ratio": 1.7362637362637363
},
{
"period": "1983-10",
"n_events": 95.0,
"trailing_median": 38.0,
"ratio": 2.5
},
{
"period": "1983-11",
"n_events": 69.0,
"trailing_median": 38.0,
"ratio": 1.8157894736842106
},
{
"period": "1984-03",
"n_events": 4.0,
"trailing_median": 73.5,
"ratio": 0.05442176870748299
},
{
"period": "1984-04",
"n_events": 176.0,
"trailing_median": 73.5,
"ratio": 2.3945578231292517
},
{
"period": "1984-07",
"n_events": 21.0,
"trailing_median": 73.0,
"ratio": 0.2876712328767123
},
{
"period": "1984-10",
"n_events": 97.0,
"trailing_median": 62.0,
"ratio": 1.564516129032258
},
{
"period": "1984-11",
"n_events": 151.0,
"trailing_median": 62.0,
"ratio": 2.435483870967742
},
{
"period": "1984-12",
"n_events": 22.0,
"trailing_median": 62.0,
"ratio": 0.3548387096774194
},
{
"period": "1985-03",
"n_events": 35.0,
"trailing_median": 64.0,
"ratio": 0.546875
},
{
"period": "1985-05",
"n_events": 154.0,
"trailing_median": 64.0,
"ratio": 2.40625
},
{
"period": "1985-06",
"n_events": 40.0,
"trailing_median": 64.0,
"ratio": 0.625
},
{
"period": "1985-07",
"n_events": 41.0,
"trailing_median": 64.0,
"ratio": 0.640625
},
{
"period": "1986-01",
"n_events": 137.0,
"trailing_median": 46.0,
"ratio": 2.9782608695652173
},
{
"period": "1986-02",
"n_events": 97.0,
"trailing_median": 53.0,
"ratio": 1.830188679245283
},
{
"period": "1986-04",
"n_events": 37.0,
"trailing_median": 56.5,
"ratio": 0.6548672566371682
},
{
"period": "1986-06",
"n_events": 98.0,
"trailing_median": 63.0,
"ratio": 1.5555555555555556
},
{
"period": "1986-10",
"n_events": 34.0,
"trailing_median": 76.0,
"ratio": 0.4473684210526316
},
{
"period": "1986-11",
"n_events": 29.0,
"trailing_median": 76.0,
"ratio": 0.3815789473684211
},
{
"period": "1986-12",
"n_events": 46.0,
"trailing_median": 76.0,
"ratio": 0.6052631578947368
},
{
"period": "1987-01",
"n_events": 24.0,
"trailing_median": 60.5,
"ratio": 0.39669421487603307
},
{
"period": "1987-02",
"n_events": 68.0,
"trailing_median": 40.0,
"ratio": 1.7
},
{
"period": "1987-03",
"n_events": 100.0,
"trailing_median": 40.0,
"ratio": 2.5
},
{
"period": "1987-05",
"n_events": 87.0,
"trailing_median": 51.0,
"ratio": 1.7058823529411764
},
{
"period": "1987-06",
"n_events": 98.0,
"trailing_median": 62.0,
"ratio": 1.5806451612903225
},
{
"period": "1987-09",
"n_events": 138.0,
"trailing_median": 86.5,
"ratio": 1.5953757225433527
},
{
"period": "1987-10",
"n_events": 41.0,
"trailing_median": 86.5,
"ratio": 0.47398843930635837
},
{
"period": "1987-12",
"n_events": 32.0,
"trailing_median": 92.0,
"ratio": 0.34782608695652173
},
{
"period": "1988-02",
"n_events": 39.0,
"trailing_median": 78.0,
"ratio": 0.5
},
{
"period": "1988-04",
"n_events": 99.0,
"trailing_median": 52.5,
"ratio": 1.8857142857142857
},
{
"period": "1988-11",
"n_events": 39.0,
"trailing_median": 73.0,
"ratio": 0.5342465753424658
},
{
"period": "1989-01",
"n_events": 35.0,
"trailing_median": 73.0,
"ratio": 0.4794520547945205
},
{
"period": "1989-04",
"n_events": 189.0,
"trailing_median": 50.0,
"ratio": 3.78
},
{
"period": "1989-06",
"n_events": 91.0,
"trailing_median": 50.0,
"ratio": 1.82
},
{
"period": "1989-07",
"n_events": 137.0,
"trailing_median": 53.5,
"ratio": 2.560747663551402
},
{
"period": "1989-11",
"n_events": 177.0,
"trailing_median": 83.0,
"ratio": 2.1325301204819276
},
{
"period": "1990-01",
"n_events": 163.0,
"trailing_median": 85.5,
"ratio": 1.9064327485380117
},
{
"period": "1990-04",
"n_events": 73.0,
"trailing_median": 119.5,
"ratio": 0.6108786610878661
},
{
"period": "1990-11",
"n_events": 69.0,
"trailing_median": 113.0,
"ratio": 0.6106194690265486
},
{
"period": "1990-12",
"n_events": 26.0,
"trailing_median": 110.0,
"ratio": 0.23636363636363636
},
{
"period": "1991-02",
"n_events": 55.0,
"trailing_median": 89.5,
"ratio": 0.6145251396648045
},
{
"period": "1991-04",
"n_events": 122.0,
"trailing_median": 70.0,
"ratio": 1.7428571428571429
},
{
"period": "1991-05",
"n_events": 107.0,
"trailing_median": 70.0,
"ratio": 1.5285714285714285
},
{
"period": "1991-06",
"n_events": 213.0,
"trailing_median": 83.5,
"ratio": 2.5508982035928143
},
{
"period": "1991-08",
"n_events": 49.0,
"trailing_median": 113.0,
"ratio": 0.4336283185840708
},
{
"period": "1991-12",
"n_events": 30.0,
"trailing_median": 121.5,
"ratio": 0.24691358024691357
},
{
"period": "1992-04",
"n_events": 135.0,
"trailing_median": 86.5,
"ratio": 1.560693641618497
},
{
"period": "1992-06",
"n_events": 31.0,
"trailing_median": 80.5,
"ratio": 0.38509316770186336
},
{
"period": "1992-07",
"n_events": 181.0,
"trailing_median": 80.5,
"ratio": 2.248447204968944
},
{
"period": "1992-10",
"n_events": 249.0,
"trailing_median": 107.0,
"ratio": 2.3271028037383177
},
{
"period": "1992-11",
"n_events": 53.0,
"trailing_median": 107.0,
"ratio": 0.4953271028037383
},
{
"period": "1993-01",
"n_events": 72.0,
"trailing_median": 123.0,
"ratio": 0.5853658536585366
},
{
"period": "1993-02",
"n_events": 161.0,
"trailing_median": 107.0,
"ratio": 1.5046728971962617
},
{
"period": "1993-05",
"n_events": 75.0,
"trailing_median": 128.0,
"ratio": 0.5859375
},
{
"period": "1993-06",
"n_events": 61.0,
"trailing_median": 128.0,
"ratio": 0.4765625
},
{
"period": "1993-07",
"n_events": 161.0,
"trailing_median": 103.5,
"ratio": 1.5555555555555556
},
{
"period": "1993-08",
"n_events": 64.0,
"trailing_median": 133.5,
"ratio": 0.4794007490636704
},
{
"period": "1993-09",
"n_events": 200.0,
"trailing_median": 103.5,
"ratio": 1.932367149758454
},
{
"period": "1993-12",
"n_events": 159.0,
"trailing_median": 83.0,
"ratio": 1.9156626506024097
},
{
"period": "1994-01",
"n_events": 72.0,
"trailing_median": 125.5,
"ratio": 0.5737051792828686
},
{
"period": "1994-03",
"n_events": 188.0,
"trailing_median": 83.0,
"ratio": 2.2650602409638556
},
{
"period": "1994-08",
"n_events": 62.0,
"trailing_median": 100.5,
"ratio": 0.6169154228855721
},
{
"period": "1994-11",
"n_events": 179.0,
"trailing_median": 86.0,
"ratio": 2.0813953488372094
},
{
"period": "1994-12",
"n_events": 35.0,
"trailing_median": 86.0,
"ratio": 0.4069767441860465
},
{
"period": "1995-01",
"n_events": 1692.0,
"trailing_median": 74.5,
"ratio": 22.711409395973153
},
{
"period": "1995-02",
"n_events": 2461.0,
"trailing_median": 86.0,
"ratio": 28.61627906976744
},
{
"period": "1995-03",
"n_events": 3093.0,
"trailing_median": 136.5,
"ratio": 22.65934065934066
},
{
"period": "1995-04",
"n_events": 2643.0,
"trailing_median": 935.5,
"ratio": 2.825227151256013
},
{
"period": "1996-04",
"n_events": 4490.0,
"trailing_median": 2958.0,
"ratio": 1.5179175118323192
},
{
"period": "1996-08",
"n_events": 2040.0,
"trailing_median": 3527.0,
"ratio": 0.5783952367451092
},
{
"period": "1997-02",
"n_events": 1556.0,
"trailing_median": 2955.5,
"ratio": 0.5264760615801048
},
{
"period": "1998-01",
"n_events": 1524.0,
"trailing_median": 2900.0,
"ratio": 0.5255172413793103
},
{
"period": "1998-10",
"n_events": 5796.0,
"trailing_median": 2421.0,
"ratio": 2.3940520446096656
},
{
"period": "1998-11",
"n_events": 4332.0,
"trailing_median": 2421.0,
"ratio": 1.7893432465923171
},
{
"period": "1999-01",
"n_events": 4713.0,
"trailing_median": 3130.0,
"ratio": 1.5057507987220446
},
{
"period": "1999-02",
"n_events": 6314.0,
"trailing_median": 3840.5,
"ratio": 1.64405676344226
},
{
"period": "1999-09",
"n_events": 8399.0,
"trailing_median": 5051.0,
"ratio": 1.662839041773906
},
{
"period": "2000-08",
"n_events": 8526.0,
"trailing_median": 4756.0,
"ratio": 1.7926829268292683
},
{
"period": "2000-09",
"n_events": 12672.0,
"trailing_median": 4756.0,
"ratio": 2.6644238856181666
},
{
"period": "2000-10",
"n_events": 9746.0,
"trailing_median": 4756.0,
"ratio": 2.0492010092514716
},
{
"period": "2001-12",
"n_events": 2768.0,
"trailing_median": 5188.5,
"ratio": 0.5334875204779802
},
{
"period": "2002-05",
"n_events": 8461.0,
"trailing_median": 4465.5,
"ratio": 1.8947486283730826
},
{
"period": "2002-10",
"n_events": 3853.0,
"trailing_median": 6114.5,
"ratio": 0.630141467004661
},
{
"period": "2004-04",
"n_events": 10084.0,
"trailing_median": 5348.0,
"ratio": 1.8855646970830218
},
{
"period": "2007-03",
"n_events": 5637.0,
"trailing_median": 3696.5,
"ratio": 1.5249560394968213
},
{
"period": "2010-02",
"n_events": 13088.0,
"trailing_median": 4576.0,
"ratio": 2.86013986013986
},
{
"period": "2010-03",
"n_events": 10440.0,
"trailing_median": 4721.0,
"ratio": 2.2113958907011226
},
{
"period": "2014-03",
"n_events": 9956.0,
"trailing_median": 6582.0,
"ratio": 1.5126101488909147
},
{
"period": "2014-04",
"n_events": 10548.0,
"trailing_median": 6582.0,
"ratio": 1.6025524156791249
},
{
"period": "2014-05",
"n_events": 10187.0,
"trailing_median": 6598.0,
"ratio": 1.5439527129433162
},
{
"period": "2020-04",
"n_events": 5156.0,
"trailing_median": 8695.0,
"ratio": 0.5929844738355377
},
{
"period": "2026-10",
"n_events": 2757.0,
"trailing_median": 10437.0,
"ratio": 0.26415636677206095
}
],
"trailing_periods": 6,
"spike_ratio": 4.0
}
}
mapping.yaml# NHTSA ODI complaints and recalls, one spine keyed by vehicle (make | model | model year).
# Capture: static.nhtsa.gov/odi/ffdd/{cmpl,rcl}, fetched 2026-10-10 (pipeline/ingest/data/nhtsa/captures/2026-10-10).
# Verb: the component recoded into 23 families across both taxonomies (complaint intake renamed its
# components around 2012; recalls kept theirs); unmatched components are `other`. The full component
# string rides along as the fact `component`. Recalls are one row per part number since 2020: distinct
# on campaign, vehicle and component.
# ts is DATEA on both tables, the date the record was added to ODI's file: the visibility time.
# Complaint LDATE (received) and FAILDATE (incident), recall RCDATE (Part 573 received) and ODATE
# (owners notified) are claimed dates and stay in raw/ only.
# Free text (CDESCR, recall summaries) and personal fields (VIN, city, dealer, operator name) stay in raw/ only.
mapping: 1
source: nhtsa
tables:
- table: ../universal/nhtsa/raw/FLAT_CMPL.txt
format: tsv
quoted: false
columns: [CMPLID, ODINO, MFR_NAME, MAKETXT, MODELTXT, YEARTXT, CRASH, FAILDATE, FIRE, INJURED, DEATHS,
COMPDESC, CITY, STATE, VIN, DATEA, LDATE, MILES, OCCURENCES, CDESCR, CMPL_TYPE, POLICE_RPT_YN, PURCH_DT,
ORIG_OWNER_YN, ANTI_BRAKES_YN, CRUISE_CONT_YN, NUM_CYLS, DRIVE_TRAIN, FUEL_SYS, FUEL_TYPE, TRANS_TYPE,
VEH_SPEED, DOT, TIRE_SIZE, LOC_OF_TIRE, TIRE_FAIL_TYPE, ORIG_EQUIP_YN, MANUF_DT, SEAT_TYPE, RESTRAINT_TYPE,
DEALER_NAME, DEALER_TEL, DEALER_CITY, DEALER_STATE, DEALER_ZIP, PROD_TYPE, REPAIRED_YN, MEDICAL_ATTN,
VEHICLES_TOWED_YN, STATE_OF_INCIDENT, VEHICLE_OPERATOR]
ts: DATEA
stream: [MAKETXT, MODELTXT, YEARTXT]
recode:
family:
from: COMPDESC
match: prefix
other: other
values: {AIR BAGS: air_bags, ELECTRICAL SYSTEM: electrical, POWER TRAIN: power_train, ENGINE: engine,
STEERING: steering, SERVICE BRAKES: service_brakes, FUEL/PROPULSION SYSTEM: fuel_propulsion,
FUEL SYSTEM: fuel_propulsion, HYBRID PROPULSION SYSTEM: fuel_propulsion, STRUCTURE: structure,
SUSPENSION: suspension, VEHICLE SPEED CONTROL: speed_control, EXTERIOR LIGHTING: exterior_lighting,
VISIBILITY: visibility, TIRES: tires, SEAT BELTS: seat_belts, SEATS: seats, WHEELS: wheels,
LATCHES/LOCKS/LINKAGES: latches_locks, ELECTRONIC STABILITY CONTROL: stability_control,
TRACTION CONTROL SYSTEM: stability_control, FORWARD COLLISION AVOIDANCE: forward_collision,
BACK OVER PREVENTION: back_over, LANE DEPARTURE: lane_departure, PARKING BRAKE: parking_brake,
EQUIPMENT: equipment, EQUIPMENT ADAPTIVE/MOBILITY: other}
type: family
also_facts: [YEARTXT]
thread: ODINO
event_id: CMPLID
constants: {kind: complaint}
facts: [PROD_TYPE, CMPL_TYPE, CRASH, FIRE, INJURED, DEATHS, MEDICAL_ATTN, POLICE_RPT_YN, VEHICLES_TOWED_YN,
MILES, OCCURENCES, VEH_SPEED, ORIG_OWNER_YN, STATE, ANTI_BRAKES_YN, CRUISE_CONT_YN, NUM_CYLS, DRIVE_TRAIN,
FUEL_SYS, FUEL_TYPE, TRANS_TYPE, COMPDESC]
rename: {COMPDESC: component, YEARTXT: model_year}
- table: ../universal/nhtsa/raw/FLAT_RCL_PRE_2010.txt
format: tsv
quoted: false
columns: [RECORD_ID, CAMPNO, MAKETXT, MODELTXT, YEARTXT, MFGCAMPNO, COMPNAME, MFGNAME, BGMAN, ENDMAN, RCLTYPECD,
POTAFF, ODATE, INFLUENCED_BY, MFGTXT, RCDATE, DATEA, RPNO, FMVSS, DESC_DEFECT, CONEQUENCE_DEFECT,
CORRECTIVE_ACTION, NOTES, RCL_CMPT_ID, MFR_COMP_NAME, MFR_COMP_DESC, MFR_COMP_PTNO, DO_NOT_DRIVE, PARK_OUTSIDE]
ts: DATEA
stream: [MAKETXT, MODELTXT, YEARTXT]
recode:
family:
from: COMPNAME
match: prefix
other: other
values: {AIR BAGS: air_bags, ELECTRICAL SYSTEM: electrical, POWER TRAIN: power_train, ENGINE: engine,
STEERING: steering, SERVICE BRAKES: service_brakes, FUEL/PROPULSION SYSTEM: fuel_propulsion,
FUEL SYSTEM: fuel_propulsion, HYBRID PROPULSION SYSTEM: fuel_propulsion, STRUCTURE: structure,
SUSPENSION: suspension, VEHICLE SPEED CONTROL: speed_control, EXTERIOR LIGHTING: exterior_lighting,
VISIBILITY: visibility, TIRES: tires, SEAT BELTS: seat_belts, SEATS: seats, WHEELS: wheels,
LATCHES/LOCKS/LINKAGES: latches_locks, ELECTRONIC STABILITY CONTROL: stability_control,
TRACTION CONTROL SYSTEM: stability_control, FORWARD COLLISION AVOIDANCE: forward_collision,
BACK OVER PREVENTION: back_over, LANE DEPARTURE: lane_departure, PARKING BRAKE: parking_brake,
EQUIPMENT: equipment, EQUIPMENT ADAPTIVE/MOBILITY: other}
type: family
also_facts: [YEARTXT]
distinct: [CAMPNO, MAKETXT, MODELTXT, YEARTXT, COMPNAME]
actor: MFGNAME
thread: CAMPNO
event_id: RECORD_ID
constants: {kind: recall}
facts: [RCLTYPECD, INFLUENCED_BY, POTAFF, FMVSS, COMPNAME]
rename: {COMPNAME: component, YEARTXT: model_year}
- table: ../universal/nhtsa/raw/FLAT_RCL_POST_2010.txt
format: tsv
quoted: false
columns: [RECORD_ID, CAMPNO, MAKETXT, MODELTXT, YEARTXT, MFGCAMPNO, COMPNAME, MFGNAME, BGMAN, ENDMAN, RCLTYPECD,
POTAFF, ODATE, INFLUENCED_BY, MFGTXT, RCDATE, DATEA, RPNO, FMVSS, DESC_DEFECT, CONEQUENCE_DEFECT,
CORRECTIVE_ACTION, NOTES, RCL_CMPT_ID, MFR_COMP_NAME, MFR_COMP_DESC, MFR_COMP_PTNO, DO_NOT_DRIVE, PARK_OUTSIDE]
ts: DATEA
stream: [MAKETXT, MODELTXT, YEARTXT]
recode:
family:
from: COMPNAME
match: prefix
other: other
values: {AIR BAGS: air_bags, ELECTRICAL SYSTEM: electrical, POWER TRAIN: power_train, ENGINE: engine,
STEERING: steering, SERVICE BRAKES: service_brakes, FUEL/PROPULSION SYSTEM: fuel_propulsion,
FUEL SYSTEM: fuel_propulsion, HYBRID PROPULSION SYSTEM: fuel_propulsion, STRUCTURE: structure,
SUSPENSION: suspension, VEHICLE SPEED CONTROL: speed_control, EXTERIOR LIGHTING: exterior_lighting,
VISIBILITY: visibility, TIRES: tires, SEAT BELTS: seat_belts, SEATS: seats, WHEELS: wheels,
LATCHES/LOCKS/LINKAGES: latches_locks, ELECTRONIC STABILITY CONTROL: stability_control,
TRACTION CONTROL SYSTEM: stability_control, FORWARD COLLISION AVOIDANCE: forward_collision,
BACK OVER PREVENTION: back_over, LANE DEPARTURE: lane_departure, PARKING BRAKE: parking_brake,
EQUIPMENT: equipment, EQUIPMENT ADAPTIVE/MOBILITY: other}
type: family
also_facts: [YEARTXT]
distinct: [CAMPNO, MAKETXT, MODELTXT, YEARTXT, COMPNAME]
actor: MFGNAME
thread: CAMPNO
event_id: RECORD_ID
constants: {kind: recall}
facts: [RCLTYPECD, INFLUENCED_BY, POTAFF, FMVSS, COMPNAME]
rename: {COMPNAME: component, YEARTXT: model_year}
7 files, 3.31 GB
- Raw · 3 files2.01 GB
raw/FLAT_CMPL.txt5bf8af68c5f71.61 GBraw/FLAT_RCL_POST_2010.txt1e0f7a17531b311.5 MBraw/FLAT_RCL_PRE_2010.txt792c261d27ae83.8 MB- Event spine · 1 file1.31 GB
canonical_events.jsonl9e5f397385f81.31 GB- Receipt · 2 files37 kB
ingest_report.json1bf53c0a062131 kBmapping.yaml083b7b1c64887 kB- Phase_report · 1 file3 kB
data_report.md1be90f36bd893 kB
- Events
- 2,449,969 in 99,014 streams
- Span
- 12 Oct 1979 → 8 Oct 2026
- Source
- nhtsa, as of 8 Oct 2026
- Published
- 10 Oct 2026