Coverage
22 cities across 8 counties in the Charlotte metro — monitored automatically, every P&Z cycle.
The idea is simple: this data is public, and checking the portals is manual work. We automate the manual work — that's it. The table below lists the sources our monitor reads and the expansion candidates it does not yet, where each posts, and when packets typically drop, so you can verify us against the source any time. The status column says which is which.
Coverage is where we start, not where we stop. We follow each case through its stages — hearing scheduled, continued, advanced from Planning & Zoning to Council — flag the ones where staff has recommended denial, and alert on filings near land you own. How that works.
Teal = a portal our monitor read successfully within the last 21 days and holds at least one case from. Grey = on the expansion list.
City and source status
Jump to county: Cabarrus · Cleveland · Gaston · Iredell · Lancaster · Lincoln · Mecklenburg · Union · York
| City | County | Where agendas post | P&Z meeting cadence | First capture vs. meeting (observed) | Last packet seen | Cases tracked | Last checked | Status |
|---|---|---|---|---|---|---|---|---|
| Cabarrus County — 4 cities | ||||||||
| Cabarrus County | Cabarrus | — | — | not yet measured | — | 0 | — | Coming soon |
| Concord | Cabarrus | — | — | not yet measured | — | 0 | — | Coming soon |
| Harrisburg | Cabarrus | harrisburgnc.portal.civicclerk.com | Monthly Tuesday | ~114 days AFTER the meeting date (n=6) | 2026-07-16 | 12 | 2026-09-15 | Live |
| Kannapolis | Cabarrus | kannapolisnc.portal.civicclerk.com | Monthly Tuesday | ~55 days AFTER the meeting date (n=8) | 2026-09-09 | 26 | 2026-09-15 | Live |
| Cleveland County — 1 city | ||||||||
| Shelby | Cleveland | — | — | not yet measured | — | 0 | — | Coming soon |
| Gaston County — 3 cities | ||||||||
| Belmont | Gaston | cityofbelmont.civicweb.net | — | not yet measured | 2026-09-14 | 0 | 2026-09-14 | Seeding |
| Gaston County | Gaston | gaston.legistar.com | Semimonthly Tuesday | ~69 days AFTER the meeting date (n=14) | 2026-09-02 | 16 | 2026-09-16 | Live |
| Gastonia | Gaston | cityofgastonia.granicus.com | Monthly Thursday | ~14 days AFTER the meeting date (n=4) | 2026-09-05 | 0 | 2026-09-08 | Seeding |
| Iredell County — 3 cities | ||||||||
| Iredell County | Iredell | www.iredellcountync.gov | Monthly Wednesday | ~82 days AFTER the meeting date (n=7) | 2026-08-27 | 0 | 2026-09-16 | Seeding |
| Mooresville | Iredell | mooresvillenc.granicus.com | — | not yet measured | 2026-07-28 | 4 | 2026-09-17 | Live |
| Statesville | Iredell | www.iredellcountync.gov | Monthly Wednesday | ~83 days AFTER the meeting date (n=7) | 2026-08-27 | 0 | 2026-09-16 | Seeding |
| Lancaster County — 2 cities | ||||||||
| Indian Land (Lancaster County) | Lancaster | — | — | not yet measured | — | 0 | — | Covered by Lancaster County |
| Lancaster County SC | Lancaster | lancastercosc.portal.civicclerk.com | Semimonthly Mixed | ~81 days AFTER the meeting date (n=17) | 2026-09-08 | 81 | 2026-09-17 | Live |
| Lincoln County — 2 cities | ||||||||
| Lincoln County | Lincoln | — | — | not yet measured | — | 0 | — | Coming soon |
| Lincolnton | Lincoln | lincolntonnc.portal.civicclerk.com | Monthly Tuesday | ~55 days AFTER the meeting date (n=6) | 2026-09-11 | 8 | 2026-09-15 | Live |
| Mecklenburg County — 8 cities | ||||||||
| Charlotte | Mecklenburg | charlottenc.legistar.com | Monthly Monday | ~97 days AFTER the meeting date (n=7) | 2026-08-17 | 28 | 2026-09-17 | Live |
| Cornelius | Mecklenburg | cornelius.granicus.com | Monthly Monday | ~447 days AFTER the meeting date (n=31) | 2026-09-11 | 14 | 2026-09-14 | Live |
| Davidson | Mecklenburg | davidsonnc.portal.civicclerk.com | Monthly Monday | ~118 days AFTER the meeting date (n=5) | 2026-08-31 | 1 | 2026-09-14 | Live |
| Huntersville | Mecklenburg | huntersvillenc.portal.civicclerk.com | Monthly Tuesday | ~76 days AFTER the meeting date (n=8) | 2026-09-15 | 24 | 2026-09-16 | Live |
| Matthews | Mecklenburg | — | — | not yet measured | — | 0 | — | Coming soon |
| Mecklenburg County | Mecklenburg | mecklenburg.legistar.com | Monthly Mixed | ~68 days AFTER the meeting date (n=16) | 2026-09-14 | 7 | 2026-09-15 | Live |
| Mint Hill | Mecklenburg | — | — | not yet measured | — | 0 | — | Coming soon |
| Pineville | Mecklenburg | — | — | not yet measured | — | 0 | — | Coming soon |
| Union County — 5 cities | ||||||||
| Indian Trail | Union | www.indiantrail.org | Monthly Tuesday | ~56 days AFTER the meeting date (n=7) | 2026-09-09 | 9 | 2026-09-15 | Live |
| Monroe | Union | monroenc.portal.civicclerk.com | Monthly Wednesday | ~116 days AFTER the meeting date (n=7) | 2026-08-28 | 6 | 2026-09-16 | Live |
| Stallings | Union | — | — | not yet measured | — | 0 | — | Coming soon |
| Union County | Union | unioncountync.legistar.com | Monthly Tuesday | ~68 days AFTER the meeting date (n=9) | 2026-09-15 | 22 | 2026-09-18 | Live |
| Waxhaw | Union | waxhaw.civicweb.net | — | not yet measured | 2026-08-20 | 5 | 2026-09-18 | Live |
| York County — 4 cities | ||||||||
| Fort Mill | York | www.fortmillsc.gov | Monthly Tuesday | ~68 days AFTER the meeting date (n=9) | 2026-09-12 | 26 | 2026-09-15 | Live |
| Rock Hill | York | — | — | not yet measured | — | 0 | — | Coming soon |
| Tega Cay | York | www.tegacaysc.org | Monthly Monday | ~83 days AFTER the meeting date (n=7) | 2026-09-11 | 5 | 2026-09-14 | Live |
| York County | York | yorkcosc.portal.civicclerk.com | Semimonthly Mixed | ~77 days AFTER the meeting date (n=9) | 2026-09-08 | 43 | 2026-09-14 | Live |
Last checked is when our monitor last read that portal successfully; last packet seen is when the city last published one. They differ whenever a city simply has not met — which is most of the time, and is why both are shown rather than one being made to stand for the other.
Status: Live means our monitor read the portal successfully within the last 21 days and we hold at least one case from it; Seeding means the monitor is configured (its first checks may not have landed yet) and no case has been read from it; Checks stalled means our reads have stopped landing; Not retrievable means the portal answers but has never returned an agenda we can fetch; Coming soon means the city is on the expansion list and not yet checked; Covered by … County means the county's portal carries that city's cases. None of these is a statement about what the city has published or about alerts delivered.
First capture vs. meeting is measured from when our own monitor first captured each packet relative to its meeting date, not from the portal's self-reported publish time; historical archive ingestion is included in that figure until it is separately split, so an old packet captured during a backfill reads as captured after its meeting. State open-meetings law sets a minimum posting notice ahead of each meeting; the period and its exceptions vary by state.
Curious who keeps filing across these cities? See the petitioner index → · Activity trends across the metro →