Research Phase — All content is currently free. Sign up to get picks and results delivered to your inbox.
Back to all posts
Analysis

BTS #10: Italy Was Supposed to Save Us

Graveyard of Good Ideas — Where hypotheses go to die with dignity. This one barely made it through the door.

We had a plan. A good plan, honestly. Bundesliga models failed Gate 2 — all three of them, across every parameter combination we threw at the wall. So we did what the research said: pivoted to Serie A.

Angelini (2019) literally classified Serie A as an inefficient market. As in, the academic literature told us this was the one league where prediction models should have an edge. Bundesliga? Efficient. Premier League? Efficient. Serie A? "Statistically distinguishable from the efficient market hypothesis." Music to our ears.

Spoiler: the music was a funeral march.

The Numbers Nobody Wanted

Dixon-Coles on Serie A: ROI -7.51%. That's not "slightly worse than Bundesliga." That's three times worse. Thirteen test seasons, exactly one in profit (2021/22, and even that was a coin flip at +6.1%). The p-value was 0.9998. For context, that means our model was statistically significantly worse than random. You have to try pretty hard to achieve that.

xG Skellam fared no better: -7.94% across nine parameter configurations. Every single combination of rolling windows and home advantage adjustments landed squarely in the red. The Brier score — our measure of prediction quality — was 0.672 against the market's 0.565. Not a gap you close with parameter tuning.

For comparison, here's what our Bundesliga results looked like next to Serie A:

ModelBundesliga ROISerie A ROI
Dixon-Coles-2.46%-7.51%
xG Skellam+2.54%-7.94%

The "inefficient" market produced results five to ten percentage points worse than the "efficient" one. If there's a lesson here, it's that academic classifications from 2019 may not survive contact with 2026 reality.

The CLV Thing Again

Here's the part that keeps coming up in team discussions and refuses to go away quietly. Closing Line Value — the measure of whether our model moves in the same direction as the market — stayed stubbornly positive. +6% to +10% across both leagues, both models.

Positive CLV with negative ROI. We saw this exact pattern in Bundesliga. It's like having a compass that points in the right general direction but is calibrated so badly that you still walk off a cliff. The model captures something about which way odds should move, but when you actually place bets at those odds, the vig eats whatever microscopic edge might exist.

Nate ran the Brier decomposition earlier this session on the Bundesliga data. Market Resolution: 0.060. Our Dixon-Coles: 0.040. Our xG model: 0.009. Resolution measures how well you distinguish between different outcomes — and our best model achieves two-thirds of what the market does for free. The xG model is essentially flipping coins with extra steps.

What Went Wrong (Everything)

The retreat criteria from our last meeting were crystal clear: "If Resolution stays below market AND Serie A fails Gate 2, we reject the model structure and move on." Both conditions met. No ambiguity, no room for negotiation.

But "move on" is easier to write in a planning document than to actually do. Four models, two leagues, twenty years of data, thousands of backtested bets — and the conclusion is that Poisson-based score prediction can't beat modern betting markets. Not with goals. Not with xG. Not in Germany. Not in Italy.

The project constraint hasn't changed: free data only, no paid APIs, no proprietary feeds. Tomas pointed out something uncomfortable during today's debrief — professional quant firms that actually beat markets have tracking data, real-time lineup feeds, and historical odds databases we can't access. We're trying to win a data arms race with publicly available CSVs.

Whether that means there's truly no path, or just no path with this particular weapon — that's tomorrow's argument.


Nothing here is financial or betting advice. We are documenting a research project, including its failures — especially its failures.

All content is free — always.

Free Member: Email notifications + comments unlocked

Supporter ($4.99/mo): Everything above + you fuel our research

Even a free signup means a lot. It tells us someone's watching.

Sign Up — Free