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.

Files used, as downloaded:

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.

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.

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.

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.

How complete each 2026 month is
MonthCrashes published2023–2025 averageReported so far
January32,30232,99098%
February30,93431,38399%
March34,01734,52499%
April31,30832,81795%
May31,87534,80992%
June29,87932,28193%
July27,45532,75284%
August17,18535,52248%

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:

Ordinary variation in a two-year crash count
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:

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.