Scopes

Research · pre-registered study

Midterms 2026: do favorites pay, and which venue read the races best?

By Jon Shields, CFA

Pre-registered October 29, 2026, before any polls closed on Election Day, November 3, 2026. The questions, universe, rules, metrics and verdict templates below are fixed as of that date. Results are computed mechanically from the tracked record once the contracts settle, with no discretionary analysis and no re-specification. Any change is a logged, dated amendment and applies forward only. The market side of the record is fingerprinted and timestamped daily at scopes.com/integrity, and this page is archived on publication.

This study is a companion to Midterms 2026: the Brier skill curve, which compares the market with Scopes Fair Value across nine horizons. That study treats the market as one price. This one splits the market by venue and asks two questions it does not.

The questions

Q1. Do favorites pay?
When a midterm contract is priced at 75% or higher on a venue, does the favorite win at the rate the price implies, more often, or less often?

Q2. Which venue read the midterms best?
On the same races, at the same moments, which of Kalshi, Polymarket, Polymarket US and Gemini gave the more accurate probabilities, and did any venues settle the same race differently?

Hypotheses (stated as nulls)

H1, favorite calibration
For each venue and checkpoint, the share of favorites at 75% or higher that win equals their mean implied probability. The alternatives are both directions: favorites win more often than priced (underpriced), or less often (overpriced).

H2, venue accuracy
For each pair of venues and each checkpoint, the mean Brier score on matched races is the same. The alternative is that one venue is more accurate.

Neither hypothesis takes a side on any race or party. Scopes keeps score; it does not predict.

The specification

Universe
Every 2026 U.S. midterm contract in the Scopes record on Kalshi, Polymarket, Polymarket US or Gemini that resolves on a general election result: Senate races, House races, governor races, and the Senate control and House control contracts. A contract enters only if it clears the liquidity gate at that checkpoint: a two-sided quote with a bid/ask spread of 5 points or tighter and at least 500 in either 24-hour volume or open interest. This is the Scopes liquidity tier moderate-or-deep, the record's own classifier, applied the same way to every venue. A contract that is thin, or has no two-sided quote, at a checkpoint is excluded from that checkpoint, not filled in.

Same-event matching (Q2)
Two venues' contracts are matched only when they resolve on the same outcome in every possible result (same race, same side, same winner definition). Contracts that differ, for example a named-candidate contract against a party contract where a substitution is possible, are not paired. They are listed in the results with the reason.

One row per race
Each binary race counts once per venue, from the side that venue prices higher. For multi-outcome contracts, the leading outcome is the row. This avoids counting the same event twice from both sides.

Checkpoints
Three, applied to every venue the same way. T-7: last recorded price strictly before 12:00 PM ET, Tuesday, Oct 27, 2026. T-1: last recorded price strictly before 12:00 PM ET, Monday, Nov 2, 2026. Last hour: last recorded price strictly before the first scheduled poll closing in that race's state on Nov 3 (for the control contracts, before 6:00 PM ET). The poll-closing table is pinned at registration. Nothing recorded after polls begin to close in a state is used for that state's races.

Probability used
The venue price as recorded (mid where both sides are quoted, otherwise last, as the record already stores it), taken from the append-only record. Prices are never revised or recomputed after the fact.

Q1 metric
For each venue and checkpoint: number of favorites at 75% or higher, their mean implied probability, the share that won, the gap (share won minus mean implied), and a Wilson 95% interval on the share won. Reported also in two bands, 75% to under 90% and 90% and up. As a descriptive line only: the gross return per $1 staked on every favorite at the recorded price, before fees and spread.

Q2 metric
Mean Brier score per venue per checkpoint on matched races, and the paired difference for each pair of venues (venue A minus venue B), with a cluster bootstrap by race (1,000 resamples) for the 95% band. Log loss is reported as a robustness check, as in the Oct 14 amendment to the Brier skill curve study; a finding that holds under both is reported as robust. Scopes Fair Value appears as a reference row where it exists for the race, scored the same way, and is not part of the venue verdict.

Resolution comparison (Q2)
For every matched race: each venue's settlement outcome and settlement time, and whether any venue settled differently from the others or from the certified result. Each case is listed by race with the venue's own resolution rule, archived at registration.

Sample gate
At least 8 contracts (Q1) or 8 matched races (Q2) in a cell. Below that, the cell shows counts only and reads "insufficient power, no verdict."

