# Senate projection: full extension methods

As of 2026-10-19. Latest eligible fieldwork: 2026-10-19.

## How I estimate each race

I combine recent polls and adjust for patterns in past polling misses. Newer polls and larger samples get more influence, with limits on how much one polling firm can dominate. Repeated questions from the same survey are grouped together.

When polling is scarce, I also use the state or district’s partisan lean, the national environment, incumbency and available earlier election performance. These races receive wider ranges because there is less direct evidence.

## How the simulations work

I simulate 100,000 possible elections. The default links national, state and regional shifts across House and Senate races, while allowing individual races to behave differently. The standard option provides a comparison with separate national errors for the two chambers.

The 50%, 70% and 90% intervals contain those shares of simulated margins. They allow for polling misses and movement before Election Day. Changing the projection updates the map, intervals, table and chamber outcomes together.

## Historical candidate performance

I include a provisional adjustment for how candidates performed in earlier elections compared with the political environment. Prior office, incumbency, recency and comparable district boundaries are accounted for. The adjustment replaces overlapping history terms and is capped at three margin points.

The formula applies consistently to comparable records. Missing or unsupported histories keep the existing treatment. This choice has not established a reliable historical improvement; the full explanation and race effects are in Sources and downloads.

## Candidate adjustments

I include additional penalties for selected Senate candidates based on scandals or negative coverage. These reflect my assessment of possible electoral effects, not findings of wrongdoing or a statistically proven formula. The starting penalties allow for some of the effect already appearing in polls.

The controls let me preview different penalties or turn them off. These changes apply to the current page; reloading restores the published defaults. Download current projection saves the selected view.

## Fundraising

I include a provisional Senate adjustment for total fundraising receipts reported through September 30. The learned adjustment is capped at three margin points; its historical improvement is small and not statistically reliable.

The existing uncertainty ranges are retained. The full financial comparison, coverage and race effects are in Sources and downloads.

## How seats are counted

A House majority requires 218 seats. In the Senate, I count 51 Democratic-caucus seats or 50 Republican seats as control, assuming the Republican vice president breaks a tie. All elected Senate independents are assumed to caucus with Democrats. Their seats are included in the Democratic caucus, while candidate party labels remain Independent. This is a modeling assumption, not a statement of candidate commitments.

Georgia’s Senate simulations allow for a runoff and further movement between rounds. Alaska and Maine use final-round polling where available, but their ranked-choice outcomes still carry extra assumptions. Unopposed and same-party House contests count toward party control; individual winners are shown only when separately modeled.

## What the historical checks can tell us

I fit each historical forecast using earlier election results, then compare it with what happened. Historical candidate performance and total receipts are included provisionally while testing continues. Other candidate and expert-rating factors remain comparisons when they do not improve those tests.

There are only a few independent election cycles to learn from, and those elections have already informed development. These checks help compare methods but do not guarantee future accuracy. The regional default remains a modeling choice; it has not yet shown a reliable improvement in the historical tests. Some candidate records and older district comparisons are still incomplete.

## Feature decisions

- Unpolled seats: Structural probabilities. Replaces guaranteed holds; estimates have broad uncertainty.
- Polling movement: Comparison only. Average margin error 4.90 → 4.92.
- Probability calibration: Adjusted widths + fitted-adjustment uncertainty. Selected from earlier tests; full interval and probability scores are downloadable.
- State / regional / joint errors: Experimental scenario. Default projection; limited history does not establish improved accuracy.
- Demographic errors: Comparison only. Map-matched education and urbanization tested; no reliable improvement in the available elections.
- Respondent overlap across polls: Unavailable. Public aggregates do not identify repeat respondents across firms.
- Individual-donation shares: Comparison only. Shares did not consistently beat amounts; too few later financial test elections.
- Elected terms and prior office: Comparison only. Appointed, once-elected, multiple-election and open-seat tests add no material gain.
- Earlier election performance: Comparison only. No validated extra House/governor/Senate transfer effect beyond existing controls.
- State size and Congress approval: Comparison only. No material additional improvement.
- Combined candidate fundamentals: Comparison only. Removing factors did not validate a more accurate combined score.
- Expert race ratings: Comparison only. Final ratings are promising; cutoff-date tests do not validate an added weight.
- Scandal / attack-coverage judgments: Manual current-election adjustment. Eight candidate adjustments; change the penalties using the controls above.
- Total fundraising receipts: Provisional current-election adjustment. Comparable reports through September 30; capped at three margin points. Historical improvement is small and not statistically reliable.
- Historical candidate performance: Provisional current-election adjustment. Comparable prior results replace overlapping history terms; capped at three margin points. Full race effects are in Research.

## Reproduction

Run `run_projection_extensions.py --chamber senate` after the baseline model rebuild, or use the existing refresh shortcut. Raw source files are preserved. Shared simulations use 100,000 draws and seed 20261018; interval quantiles use 20,000 draws.

## Detailed records

