← Back to blog

Reported, Redacted, Unknown: What NHTSA's Own Crash-Report Order Lets You Compute About Robotaxis, and What It Cannot

A day spent computing what these four public files actually support. The redactions run backwards from what everyone expects, rows are not crashes, and the series is broken in three places.

Published September 2026 · 12 min read · measurement / public data / autonomous vehicles / transparency


Go to the National Highway Traffic Safety Administration's page for its Standing General Order on crash reporting and download the spreadsheets it offers. The one for Level 2 driver-assistance systems, the lane-keeping and adaptive-cruise features in ordinary cars, holds 2,024 rows at the time of writing, September 2026. In 1,794 of them the narrative field contains nothing but a fixed phrase in capitals: REDACTED, MAY CONTAIN CONFIDENTIAL BUSINESS INFORMATION. In 1,780 of them the field for the worst injury in the crash says Unknown. The other spreadsheet covers the driverless systems, the robotaxis that everyone assumes are the secretive ones. It holds 1,365 rows. Twenty-seven narratives are redacted. Twenty-three injury fields are unknown.

That is the first thing the files tell you, and it runs backwards from what most people expect. Waymo, which accounts for 1,125 of the robotaxi rows, redacted the narrative on two of them. Tesla, which accounts for 1,729 of the driver-assistance rows, redacted 1,727. Subaru redacted 22 of 22, BMW 19 of 19. General Motors, in the same file, redacted none of its 131; Ford none of 28; Toyota none of 17.

I spent a day computing what these files support, and I want to be careful about the conclusion. The files do not say that one company is safer than another. They cannot, and I will show why. What they do say, with unusual precision, is how each company reports. Read that way, the dataset stops being a disappointing safety record and becomes a good instrument for something else.

What the order asks for, and what it lets a company keep

Standing General Order 2021-01 was issued on 29 June 2021. It requires the makers and operators of automated driving systems and of Level 2 systems to report crashes in which the system was engaged in the thirty seconds before impact. Under the original order, a crash with a death, a trip to hospital, or a pedestrian or cyclist had to be reported within a day; a tow-away or an airbag deployment within five; and for the driverless systems every other crash on a public road by the fifteenth of the following month, with monthly updates as facts arrived. The files carry these cadences in a column called Report Type: 1-Day, 5-Day, 10-Day Update, Monthly, Update.

The order also lets a reporting company mark three fields as confidential business information: the version of the automation software, whether the crash happened inside the system's designed operating conditions, and the narrative. NHTSA publishes those fields as the capitalised phrase above. So every redaction I count here is the mechanism working as written. Nobody broke a rule by blacking out a narrative. What the counts show is variation: companies given the same lawful option used it at rates from zero to 99.9 percent, and that variation is the subject of this piece.

Rows are not crashes

The second thing to learn before quoting any number from these files is that a row is a filing. A crash that gets a one-day report, a ten-day update and two monthly amendments appears four times, under the same Report ID with a rising Report Version. The archive of Level 2 reports from 2019 to mid-2025 has 4,027 rows and 2,690 report IDs. Count rows as crashes and you overstate by half.

The error is worst in the field where it matters most. That archive has 120 rows whose highest injury severity is recorded as Fatality. They describe 52 incidents. A headline that counts the rows more than doubles the toll.

Companies differ in how often they re-file, and the difference is a posture of its own. In the Level 2 archive, Lucid filed 4.22 rows per report, BMW 3.43, Subaru 2.61, Tesla 1.41, Honda 1.41. Tesla files once and redacts everything. Lucid and BMW disclose more and re-file the same crash three or four times. Honda does neither: 0.6 percent of its narratives redacted and the lowest churn in the file. I am going to resist reading the churn as sloppiness. A company that re-files is often a company that learned more and corrected the record, which is the behaviour you want. From the outside it is signal I cannot interpret, and I am leaving it as that.

