FANALOwn the Record.school-zone cameras
Crash explorer
The question · camera analysis

Do the school-zone speed cameras sit where the crashes are, and run when they happen?

Fairfield turned on seven school-zone speed-camera corridors on May 1, 2026. This report holds those locations and their posted 20 mph hours up against 22,295 reported crashes from 2017 to 2026. The question is simple: are the cameras where crashes happen, and on when crashes happen? If you just want the raw numbers with no argument attached, the crash explorer has them.

Data source
5.2%
of crashes fall within 250 m of a camera corridor
18/20
of the worst crash locations have no camera within 250 m
1.9%
of all crashes occur in a zone during posted 20 mph hours
-12%
town-wide crash change, 20172025 (pre-cameras)

1 · Placement: are the cameras where the crashes are?

Rank every location by how many crashes it has seen. Of the top 20, 18 sit more than 250 m from any camera corridor, and only 2 are within range. Across the whole town, just 5.2% of crashes happen within 250 m of a corridor.

#Highest-crash locationCrashesNearest camera
1BLACK ROCK2001,270 m
2I95 NB 18 TO 191743,523 m
3EASTON150275 m
4ARROWHEAD145146 m · covered
5BLACK ROCK1362,043 m
6BLACK ROCK1261,509 m
7GRASMERE1171,967 m
8BLACK ROCK1141,270 m
9KINGS HWY CUTOFF1091,265 m
10MERRITT SB 44 TO 4210821 m · covered
11VILLA101926 m
12BLACK ROCK1001,398 m

“Covered” means a corridor sits within 250 m. Location labels are the value the department reports for each coordinate, so treat them as approximate.

2 · Timing: do crashes happen during the 20 mph hours?

The 20 mph limit only applies on school days, during windows that vary by road but land roughly between 7:15 and 9:30 in the morning and 1:45 and 4:15 in the afternoon. Most crashes near a corridor fall outside those windows. The chart below peaks around 2 PM, well after the afternoon zone closes, and a camera only tickets a driver going 10+ mph over 20 during the posted hours.

Crashes within 250 m of a corridor, by hour
5
12a
7
5
7
3a
4
10
20
6a
68
75
66
9a
55
67
68
12p
68
142
92
3p
81
86
62
6p
51
31
29
9p
28
10
Posted 20 mph school-zone hours (school days)

Of the 1,137 crashes within 250 m of a corridor, 407 (35.8%) happened on a weekday inside the posted windows. We use weekdays as a stand-in for school days, so holidays and recess are not filtered out. Windows come from the Town of Fairfield ATESD plan (OSTA No. 050-2404-01).

3 · Combined reach

Placement and timing stack on top of each other. 5.2% of crashes happen within 250 m of a corridor, and 35.8% of those land on a weekday during the posted 20 mph hours. Put the two together and only about 1.9% of Fairfield crashes happen in a place and at a time a camera is even running, before you narrow it down to the speeding drivers a camera can actually ticket. Read that as how much of the crash problem the cameras can see, not as proof of what they do or do not prevent.

Sensitivity to the proximity radius
Distance from corridorCrashes within% of geocoded crashesIn posted hoursCombined reach
40 m5212.4%162 (31.1%)0.74%
75 m5952.7%181 (30.4%)0.83%
150 m9464.3%326 (34.5%)1.49%
250 m (used above)1,1375.2%407 (35.8%)1.86%

A traffic engineer would usually tie a crash to a treated segment with a tight tolerance. About 40 m covers the roadway plus a little slack for geocoding error. A wider radius is generous to the cameras, since it hands them credit for crashes on parallel roads and cross-streets they have no effect on. We use 250 m on purpose, as a conservative upper bound. Tighten it and the case only gets stronger: fewer crashes sit near the cameras, and the combined reach falls. Distance runs from the corridor centerline to each crash, measured with PostGIS ST_Distance on the geography type.

4 · What the application claimed vs. the record

