Sources & methodology
Every layer on this map comes from a public record someone else published. This page states where each one came from, when it was last pulled, what licence governs it, and — most importantly — what it does not tell you. If a number here looks confident, read the gaps underneath it.
| Layer | Records | Source date | Last pulled |
|---|---|---|---|
| 287(g) agency agreements | 10 | 2026-07-20 | July 30, 2026 |
| ALPR / Flock cameras | 1,426 | — | July 30, 2026 |
| Redlining zones (HOLC) | 168 | 1935-1940 | July 30, 2026 |
| ICE-contract detention facilities | 5 | — | July 30, 2026 |
| Data centres | 20 | — | July 30, 2026 |
287(g) agency agreements
10 records
Section 287(g) of the Immigration and Nationality Act lets ICE delegate certain federal immigration powers to local officers. An agreement here means this agency signed a memorandum with ICE. The model matters: a Jail Enforcement Model agreement operates on people already booked into a local jail; a Warrant Service Officer agreement lets designated officers serve ICE administrative warrants on people in custody; a Task Force Model agreement extends immigration enforcement into everyday street-level policing. This record describes the agency and its contract — not any person it has encountered.
- Refresh cadence
- Periodic — re-pulled from the source on a schedule.
- Attribution
- U.S. Immigration and Customs Enforcement
Known gaps and caveats
- Positions are county interior points, not agency addresses.
- Where several agencies share a county, dots are spread on a small deterministic circle so each stays selectable.
- A signed agreement does not indicate how actively it is used.
ALPR / Flock cameras
1,426 records
An automated licence plate reader photographs every passing vehicle, converts the plate to text, and stores it with a time and location. Networks of these cameras let an agency reconstruct where a vehicle has travelled over weeks or months, and many networks are searchable by outside agencies. This is a transparency tool showing where infrastructure has been observed — it is not a live tracker, and it says nothing about who drives past.
- Licence
- ODbL 1.0
- Refresh cadence
- Frequent — the upstream data changes constantly.
- Attribution
- © OpenStreetMap contributors, ODbL — mapped by DeFlock volunteers
Known gaps and caveats
- Crowd-sourced and incomplete: the absence of a camera here is not evidence that none exists.
- Historical, not real-time. Devices are removed, moved and re-aimed without notice.
- Only 1356 of 1426 records identify a manufacturer, so this is an ALPR layer rather than a Flock-only layer.
- 1 cameras could not be matched to a county polygon.
Redlining zones (HOLC)
168 records
In the 1930s the federal Home Owners’ Loan Corporation graded neighbourhoods A through D for mortgage risk, and the grade turned explicitly on the race, ethnicity and immigration status of the residents. Areas graded D were outlined in red — "redlined" — and starved of lending for decades. These lines are the historical substrate beneath much of the present-day geography of wealth, housing and policing. This layer shows a policy applied to an area, drawn from digitised historical maps.
- Licence
- CC BY-NC-SA 4.0
- Refresh cadence
- Rare — a historical dataset that does not meaningfully change.
- Attribution
- Robert K. Nelson, LaDale Winling, et al., "Mapping Inequality: Redlining in New Deal America", American Panorama, ed. Robert K. Nelson and Edward L. Ayers
Known gaps and caveats
- Only the 8 Minnesota cities HOLC surveyed appear: Austin, Duluth, Mankato, Minneapolis, Rochester, St. Cloud, St. Paul, Staples. A neighbourhood with no polygon was not necessarily spared housing discrimination — it may simply never have been graded.
- Boundaries are georeferenced from hand-drawn 1930s map sheets and are approximate.
- Racial covenants are a separate record, mapped by Mapping Prejudice at the University of Minnesota, and are linked rather than duplicated here.
- This layer is CC BY-NC-SA 4.0 and cannot be redistributed under this project's own CC BY 4.0 data terms.
ICE-contract detention facilities
5 records
These are buildings and contracts: a facility that has agreed to hold people for ICE, who operates it, and under what kind of agreement. County jails frequently rent bed space to ICE under an intergovernmental agreement, which turns a local facility into part of the federal detention system. This layer describes facilities and contracts only. It contains no information about anyone detained, and never will.
- Refresh cadence
- Periodic — re-pulled from the source on a schedule.
- Attribution
- U.S. Immigration and Customs Enforcement
Known gaps and caveats
- Facility-level only. This layer contains no information about any detained person, by design.
- ICE publishes no coordinates; positions are city or county interior points, not building addresses.
- Covers only adult facilities authorised to hold people over 72 hours — not juvenile or family facilities, and not short-term holding rooms.
- Contracts change without announcement; a listed facility may not currently hold anyone for ICE.
Data centres
20 records
Data centres are the physical substrate the rest of this map runs on: the storage and compute behind plate-reader networks, records systems and the analytics sold to agencies. They also carry immediate local consequences — electricity and water demand, land use, noise, tax abatements, and grid costs borne by other ratepayers. Where a community has organised in response, this layer surfaces the campaign so you can find it rather than start from nothing.
- Refresh cadence
- Periodic — re-pulled from the source on a schedule.
- Attribution
- FracTracker Alliance
Known gaps and caveats
- Compiled from permit filings obtained by FOIA. A permit is not proof a facility was built, and a built facility may have changed hands since.
- Power source and operating status are not in the upstream record and are left null rather than guessed.
- Community-response fields come from data/community/data-center-campaigns.json and are populated only where a contributor has cited a public source.
- Includes enterprise server rooms alongside hyperscale campuses; the upstream file does not distinguish them by size.
Methodology
Geocoding
Two of these sources publish records with no coordinates at all. ICE lists 287(g) agreements by agency and county, and its detention roster gives only a city and state. We resolve those to positions using US Census reference geography: county interior points from the 2023 Gazetteer, and boundaries from Census TIGERweb. An interior point is guaranteed to fall inside its county, which matters in Minnesota where a bounding-box centre can land in open water.
This means a 287(g) dot marks a jurisdiction, not a building. Where several agencies share a county, their dots are spread on a small deterministic circle so each stays selectable — a display device, flagged on every affected record, never a claim about where an agency sits.
County assignment
Every record, including ones that arrive with real coordinates, is tested against county boundaries with a ray-casting point-in-polygon check. That is what lets the "near me" view answer a question that spans layers — your county's sheriff agreements, the cameras around you, and the housing-policy history of the ground you are standing on — from one lookup.
Location lookup and privacy
The place search ships as a static file of Minnesota places drawn from the Census Gazetteer, and the entire lookup runs in your browser. Sending a typed address to a geocoding service would hand a third party exactly the information this project promises not to collect, so we do not do it. The trade is precision: results are town-level, not street-level. Browser geolocation, if you choose it, is read into memory and never stored or transmitted.
What we refuse to ingest
No layer here describes a person. Not detainees, not officers, not agents, not residents. Where an upstream source mixes individual records into a systemic dataset, we take the systemic part and drop the rest. This is a boundary in the ingest code, not a preference — see what this is and is not.
Reproducing this data
Every dataset here is rebuilt by a script in scripts/ingest/ that reads only public sources and needs no API key. Running npm run data reproduces all of it from scratch. If a number on this site is wrong, the script that produced it is readable and the upstream source is linked above.