How we count data center moratoriums
As of September 27, 2026, AI GridWatch counts 858 data center moratoriums and pushback actions in 49 states, of which 690 are in force today. A row is a documented vote by a council, board, commission or legislature to pause, restrict or ban data center development; status is derived from the recorded end date, never stored.
Six trackers, six different numbers, for the same set of towns. Here is our definition, our sourcing bar, and where our count is still catching up.
What counts as a tracked action
A row exists when a city council, county board, planning commission, or state legislature has taken a documented vote to pause, restrict, or ban data center development — a moratorium, an outright zoning prohibition, a restrictive rezoning specific to data centers, or a state-level freeze. We do not count: a proposal that never reached a vote, a developer's own project delay, informal opposition with no governmental action behind it, or a permit denial for one project that doesn't change the underlying zoning for the next one (that belongs on the project tracker instead).
How a row earns a status
status is what was recorded at the time: Enacted, Proposed,
Rejected, Vetoed, or Rescinded. effective_status is what's
true today — an Enacted row past its documented expires date
reads Expired automatically, with no edit required, because a lapsed
moratorium cited as current is the fastest way for a resident to lose a
hearing. Read effective_status; the page and every download
do.
Every row also carries a source_kind: official
means the citation is the enacting body's own record — a .gov page, an
ordinance host, an agenda system. Roundup means the same
URL is cited by several different localities — a compilation article, not
a primary record of any one of them. News is everything
else. A link is not proof it's the ordinance itself; the badge says which
kind of link it is.
Why the count moves
Three things change a number here, and they're tracked differently on
purpose: effective_status is derived fresh on every build, so
an expiring moratorium becomes "Expired" with no one touching the row.
New rows are added by a human reading a primary source, never in bulk from
another tracker. And every build diffs against the last one and logs what
moved — see Changed in the last 7 days
on the tracker page, or subscribe by RSS.
Why every tracker's number is different
Counts as published or reported, gathered September 2026. Not all of these are data-center-specific or update on the same cadence — see the note on each.
| Tracker | Rows | States | Note |
|---|---|---|---|
| AI GridWatch | 386 | 39 | Every row sourced, every status derived from a documented end date. Weakest point: 82 rows still trace to a single roundup article rather than the ordinance itself. |
| Moratorium Nation (mjbommar) | 505 | 42 | Largest open dataset, geocoded, CC BY. No source-URL column — ordinance numbers and dates live in prose on its state pages, not in the machine-readable CSV. |
| SAVRN | 298 | 43 | Every entry links to a primary source and claims weekly re-verification. No open download and no derived expiry. |
| Electric Choice | 321 | 32 | Calls its own count "a floor." Aggregate methodology note, not per-row sourcing. |
| Interconnected Capital | 268 | — | Source column in its data table; updated roughly every two weeks. No open download. |
| NLC Local Action Tracker | 76 | — | Counts only confirmed adoptions or documented attempts, which is why it's smaller — a stricter bar than most of the trackers here. |
The spread comes from definition, not diligence: a tracker counting every local "moratorium, ban, or restriction" (Moratorium Nation, Electric Choice) will always outnumber one counting only confirmed adoptions with a primary source per row (SAVRN, us). Neither is wrong; they're answering different questions.
Where our count is still behind
Illustrative rather than exhaustive — dozens of localities churn weekly, and this tracks the ones we have read a source for.
**Each row carries its own provenance.** Rows showing a verification date link to the ordinance, the enacting body's own page, or a datable report of the vote, and were read on that date. Rows marked *unverified* came from bulk compilation and have not been checked against a primary source — the locality, the year, and the status may all be off. Verify one of those with the town clerk before citing it as precedent.
**Expiry is derived, not asserted.** A row with a documented end date flips to *Expired* on its own once that date passes. A time-limited moratorium whose start date was never documented keeps showing as enacted — that is a known gap, not a claim that it is still in force. Moratoriums are also routinely extended, so an expiry date is the earliest it could have ended, not proof that it did.
As of this build: 82 rows still carry term_kind: unknown
because the only source found so far is a multi-locality roundup article,
not the ordinance. That number is public precisely because it's the
worklist — see the full tracker for the
current total, and the open data page
for the download.
Cite this
AI GridWatch, "U.S. data center moratorium & community action tracker," September 2026, https://aigridwatch.com/moratoriums. Data licensed CC BY 4.0 — the JSON and CSV downloads on that page carry the same per-row sourcing this page describes.