VVI scores are computed from real election and Census data. Scores may not be 100% accurate. Do not use VoteValue as your sole source for electoral decisions. View data sources →

Scores may not be 100% accurate. Do not use VoteValue as your sole source for electoral decisions. View data sources →

VoteValue Index Methodology

A comprehensive guide to how we calculate voting power and what each component means.

Overview

The VoteValue Index (VVI) is a composite score from 0-100 that quantifies how much individual voting power varies across different political districts. The index combines five key factors that influence the effectiveness and impact of an individual vote.

Our goal is to provide a transparent, data-driven measure that helps citizens understand their political influence and encourages informed civic engagement.

VVI Calculation Formula

Linear Weighted Combination

VVI = (competitiveness × 0.35) + (mobilization_potential × 0.20) + (electoral_leverage × 0.15) + (district_integrity × 0.20) + (race_significance × 0.10) × 100

Each subscore is in [0, 1]. The final VVI is simply the weighted sum scaled to 0-100, directly interpretable: a score of 72 means the weighted average of normalized metrics is 0.72.

Factor Details

Competitiveness (35% weight)

The most direct determinant of whether an individual vote changes the outcome. Empirically, marginal-seat effects dominate all other factors in vote-power models (Banzhaf 1965, Gelman et al. 2004).

  • Formula: 0.60 × margin_closeness + 0.25 × volatility + 0.15 × flip_indicator
  • Margin closeness: max(0, 1 - avg_two_party_margin / 0.20) — average of the last two elections; margins beyond 20 points score 0. Uses two-party vote share only (third-party votes excluded from denominator).
  • Volatility: std(margin_history) / 0.15, capped at 1.0 — 15pp swing = maximum volatility credit
  • Flip indicator: 1.0 if party control changed in the last 3-5 elections, else 0.0
  • Data Sources: MIT Election Lab House (1976-2024) & Senate (1976-2022), MEDSL 2022, Princeton state house (1971-2018), Klarner state senate (1968-2016)

Mobilization Potential (20% weight)

Turnout gaps are the second-largest opportunity for vote impact. A 10pp turnout swing in a district with 30% turnout changes more votes than the same swing at 70%.

  • Formula: 0.70 × turnout_gap + 0.30 × contestedness
  • Turnout gap: max(0, 1 - district_turnout / national_median_turnout) — districts below the median have mobilization potential
  • National medians: US House: 0.64, State House: 0.45 (computed from MIT 2024 + MEDSL 2022 real data)
  • Contestedness: 1.0 if contested (2+ candidates with >5% vote share), 0.3 if uncontested
  • Data Sources: VEP from Census ACS CVAP, MIT/MEDSL election returns

Electoral Leverage (15% weight)

Structural amplification of individual votes based on absolute vote margins and district size (Banzhaf power index intuition).

  • Formula: 0.60 × vote_decisiveness + 0.40 × size_factor
  • Vote decisiveness: 1 / (1 + vote_differential / 2000) — a 500-vote margin yields 0.80, a 50,000-vote margin yields 0.04
  • Size factor: 1 - log(district_VEP) / log(max_district_VEP) — smaller districts give each voter more structural weight
  • Max district VEP: 751,521 (Delaware 2024, largest at-large CD)
  • Data Sources: MIT/MEDSL election returns, Census ACS VEP data

District Integrity (20% weight)

Gerrymandering structurally overrides competitiveness; an unfairly drawn map makes individual votes less meaningful regardless of margin (Stephanopoulos & McGhee 2015).

  • Formula: 0.50 × compactness_score + 0.50 × partisan_fairness
  • Compactness: 0.40 × Polsby-Popper + 0.30 × Reock + 0.30 × Convex Hull Ratio
  • Partisan fairness: 1 - |efficiency_gap| / 0.08 — uses plan-level efficiency gap aggregated across all districts in the chamber
  • Threshold: |EG| > 0.08 is the legal standard from Gill v. Whitford (2018)
  • Data Sources: TIGER/Line shapefiles (compactness), MEDSL 2022 vote totals (efficiency gap)