- [Forecast CSV](<../../race_projections.csv>)
- [All feature and interval tests](<metrics.csv>)
- [Feature and policy decisions](<analysis.json>)
- [Election-by-election choices](<decisions.json>)
- [Candidate verification register](<../ballots/verification_coverage.csv>)
- [Reviewed candidate lists](<../ballots/verified_candidates.csv>)
- [Nationwide candidate roster and evidence](<../ballots/nationwide_candidates.csv>)
- [Nationwide review summary](<../ballots/nationwide_review.json>)
- [Linked official-source download log](<../../../sources/extensions/nationwide/official_source_reviews.json>)
- [Current House poll selection](<../ballots/current_house_poll_selection.csv>)
- [Joint model and tests](<../covariance_model.json>)
- [Shared-error forecast CSV](<../joint_races_correlated.csv>)
- [Ranked-choice poll scenarios](<../ballots/ranked_choice_paired_poll_scenarios.csv>)
- [Georgia runoff history](<../ballots/georgia_runoff_history.csv>)
- [Source access and download record](<../../../sources/extensions/official-source-checks.json>)
- [Earlier executed audit notebook](<../../../audit/projection_extensions_before_finance_2026-10-20.ipynb>)
- [Validation checks](<../validation.json>)
- [Earlier full model details](<../../Senate Model - Full Details.html>)
- [Standard-error forecast comparison CSV](<../joint_races_active.csv>)
- [Selected projection and rationale](<../../../sources/projection_publication_policy.json>)
- [Candidate research and results](<../senate_candidates/Candidate Research.html>)
- [Full candidate-study methods](<../senate_candidates/RESULTS.md>)
- [Current candidate evidence CSV](<../senate_candidates/current_candidate_evidence.csv>)
- [Individual donation shares CSV](<../senate_candidates/individual_dollar_shares.csv>)
- [Individual-versus-total-receipts tests](<../senate_candidates/individual_vs_total_receipts_scores.csv>)
- [Dated scandal episodes](<../senate_candidates/scandal_events.csv>)
- [Scandal exclusions and source gaps](<../senate_candidates/scandal_exclusions.csv>)
- [Candidate career and office sources](<../senate_candidates/candidate_career_features.csv>)
- [Prior election comparison sources](<../senate_candidates/prior_candidate_election_evidence.csv>)
- [Candidate-study validation](<../senate_candidates/validation.json>)
- [Candidate-study audit notebook](<../../../audit/senate_candidate_study.ipynb>)
- [Study coverage and remaining work](<../senate_candidates/completion_audit.json>)
- [Remaining candidate financial mappings](<../senate_candidates/unpolled_financial_mapping.json>)
- [Combined fundamentals research](<../senate_candidates/Fundamentals Research.html>)
- [Full fundamentals methods](<../senate_candidates/FUNDAMENTALS.md>)
- [Fundamentals historical tests](<../senate_candidates/fundamentals_index_backtests.csv>)
- [Fundamentals results and weights](<../senate_candidates/fundamentals_index_analysis.json>)
- [Fundamentals variable-removal methods](<../senate_candidates/FUNDAMENTALS_ABLATION.md>)
- [Fundamentals variable-removal results](<../senate_candidates/fundamentals_ablation_analysis.json>)
- [Expert ratings research](<../senate_candidates/Expert Ratings Research.html>)
- [Full expert-rating methods](<../senate_candidates/EXPERT_RATINGS.md>)
- [Expert-rating sources](<../senate_candidates/expert_ratings_sources.csv>)
- [Expert-rating historical tests](<../senate_candidates/expert_ratings_backtests.csv>)
- [Map geography and sources](<../maps/METHODS.md>)
- [Map boundary download record](<../maps/sources.json>)
- [Manual scandal adjustment and race effects](<../manual_scandals/Scandal Adjustment.html>)
- [Saved scandal assumptions (JSON)](<../../../sources/manual_scandal_adjustments.json>)
- [Candidate penalties and source review](<../manual_scandals/candidate_adjustments.csv>)
- [Scandal adjustment by race](<../manual_scandals/race_adjustments.csv>)
- [Manual adjustment methods](<../manual_scandals/METHODS.md>)
- [Unpolled candidate-name evidence](<../senate_candidates/unpolled_financial_mapping.json>)
- [Latest polling refresh](<../../../audit/refresh_2026-10-19/RESULTS.md>)
- [Latest financial report update](<../../../audit/september_adoption_2026-10-21/RESULTS.md>)
- [Total-receipts adjustment and tests](<../provisional_finance/Total Receipts.html>)
- [Total-receipts race adjustments](<../provisional_finance/race_adjustments.csv>)
- [Provisional fundraising assumptions](<../../../sources/provisional_finance_policy.json>)
- [October 20 model review and all variable comparisons](<../comprehensive_reevaluation_2026-10-20/Model Review.html>)
- [Historical performance policy and race effects](<../candidate_performance/Historical Performance.html>)
- [Historical performance by race](<../candidate_performance/race_adjustments.csv>)
- [Matched September candidate totals](<../../../prepared/fundraising/2026-09-30/senate_pairs.json>)
- [September matched-period comparison](<../provisional_finance/september_comparison.json>)
- [September historical scores](<../../../prepared/fundraising/2026-09-30/historical_metrics.csv>)
- [Model research overview](<../Research Overview.md>)


## Earlier model documentation

The earlier complete model description remains in the full-details HTML linked above. Its old conditional assumptions are superseded by the extension decisions in this document.
