I Built a Football Data Analysis Pipeline From 220,000 Matches
For academic research only. Not betting advice. GitHub : MENG-COOLMAN/PitchQuant — MIT license, free to use. The TL;DR Six months. 227,000 matches. One question: what can you actually learn from football odds? This is not a "prediction oracle." Football is chaotic and markets are efficient — I put that on the front page. But if you've ever stared at a line of odds and wondered if there's a signal…
In a six-month project analyzing 227,000 football matches, researcher Meng-Cool-Man aimed to uncover hidden insights within football odds. The goal was not to predict outcomes but to determine if valuable information could be extracted from the data. Frustrated by the fairness of the market, the researcher began collecting information, including de-vigging, ELO ratings, and Poisson models. However, the results were not as promising as initially thought.
After initial success, the researcher found that no single indicator could consistently beat the market. De-vigged probabilities remained within ±5 percentage points, ELO gaps explained only around 10% of the variance, and a standard Poisson model performed poorly. Nevertheless, when multiple weak signals were combined with proper weights and strict backtesting gates, the directional accuracy improved from 48% to approximately 55%.
The research process involved an LLM-as-runtime architecture, where Python scripts performed mathematical calculations, and a Large Language Model (LLM) analyzed the results without questioning them. The LLM was provided with 34 knowledge files, outlining specific aspects to focus on, such as league quirks, European two-leg adjustments, halftime patterns, and water-level traps. Each rule was derived from backtests, not personal intuition.
The pipeline followed a step-by-step process: odds input, de-vig probabilities, 12 checks, odds movement morphology, scenario rules, 26 inference checks, league calibration, home/away factor, direction, goals magnitude, score spectrum, totals, and self-check. Each step's output fed directly into the next, preventing any skipping steps or shortcuts.
From the research, the researcher learned several key points:
1. The weak-consensus trap: When the market is not strongly convinced, the favorite wins only 36-43% of the time, resulting in a loss over time. The draw is consistently underpriced and should be listed as a co-primary outcome.
2. Deceptive low odds: Home odds below 1.30 may appear promising, but shallow Asian handicap lines can significantly reduce actual home wins. This insight was crucial in the project's success.
3. Over 2.5 and exact score are different games: When the O2.5 line is low, the rate of top-2 scores hitting actually decreases, as high-scoring matches have more dispersed scorelines.
4. More machine learning doesn't always lead to better results: Initial excitement about online ML models proved to be unfounded, as they only provided a marginal improvement in backtesting. The best approach was to avoid using them when the market signal was strong.
5. Poisson models aren't infallible: Dixon-Coles correction helps, but it assumes independent goal events, which is unrealistic in football. Goals are influenced by the performance of both teams, making Poisson models less accurate.
The overall accuracy of the research is modest, with direction accuracy around 50% and a top-2 score hit rate of approximately 30% for strong-signal matches. These time-split backtest numbers do not predict future outcomes, as the long-term expected value (EV) of sports betting is structurally negative.
The primary objective of this project was to demonstrate a robust data analysis methodology rather than provide a foolproof betting system. The project is open source and available on GitHub under the MIT license. The researcher encourages others to build upon the work, contribute ideas, and use the provided resources for academic research purposes only.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.