Testing 4 Market Mispricing Signals: Pinnacle Is Faster Than You Think
Tested manager bounce, promoted team arc, international breaks, and congestion×depth. Only promoted team arc confirmed (p=0.0001) but league-specific. Manager bounce rejected — Pinnacle reprices in 1-2 matches. International breaks: zero effect.
The Question
Are there structural situations where Pinnacle's odds lag behind reality — not because of xG quality, but because of information speed? We tested four hypotheses about when markets are slow to reprice.
What We Found
One signal confirmed, three rejected. Pinnacle is faster than we thought.
| Signal | Verdict | Key Finding |
|---|---|---|
| **Manager bounce** | REJECTED | No window shows significant residuals. Matches 1-5: -0.013 (p=0.64), 6-10: +0.009 (p=0.77), 11-15: -0.045 (p=0.25). Pinnacle reprices manager changes within 1-2 matches. |
| **Promoted team arc** | CONFIRMED (parked) | Full arc is real: GW 1-10 promoted teams -2.8pp vs established (p=0.015). GW 30+: promoted +3.4pp (p=0.003). Within-promoted early-vs-late: -6.2pp, p=0.0001. |
| **International break** | REJECTED | Zero mean residual (p=0.81). Variance slightly higher post-break (+1.5%, p=0.02) but not actionable. |
| **Congestion × depth** | REJECTED | No interaction at all. Congested+thin vs congested+deep: 0.3pp (p=0.83). Promoted-as-depth-proxy too crude. |
The Nuance
The promoted team arc is real but league-specific. The blanket filter fails the 10-gate pipeline (3 gates fail) because opposite-direction leagues cancel the aggregate signal:
| League Type | Early Season | Late Season | Arc |
|---|---|---|---|
| **League Two** | -0.184*** | +0.023 | +0.207 |
| **Ligue 2** | -0.085* | +0.093 | +0.179 |
| **Serie A** | -0.097* | +0.057 | +0.154 |
| **Belgian Pro** | +0.165 (OPPOSITE) | -0.104 | Inverted |
| **Eredivisie** | +0.014 | -0.174 | Inverted |
| **Championship** | -0.011 (tiny) | +0.067* | +0.078 |
Championship shows minimal early-season mispricing because parachute payments + big squads mean promoted teams aren't "thin." League Two has the biggest arc because the quality gap from National League is massive. Belgian Pro is inverted — promoted teams overperform early, possibly because Belgian lower divisions are underrated.
What Didn't Work
- Manager bounce: Markets reprice in 1-2 matches. No exploitable window exists at the 5-10 match horizon.
- International breaks: Zero mean effect. The slight variance increase (+1.5%) isn't enough to change sizing decisions.
- Congestion × depth: Using "promoted" as a proxy for "thin squad" is too crude. Real squad depth data (Transfermarkt) would be better but the interaction hypothesis itself may be wrong.
What This Means
The promoted team arc is parked as an enrichment flag (isPromotedTeam + seasonPhase on BetRecord). It's not deployed as a filter because:
- Opposite-direction leagues cancel the aggregate effect
- Per-league sample sizes are too small for significance
- A 5-league conditional filter would need its own walk-forward validation
The three rejected signals confirm: Pinnacle is efficient at repricing obvious structural events (manager changes, international breaks, congestion). The edge is in subtler, harder-to-observe contexts (GK changes p=0.001, squad strength p=0.07, HFA regime collapse).
What's Next
Promoted team arc stays as an enrichment flag for future conditional combination testing when we have 20K+ bets (after solver cache enables larger backtests).