Race Significance (10% weight)

Whether a chamber is close to flipping party control. Important but applies uniformly across a chamber so less district-specific.

  • Formula: 0.50 × chamber_margin + 0.30 × uncontested_penalty + 0.20 × incumbency_vulnerability
  • Chamber margin: max(0, 1 - seat_margin_fraction / 0.10) — real party seat counts from OpenStates API for state legislatures, 119th Congress counts for federal
  • Uncontested penalty: 0.0 if uncontested, 1.0 if contested
  • Incumbency vulnerability: Derived from district two-party margin thresholds (<5pp = Toss-Up, 5-15pp = Likely, >15pp = Safe)
  • Data Sources: OpenStates v3 API (state chamber composition), MIT/MEDSL election data

Gerrymandering Metrics

VoteValue uses three established geometric compactness metrics to measure how gerrymandered a district boundary is. Each score ranges from 0 to 1, where lower scores indicate more irregular, potentially gerrymandered shapes and higher scores indicate compact, regular boundaries.

Polsby-Popper Score

The most widely cited compactness metric. Compares a district's area to the area of a circle with the same perimeter. A perfect circle scores 1.0; highly irregular shapes approach 0.

  • Formula: 4π × Area / Perimeter²
  • Range: 0–1 (higher = more compact)
  • Use in VVI: Primary input to the District Integrity component

Reock Score

Measures how much of the district's minimum bounding circle is filled by the district itself. Long, thin, or tentacled districts score poorly.

  • Formula: District Area / Area of Minimum Enclosing Circle
  • Range: 0–1 (higher = more compact)

Convex Hull Ratio

Compares the district's area to the area of its convex hull (the smallest convex polygon that contains it). Districts with concave notches or narrow corridors score low.

  • Formula: District Area / Convex Hull Area
  • Range: 0–1 (higher = more compact)

Composite District Integrity Score

The District Integrity metric used in the VVI combines geometric compactness (weighted average of all three metrics, giving the most weight to Polsby-Popper due to its empirical robustness) with partisan efficiency gap analysis.

  • Formula: (Polsby-Popper × 0.5) + (Reock × 0.3) + (Convex Hull × 0.2)
  • VVI weight: 20% of the final VVI score

Gerrymander Guesser

The Gerrymander Guesser is an interactive tool where users rank congressional districts by how gerrymandered they appear visually. Every ranking contributes to a community-derived perception score for each district, complementing the purely mathematical compactness metrics.

Difficulty Levels

Rounds are classified by the Polsby-Popper spread between the districts shown. A larger spread means the difference is more visually obvious.

  • Easy: PP difference ≥ 0.20 between districts
  • Medium: PP difference 0.12–0.19
  • Hard: PP difference < 0.12 — shapes look similar but one is measurably more irregular

Game Modes

Users can choose to compare 2, 3, or 4 districts per round. Larger rounds generate more pairwise comparisons per submission, which accelerates convergence of each district's ELO rating.

  • 2 Districts: 1 pairwise comparison per round — pick the more gerrymandered one
  • 3 Districts: 3 pairwise comparisons per round — rank all three from most to least gerrymandered
  • 4 Districts: 6 pairwise comparisons per round — rank all four

Perception ELO Rating

Each district accumulates an ELO rating based on all pairwise outcomes across every round it has appeared in. The ELO system is the same algorithm used in competitive chess ratings.

  • Starting ELO: 1200 (default for all districts)
  • K-factor: 32 (standard for developing players / new districts)
  • Update formula: New ELO = Old ELO + 32 × (Outcome − Expected Score), where Expected Score = 1 / (1 + 10^((Opponent ELO − Own ELO) / 400))
  • Meaningful threshold: ~20 match appearances for a stable rating

