Within-candidate FE on 568 self-sponsored candidate-poll rows gives β = +7.75 pp (p<0.001) — large, robust to spec, robust to renormalization choice. The opponent-sponsored coefficient is -1.93 (p=0.030), so the bias is sender-specific not a generic house effect.

Confidence
green
Type
causal
Design
Sample
estimulado-non-aggregate-match2
Specification
error ~ sponsored_by + opponent_sponsored + log(sample_size) + days_to_election + days² | candidate FE + pollster FE, cluster-robust SE at muni level
Comparator
all
Cluster
muni
Script
source/analysis/regressions.py
Target
build/table/regressions.csv
Commit
2548d50
Status
interpreted · 2026-06-02
Created
2026-06-02

Results

Table: Headline within-candidate FE (Spec 2, all-Brazil, n = 30,555 candidate-poll rows)

Coefficient β SE p
sponsored_by (self-sponsored) +7.75 1.34 <0.001
opponent_sponsored −1.93 0.89 0.030

(from build/table/regressions.csv)

Table: Spec ladder (same sample)

Spec β (sponsored_by) SE p
naive (no FE) +7.57 0.88 <0.001
Spec 1 (candidate + pollster FE) +7.60 1.34 <0.001
Spec 2 (+ methodology controls) +7.75 1.34 <0.001
Spec 2 WLS (weighted by sample size) +7.83 1.37 <0.001

(from build/table/regressions.csv)

Symmetry test (Spec 2): β_self − β_opp ≈ +9.7 pp — sender-specific bias, not generic pollster house effect.

Sample composition:

Interpretation

Confidence rationale (green). Three independent specs converge on β ≈ +7–8 pp, the all-Brazil sample is large (n = 568 self-sponsored rows across 8,431 candidates and 448 pollsters), FE does not move the point estimate, and the opponent-sponsored sign-flip rules out a generic house effect. Residual uncertainty is about how the bias is produced (Channel A declared-methodology vs Channel B residual/fabrication), not whether it exists — and that is a follow-up question, not a threat to the headline.

Follow-ups