Re-filing also changes what a redaction rate means. Waymo redacted 9.1 percent of its 1,281 archive rows, which sounds like a tenth of its crashes withheld. Group the rows by NHTSA's own linking field, Same Incident ID, and count only the crashes where every filing is redacted: one crash out of 1,108. The 9.1 percent is almost entirely early filings that a later filing on the same crash made readable. Cruise's rate survives the same test. Of its 156 archived crashes, 122, or 78 percent, are redacted in every filing.

The second copy

Which brings me to the thing I did not expect to find. The original order required both the maker of the vehicle and the operator of the service to report the same crash. Cruise operated the cars; General Motors built them. So the archive holds 150 incidents filed by General Motors, and 149 of them carry the same incident ID as a Cruise filing. General Motors redacted nothing. Its narratives are its own, around 950 characters each, and never word-for-word the same as Cruise's account of the same crash.

Put the two together. Of the 122 Cruise crashes with every Cruise filing redacted, 120 are readable in General Motors' copy, in the same file, under a different name. Only two Cruise crashes in the archive have no readable narrative anywhere. The confidentiality claim the operator made was, in practice, undone by the maker's parallel duty to file.

The same pairing exists between Waymo and Transdev, the fleet-services contractor whose 140 filed incidents carry a Waymo incident ID in 139 cases. There the pairing rescues nothing, because Waymo redacts almost nothing at the crash level. A second copy only matters where the two parties' postures differ.

Here is the part with a date on it. The Third Amended order, issued on 24 April 2025 and effective on 16 June 2025, removed the duplicate: once one company has reported a crash, another no longer has to. That is a sensible reduction in paperwork. It also means the second copy, the only reason 120 of those accounts are public today, belongs to the past. Whatever the amended order gains in efficiency it pays for in this kind of accidental transparency.

One sentence on Cruise, because the enforcement history matters here: in September 2024 NHTSA fined the company $1.5 million under this same order for a crash report that left out what happened after the impact. The reporting axis of this dataset has teeth, and they have been used.

The series is broken in three places

The brief for this piece anticipated one break, the April 2025 amendment that narrowed what Level 2 systems must report and replaced the one-day and ten-day filings with a single five-day one. There are three.

The second is physical. The page at nhtsa.gov serves only the post-amendment period. Everything from 2021 to mid-2025 lives under a separate path, Archive-2021-2025, that the landing page does not put in front of you. The archive holds 6,322 of the 9,711 rows across the four main files, 65 percent of the record. Download "the NHTSA data" the way a reasonable person would and your series silently begins in 2025.

The third is vocabulary. The archive records injury severity as No Injuries Reported, Minor, Moderate, Serious, Fatality. The current files record Property Damage. No Injured Reported, Minor W/O Hospitalization, Minor W/ Hospitalization, Moderate W/ Hospitalization, and so on. Hospitalisation is a new axis and property damage a new value. The archive has 137 columns and the current files have 116. You cannot concatenate the two halves even on the field that describes harm, and I have not seen this stated anywhere.

The denominator that never changed hands

The order collects the numerator of a crash rate and nothing else. Across every column of all four files there is no field for miles driven, rides given, hours operated, or fleet size. The archive does carry a column called Mileage, and it is worth being precise about what it holds: the odometer of the vehicle that crashed, a median of 23,878 miles in the robotaxi archive. That is the age of one car. A rate needs the miles of every car that did not crash, and the file has no way to know them. The current files dropped the column entirely.

So Waymo's 1,108 archived incidents and Cruise's 156 are not a comparison. The two ran different fleet sizes in different cities over different years, and none of that is in the record. The same holds, more so, for Tesla's 2,285 Level 2 incidents against Honda's 101: one company has far more cars on the road with the feature switched on, and hears about crashes through a channel the other does not have.

A count with no denominator and no stated tolerance is not a measurement in the sense a metrologist uses the word. The international guide to expressing uncertainty in measurement asks for two things, a value and a statement of how far to trust it, and the second is what turns a number into something two parties can act on. NHTSA's own summary reports, published with the first release of this data in June 2022, carry the same warning in plainer language: the reports are not sufficient to compare one company with another. The press coverage that turns these files into league tables is dividing by a number the file does not contain.

What the files do measure: the channel

