← back to projects
LIVE Python

EPL Prediction Lab

3-leg xG + Elo + XGBoost ensemble for the top-5 European football leagues. SHA-256-committed probabilities published before every kickoff.

epl-prediction-lab
PythonFastAPINext.jsPostgreSQLXGBoost

The hypothesis

A three-leg ensemble (xG from shot-quality model + Elo-based pace-of-play adjustment + XGBoost over engineered features) consistently beats any single component for top-5 European league outcomes. Sample is small but the SHA-256 commits make every retrospective auditable.

Stack & architecture

What I learned

XGBoost is forgiving on small samples if your features are honest. The Elo component matters most for teams with sparse recent-form data. Honest probability commitment (SHA-256 before kickoff) makes the accuracy log worth keeping; without it, the temptation to retroactively explain misses poisons the project.