BELLWETHER
LOADING ELECTION DATA
0%
Bellwether
Initializing…
BELLWETHER
DEM EV
GOP EV D R MARGIN TIP —
BELLWETHER · AN ATLAS & MODELING ENGINE FOR AMERICAN ELECTIONS

Every certified return in American history — of them, across and, — and the machinery to do something with it: , , , , or score one at a time.

everything marked is a door  ↓
THE TEN WORKSPACES
0 VOTES COUNTED · EVERY ELECTION IN THE ATLAS 60 PRESIDENTIAL ELECTIONS 17 OFFICES 119 CONGRESSES OF DISTRICT MAPS 100,295 CANDIDATE ROSTERS 30 CENSUS VINTAGES 1790–2023 532,507 CES RESPONDENTS 50 STATES + DC BUILT LOCALLY · RUNS OFFLINE
data & analysis
drag to rotate · scroll to zoom

METHODOLOGY & MATHEMATICAL DOCUMENTATION

Jonathan Schwartz · Mathematical Economics, University of Pennsylvania

1 · NOTATION & CONVENTIONS

County , demographic group , election year .

  • — ACS share of county population in group
  • — Democratic share of the two-party vote
  • — total two-party ballots cast
  • — logistic function; its inverse
  • — baseline electorate-composition vector (6 shares, sums to 1)

2 · DATA SOURCES

The atlas draws on over a dozen primary sources, each pinned to its authoritative certified release:

Presidential county returns
MIT Election Lab (2000–2016), TONMCG/Dave Leip (2020–2024), ICPSR Study 1 (1824–1996), ICPSR Study 79 + MEAE (1789–1823)
U.S. House & Senate county
OpenElections + MEDSL + ICPSR Study 1 & 2
State legislature
SLERS (Klarner, 2002–2020), MEDSL precinct (2022–2024)
Governor & down-ballot exec
OpenElections precinct rollup + Wikipedia infobox (names)
Ballot measures
OpenElections county/precinct CSVs (22 states, 2002–2024)
Precinct geometry & returns
VEST / Redistricting Data Hub (2020 VTDs)
Demographics
ACS 2019–2024 5-year, CVAP Special Tab, Census Gazetteer, decennial 1790–2020
Economic history
ICPSR 02896 (Haines) census-of-manufactures / agriculture, SAIPE
CES MRP
Cooperative Election Study cumulative (2006–2024, doi:10.7910/DVN/II2DB6)
Survey crosstabs
ANES Time Series (1948–2024)
Forecast ratings
Cook Political Report, Sabato Crystal Ball (2026 cycle)
Candidate names
ICPSR 2, MEDSL, congress-legislators, Wikipedia, SLERS
Senate composition
Voteview S_all members + parties (1789–2025)
CD geometry
UCLA/Jeffrey B. Lewis congressional district archive (1789–2024)

3 · DATA REPAIRS & RECONCILIATION

Show repair log
  • AK reports by state-house district → statewide allocated to boroughs by population.
  • Pre-2024 CT old counties → planning regions via 169-town ACS crosswalk.
  • Kansas City MO → Jackson (.600) / Clay (.265) / Platte (.132) / Cass (.003).
  • FL 2000 scaled <0.06% to certified totals (Bush +537).
  • Shannon → Oglala Lakota, Bedford City → Bedford, Clifton Forge → Alleghany.
  • DC wards aggregated. Kalawao unreported.
  • Independent-city aliases: KC → Jackson 29095, StL City 29510, Baltimore 24510.
  • Pre-1824 party continuity: Jeffersonian-Republican lineage → D, Federalist lineage → R.
  • ICPSR2 constituency totals normalized to ICPSR1 state sums (10–20% over-count in raw data).
  • UOCAVA / statewide write-in ballots (a few thousand per cycle, no county) omitted.

4 · TURNOUT MODEL

Turnout propensities are fitted per year by ridge-WLS — votes-per-resident regressed on group shares, anchored to CPS-style priors :

