A precinct-level data and dashboard platform. The statewide voter file, voter history, polling places, address points, and precinct boundaries -- joined into operational outputs chairs and field staff use. This is what we have; let us know if you want it.
Five steps. No data dictionary required. The chair is the user.
Open the precinct view for the county you're working today.
Scan the prioritized household list with plain-English turnout context.
Drop into the map explorer and route a walkable shift under 90 minutes.
Generate the per-precinct PDF -- queue, map, route, and audit in one document.
Confirm address gaps, new voters, and source files before going out.
County coverage is driven by a single config file; adding a county is config-first, not a code patch. The current build covers 11 counties in North Carolina.
Statewide voter and history files are joined per county, with status, party, race, age, registration date, vote history, county, precinct, polling place, propensity tier, supervoter status, geocoded location, and address-quality signals.
Combine any of: configurable party-registration-share threshold, configurable demographic-share threshold (e.g. precincts where a given group is at least 50% of registered voters), propensity tier mix, and supervoter density. Each organization sets its own definitions; nothing is hard-coded to one party or coalition.
Doors group into warm leads, family clusters, and solo households so volunteers focus on the highest-leverage knocks first.
Each target shows a one-line last_seen_english summary so a volunteer reading a card understands the history without a data dictionary.
Routes are capped at 90 minutes of walking. The current build emits 1,754 route shifts and zero exceed the cap.
Per-county chunks of voters newly eligible or newly registered, with precinct context.
Unreturned absentee rows pulled from statewide files with match-rate auditing.
Inferred from historical precinct fields, surfaced as a rollup so chairs can warn affected voters.
Conservative multi-unit gap flags and AddressNC-derived "addresses with zero matched registered voters inside a target precinct polygon" rows. Chair-facing follow-up -- not proof anyone lives there.
Per-precinct PDFs that fold the queue, the map, the route, and the audit into one document a county chair can hand a volunteer.
County, precinct, ZIP, street / block, route-shift, address-gap, and polling-place modes. Public OpenStreetMap tiles for browser display only -- no voter data leaves the local machine.
Every output traces back to source files and run logs. The Audit view shows source directories, generation timestamp, privacy mode at build time, absentee URLs tried, and audit table samples. Chairs check this before trusting an output.
Switch the same build between full operational outputs and a redacted demo. One command. Same workflow. Same screens. Different surface area.
Used by your organization on its own machines. Exact names, addresses, NCIDs, phone numbers, route stops, household labels, exact coordinates, and full printable playbooks. Never published, never deployed to a public URL, never committed.
Used for sharing with funders, boards, coalition partners, and the public. Masks names, addresses, NCIDs, phone numbers. Jitters or aggregates exact household coordinates. Disables sensitive PDFs. Keeps aggregate counts and workflow behavior so reviewers see exactly how the system works -- without ever seeing a voter.
Civic-tech buyers respect this. We do too.
Reads statewide voter, history, polling-place, address-point, and precinct-boundary files. Writes only to local output directories. Generated PII-bearing outputs are gitignored.
Dashboard data regenerates from scratch on every build. Local mode and redacted mode are both one command. Switching between them is one command.
Python and dashboard test suites, route-quality audits, address-match-rate audits, and run logs are first-class outputs -- not afterthoughts.
If you're operating in one of our 11 NC counties, we can show you live priority precincts. Outside NC? We'll talk roadmap.