Here is what the files measure well, and it explains the counts, the lag and the redactions at once. Each report flags how the company learned of the crash. In the Level 2 archive, Tesla learned of 83 percent of its reported crashes through telematics, the car phoning home. Honda learned of 95 percent through customer complaints and claims; Subaru 100 percent; BMW 85 percent. Among the driverless operators, Waymo's telematics figure is 99 percent, and Zoox flags 93 percent of its rows as testing.

A company that hears about crashes from its cars reports what its cars saw, within days. A company that hears about crashes from its customers reports what its customers complained about, sometimes years later. The Level 2 archive holds 90 first filings submitted more than a year after the crash; the longest is a Tesla crash from November 2021 first reported in February 2025. The robotaxi archive has one such filing. To a first approximation, a per-company count measures the channel and the fleet.

One caveat the lag figures need. Both the incident date and the submission date are published as months, so a same-month filing reads as zero days and any median mostly describes that granularity. The tails are real content. The medians are not.

A dataset that measures reporting

There is a precedent for reading a mandated dataset this way. Since 2007, US law has required most clinical trials of regulated drugs to post their results publicly within a year of completion, with penalties of up to $10,000 a day. When researchers at Oxford audited the registry in 2020, they found that about 41 percent of trials due to report had done so on time, and that in the thirteen years to that point the government had never levied a single penalty. The registry did not measure medicine. It measured compliance, and once a public tracker started naming every late sponsor, compliance moved, and the first enforcement notice followed in 2021.

The crash-report files are the same kind of object. A mandate with a permitted opt-out and a compliance gap produces a dataset that describes reporting behaviour at least as faithfully as it describes the phenomenon. That is a reason to compute the thing it can support: a reporting profile per company, with the redaction share at crash level, the rows per crash, the channel mix, the late-filing tail, and the share of injury fields left unknown. Tesla at 99.9 percent redacted is a profile. Honda at 0.6 percent is a profile. Waymo at 0.1 percent, hearing about 99 percent of its crashes from its own cars, is a profile. None of these is a safety score, and all of them are news.

What to do with it

If you are going to quote a number from these files, name the file and the date range first, because current and archive are different measurements. Count incidents with the Same Incident ID field, never rows, and above all never rows of fatalities. Do not divide by anything the file does not contain; if you want a rate, the denominator has to come from the company's own disclosures, and you have to say what tolerance it carries. Read the Source columns before the counts. And keep a copy of the archive, because the second copies it holds are not coming back.

The two scripts that print every number above run on the four public files in under a minute and are published with this piece: sgo_profile_cp20260910.py and sgo_second_copy_cp20260910.py. Both read the same four CSVs from static.nhtsa.gov, and either archive filename works for both, so one download runs the pair. I would rather you ran them than trusted me.

Somewhere in the archive there is a crash from 2023 that exists twice: once under Cruise's name with the narrative blacked out, and once, a few rows away, under General Motors' name in nine hundred and fifty characters of plain description. After June 2025 that second row is no longer required. The blacked-out one still is.