Population shares become electorate shares; user turnout multipliers re-weight them:

5 · GROUP SUPPORT — RIDGE-ANCHORED WLS

For each year, group support levels (Democratic two-party share) solve a weighted least-squares problem with an penalty pulling toward exit-poll anchors — the standard remedy for the ecological inference problem:

The box constraint prevents degenerate group shares. The penalty balances geographic fit against anchor fidelity. Normal equations solved with projected gradient descent (500 iterations, step ).

6 · RESIDUALS & BASELINE FIDELITY

Each county keeps a residual — the partisan lean its demographics cannot explain (place effects, religion, candidates, local history):

Because scenarios always add back, the map reproduces certified results to the vote when all sliders are neutral. Slider effects are deltas on top of reality rather than model guesses about levels.

7 · SIMULATION PIPELINE

For each county, in order:

  1. Compose:
    where are the support sliders.
  2. National swing:
    is solved by bisection (44 iterations) so the national two-party margin moves by exactly the slider amount. Marginal counties move more than safe ones; shares never leave .
  3. Local override:
    where is the manual per-county override in margin points.

State totals, the Electoral College, and all panels aggregate from the county-level and .

8 · ELECTORAL COLLEGE & DISTRICTS

States are winner-take-all under that year's apportionment (1990/2000/2010/2020 census allocations). ME and NE split: 2 EVs statewide + 1 per CD. Each CD's certified two-party share is shifted by its state's simulated log-odds change:

The 435-district layer applies the full pipeline (composition → support → ) to each district's own ACS composition and residual. The header chip counts simulated district wins vs the baseline, and the DISTRICT FLIPS panel lists them.

9 · 2028 PROJECTION

2028 is not data — it is a transparent baseline from three assumptions: (1) composition drifts by national 4-year factors; (2) preferences () hold at 2024 values; (3) turnout scales only through composition. With drifted shares :

The result is the “demographic destiny” counterfactual. Sliders explore candidate effects, realignments, and turnout from that anchor.

10 · DOWN-BALLOT MODEL

The same 6-group ridge-WLS county model is fitted to US Senate (13 cycles 2000–2024), Governor (25 cycles), and US House (4 cycles 2016–2024) with partial pooling — presidential betas as the ridge prior (, heavier than presidential ):

Per-year : Senate 0.47, Governor 0.35–0.68 (candidate-driven), House 0.38–0.42. In the SIMULATE sidebar, selecting a non-presidential office replaces the presidential baseline with fitted county betas from model_downballot.json.

11 · CES MRP — TURNOUT & ATTITUDES

County-level opinion and turnout estimates from the Cooperative Election Study (pooled 2006–2024, 532K respondents, 3,068 counties) via weighted-logistic IRLS + empirical-Bayes James–Stein shrinkage. Seven metrics surface as DEMOGRAPHIC overlays:

  • Turnout: from CES validated vote, raked to CES national anchor (53.7%)
  • Attitudes (6): abortion access, assault-weapon ban, universal background checks, legal status for undocumented, EPA carbon regulation, keep ACA — all coded so higher = more liberal

Each county value is a group-composition-weighted aggregate: where is the county's Frame-A group share.

12 · FORECAST 2026

The FORECAST tab is a self-contained 2026 midterm probability model, entirely separate from the SIMULATE engine. A correlated Monte Carlo engine ( draws) combines:

  • House: generic-ballot seats–votes curve
  • Senate & Governors: Cook/Sabato rating priors blended with 2026 polls

Shared national + per-state + per-race shocks produce control odds, seat distributions, the ratings-ladder board, and the Senate tipping point. To isolate the forecast from the scenario engine, SIMULATE is forced to deterministic mode ().

13 · UNCERTAINTY & MONTE CARLO

Any scenario can be stress-tested with correlated forecast error on the log-odds scale. Each draw adds three independent shocks:

