How this crash data was assembled
Everything on the crash-data pages comes from one public file set. No figure is modelled, estimated, or filled in. If a number appears on this site, it is a count of rows or a sum of a column in the files named below, and you can download those files yourself and get the same answer.
The source
The California Crash Reporting System (CCRS), published by the California Highway Patrol on the California Open Data Portal. It is public domain, and it needs no account, no key, and no form.
- Dataset: California Crash Reporting System (CCRS)
- Publisher: California Highway Patrol
- Licence: Public domain (as published on data.ca.gov)
- Field definitions: CCRS Raw Data Export Layout, 9/27/2024, California Highway Patrol Information Technology Section
- Retrieved: 2026-09-02
Files used, as downloaded:
crashes_2023.csv— 193,732,146 bytesparties_2023.csv— 211,652,130 bytescrashes_2024.csv— 197,631,820 bytesparties_2024.csv— 217,102,627 bytescrashes_2025.csv— 187,075,855 bytesparties_2025.csv— 210,730,895 bytes
Licence, and how to cite this
The compilation on these pages — the pairing logic, the county-code mapping, the verification and the assembled tables — is published under CC BY 4.0. Attribute it to Slick Nick Law. The underlying CCRS records are public domain as published by the State; the licence covers this compilation of them, not the State’s data.
Cite the concept DOI, which always resolves to the newest version: 10.5281/zenodo.22669152. To pin the version these pages were built from, use 10.5281/zenodo.22669154. Both resolve to the deposit at Zenodo, whose files are the citable copy; the CSVs below are the same data served from this site.
CC BY 4.0 was granted at v1.0.0 as an initial grant, not a change of terms. Copies downloaded before that release carry “citation requested, not required” and stay under it.
SafeTREC, TIMS and SWITRS
Anyone working with California crash data runs into three names, and they are not interchangeable.
- SWITRS — the Statewide Integrated Traffic Records System, the long-running CHP collision database. It closed to public access and CCRS replaced it.
- SafeTREC — the Safe Transportation Research and Education Center at UC Berkeley.
- TIMS — the Transportation Injury Mapping System, built by SafeTREC on SWITRS data. It geocodes collisions and offers free query and mapping tools, and it is the better instrument if you want to map crashes rather than count them.
This site cites SWITRS and TIMS because that is the lineage of California crash data and because TIMS is worth your time. It does not draw its numbers from them. The figures here come from the currently published CCRS files, so that anything on these pages can be reproduced from a download that anyone can make without an account.
Sources: California Crash Reporting System, California Open Data Portal; Safe Transportation Research and Education Center (SafeTREC), UC Berkeley; Transportation Injury Mapping System (TIMS); California Secretary of State, California County Codes.
What each figure means
- A crash
- One record in the CCRS Crashes file. Rows flagged IsDeleted are excluded.
- People killed
- Sum of the NumberKilled column over those records.
- People injured
- Sum of the NumberInjured column over those records.
- Pedestrian-involved
- Crashes where MotorVehicleInvolvedWith is B — Pedestrian, the crash-level field on the CHP report.
- Bicycle-involved
- Crashes where MotorVehicleInvolvedWith is G — Bicycle.
- Motorcycle-involved
- Crashes with at least one party in the CCRS Parties file whose Vehicle1TypeDesc is exactly "Motorcycle". Motor-driven cycles and scooters of 15hp or less are a separate CCRS category and are not included.
- A road pairing
- A crash record names a primary road and a secondary road, the latter defined by CHP as "the nearest crossed road where the crash occurred". A pairing counts crashes naming the same two roads in the same city, in either order. Spellings of a street type or a compass direction are treated as the same road, so "Laguna Bl" and "Laguna Blvd" are one pairing rather than two.
- At the crossing
- The subset of a pairing where SecondaryDistance is exactly 0 — the crash was at the crossing rather than a stated distance from it. A blank distance is not counted, because the CHP layout does not define what blank means.
County codes
CCRS records a county as a number. The export layout defines the field as "the unique code of the county in which the crash occurred" but does not publish the list, so the mapping used here is the state's own published list of California county codes from the Secretary of State. It was checked against the data before use: records coded 19 carry Los Angeles County city names and records coded 37 carry San Diego County city names.
Records whose county code is outside 1–58 are left out of the county tables and counted separately, rather than being assigned to a county. In 2023 that was 2 record(s), in 2024 that was 18 record(s) and in 2025 that was 39 record(s). They remain in the statewide totals.
How the intersection locations were established
The junction ranking needs a point on a map, and the crash records do not contain one. Those coordinates are geocoded, not surveyed. A report names a primary road, the nearest crossed road, and a city; turning that into a location is an inference made after the fact, and an inference can be wrong in ways that look entirely convincing.
Locations come from the US Census geocoder. Each is published only if it survives three checks: the geocoder returns a point; the address it echoes back names the same city and both roads; and a second, independent source agrees to within 50 metres. The second source is the coordinate carried on the crash records themselves, or where those are missing, an OpenStreetMap-derived geocoder. Where the two disagree, the junction is dropped rather than guessed at — never averaged, and never settled in favour of whichever source has more records behind it.
Of 5,692 junctions attempted, 4,272 were confirmed and published. The rest were rejected: 92 because the two sources disagreed, 770 because no location was found, 539 because the returned address did not match what was asked for, and 19 because no second source was available. Where the sources did agree, the median gap between them is 9 metres.
Two cases show why the rule is strict. In Moreno Valley, 48 crash records agreed on a coordinate 3.3 kilometres from the real junction, with no internal disagreement to give it away. In San Jose, the coordinates carried on the crash records are displaced by roughly 33 kilometres — consistently, so they look reliable until you check them against something else. Both would have passed any test that trusted a single source.
Freeway and ramp locations are excluded
Any pairing naming a freeway, ramp, state route, or carriageway direction is excluded from mapping entirely — 261,602 crash records in the covered cities. Two reasons. A freeway pairing gathers crashes along a length of road rather than at a junction, so a single point misrepresents it however accurate that point is. And every geocoder tested resolved at most one in fifteen of them correctly, so the points would not be accurate either.
The test that decides this was wrong, and was corrected on 5 September 2026
The rule deciding whether a road name is a freeway was wrong in both directions at once, and it is worth saying exactly how.
- It treated any name containing "Highway" or "Hwy" as a freeway even with no route number. So Sierra Hwy, a Lancaster city arterial and the most crash-heavy road in that city, was published at the head of Lancaster's freeway list. Pacific Coast Hwy, Imperial Hwy and Arrow Hwy were treated the same way.
- It did not recognise a designation written out in full. So Interstate 5 Southbound was published in San Diego's surface roads list, while "I-5 S/B" — the same freeway, written the other way — was correctly excluded.
The rule now asks for a route designator with a number, written either way, or an explicit freeway word like ramp or connector. A road named Highway with no number is a surface street. The named-road lists on 230 city and county pages changed as a result.
The junction dataset did not change, and that is deliberate. It is still 4,272 junctions, built with the earlier rule. Every figure on this page describing how pairings were selected and rejected — including the 261,602 excluded records above — describes that earlier rule. Re-running the selection would mean geocoding a large set of newly eligible pairings and recomputing every figure derived from them, which is a new version of the dataset rather than a correction to this one. Publishing a dataset whose stated method no longer matched how it was built would be worse than publishing a known limitation.
A second version is planned and will carry its own selection and precision figures. Until it exists, the numbers here describe this dataset accurately, and the limitation is this: some named surface highways were excluded from the junction ranking that would qualify under the corrected rule.
Why a city may be absent or thin
The obvious reading of a short city list is that the place is safe. That reading is usually wrong, and there are three separate reasons a city can be missing or thin, none of which is safety.
- Its coordinates could not be confirmed. Where the crash records' own coordinates disagree with the geocoder, the junction is dropped. San Jose's are displaced by roughly 33 kilometres, so nothing there survives the check.
- Its agency records cross streets very precisely. This is the one that looks most like a safety signal and is not. A report names "the nearest crossed road", and agencies differ in how finely they interpret that. San Mateo records 1,216 surface crashes spread across 901 distinct named pairings — 1.35 crashes per pairing — so no junction ever accumulates a count. Fontana records 3.52 crashes per pairing on the same definition. San Mateo is not safer than Fontana; it is written down differently, and a threshold that counts crashes per named junction is measuring that difference as much as anything on the road.
- It genuinely has few concentrated junctions. Smaller places spread the same number of crashes over more locations, so no single junction reaches the floor.
The current year, and why it is kept out of the rankings
CCRS keeps filling in a month for months after it ends, so the newest part of the file is real but incomplete. Two decisions follow from that, and they go in opposite directions on purpose.
Totals, the intersection tables and per-junction detail include it. Someone checking the corner where they were hit last month should be able to see it. Withholding a crash because its month is not fully filed would serve the dataset rather than the reader, so every whole month the state has published is shown, with how complete it is.
No ranking uses it. Reporting lag is not uniform between police agencies. Ordering a part-reported year would rank agencies by how quickly they file rather than roads by how often they are hit, which is a different question and a misleading answer. Every rank, and every figure a rank is computed from, uses complete years alone.
One month is left out rather than labelled. The state's file stops mid-month, so the month it stops in holds a few days of records — 15 for September 2026 against a monthly average near 34,000. That is a fragment of a month, not a month that is late being filed, and printed beside the others it would read as an error in the data rather than as recency.
Every ranking on this site covers covers 2023–2025. The 2026 figures are separate. They run from January to August 2026 — every whole month the state has published so far — and they are not part of the ranking or of any total above. Police agencies file at different speeds, so putting a part-reported year in a ranking would order agencies by how fast they file rather than roads by how often they are hit.
Recent months are still filling in, so treat them as a floor rather than a count. August 2026 held about 48% of what that month averaged across 2023–2025 when this data was compiled, so its real total will be higher. September 2026 is left out entirely: the state's file stops on 2026-09-01, so that month holds 15 records — a part of a month rather than a month that is late being filed.
| Month | Crashes published | 2023–2025 average | Reported so far |
|---|---|---|---|
| January | 32,302 | 32,990 | 98% |
| February | 30,934 | 31,383 | 99% |
| March | 34,017 | 34,524 | 99% |
| April | 31,308 | 32,817 | 95% |
| May | 31,875 | 34,809 | 92% |
| June | 29,879 | 32,281 | 93% |
| July | 27,455 | 32,752 | 84% |
| August | 17,185 | 35,522 | 48% |
How precise the counts are
Less precise than a table makes them look. A crash count at one junction is a count of rare events, and such counts vary from one period to the next without anything changing on the ground. The spread scales with the square root of the count, which means small numbers are very noisy:
| Crashes recorded | Ordinary variation | Range you would expect |
|---|---|---|
| 5 | ±45% | 1 to 9 |
| 10 | ±32% | 4 to 16 |
| 15 | ±26% | 7 to 23 |
| 25 | ±20% | 15 to 35 |
| 40 | ±16% | 28 to 52 |
Two consequences. A junction recorded at 12 and one recorded at 15 are not meaningfully different, so small gaps between neighbouring rows should be read as ties. And a floor of five crashes cannot support a ranking at all, which is why junctions below ten are not published: at five, the count could as easily have been one or nine.
The ranking is not adjusted for anything
The junction ranking counts reported crashes. It is not adjusted for traffic volume, population, road length, or time of day, and this data cannot support such an adjustment. A junction carrying ten times the traffic will tend to record more crashes without being more dangerous per trip. Treat the ranking as a map of where the traffic is before you treat it as a map of where the risk is.
And as everywhere on this site: it says nothing about any individual claim. A junction's position in a statewide table has no bearing on fault, insurance, or outcome in a particular crash.
What this data cannot tell you
The limits matter more than the totals. In rough order of importance:
- It is reported crashes, not all crashes. A collision nobody reported to police does not exist in this data. Minor crashes are under-represented by an unknown amount.
- Counts are not rates. Los Angeles County leads every table on this site because roughly a quarter of Californians live there and drive there. Nothing on these pages is adjusted for population, vehicle miles travelled, or road mileage, so a ranking by count is a ranking by size as much as by risk.
- Records change after the fact. Reports are amended and resubmitted; a year's totals can move slightly after the fact. The figures here are a snapshot taken on 2026-09-02.
- Nothing here says who was at fault. The dataset carries a "primary collision factor" and an at-fault marker on parties, and this site does not use either. Fault in a specific crash is a legal question decided on that crash's evidence, not something to be read off a statewide table.
- Severity is counted in people, not in outcomes. "Injured" is the number of people recorded injured on the report. It does not describe how badly, how long, or what followed.
- Road names are normalised, but only where it is safe. Reporting agencies write one corner several ways — "Laguna Bl" and "Laguna Blvd", "Avenue J" and "Ave J" — so spellings of a street type or a compass direction are folded together before crashes are counted, and the name shown is the spelling the reports used most often. Different types are never merged: Park St and Park Rd stay apart, and "St Andrews Dr" is left alone because St is ambiguous between Street and Saint. Where two records name a road differently in some other way, the location can still be split across more than one row.
- Motorcycle counts are narrow on purpose. Only the "Motorcycle" vehicle type is counted. Motor-driven cycles and scooters of 15hp or less are a separate CCRS category and are excluded, so the real two-wheeled total is higher than the motorcycle figure shown.
These numbers say nothing about your claim
This needs saying plainly, because the whole point of a page like this is that it looks authoritative. A county's crash count tells you how many collisions were reported there. It tells you nothing about whether anyone was at fault in yours, what insurance was in place, how an injury will be treated, or how any claim will end. No figure on this site predicts anything about an individual case, and it should not be read as if it did.
Reuse
The underlying CCRS data is public domain. The county table compiled from it is available as a CSV download — no form, no email address, no account. If you use it, a citation is requested but not required: Slick Nick Law, from CHP CCRS data. If you find an error in the compilation, say so and it will be corrected.
Common questions
- Where does this data come from?
- The California Crash Reporting System, published by the California Highway Patrol on the California Open Data Portal. It is in the public domain and needs no account to download. Nothing here is modelled or estimated — every figure is a count of rows or a sum of a column in those files.
- Why not use SWITRS or the TIMS tool from UC Berkeley?
- SWITRS closed to public access and was replaced by the California Crash Reporting System. SafeTREC at UC Berkeley built the Transportation Injury Mapping System on the older SWITRS data, and it remains the best mapping tool for California crash data. This site works from the currently published CCRS files instead, so that what you see here can be reproduced from a public download.
- Are these numbers a guide to what my own claim is worth?
- No, and they are not offered as one. They are counts of reported crashes across a county or the state. They say nothing about fault, insurance, injuries, or outcome in any particular case, and no figure here predicts anything about yours.
- Can I download and reuse the data?
- Yes. The county table is available as a CSV with no form, no email address, and no account. The underlying data is public domain. A citation is requested but not required.
- How current is it?
- Rankings cover calendar years 2023, 2024 and 2025, the complete years available at the time of compilation. Totals and per-junction detail also show 2026 from January to August, labelled as a part year, because someone checking their own intersection should be able to see a recent crash. That part year is never ranked. Crash records are amended after the fact, so counts for a given year can shift as reports are revised, and the most recent months shift the most.