To justify each camera, the town leaned on whole-road “Crash History” totals. Its own OSTA certificate, though, counts only the school-zone segment, and there the numbers nearly vanish. Across the corridors, only 13% of the crashes the application cited actually happened inside the zones the cameras cover. Mill Plain Road is the clearest case: 109 crashes cited for a camera at Riverfield Elementary, but 2 in the certificate's school zone. Our own count lines up with the town's whole-road figures, so this is an argument about what got counted, not about the data.

See the full breakdown: their numbers next to the record →

5 · Explore each school zone

Pick a single corridor, or leave it on all of them, to see the crashes within 250m of that site: how many, how severe, how they trend by year, and how they line up with that road's posted 20 mph hours. Individual sites see few crashes, so a single year can swing a lot. Trust the overall shape of the bars more than any one percentage.

Crash density (2017–present)
250 m enforcement zone

6 · Baseline & the test to come

The cameras went live on May 1, 2026, so nearly all of this data comes from before they existed. Treat it as a baseline rather than a scorecard. Between 2017 and 2025, before any enforcement, town-wide crashes moved -12% and crashes near the corridors moved -24%. To actually judge whether the cameras work, you need data from after they switched on and a comparison group to measure against.

Town-wide crashes by year
2,595
2017
2,629
2018
2,596
2019
1,646
2020
2,160
2021
2,521
2022
2,446
2023
2,271
2024
2,290
2025
1,141
2026
YearCrashesInjuryFatalInjury %vs prior year
20172,595524120.2%
20182,629521119.8%+1%
20192,596558321.5%-1%
20201,646354221.5%-37%
20212,160430219.9%+31%
20222,521486119.3%+17%
20232,446544222.2%-3%
20242,271453019.9%-7%
20252,290472120.6%+1%
2026 (YTD)1,141199117.4%
Crashes within 250 m of corridors
137
2017
146
2018
138
2019
86
2020
111
2021
151
2022
129
2023
97
2024
104
2025
38
2026
YearCrashesvs prior year
2017137
2018146+7%
2019138-5%
202086-38%
2021111+29%
2022151+36%
2023129-15%
202497-25%
2025104+7%
2026 (YTD)38
Town-wide crashes by month. Gold marks months on or after activation (May 1, 2026)
223
’17
177
195
181
223
254
186
218
197
269
230
242
207
’18
172
212
185
241
245
206
194
205
279
241
242
187
’19
179
208
219
217
221
239
189
226
226
236
249
172
’20
164
106
49
71
138
151
151
158
177
142
167
112
’21
155
147
166
199
159
202
182
225
224
190
199
191
’22
152
186
213
236
226
204
197
208
243
227
238
179
’23
179
186
177
244
187
192
178
224
244
231
225
200
’24
174
154
173
206
214
179
173
191
203
215
189
235
’25
156
195
167
176
183
205
157
207
222
183
204
198
’26
187
162
168
215
193
18
Months on or after camera activation

Yearly totals are too blunt to isolate a May 1 start date, so the real test has to run month by month. Only a handful of post-activation months exist so far, and these bars are town-wide rather than corridor-specific, so treat the gold bars as context rather than a result. We have committed to the method in advance: once enough months build up after activation, we will publish a before-and-after comparison (empirical-Bayes with a control group) built on this same open dataset. Subscribe if you want the answer when it lands.

Get the before/after verdict

Fanal keeps an open, reproducible record of Fairfield crashes and enforcement. Subscribe and we'll send the post-activation evaluation and any new towns we add. Prefer to dig through the numbers yourself? The crash explorer has them.

Method & limitations

Source: the Fairfield Police Department Interactive Crime & Statistical Dashboard (2017–2026), pulled at the incident level from the dashboard's query API. It logs every incident police respond to, so the totals include minor and private-property collisions that never reach the state. Every crash carries its own date and time, so both placement and timing rest on real per-incident data. Placement and timing use the 21,882 crashes that carry coordinates. Proximity uses PostGIS ST_DWithin on the geography type with a 250 m buffer around plan-derived corridor centerlines, and nearest-camera distance uses ST_Distance. These are counts rather than rates, with no adjustment for traffic volume. Corridor geometry is approximate, since the town publishes roads and cross-streets instead of GPS pins. Use the source toggle at the top to compare both datasets.