where , , . The sliders are calibrated in national-margin points at a 50/50 race (; defaults: 2 national, 2.5 state, 4 county). ME/NE EC seats move with their state's realized aggregate logit shift (§8).

Thousands of draws (Web Worker, deterministic seeded RNG) yield the win probability, EV histogram, per-state/district win odds (the P(WIN) map), tipping-point table, and House/Senate/Governor seat distributions + P(control). At every draw reproduces the deterministic scenario exactly — the test suite asserts this.

14 · SENSITIVITY & COUNTY POWER

For each state, bisection finds the uniform logit shift at which it flips; reported as the equivalent national-swing margin points. County power:

Electoral votes per point of local persuasion (winner-take-all channel only). A county margin change of points moves the state vote gap by , so the flip threshold is .

15 · IMPLIED CROSSTABS

Group 's implied support inside county :

where is the county-level movement from swing + overrides. Weighting by the group's electorate makes the table aggregate exactly to the simulated total (up to clamping).

16 · POLL ANCHORING

A national-margin target is met exactly by solving for the swing slider (§7). State polls are fitted by ridge-regularized Gauss–Newton on :

, , numeric Jacobian, 3 iterations, slider bounds enforced. “Swing only” freezes .

17 · REDISTRICTING

Precinct mode streams a state's 2020 VTDs (geometry, votes, census/VAP, adjacency). Tools: paint/erase/pan, radius brush, undo/redo, -means++ population-weighted seeding, contiguity-preserving greedy balancing.

Metrics

  • Polsby–Popper: on exact merged geometry
  • Efficiency gap:
    where = wasted votes (loser votes + winner votes above 50%+1)
  • Mean–median gap, partisan bias at a tied vote, county splits, seats–votes curve under uniform swing

Optimizer

Simulated annealing over contiguity-preserving boundary flips:

, geometric cooling, best-plan tracking.

18 · SPATIAL ANALYSIS

The ANALYSIS mode in the COMPARE workspace provides four sub-engines:

Global spatial autocorrelation — Moran's I

Centroid -NN weights (), permutation -value (999 draws). Local LISA identifies hot/cold spot clusters.

Additional engines

  • DECOMPOSE: swing decomposition, demographic × margin correlation table, CES-MRP group leans, composition leverage ranking, composition-vs-behavior split, residual map
  • SIMILARITY: county -NN search over 11-dimensional -scored feature vector + -means++ clustering ()
  • TIME SERIES: per-county demographic trend sparklines + pairwise correlation matrix over census vintages

19 · ELECTION NIGHT

Replays the scenario as a live count. The hidden “truth” is one Monte Carlo draw (§13). Counties report after their state's poll close along power-curve schedules (duration grows with ). Early returns are biased by a state-level mail/Election-Day mirage term that decays as counting completes.

The projection per state blends reported truth with the scenario prior for outstanding vote, with uncertainty . States are called at , and the needle is a 240-draw correlated mini-simulation of uncalled states each tick.

20 · LIMITATIONS & CAVEATS

  • Ecological regression cannot identify individual behavior — the anchor and residuals mitigate, not cure.
  • Composition is held at ACS 2023/24 for all display years.
  • District demographics use the 2024-election lines; CA, MO, NC, OH, TX, UT have since adopted new maps for 2026.
  • Precinct sim scaling assumes within-county uniformity of change.
  • 2028 inherits every 2024 idiosyncrasy by construction.
  • Monte Carlo errors are independent across levels (no regional correlation blocks).
  • County power ignores ME/NE district EVs and PV feedback.

Full derivations: METHODOLOGY.pdfMethodology & Mathematical Documentation, Jonathan Schwartz (Mathematical Economics, University of Pennsylvania).

