ALPR camera density calculator
Pick a state to load its mapped camera count and population, or type
your own numbers below. The readout compares the resulting density —
cameras per 100,000 residents — against the average density in states
grouped by ALPR-restriction law strength, computed from the same rows
behind this project's *-law-state-camera-density figures.
Show the law-strength buckets
"Strong" / "partial" / "none" are per-state ALPR-restriction law
ratings from data/state-density-law.json (unflocked.org,
cross-checked against NCSL's 50-state survey) — see the
page's law
caveat. A handful of states are rated "pending" and excluded from
every bucket average, including the current selection's own bucket
if it lands there.
County map
Every county in the 50 states and DC, shaded by its mapped ALPR camera count — and, this project's whole point, drawn so that a corroborated zero never looks like a data gap: blue means an independent source backs the absence, hatched amber means nobody has data either way. Hover a county for its reading, or click one to pin its details below the map.
Camera locations are volunteer-crowdsourced
(DeFlock / OpenStreetMap, ODbL) —
shading reflects what has been mapped, not necessarily what
exists. Connecticut is hatched grey because its data lives on the
planning regions that replaced its counties in 2022, which don't align
with these boundaries — all nine regions have documented cameras; use
.
Boundaries: US Census Bureau cartographic files via
us-atlas
(pre-2022 vintage). Raw data:
/api/counties.
Each square is one mapped ALPR node bin — 131,505 nodes dropped into a
grid of 13.4 km² cells, shaded by how many landed in
each. The cells cover the same ground everywhere on the map (Albers is
equal-area), so a bin in Florida and a bin in Washington mean the same
thing. Binned, not smoothed: no kernel, no clustering, no heat
blur, because a smoothed blob would imply a spatial precision
crowdsourced mapping doesn't have — the squares are the actual
resolution of the claim. Read them as where cameras have been
mapped: a dense-looking metro is partly dense-looking mappers, and
that caveat bites harder here than on the county layers, because points
read as authoritative in a way a county tier does not. 230 nodes (all
in Puerto Rico) aren't drawn — this projection doesn't include it, and
neither do the county boundaries. Raw data:
/api/points.
"Crime rate" is total 2025 offenses (violent + property, FBI Return A)
per 100,000 residents, joined at the county level via an ORI-to-county
crosswalk. Both axes are tiered by rank among the 2,891
counties with a full-year 2025 report joined, not by fixed thresholds —
"low/mid/high" means bottom/middle/top third of this cohort, not an
absolute rate, and will shift if next year's coverage does. This is a
choropleth of reported rates, not a smoothed heatmap, and a joined
class is not a causal claim in either direction — see the
page's county
camera-vs-clearance findings for the correlation this project actually
measured (near zero). Raw data:
/api/counties/bivariate.
Shading is the 2025 NIBRS shoplifting (offense 23C) rate, tiered by
rank among counties with NIBRS coverage that year — not a
fixed threshold. The teal outline flags counties with a mapped Lowe's
or Home Depot ALPR node; it is not blended into the fill,
because unlike camera absence there is no independent source to
corroborate a county with no outline actually having no
retail ALPR. Counties with retail ALPR present read a higher
shoplifting rate on average — the opposite direction from the
camera-density/clearance finding — and that's far more plausibly
retailers deploying ALPR where theft is already a problem than
anything causal; see the
page and
README for the full caveats (NIBRS coverage gaps, reporting-practice
sensitivity, reverse causation). Raw data:
/api/counties/shoplifting.
Mapped ALPR cameras per 100,000 residents, by state
Every state and DC, colored by mapped camera density — the same
cameras_per_100k rows behind the calculator's law-strength
buckets. Click a state — on the map or in the table — to zoom the
county map above to it.
fewer mapped cameras per 100k · more mapped cameras per 100k
Change over time, 2021 → 2025: camera growth vs. crime-rate change
A level map invites "cameras cause crime" or "crime causes cameras" misreads either way — this pairs each state's camera growth against its crime-rate change over the same window instead, both diverging maps centered on zero. Most states' "growth" here is close to their whole mapped total: this project's own mapping-timeline finding (the dataset tripled in 2026) means OSM/DeFlock coverage of ALPR cameras barely existed before 2021 in nearly every state — that's a caveat on the camera side, not the crime side. Crime-rate change uses a balanced agency panel (only agencies reporting all 12 months of both years) specifically to avoid an unbalanced comparison making growing NIBRS participation look like a crime trend.
Camera growth (per 100k residents)
Total crime-rate change (per 100k residents)
Fewer cameras added / crime fell more · more cameras added / crime rose more — each map's own scale, not shared, and centered on no change (white).
Camera growth: creation-dated (OSM version-1) node counts,
data/camera-timeline.json. Crime-rate change: FBI Return A,
balanced 12-month panel both years, data/agency-clearance.json
via data/ori-county-crosswalk.json. No causal claim in
either direction — see the
page and
README for the full caveats. Raw data:
/api/states/change.
Cameras vs. crime rate over time, 2016 → 2025
The change map above is one point per state. This is every year: mapped cumulative cameras against the reported crime rate, year by year, for the nation or one state at a time. Watch the national series first — it's the only line here from a balanced agency panel (same set of agencies reporting all twelve months of every year), so its moves are real crime trends, not reporting-participation churn. No per-state balanced panel exists across all ten years, so every state-level crime line carries that churn risk — the 2021 SRS-retirement trough is visible as a dip in reporting agencies, not necessarily in crime.
Cameras: creation-dated (OSM version-1) cumulative node count, forward-
filled year to year, data/camera-timeline.json — a mapping
timeline, not a deployment timeline (most states show ~0 through 2021
because OSM/DeFlock coverage of this category barely existed yet).
Crime rate: FBI Return A violent + property offenses per 100k
residents, data/crime-timeline.json; the national line
switches to the balanced panel automatically, every state line is the
unbalanced "agencies reporting that year" series — see
. No causal claim in either
direction: an overlay is not evidence one line drives the other. Raw
data: /api/states/timeline.
Search by zip code
Enter a 5-digit zip code to see the mapped ALPR camera count for its county — this only ever resolves to county granularity, never a city, neighborhood, or address, and the zip you type isn't stored anywhere: it's sent to the server to look up the county and nothing else happens to it. See for the full privacy note.
Every number here has a citation
A figure without a source doesn't ship — see
/api/figures for the raw
corpus. "Preliminary" figures are marked because the underlying method
(a state law-strength rating, in every case so far) hasn't had a full
legal review yet — they're not guesses, but they carry a caveat the
"verified" figures don't.
This site isn't the whole picture
Flock-style ALPR is one piece of a much bigger landscape of things that count cars, read plates, or can identify someone to law enforcement or a government body — doorbell cameras, other ALPR vendors, municipal traffic counters, and mobility-data brokers among them. This catalog exists so leaving the map doesn't leave you thinking Flock is the only story.
Read this before relying on it: descriptive, not exhaustive —
new entrants and quiet vendors are the norm in this space, not the
exception. Entries describe a technology category, not a
confirmed deployment near you; only the ALPR camera data on the
above is independently
corroborated at that resolution. Every entry links its own source; see
/api/landscape for the raw
list.
In the news
Recent reporting on ALPR cameras — Flock contracts, council votes, lawsuits, statehouse bills — as a national wire plus a per-state feed. Headlines and links only, from each outlet's own coverage via Google News; nothing is rehosted here, and only stories from the last 90 days are kept.
National wire
State
What this is
Mapping where ALPR cameras (Flock Safety and others) are not — precisely, and with the honesty to distinguish "no cameras here" from "nobody's mapped this yet." Built on open crowdsourced camera-location data (DeFlock / OpenStreetMap, ODbL) joined against US Census population and county boundaries, cross-checked where possible against the EFF's Atlas of Surveillance and FBI crime clearance data.
Part of the SwampLink counting-* family of public data
projects, sibling to
counting-chicken-wings. No
entity behind this — a private project, donations-only if it ever
needs them, same shape as DeFlock itself.
Zip lookup: what happens to the zip you enter
Nothing is stored. The zip code goes to the server in one request,
resolves to a county in memory against a dataset baked into this
site's build, and comes back — no database, no request log kept
beyond whatever a web server normally keeps, no analytics tied to it.
Your browser doesn't remember it either, unless you look up more than
one zip in the same visit, in which case the last one you searched is
kept in sessionStorage so the field doesn't clear itself —
that's gone the moment you close the tab, never sent anywhere on its
own, and never a cookie. We only ever resolve to county, never a city,
neighborhood, or address, on purpose.
Nor does anyone else get to watch you read this. Every asset this
page loads comes from this site: no analytics, no tag manager, no
advertising pixel, no cookie, and nothing embedded from a third
party. The map library
(Plotly.js, MIT),
the map's outlines, and the fonts all ship with the build rather
than loading from cdn.plot.ly and Google Fonts, because
an embedded third-party asset hands your IP address and the page
you're on to someone else on every visit — which is a strange thing
for a site about being watched to do. You can check: open your
browser's network tab and every request should point back here.
Read this before relying on it
- Camera locations are volunteer-crowdsourced, not verified by any camera operator, law enforcement agency, or government body — likely incomplete, possibly outdated or inaccurate.
- A county or state with zero (or few) mapped cameras is evidence of an unmapped area, not necessarily a camera-free one, unless corroborated by an independent source like EFF's Atlas of Surveillance.
- This is not a guarantee that any route, area, or location is free of surveillance cameras or ALPR coverage of any kind.
Full terms: see this repository's TERMS.md.
Data & API
/api/figures — the full citation corpus,
verbatim, as JSON.
/api/landscape — the
catalog of
other things that count cars, read plates, or identify people to
law enforcement or government.
/api/states — the per-state camera-density
and law-strength dataset behind the calculator above.
/api/counties — per-county status and
camera count for every county the
draws.
/api/zip/{zip} — resolves a 5-digit zip to its county's
camera figures, behind the lookup above (no browsable index — it's a per-zip lookup,
not a corpus dump).
/api/version — what build is currently
running.