PulsCar analysis of NHTSA public data, September 2026 Article: How to Dispute a Car Repair Bill (pulscar.io/blog/how-to-dispute-car-repair-bill) License: CC BY 4.0 - reuse with attribution "PulsCar analysis of NHTSA public data, September 2026" SOURCE FILES NHTSA vehicle owner complaint flat files (COMPLAINTS_RECEIVED_2015-2019, 2020-2024, 2025-2026), downloaded September 2026 and loaded into SQLite with an FTS5 index on the free-text description. Population: 777,040 unique complaints received by NHTSA from 1 January 2015 to 8 September 2026. Field dictionary: https://static.nhtsa.gov/odi/ffdd/cmpl/CMPL.txt WHAT THIS DATA IS AND IS NOT Complaints are owner-written, unverified accounts filed with a safety agency. They are about suspected defects, not about repair billing, so anything a complaint says about a repair bill is incidental to the owner's safety story. Counts are not rates of anything. A make's share of a phrase tracks how many of its vehicles are on the road and how motivated its owners are to write. Nothing here ranks makes, dealers or shops. FILE 1 - dispute_phrases_by_year.csv For each phrase group: the exact FTS5 query, total matching complaints, the five most frequent makes, and matches by year received. Row "all complaints" gives the denominator per year. Matching is case-insensitive whole-token matching on the description text. FILE 2 - diagnostic_fee_by_year.csv Complaints whose text contains a diagnostic-fee phrase (query in file 1), by year, with the number of those texts from which a dollar amount could be extracted and the median of the extracted amounts. Extraction rule: a dollar amount ($ followed by digits) whose center lies within 90 characters of the fee phrase, between $20 and $1,000; if several qualify, the one nearest the phrase. 532 amounts were extracted from 1,529 fee mentions. Median $175, first quartile $130, third quartile $215. Sample reading (40 random extracted amounts, seed 21): 37 were the diagnostic fee itself; 2 were a part price or repair total that sat closer to the phrase than the fee; 1 was an hourly diagnostic rate ("$300 an hour"). Estimated error about 5-8 percent, mostly upward; the median is robust to it. The earlier draft rule (any amount within 120 characters, up to $2,500) captured repair quotes in about 2 of 12 verifiable sample texts and was replaced by the nearest-amount rule above. FILE 3 - diagnostic_fee_amounts.csv Histogram of the 532 extracted amounts in $50 buckets. FILE 4 - diagnostic_fee_context.csv Share of the 1,529 fee-mention complaints whose text also matches: "dealer"; "recall"; "warrant"; a shop-found-nothing pattern (could not duplicate/replicate/find/reproduce, unable to ..., no problem/fault/issue found, found nothing, nothing wrong, no codes, not able to duplicate, operating as designed, working as designed); a waived/refunded/credited pattern (waive, refund, reimburs, credited, applied to/toward). Plus component category and make shares. Component categories are NHTSA's own field; a complaint can list more than one. PHRASE GROUPS READ BY HAND (30-40 random matches each, one reading pass, results reported as found) "second opinion" (666): all 30 read were about an owner or manufacturer seeking or recommending a second opinion at another shop or dealer. In 8 of 30 the text says the second opinion confirmed the first diagnosis; in 4 of 30 it contradicted it (a part not needed, no failure found, a different cause); 18 of 30 do not say the outcome. No false positives found. "under protest" (15): 14 read (all but one). 12 describe paying for, or picking up a car after, a repair the owner believed should have been covered, with the words "under protest"; 1 describes signing a recall check-in form under protest; 1 is a false positive ("starts back up under protest" describing a start-stop system). "small claims" (42): 40 read. 6 say the owner filed or won a small-claims case (2 against a dealership or shop over a repair, 4 against a manufacturer); the rest state an intention or ask whether to file. 1 quotes an agency letter telling the owner small claims "may be an option if the amount involved is under $3,000". Nearly all are aimed at the manufacturer, not a repair shop. "vehicle held / not released" (167 after tightening; see below): 30 read. 3 describe a shop or dealer holding the car until a disputed repair bill was paid or a liability waiver signed (a payment-lien situation); 12 describe a dealer holding the car for safety, recall, parts or an investigation; 9 use "hostage" figuratively about the manufacturer or a warranty; 5 were false positives (a seat belt, a park brake, "held" inside the car, a normal release); 1 was a sales hold. Because only about 1 in 10 matches is a payment hold, no count of "mechanic's lien" complaints is published; the reading result is reported instead. Query: FTS candidates (release OR releasing OR hostage OR holding OR hold) filtered by the regex (would not|wouldn't|will not|won't|refus\w+ to|not|did not|didn't|cannot|can't) releas\w* (my|the|our|his|her) (car|vehicle|truck|suv|van|jeep) | releas\w* (my|the|our) (car|vehicle|truck|suv|van) (until|unless|without|to me) | hold(ing)? (my|the|our) (car|vehicle|truck|suv|van) (hostage|until|unless) | (car|vehicle|truck|suv|van) (is being held|was being held|held hostage|hostage) | hostage. An earlier, broader FTS phrase list (1,153 matches) was abandoned after a 30-text reading found most matches were seat belts, liftgates and park brakes that "would not release". EXCLUSIONS No exclusions on make, model or year. Mileage is not used. Duplicate report numbers were removed when the database was built. Counts are frozen at the 8 September 2026 file. LIMITATIONS The NHTSA file is a safety-defect file. Repair-billing disputes appear only when they are part of a defect story, which is why "under protest" appears 15 times in 777,040 reports and "small claims" 42 times. The diagnostic-fee figures describe what owners wrote, mostly about franchised dealers (77% of fee mentions say "dealer"), and mostly in a recall or warranty context (52% mention a recall). They are not a price survey of independent shops.