Verdict templates (filled mechanically after resolution)

Q1, per venue and checkpoint

At {checkpoint}, {venue} priced {n} midterm favorites at 75% or higher, at a mean of {p}%. {w}% won (95% interval {lo}% to {hi}%). {Verdict}. Verdict reads "Favorites won about as often as priced" if the mean implied probability falls inside the interval, "Favorites won more often than priced" if it falls below, and "Favorites won less often than priced" if it falls above.

Q2, per pair and checkpoint

At {checkpoint}, on {n} matched races, {venue A} scored a mean Brier of {a} and {venue B} {b}; the difference is {d} (95% band {lo} to {hi}). {Verdict}. Verdict reads "No measurable difference" if the band includes zero; otherwise "{more accurate venue} read these races better at {checkpoint}."

Ties, voids and disputed resolutions

Data availability at registration

The counts above are filled from the record at registration by the pinned query below, and are fixed on this page as of the registration date. T-7 is 12:00 PM ET, Oct 27, 2026 (16:00 UTC). The gate is the moderate-or-deep liquidity tier: a two-sided quote with spread at or under 5 points and 24-hour volume or open interest at or above 500.

Pinned registration query (universe, T-7 gate-clearing, matched races by pair)

with universe as (
  select c.id as contract_id, c.outcome_id, o.event_id, v.slug as venue
  from contracts c
  join venues v   on v.id = c.venue_id
  join outcomes o on o.id = c.outcome_id
  join events e   on e.id = o.event_id
  where c.active
    and v.slug in ('kalshi','polymarket','polymarket_us','gemini')
    and c.venue_ticker not like 'PLACEHOLDER:%'
    and e.category = 'poll'
    and e.resolves_at >= timestamptz '2026-11-01'
    and e.resolves_at <  timestamptz '2026-12-01'
),
t7 as (  -- last snapshot strictly before T-7, per contract
  select distinct on (u.contract_id)
    u.contract_id, u.outcome_id, u.event_id, u.venue,
    ps.yes_bid, ps.yes_ask, ps.volume_24h, ps.open_interest
  from universe u
  join price_snapshots ps on ps.contract_id = u.contract_id
  where ps.captured_at < timestamptz '2026-10-27 16:00:00+00'
  order by u.contract_id, ps.captured_at desc
),
gated as (  -- clears moderate-or-deep at T-7
  select * from t7
  where yes_bid is not null and yes_ask is not null
    and abs(yes_ask - yes_bid) <= 0.05
    and (coalesce(volume_24h,0) >= 500 or coalesce(open_interest,0) >= 500)
)
select 'universe_by_venue' as metric, venue, null as pair, count(*)::int as n
  from universe group by venue
union all
select 'gate_cleared_t7', venue, null, count(*)::int
  from gated group by venue
union all
select 'matched_races_t7', null, a.venue || ' x ' || b.venue, count(distinct a.event_id)::int
  from gated a join gated b on b.outcome_id = a.outcome_id and b.venue > a.venue
  group by a.venue, b.venue
order by 1, 2, 3;

The selection rule

All prices come from the append-only record, price_snapshots, selected by the pinned query below. Outcomes come from each venue's settlement record and, for the robustness row, the certified result.

Checkpoint selection (per contract, per venue): last snapshot strictly before the checkpoint

select implied_prob, captured_at
from price_snapshots
where contract_id = :contract_id
  and captured_at < :checkpoint_time
order by captured_at desc
limit 1;

Descriptive case, not a hypothesis

If the record holds Texas Senate prices on at least two venues from Oct 1 to Oct 15, 2026, the results will include one descriptive chart: the largest single-day move in the market price between those dates, the time it took to retrace half of that move, and Scopes Fair Value over the same window. No hypothesis is attached and no verdict is drawn. Coverage is confirmed: the record holds Texas Senate prices on both Kalshi and Polymarket across that window.

What this can't test

Publication either way

Every cell is published whatever it shows, including cells that fail the sample gate. An interim readout covering contracts settled by Nov 10 is published on November 13, 2026 and labeled interim. Final results are published when the last included contract settles, and no later than December 18, 2026, with anything still unsettled listed as pending. The scoring code and methodology version are published with the results. The record is timestamped daily at scopes.com/integrity, and this page is archived to the Wayback Machine: receipt captured October 29, 2026, 21:26 UTC.