Sources: National Highway Traffic Safety Administration, "Standing General Order on Crash Reporting" (landing page, data downloads and amendment history). https://www.nhtsa.gov/laws-regulations/standing-general-order-crash-reporting · NHTSA, Standing General Order 2021-01, Incident Reporting for Automated Driving Systems and Level 2 Advanced Driver Assistance Systems (29 June 2021). https://www.nhtsa.gov/sites/nhtsa.gov/files/2021-06/Standing_General_Order_2021_01-digital-06292021.pdf · NHTSA, Third Amended Standing General Order 2021-01 (issued 24 April 2025, effective 16 June 2025). https://www.nhtsa.gov/sites/nhtsa.gov/files/2025-04/third-amended-SGO-2021-01_2025.pdf · NHTSA, SGO 2021-01 Data Element Definitions (the redaction marker and the three fields eligible for a confidentiality claim). https://static.nhtsa.gov/odi/ffdd/sgo-2021-01/SGO-2021-01_Data_Element_Definitions.pdf · NHTSA, SGO 2021-01 incident report files, downloaded 10 September 2026: ADS current (1,365 rows, 116 columns) https://static.nhtsa.gov/odi/ffdd/sgo-2021-01/SGO-2021-01_Incident_Reports_ADS.csv; ADAS current (2,024 rows) https://static.nhtsa.gov/odi/ffdd/sgo-2021-01/SGO-2021-01_Incident_Reports_ADAS.csv; ADS archive 2021–2025 (2,295 rows, 137 columns) https://static.nhtsa.gov/odi/ffdd/sgo-2021-01/Archive-2021-2025/SGO-2021-01_Incident_Reports_ADS.csv; ADAS archive 2019–2025 (4,027 rows) https://static.nhtsa.gov/odi/ffdd/sgo-2021-01/Archive-2021-2025/SGO-2021-01_Incident_Reports_ADAS.csv · NHTSA, "Summary Report: Standing General Order on Crash Reporting for Level 2 Advanced Driver Assistance Systems" and the companion report for Automated Driving Systems (June 2022). https://www.nhtsa.gov/document/summary-report-standing-general-order-adas-l2 · NHTSA consent order with Cruise LLC, 30 September 2024 ($1.5 million civil penalty for incomplete crash reporting under SGO 2021-01), as reported by TechCrunch. https://techcrunch.com/2024/09/30/cruise-1-5-million-penalty-omitting-pedestrian-crash-details-regulator · Consumer Reports, comments to NHTSA on incident reporting for Automated Driving Systems and Level 2 ADAS. https://advocacy.consumerreports.org/research/consumer-reports-comments-to-nhtsa-on-incident-reporting-for-automated-driving-systems-and-level-2-adas/ · Federal Register, "Agency Information Collection Activities; Notice and Request for Comment; Incident Reporting for Automated Driving Systems (ADS) and Level 2 Advanced Driver Assistance Systems (ADAS)," 4 March 2026. https://www.federalregister.gov/documents/2026/03/04/2026-04240/agency-information-collection-activities-notice-and-request-for-comment-incident-reporting-for · Electrek, "Tracking the fatal Tesla Autopilot and FSD crashes hidden in its data," 1 September 2026 (the 99.9 percent figure, re-derived independently above from the files). · DeVito, N. J., Bacon, S., and Goldacre, B., "Compliance with legal requirement to report clinical trial results on ClinicalTrials.gov: a cohort study," The Lancet 395(10221), 361–369 (2020). https://doi.org/10.1016/S0140-6736(19)33220-9 · Food and Drug Administration Amendments Act of 2007, Section 801 (Public Law 110-85); Clinical Trials Registration and Results Information Submission, 42 CFR Part 11 (2016). · U.S. Food and Drug Administration, Notice of Noncompliance to Acceleron Pharma, Inc. (28 April 2021), the first enforcement action under FDAAA 801. · FDAAA TrialsTracker, EBM DataLab, University of Oxford. https://fdaaa.trialstracker.net · JCGM 100:2008, Evaluation of Measurement Data: Guide to the Expression of Uncertainty in Measurement (BIPM). https://www.bipm.org/documents/20126/2071204/JCGM_100_2008_E.pdf · Reproduction scripts published with this essay: sgo_profile_cp20260910.py (rows, report IDs, redaction by field and entity, lag, denominator search) and sgo_second_copy_cp20260910.py (incident-level redaction, the maker/operator second copies, the Mileage column, source channels, late first filings, fatality incidents). Both read the four files above and nothing else.

A record that cannot say what it did not record

These files are a mandated record with a lawful opt-out, and the thing they document best is who reported what, when, and through which channel. Agent systems have the same shape: the output is kept, the basis for it is not, and the account gets reconstructed later by whoever is asked. Chain of Consciousness is a tamper-evident record of what an agent did, on what inputs, in what order, written as the work happens. It does not make an agent right. It makes the basis of its answer checkable, and it records the gaps as gaps rather than leaving them to be filled in afterwards.

Hosted Chain of Consciousness  ·  Verify a record

pip install chain-of-consciousness  ·  npm install chain-of-consciousness