The AN-045 rank-1-in-tight bandwagon pattern PARTIALLY survives under rank-at-commission but attenuates substantially: sponsor effect at rac1-tight is +6.59pp (n=20 sp) vs +12.20pp under final_rank (AN-045). The non-tight rac1 baseline is +2.71pp, so the bandwagon-in-tight signal is real but smaller than AN-045 suggested — most of the +12.20 was Simpson's-style aggregation. Critically, the AN-040 rank-2 over-statement VANISHES under ex-ante rank (rac2 sponsor effect: −0.46 non-tight, +4.20 tight) — candidates who ended at rank 2 over-stated because they were polled at varied positions during the campaign, not because rac2 commissioners inflate. Thin-cell surprise: rac3+ in tight shows sponsor effect of +18.64pp (n=14 sp) — a viability-grab pattern worth following up but currently underpowered. Within-candidate FE specs are all n.s. (sponsored-cell n=12-39 limits 3-way power). Yellow confidence descriptive.

Confidence
yellow
Type
causal
Design
Sample
AN-001 panel restricted to candidate-poll rows whose candidate has at least one prior neutral poll in the same muni (date_end before this poll's date_start). Restriction follows AN-028's framework. Final n=16,810 rows (58.6% of original panel).
Specification
error ~ sponsored × rank_at_commission_bin × tight_race + 2-ways + (+controls) | candidate FE, cluster muni
Comparator
all (Spec 1-3) / sponsored-or-independent only (Spec 4)
Cluster
muni
Notes
Sharpens AN-045 by replacing final_rank (ex post outcome) with rank_at_commission (ex ante position when the poll was commissioned). The bandwagon mechanism predicts amplification for leaders-at-commission in tight races. The coordination mechanism (orthogonal cell) predicts over-COMMISSIONING for runners-up at commission in tight races (AN-027 already confirmed). This analysis tests whether the AN-045 rank-1-in-tight bias amplification was an ex-post-rank artifact or a real ex-ante-leader pattern. Tight cutoff = race_margin ≤ 0.08. Rank-at-commission computed per row via prior-neutral-poll lookup matching the AN-028 framework but extended to every row (not just first self-sponsored).
Script
source/analysis/an-050-bias-by-rank-at-commission-margin.py
Target
build/table/an-050-bias-by-rank-at-commission-margin.csv
Status
interpreted · 2026-06-02
Created
2026-06-02

Question

AN-045 found the largest tight-race sponsor-bias amplification at final rank 1 (+4.80pp non-tight → +12.20pp tight). But final_rank is an ex post outcome — the candidate's commissioning incentives depend on their position when the poll was commissioned, not on who eventually won. A candidate sitting at rank 1 during the campaign who finishes rank 2 should behave like a leader-bandwagon when commissioning; a candidate who finishes rank 1 but trailed during the campaign should behave like a coordination-demanding runner-up.

Rank-at-commission (the candidate's rank in the most recent prior neutral poll before this poll's commissioning) is the ex ante measure. AN-028 already established that the AN-027 coordination signal holds under this temporal alignment. This analysis applies the same alignment to the AN-045 bias-amplification decomposition.

If the AN-045 rank-1-in-tight pattern holds under rank_at_commission, the bandwagon-supply-side mechanism is confirmed as an ex ante incentive, not an ex post selection artifact. If it disappears, AN-045's finding was Simpson's-style aggregation across heterogeneous within-candidate trajectories.

Design

Sample: AN-001 analysis_table candidate-poll rows whose candidate has at least one prior neutral (independent or pollster-self) poll in the same muni with date_end < this poll's date_start. Following AN-028's framework, this restriction is intrinsic to the rank-at-commission definition.

Rank-at-commission computed per row via pd.merge_asof:

Bins: {1, 2, 3+} mirroring AN-045. tight_race = I(race_margin ≤ 0.08).

Specs (matching AN-045 ladder):

Plus 6-cell descriptive companion: mean error for sponsored vs non-sponsored within each (rank_at_commission_bin × tight) cell.

Results

3-way sp × rac × tight coefficients across specs; 6-cell mean error by (rac, tight, sponsored)

Tables at build/table/an-050-bias-by-rank-at-commission-margin.csv and the 6-cell companion at __cells.csv.

Sample construction

The rank-at-commission restriction keeps 16,810 of 27,907 candidate- poll rows (58.6%) — candidates without a prior neutral poll in the same muni drop out. Rank distribution: rac 1 → 4,942 rows; rac 2 → 4,280; rac 3 → 2,787; rac ≥4 → 5,025. Tight (race_margin ≤ 0.08) share is 35.6%, similar to AN-045.

6-cell descriptive (the cleanest read)

Mean error (pp) by (rank_at_commission, tight, sponsored), with the sponsor effect in the rightmost column:

RaC Tight n non-sp mean n sp mean Sponsor effect
rac 1 non-tight 3,156 +4.32 39 +7.03 +2.71
rac 1 tight 1,727 +5.80 20 +12.39 +6.59
rac 2 non-tight 2,835 +0.36 22 −0.10 −0.46
rac 2 tight 1,400 +0.23 23 +4.43 +4.20
rac 3+ non-tight 4,769 +0.88 12 +3.47 +2.59
rac 3+ tight 2,793 +1.03 14 +19.67 +18.64

AN-045 vs AN-050 sponsor-effect comparison

Cell AN-045 (final_rank) AN-050 (rank_at_commission) Δ
rank 1, non-tight +4.80 +2.71 −2.09
rank 1, tight +12.20 +6.59 −5.61
rank 2, non-tight +9.54 −0.46 −10.00
rank 2, tight +6.81 +4.20 −2.61
rank 3+, non-tight +10.91 +2.59 −8.32
rank 3+, tight +15.56 +18.64 +3.08

Regression specs (all underpowered for the 3-way given thin sponsored cells)

Spec sp sp×rac2 sp×rac3+ sp×t sp×rac2×t sp×rac3+×t n
1. pooled OLS +2.71 (1.95) −3.17 (7.14) −0.12 (3.43) +3.87 (4.37) +0.78 (8.73) +12.17 (7.77) 16,810
2. + candidate FE +6.95 (2.72) * −2.77 (4.68) +3.36 (5.72) −0.88 (4.23) +4.11 (6.03) −1.54 (8.59) 16,810
3. + institute FE + controls +6.79 (2.88) * −0.47 (4.25) +2.95 (6.52) −3.70 (3.60) +5.03 (5.56) +1.65 (9.64) 16,810
4. race × week FE, clean +5.30 (2.04) ** +0.07 (6.51) +4.31 (4.46) −3.17 (4.13) −2.46 (9.77) +1.81 (10.25) 12,963

Cluster-robust SE on muni_id. The within-candidate FE specs (2–4) collapse the 3-way effects to noise — only the rac1 main sponsored_by coefficient persists (+5.30 to +6.95, all p<0.05), consistent with the headline.

Interpretation

Three findings — one survives, one collapses, one is suggestive but thin:

  1. The rac-1-in-tight bandwagon pattern survives but attenuates. AN-045 reported a +12.20pp sponsor effect at final_rank=1 in tight races; under rank-at-commission, the same cell gives +6.59pp (n=20 sponsored). The pattern is directionally consistent with AN-045 (rac1 sponsor effect: +2.71 non-tight → +6.59 tight, a 2.4× jump) but roughly half the magnitude AN-045 reported. The AN-045 estimate was inflated by Simpson's-style aggregation across heterogeneous within-candidate trajectories — many candidates classified as "final rank 1" were polled while at rac 2 or 3 during the campaign, and those polls inherited the rank's bias profile.

  2. The AN-040 rank-2 over-statement vanishes under ex-ante rank. AN-040 reported +11.5pp sponsor effect at final_rank=2; under rank-at-commission, the rac-2 sponsor effect is −0.46pp non-tight and +4.20pp tight. Rank-2 over-statement is an ex-post-rank artifact, not an ex-ante commissioning behavior. Candidates who ended at rank 2 over-stated when polled — but at the moment those polls were commissioned, the candidates were at various ranks (some at 1, some at 2, some at 3+). The over-statement was misattributed to "rank 2" because that was the resolution at measurement time. The AN-040 row in hypotheses/coordination-peak.md should be re-read in this light: rank-2 over-COMMISSIONING (AN-027) is real and ex-ante; rank-2 over-STATEMENT (AN-040) is mostly ex-post aggregation.

  3. Thin-cell surprise: rac-3+ in tight shows the largest sponsor effect (+18.64pp, n=14 sponsored). This is a tiny cell (only 14 sponsored polls of candidates polling at rank 3+ in their most recent prior neutral poll, in tight races) but the magnitude is striking. If this survives the rac-3+ thin-cell skepticism check, it's a viability-grab pattern — trailing candidates in close races commission polls to push themselves into the top-2 viability zone where coordination-demand mechanisms kick in. This is not the bandwagon mechanism (rac3+ candidates are not leaders) — it's a different supply-side mechanism worth characterizing.

The regression specs are all under-powered for the 3-way (sponsored cells of n=14-39 limit identification). The cell-mean descriptive is the cleanest takeaway. Yellow confidence on a rank-at-commission sharpening of the bandwagon and viability-grab patterns.

Follow-ups

  1. AN-NNN — replicate AN-050 with date_registered anchor (extension, robustness). AN-028 found the rank-at-commission signal is robust across date_start, date_registered, and date_end anchors. The AN-050 finding should be similarly anchor-robust. Suggested script: source/analysis/an-NNN-rac-margin-anchor-sensitivity.py.

  2. AN-NNN — rac-3+ viability-grab thin-cell triage (puzzle, highest follow-up value). The +18.64pp rac3+ tight sponsor effect on n=14 is the biggest specific finding of this analysis but desperately needs replication. Steps: (a) tabulate the 14 sponsored polls' candidates and verify they're not 1-2 high-leverage outliers, (b) repeat with a stricter rac-3+ definition (rac ∈ {3, 4} only, excluding the long tail), (c) test rac-3+ × non-tight (+2.59pp, n=12) as a placebo — absence of effect there strengthens the tight-race coordination-grab interpretation.

  3. AN-NNN — propose viability-grab hypothesis page if the rac-3+ finding survives. Currently bandwagon-peak.md covers the leader-amplification supply-side mechanism. A trailing-candidate viability-grab mechanism would be a companion supply-side hypothesis page parallel to coordination-peak.md (which is voter-side coordination demand).