A district that users consistently identify as more gerrymandered than its opponents will accumulate a higher ELO, even if its Polsby-Popper score is only moderately low. This captures visual and contextual cues that geometric metrics can miss.

Balancer

To ensure systematic coverage and prevent popular districts from dominating the dataset, approximately 30% of rounds are "balanced" rounds where the selection pool is restricted to districts with fewer than 20 total match appearances. This guarantees that every district eventually reaches a statistically meaningful sample size.

Streak Scoring

A round counts as correct for streak purposes if the user correctly identifies the single most gerrymandered district (rank #1). Partial credit for correctly ordered pairs is tracked separately and shown in the post-round reveal.

Map Marketplace

The Map Marketplace allows users to upload, share, and vote on proposed redistricting maps in the VVR (VoteValue Redistricting) format. It is designed to surface community-drawn alternatives to existing district boundaries.

VVR File Format

VVR files are JSON-based and contain a complete redistricting proposal including district geometries, proposed boundaries, and optional metadata such as partisan shift estimates and compactness analysis.

  • Format: JSON with format: "vvr" identifier
  • Geometry: GeoJSON-compatible district features
  • Analysis: Optional pre-computed compactness and partisan metrics

Compactness Analysis on Upload

When a VVR file is uploaded, VoteValue automatically computes Polsby-Popper scores for each district using the shoelace formula for polygon area and perimeter. This gives immediate feedback on how geometrically compact the proposed map is compared to the existing one.

Community Voting

Logged-in users can upvote or downvote proposed maps. Vote tallies are public and help surface the most community-supported redistricting proposals. Each user may cast one vote per map, and votes can be changed.

Data Sources & Attribution

U.S. Census Bureau

Population data, geographic boundaries, and demographic information

Update Frequency: Annual

Google Maps Platform

Geocoding services for address validation and coordinate lookup

Update Frequency: Real-time

Plural Policy

Representative information, contact details, and biographical data

Update Frequency: Monthly

MIT Election Lab (Harvard Dataverse)

Official election outcomes, margins, and turnout data - downloaded from Harvard Dataverse

Current vintage: U.S. House data through 2018; Senate data through 2020. An upgrade to 2022/2024 results is planned.

Update Frequency: Post-election

Limitations & Considerations

Real Data The VoteValue Index is computed from real election data: congressional and senate results from MIT Election Lab (1976–2024), state legislative results from MEDSL (2022) and Princeton/Klarner historical archives (1968–2018), district boundaries from U.S. Census TIGER/Line, demographic data from Census ACS, and compactness metrics from official shapefiles. VoteValue scores may not be 100% accurate. Do not use VoteValue as your sole source for electoral decisions.

Data Limitations

  • Some metrics rely on historical data that may not reflect current conditions
  • Gerrymandering metrics are geometric approximations of political reality
  • Race Significance depends on chamber-level partisan margins from OpenStates which may shift between elections

Methodological Considerations

  • VVI weights are based on research but can be adjusted for different perspectives
  • Weight parameters can be adjusted for different analytical perspectives
  • The index focuses on structural factors rather than specific policy outcomes

Interpretation Guidelines

  • VVI scores are relative measures, not absolute voting power
  • Higher scores indicate greater potential influence, not guaranteed outcomes
  • Context matters: consider local political climate and specific issues

Technical Implementation

The VVI calculation is implemented in Python using the following key libraries and approaches:

  • Core Calculation: Custom Python function with configurable weights and parameters
  • Geographic Analysis: Geometric calculations for district compactness metrics
  • Data Processing: Census API integration and election data processing
  • Caching: SQLite-based caching for API responses and calculations
  • Rate Limiting: In-memory rate limiting to protect external APIs

The source code is designed to be transparent and configurable, allowing researchers and analysts to adjust weights, parameters, and data sources as needed.

Ready to Analyze Your District?

Use our tool to discover your VoteValue Index and understand your voting power.

Analyze Your Address

How's VoteValue?

Thanks for your feedback!