Methodology and sources
What we monitor, how an item becomes an alert, how we count coverage, and where our process falls short.
1. Which governments
We cover seven states: Ohio, Michigan, New York, North Carolina, Georgia, Indiana and Virginia. Our registry is built from the U.S. Census Bureau 2025 Gazetteer files: in each state, every county plus every county subdivision (township or town) and incorporated place (city, town or village) that is a general-purpose government with land-use powers. Which of these count differs by state (Indiana townships, for example, have no zoning powers and are left out); the coverage table below lists them. Today that is 8,088 governments: 118 charter townships, 1,258 cities, 679 counties, 2,121 towns, 2,435 townships, 1,477 villages. Locations and boundaries come from the Census 2025 Gazetteer and TIGER/Line files.
2. What we read, state by state
For each government we look for the web page where it posts agendas, packets, minutes and legal notices, and fetch new documents from it, typically once a day. Scanned PDFs are run through OCR. We identify ourselves to web servers, rate-limit requests, honor robots.txt and read only public pages: no logins, CAPTCHAs or paywalls, and we do not monitor social media.
| Measure | Definition | Now |
|---|---|---|
| Registry | Governments listed in our registry | 8,088 |
| Website found | An official website has been identified | 6,533 |
| Monitored | At least one active agenda/notice source we check | 5,242 |
| Documents | Meeting documents fetched and stored with URL and timestamps | 442,313 |
| Signals | Detected items at or above the public confidence threshold (0.60) | 14,554 |
| Pending | Grounded pre-vote rule-change items with a meeting date today or later | 30 |
Coverage is not equal across states. We started with Ohio, Michigan and New York and added North Carolina, Georgia, Indiana and Virginia in September 2026. The table shows where we stand in each state today.
| State | Governments | Website found | Monitored | Documents | Pending | Moratoria on record | Status |
|---|---|---|---|---|---|---|---|
| Ohio counties, townships, cities and villages |
2,325 | 1,448 | 1,023 (44%) | 82,379 | 2 | 160 | Partial coverage |
| Michigan counties, townships, cities and villages |
1,856 | 1,592 | 1,435 (77%) | 115,275 | 15 | 142 | Partial coverage |
| New York counties, towns, cities and villages |
1,589 | 1,486 | 1,255 (79%) | 119,365 | 4 | 150 | Partial coverage |
| North Carolina counties, towns, cities and villages |
649 | 591 | 443 (68%) | 31,470 | 4 | 69 | Partial coverage |
| Georgia counties, towns and cities |
690 | 581 | 439 (64%) | 37,621 | 3 | 70 | Partial coverage |
| Indiana counties, towns and cities |
657 | 539 | 413 (63%) | 32,127 | 2 | 33 | Partial coverage |
| Virginia counties, towns and cities |
322 | 296 | 234 (73%) | 24,076 | 0 | 6 | Partial coverage |
"Early coverage" means fewer than 25% of a state's governments are monitored; "Sources found; reading not started" means we have agenda sources but no documents read yet. "Moratoria on record" counts the Moratorium Nation inventory (all years) for the state, not our detections.
3. What counts as a signal
A signal is a passage in a meeting document about a moratorium, zoning amendment, siting ordinance or project application affecting data centers, battery energy storage, solar, wind or crypto mining. Each signal records the stage it describes:
- Discussion
- Drafting
- First reading
- Hearing notice
- Public hearing
- Planning commission recommendation
- Vote scheduled
- Adopted (after the vote)
- Extended (after the vote)
- Rescinded (after the vote)
Every signal carries a verbatim quote from the document and the page it appears on. Before anything is published or sent, we check that the quote still appears word for word (ignoring whitespace) in the stored text of that page; items that fail the check are withheld. Detection uses keyword rules and, for some documents, a language model; both can miss items or misread them, which is why the quote and link are always shown.
Legal notices collected from newspaper notice aggregators are summarised in our own words (jurisdiction, body, use, action, stage and date) with a link to the original notice, because those sites do not permit republishing the notice text.
"Pending" items are grouped so that an agenda, its packet and the related hearing notice for the same step count once.
4. How we measure ourselves
We compare our signals with the Moratorium Nation inventory of enacted local moratoria compiled by Michael J. Bommarito and published under CC BY 4.0. It lists 630 moratoria in the seven states we cover. The headline metric is the share of 2026 moratoria for which we held a pre-vote signal from a document dated at least five days before enactment, and the median lead time.
No backtest result is published yet: our pipeline has not produced enough signals to score. This page will show the figure once it exists, whatever it is.
Where our pages show Moratorium Nation records, they are labeled and attributed. We matched records to our registry by name, type and location; a small number could not be matched.
5. Proximity matching for alerts
For a project watchlist we alert on signals from the governments whose Census boundary contains the project point (the city or village if the site is incorporated, otherwise the township or town, plus the county), and from any government whose Census centroid lies within your radius. Census boundaries can lag recent annexations, so confirm which government controls zoning for your parcel.
6. Known limitations
- Coverage is partial and uneven; many small townships and villages do not post agendas online, or post them after the meeting.
- Items added to an agenda at the meeting itself cannot be detected in advance.
- OCR errors in scanned documents can hide or distort text.
- Meeting dates are taken from the document and can be wrong or change after posting.
- Nothing on this site is legal advice or a statement of what the law is in any place.
Found an error or a missing agenda source? Email support@sitingradar.com.