U.S. SENATE MAKEUP
partisan composition by Congress · 1789–2025 · map shaded by each state’s two senators
Both Dem-lineage Split delegation Both Rep-lineage Third party / Ind. not yet a state
Senate makeup over time — click a column to jump
178918501900195020002025
Lineage colouring follows the app’s founding-era continuity convention: blue = Anti-Administration → Democratic-Republican → Jacksonian → Democratic; red = Pro-Administration → Federalist → Whig → Republican; grey = third parties & independents. Seat counts are members who served each Congress (Voteview/DW-NOMINATE; Sall_members + Sall_parties). Before the 17th Amendment (1913) senators were chosen by state legislatures, not by popular vote.
CES SURVEY PRIOR
Scales group turnout multipliers by CES-estimated county turnout ÷ national mean.

⚙ SAVED STATES

SAVE CURRENT STATE

SAVED STATES

IMPORT / EXPORT

The Supreme Court

Modern era, 1946–2024 · voting from the Supreme Court Database · opinion words from the Caselaw Access Project

How often two justices land on the same side

Each cell = share of the cases both justices heard where they voted together (same side of the judgment). Justices ordered most conservative → most liberal, so blocs sit in the corners. Drag the slider to any term.
OT2024

Ideology over time

Each line is a justice's share of votes cast in the conservative direction, by term. Click names on the right (or chips below) to add/remove. Up = more conservative.

Most → least conservative

Share of a justice's votes in the conservative direction (all modern terms). Click to plot.

Share of decisions that were conservative, by term

A term above the 50% line leaned conservative in its rulings.

Conservative share by issue area

Across all modern cases.

Case browser

TermCaseDecision SplitIssueOpinion by

Words each justice uses in their opinions

The Voter File

North Carolina · active registrants, individually scored · NCSBE public records AGGREGATED SCORES ONLY — NO INDIVIDUAL RECORDS

County scores

Every active registrant carries a modeled turnout probability (next midterm & presidential context) and a two-party support probability. County shading = mean over registrants.

Statewide

Click a county for its registrant breakdown.

Adjust a group

Pick any slice of the electorate; scale its turnout or shift its support. Effects re-aggregate the real per-voter scores (statewide + all 100 counties).
writes per-county margin shifts & turnout factors into the Simulate engine

Implied statewide result · 2026 electorate

Modeled votes
Two-party margin
D share (two-party)

Electorate composition (by registration)

Largest county swings

vs. baseline model, after your adjustments

Where the scores live

Distribution of individual probabilities across all active registrants, by party registration. Bimodality is the point: most people are near-certain voters or near-certain absentees, and campaigns fight over the middle.

Turnout probability · 2026 midterm

P(votes Democratic)

How the scores are built

Turnout. Logistic models fit on the actual 2022 (midterm) and 2024 (presidential) general elections: each registrant’s past general-election history, primary participation, registration tenure, age, party, race and gender, with age×history and party×primary interactions, plus empirical-Bayes precinct offsets. Trained on half of registrants, validated on the other half.

Support. No individual ballot is observable (ballots are secret). Group support rates are estimated ecologically: a ridge regression of certified 2024 precinct presidential results on each precinct’s registrant composition (8 registration×primary-history groups × 4 race groups), then per-precinct offsets calibrated so turnout-weighted sums reproduce the official precinct result, and a statewide anchor to the certified result.

Honesty. Support probabilities are ecological estimates — they are consistent with precinct results and registration data, not observed individual votes. Cells under 5 voters and precincts under 25 are suppressed. No names, addresses, or per-person records leave the build pipeline.

Validation

Turnout calibration (held-out half)

Source: NC State Board of Elections statewide voter registration & vote-history files (public records, June 28 2026 snapshot) · certified 2024 precinct results · models fit in-repo (scripts/model_voterfile_nc.py). Other states: the pipeline generalizes to any state with public registration + history files.

MAP BUILDER

Pick a winner for every state / district and build a clean map.
Click a color, then paint states / districts; CLEAR unassigns. Tug-of-war bar: DEM from the left, GOP from the right, first past the center wins. Senate shows only the seats up that cycle (pick any even-year cycle); President re-weights the electoral votes for the chosen year.