How we score races
Every race is assigned a score from 0–1000 based on eight weighted components. A score of 700+ means this race is close, the candidates are strong, fundraising momentum favors the progressive, and the office has real power. These are the races where your time and money will have the most impact.
Formula
score = (poll_closeness × 0.30
+ expert_ratings × 0.15
+ endorsements × 0.12
+ fundraising × 0.17
+ chamber_proximity × 0.10
+ c1_voting × 0.08
+ c2_voting × 0.08)
× urgency_multiplier × 1000urgency_multiplier = 1.0 for November general elections; up to 1.5× for special elections approaching sooner; 0 for completed races.
C1 is the candidate currently leading in polls — or, when no polls exist, the first-listed progressive candidate (Democrat first, then others). C2 is the second-highest poller. In most races C1 = Democrat and C2 = Republican. In multi-candidate races or races where an independent is polling strongly (e.g. Bernie Sanders in Vermont or a third-party candidate in a top-two primary), the C1/C2 slots reflect polling position rather than party affiliation.
The most important factor. Races within 5 points score highest. Uses a bell-curve so a 1-point race scores far higher than a 10-point race. Polls older than 100 days are excluded; races with no recent polls score 0 on this component.
Consensus of Cook Political Report, Sabato's Crystal Ball, and Inside Elections. Tossup races score 1.0; safe seats score 0.05. The average of available ratings is used. Defaults to neutral when no ratings are available.
Combines two signals. Cash parity scores higher when the Republican is outspending the Democrat — that's where your donation has the most impact. Quarterly momentum scores higher when Dem receipts are growing, signaling a viable campaign worth backing. Each sub-signal accounts for half this component. Defaults to neutral when FEC data isn't available.
How close Democrats are to winning the chamber majority. When Dems need to win a large share of competitive races, every seat matters more. Scales with the ratio of seats needed to competitive races available.
The Progressive Punch score of the C1 candidate (poll leader). A candidate with a 95% progressive voting record scores higher than one at 40%. Candidates with no voting record contribute 0 to this component.
Same methodology applied to the C2 candidate (second poller). A regressive opponent (low progressive score) actually increases this component — flipping a bad vote is worth more.
Endorsements from major progressive organizations including Justice Democrats, Bold Progressives, EMILY's List, Sunrise Movement, and others. Scores the best-endorsed candidate in the race — so a well-endorsed Democrat scores the same whether they're polling first or second. Score scales with the number of endorsing orgs (out of 5 tracked for Senate, 5 for House).
This race is extremely close and the office is powerful. Prioritize here first.
Competitive race worth watching. Contribute after covering URGENT races.
Likely safe or lacks current polling. Check back as election approaches.
Special elections — seats vacated mid-term and filled before the November general — receive an urgency boost because the election window is shorter and every dollar donated has less time to compound.
Urgency Multiplier
fraction_early = 1 − (days_to_election / days_to_general)
multiplier = 1.0 + 0.5 × fraction_early
// max 1.5× on election eve; 1.0× for Nov 3 concurrent specialsThe multiplier scales from 1.0 (just inside the 90% threshold) up to 1.5× (election day). Special elections held concurrently with the November 3 general — like the FL and OH Senate seats vacated by Rubio and Vance — receive no boost since their deadline is identical to every other race. Once a special election's date passes, its score is set to 0 and it moves to the “Completed” filter.
Expert ratings tell you what the forecasting community thinks today — but they're slow to update when the political environment shifts. The wave model captures real-time momentum using two live signals and applies them as a logit-space shift to every race projection.
The D–R margin on national generic congressional ballot polling averages (538 avg). A D+7 generic ballot means Democrats are outperforming neutral on every seat. Updated manually as the polling average changes over the cycle.
How much Democrats are outperforming their 2024 baselines in 2025–26 special elections. For each completed special election, we record the actual Democratic vote share and the 2024 general election result for that same seat. The difference is the overperformance for that race.
The weighted average across all special elections uses two decay factors: federal elections (U.S. House/Senate) are weighted 1.0 and state legislative races are weighted 0.7, since federal specials more directly predict federal general election results. Older elections decay linearly over 365 days (minimum weight 0.2) so recent results carry more signal. This average is updated weekly from Ballotpedia.
Because special elections have lower turnout and attract motivated base voters, they historically overstate the eventual general election shift by about 50%. A 0.5 discount factor is applied before incorporating this signal.
Wave Formula
effective_wave = (generic_ballot × 0.6)
+ (weighted_avg_overperformance × 0.5 × 0.4)
logit_shift = effective_wave / 12
// each point ≈ 1/12 logit unit
// +8 pts shifts 50/50 → ~66% DemThe logit shift is applied to every seat's structural win probability (derived from its expert rating). This preserves the shape of the distribution — safe seats barely move, while tossups and lean seats shift meaningfully. The result is a probabilistic seat total that reflects the current environment, not just which party historically holds each seat.