About this site
StreetCase Sacramento turns public crash records into a plain-language case for a safer street, and helps you send it to the people who can act.
How fresh the data is
Checking the data.
Crash reports reach the state system about a week after a crash, and recent reports can still change. We refresh the crash data every week.
Data sources
- Crashes: California Crash Reporting System (CCRS), California Highway Patrol, on data.ca.gov. Crashes, the people involved, and injuries, for Sacramento County from 2016 on.
- Roads: OpenStreetMap contributors (ODbL): road names, speed limits, lanes, bike lanes and direction.
- Bike lanes: SACOG existing bikeway network, used where OpenStreetMap has no bike lane tag.
- Traffic counts: Sacramento County, City of Sacramento and City of Elk Grove count layers.
- Schools: a California Public Schools 2025-26 map layer credited to the California Department of Education. We have not confirmed who publishes this layer.
- Transit stops: SacRT GTFS feeds.
- Boundaries: city limits, supervisor districts and community planning areas from Sacramento County; council districts from Sacramento, Elk Grove, Folsom and Rancho Cordova; Assembly and Senate districts from Caltrans. The Citrus Heights council map is not confirmed.
- Recent incidents: the California Highway Patrol incident feed. It lists only active incidents, so our list covers only the times our archive was running.
- People to contact, plans and research: checked by hand on official pages. Each entry links to the page where we found it and the date we checked. See the officials directory and the sources on each Learn page.
- Proven fixes: the Federal Highway Administration's Proven Safety Countermeasures, with crash reductions copied word for word.
- Map tiles: OpenFreeMap, built from OpenStreetMap.
Methods
What counts as which crash
- Killed or seriously hurt means the crash killed someone, or someone had a suspected serious injury, as coded in the crash report.
- Walking or biking crashes include any crash where the report lists a person walking or a person on a bike, as the object hit, as a party, or as an injured person. This is broader than counting only the first thing hit, so our numbers can be a little higher than a simple query.
- A spot report counts every crash within the distance you picked, on any street.
- A whole-road report counts crashes the report places on that road, plus crashes coded on a cross street but mapped within 30 meters of the road (its intersections). It stays inside the city or county the road runs through.
- About 1 in 3 crash records have no usable map location, or a location we could tell was wrong (a stand-in point, outside the county, or far from both roads named in the report). We place most of them where their two named roads meet, using OpenStreetMap, and draw them lighter on the map. Reports say how many of their crashes were placed this way. About 8% of crashes in the county still cannot be placed.
Sun glare
We work out where the sun was at the reported crash time. A crash counts as "in low sun" when the sun was 0 to 15 degrees above the horizon and within 25 degrees of either direction of the road, in daylight or at dusk or dawn, in clear weather. This shows when glare was likely, not that it caused the crash. The monthly table uses the 15th of each month.
Fixes
Each proven fix has simple rules, such as "four or more lanes and someone walking or biking was killed or seriously hurt". A fix shows up when its rules match the report. We show up to 5, most specific first. Engineers make the final call.
Who can fix it
We find the city or county, districts and community area by checking which boundary the spot falls in. Then we list the road owner's staff, the elected officials for those districts, advisory groups, regional and state contacts, and local advocacy groups. Only contacts we confirmed on an official page are used.
Corridor ranking (region view)
Named roads (not freeways) are split into stretches of about half a mile. Walking and biking crashes within 30 meters of a stretch, and coded on that road, count toward it. Score = (3 times crashes that killed or seriously hurt someone + 1 times other injury crashes) per mile. Stretches shorter than a quarter mile are counted as a quarter mile, so one corner does not top the list. A stretch needs at least 2 such crashes to be ranked.
Projects and money
The projects pages track a hand-picked set of street projects, not every project. We started with walking, biking and safety projects, and added some road widening and transit projects for comparison. Stage, dates and money come from the Caltrans safety grant (HSIP) status report, Sacramento County project pages, state Active Transportation Program lists and the 2026 State Transportation Improvement Program. Each fact links to its source and the date we read it. A project is called complete only when a source says so. The type of project and who it serves are our own labels. The lines on the map are drawn by us between the cross streets the source names.
"Where the money goes" shows how the City of Sacramento, Elk Grove and Sacramento County split their own transportation budgets, in their own words and over their own years. Those splits cannot be lined up as a fair comparison of places, so we show each one on its own. For finished projects, we compare crash counts in equal time windows before and after. That is a count, not a study, and it cannot show that a project caused a change. We flag any project we have not re-checked in 90 days.
Limits
- Only crashes reported to police are counted. Many crashes that hurt people walking or biking are never reported.
- Crash reports record fault from the officer's point of view. A person who was killed or seriously hurt may not have been able to tell their side.
- Many bike crashes are coded as riding on the wrong side of the road. That is often a sign there is no safe place to ride.
- Speed limits and lane counts come from OpenStreetMap and are missing on some roads.
- Plan matching is by road name. A plan that names part of a road is shown for the whole road.
- Population is not loaded yet, so area comparisons show counts, not rates.
- U.S. House districts are not shown while California's maps are being redrawn under Proposition 50.
- The Citrus Heights council district map is not confirmed, so letters there go to the whole council.
Privacy
- We never show names or crash report numbers.
- Serious crashes show the month and year only.
- Anyone under 18 is described as "a child or teen", never by exact age.
- This site never sends email. Letters open in your own email app, and nothing you type is saved by this site.