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. Optimized with Cython, penaltyblog delivers high-performance modelling to power faster, efficient predictions.
- π Streamline JSON Workflows with MatchFlow: Process nested football data using a lazy, streaming pipeline built for JSON. Filter, select, flatten, join, group, and summarize large datasets without loading everything into memory.
- π Model Matches Efficiently: High-performance implementations of Poisson, Bivariate Poisson, Dixon-Coles, and other advanced statistical models, optimized with Cython for rapid analysis.
- β½ Scrape Data: Collect match statistics from sources like FBRef, Understat, Club Elo, and Fantasy Premier League.
- π° 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 π
pip install penaltyblog
Learn more about how to utilize penaltyblog
by exploring the official documentation and detailed examples:
- Processing football event data with MatchFlow
- Scraping football data
- Predicting football matches and betting markets
- Estimating implied odds from bookmaker prices
- Calculating Massey, Colley, Pi, and Elo ratings
- Calculating metrics such as Ranked Probability Scores
Unlike many football analytics resources that are academic, one-off, or hard to scale, penaltyblog
is designed from the ground up to be production-ready, performance-optimized, and practically useful.
It combines advanced statistical models, efficient implementations (via Cython), and real-world workflows, from scraping public data to modelling outcomes and optimising fantasy teams.
Built by Martin Eastwood, who has worked with football clubs, governing bodies, and player agencies worldwide, penaltyblog
is the foundation for football analytics.
Whether you're a club analyst, independent researcher, or just data-curious, penaltyblog
gives you the tools to go from data to insight β fast, flexibly, and with confidence.
If you're working at a football club, agency, or organisation and want help applying these tools to your own data or workflows, I'm open to:
- π Integration support
- π§ Custom model development
- π§ Technical collaboration on football analytics projects
β‘οΈ Get in touch here