/penaltyblog

⚽ High-performance football analytics toolkit: scrape data, model matches, rank teams, and bet smarter | Powered by pena.lt/y/blog πŸš€

Primary LanguagePythonMIT LicenseMIT

Penalty Blog

Python Version PyPI Downloads License: MIT Code style: black Code style: pre-commit

Penalty Blog Logo

penaltyblog: Football Data & Modelling Made Easy

penaltyblog is a production-ready Python package designed for football (soccer) analytics, providing powerful tools from pena.lt/y/blog for data analysis, outcome modelling, and betting insights. Otimized with Cython, penaltyblog delivers high-performance modelling to power faster, efficient predictions.

Features

  • ⚽ Scrape Data – Collect match statistics from sources like FBRef, Understat, Club Elo, and Fantasy Premier League.
  • πŸ“Š Model Matches Efficiently – High-performance implementations of Poisson, Bivariate Poisson, Dixon-Coles, and other advanced statistical models, optimized with Cython for rapid analysis.
  • πŸ’° Bet Smarter – Precisely estimate probabilities for Asian handicaps, over/under totals, match outcomes, and more.
  • πŸ† Rank Teams – Evaluate team strengths with sophisticated methods including Elo, Massey, Colley, and Pi ratings.
  • πŸ“ˆ Decode Bookmaker Odds – Accurately extract implied probabilities by removing bookmaker margins (overrounds).
  • 🎯 Fantasy Football Optimisation – Mathematically optimize your fantasy football squad to maximize performance.

Take your football analytics and betting strategy to the next level with penaltyblog πŸš€

Installation

pip install penaltyblog

Documentation

Learn more about how to utilize penaltyblog by exploring the official documentation and detailed examples:

References

  • Baio, Gianluca, and Marta A. Blangiardo (2010). Bayesian Hierarchical Model for the Prediction of Football Results.
  • A bivariate Weibull count model for forecasting association football scores
  • Boshnakov, Georgi, Tarak Kharrat, and Ian G. McHale (2017). A bivariate Weibull count model for forecasting association football scores.
  • Buchdahl, Joseph (2015). The Wisdom of the Crowd.
  • Constantinou, Anthony C., and Norman E. Fenton (2012). Solving the problem of inadequate scoring rules for assessing probabilistic football forecast models.
  • Constantinou, Anthony C., and Norman E. Fenton (2013). Determining the level of ability of football teams by dynamic ratings based on the relative discrepancies in scores between adversaries.
  • Dixon, Mark J., and Stuart G. Coles (1997). Modelling Association Football Scores and Inefficiencies in the Football Betting Market.
  • Karlis, Dimitris, and Ioannis Ntzoufras (2003). Analysis of Sports Data by Using Bivariate Poisson Models.
  • Rue, HΓ₯vard, and Øyvind Salvesen (1999). Prediction and Retrospective Analysis of Soccer Matches in a League.
  • Shin, Hyun Song (1992). Prices of State Contingent Claims with Insider Traders, and the Favourite-Longshot Bias.
  • Shin, Hyun Song (1993). Measuring the Incidence of Insider Trading in a Market for State-Contingent Claims.