penaltyblog


Namepenaltyblog JSON
Version 0.8.2 PyPI version JSON
download
home_pagehttps://github.com/martineastwood/penaltyblog
SummaryLibrary from http://pena.lt/y/blog for scraping and modelling football (soccer) data
upload_time2024-10-19 18:11:24
maintainerNone
docs_urlNone
authorMartin Eastwood
requires_python<=3.12.6,>=3.10
licenseMIT
keywords football soccer goals modelling dixon coles poisson bayesian scraper scraping backtest
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Penalty Blog

<div align="center">

  <a href="">[![Python Version](https://img.shields.io/pypi/pyversions/penaltyblog)](https://pypi.org/project/penaltyblog/)</a>
  <a href="">[![Coverage Status](https://coveralls.io/repos/github/martineastwood/penaltyblog/badge.svg?branch=master&service=github)](https://coveralls.io/repos/github/martineastwood/penaltyblog/badge.svg?branch=master&service=github)</a>
  <a href="">[![PyPI](https://img.shields.io/pypi/v/penaltyblog.svg)](https://pypi.org/project/penaltyblog/)</a>
  <a href="">[![Downloads](https://static.pepy.tech/badge/penaltyblog)](https://pepy.tech/project/penaltyblog)</a>
  <a href="">[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)</a>
  <a href="">[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)</a>
  <a href="">[![Code style: pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)</a>

</div>


The **penaltyblog** Python package contains lots of useful code from [pena.lt/y/blog](http://pena.lt/y/blog.html) for working with football (soccer) data.

**penaltyblog** includes functions for:

- Scraping football data from sources such as football-data.co.uk, FBRef, ESPN, Club Elo, Understat, SoFifa and Fantasy Premier League
- Modelling of football matches using Poisson-based models, such as Dixon and Coles, and Bayesian models
- Predicting probabilities for many betting markets, e.g. Asian handicaps, over/under, total goals etc
- Modelling football team's abilities using Massey ratings, Colley ratings and Elo ratings
- Estimating the implied odds from bookmaker's odds by removing the overround using multiple different methods
- Mathematically optimising your fantasy football team

## Installation

`pip install penaltyblog`


## Documentation

To learn how to use penaltyblog, you can read the [documentation](https://penaltyblog.readthedocs.io/en/latest/) and look at the
examples for:

- [Scraping football data](https://penaltyblog.readthedocs.io/en/latest/scrapers/index.html)
- [Predicting football matches and betting markets](https://penaltyblog.readthedocs.io/en/latest/models/index.html)
- [Estimating the implied odds from bookmakers odds](https://penaltyblog.readthedocs.io/en/latest/implied/index.html)
- [Calculate Massey, Colley and Elo ratings](https://penaltyblog.readthedocs.io/en/latest/ratings/index.html)

## References

- Mark J. Dixon and Stuart G. Coles (1997) Modelling Association Football Scores and Inefficiencies in the Football Betting Market
- Håvard Rue and Øyvind Salvesen (1999) Prediction and Retrospective Analysis of Soccer Matches in a League
- Anthony C. Constantinou and Norman E. Fenton (2012) Solving the problem of inadequate scoring rules for assessing probabilistic football forecast models
- Hyun Song Shin (1992) Prices of State Contingent Claims with Insider Traders, and the Favourite-Longshot Bias
- Hyun Song Shin (1993) Measuring the Incidence of Insider Trading in a Market for State-Contingent Claims
- Joseph Buchdahl (2015) The Wisdom of the Crowd
- Gianluca Baio and Marta A. Blangiardo (2010) Bayesian Hierarchical Model for the Prediction of Football Results

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/martineastwood/penaltyblog",
    "name": "penaltyblog",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<=3.12.6,>=3.10",
    "maintainer_email": null,
    "keywords": "football, soccer, goals, modelling, dixon coles, poisson, bayesian, scraper, scraping, backtest",
    "author": "Martin Eastwood",
    "author_email": "martin.eastwood@gmx.com",
    "download_url": "https://files.pythonhosted.org/packages/38/ff/a2a06f25275ccc5f4a4da80146787c38fdfbc995f87a162f5817bdb243a4/penaltyblog-0.8.2.tar.gz",
    "platform": null,
    "description": "# Penalty Blog\n\n<div align=\"center\">\n\n  <a href=\"\">[![Python Version](https://img.shields.io/pypi/pyversions/penaltyblog)](https://pypi.org/project/penaltyblog/)</a>\n  <a href=\"\">[![Coverage Status](https://coveralls.io/repos/github/martineastwood/penaltyblog/badge.svg?branch=master&service=github)](https://coveralls.io/repos/github/martineastwood/penaltyblog/badge.svg?branch=master&service=github)</a>\n  <a href=\"\">[![PyPI](https://img.shields.io/pypi/v/penaltyblog.svg)](https://pypi.org/project/penaltyblog/)</a>\n  <a href=\"\">[![Downloads](https://static.pepy.tech/badge/penaltyblog)](https://pepy.tech/project/penaltyblog)</a>\n  <a href=\"\">[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)</a>\n  <a href=\"\">[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)</a>\n  <a href=\"\">[![Code style: pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)</a>\n\n</div>\n\n\nThe **penaltyblog** Python package contains lots of useful code from [pena.lt/y/blog](http://pena.lt/y/blog.html) for working with football (soccer) data.\n\n**penaltyblog** includes functions for:\n\n- Scraping football data from sources such as football-data.co.uk, FBRef, ESPN, Club Elo, Understat, SoFifa and Fantasy Premier League\n- Modelling of football matches using Poisson-based models, such as Dixon and Coles, and Bayesian models\n- Predicting probabilities for many betting markets, e.g. Asian handicaps, over/under, total goals etc\n- Modelling football team's abilities using Massey ratings, Colley ratings and Elo ratings\n- Estimating the implied odds from bookmaker's odds by removing the overround using multiple different methods\n- Mathematically optimising your fantasy football team\n\n## Installation\n\n`pip install penaltyblog`\n\n\n## Documentation\n\nTo learn how to use penaltyblog, you can read the [documentation](https://penaltyblog.readthedocs.io/en/latest/) and look at the\nexamples for:\n\n- [Scraping football data](https://penaltyblog.readthedocs.io/en/latest/scrapers/index.html)\n- [Predicting football matches and betting markets](https://penaltyblog.readthedocs.io/en/latest/models/index.html)\n- [Estimating the implied odds from bookmakers odds](https://penaltyblog.readthedocs.io/en/latest/implied/index.html)\n- [Calculate Massey, Colley and Elo ratings](https://penaltyblog.readthedocs.io/en/latest/ratings/index.html)\n\n## References\n\n- Mark J. Dixon and Stuart G. Coles (1997) Modelling Association Football Scores and Inefficiencies in the Football Betting Market\n- H\u00e5vard Rue and \u00d8yvind Salvesen (1999) Prediction and Retrospective Analysis of Soccer Matches in a League\n- Anthony C. Constantinou and Norman E. Fenton (2012) Solving the problem of inadequate scoring rules for assessing probabilistic football forecast models\n- Hyun Song Shin (1992) Prices of State Contingent Claims with Insider Traders, and the Favourite-Longshot Bias\n- Hyun Song Shin (1993) Measuring the Incidence of Insider Trading in a Market for State-Contingent Claims\n- Joseph Buchdahl (2015) The Wisdom of the Crowd\n- Gianluca Baio and Marta A. Blangiardo (2010) Bayesian Hierarchical Model for the Prediction of Football Results\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Library from http://pena.lt/y/blog for scraping and modelling football (soccer) data",
    "version": "0.8.2",
    "project_urls": {
        "Homepage": "https://github.com/martineastwood/penaltyblog",
        "Repository": "https://github.com/martineastwood/penaltyblog"
    },
    "split_keywords": [
        "football",
        " soccer",
        " goals",
        " modelling",
        " dixon coles",
        " poisson",
        " bayesian",
        " scraper",
        " scraping",
        " backtest"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bc2fd70047e3782be688de33e65ce0524ea31ea6907860e3874e3ba3cc3c82e1",
                "md5": "4fdf4f9e4ca69620631fdb55019fa898",
                "sha256": "cea6cbff7b49762277ba877aa5842b70daadf993edba0922a05ae07f26496b25"
            },
            "downloads": -1,
            "filename": "penaltyblog-0.8.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4fdf4f9e4ca69620631fdb55019fa898",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<=3.12.6,>=3.10",
            "size": 53636,
            "upload_time": "2024-10-19T18:11:23",
            "upload_time_iso_8601": "2024-10-19T18:11:23.000443Z",
            "url": "https://files.pythonhosted.org/packages/bc/2f/d70047e3782be688de33e65ce0524ea31ea6907860e3874e3ba3cc3c82e1/penaltyblog-0.8.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38ffa2a06f25275ccc5f4a4da80146787c38fdfbc995f87a162f5817bdb243a4",
                "md5": "ef61a05e33b2d70486d720f14013b7d3",
                "sha256": "dc13603586faea355a5fa59b5c19281de7e78ac7e588ceff4ba8f8073fc8df3b"
            },
            "downloads": -1,
            "filename": "penaltyblog-0.8.2.tar.gz",
            "has_sig": false,
            "md5_digest": "ef61a05e33b2d70486d720f14013b7d3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<=3.12.6,>=3.10",
            "size": 32165,
            "upload_time": "2024-10-19T18:11:24",
            "upload_time_iso_8601": "2024-10-19T18:11:24.890413Z",
            "url": "https://files.pythonhosted.org/packages/38/ff/a2a06f25275ccc5f4a4da80146787c38fdfbc995f87a162f5817bdb243a4/penaltyblog-0.8.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-19 18:11:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "martineastwood",
    "github_project": "penaltyblog",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "penaltyblog"
}
        
Elapsed time: 1.56551s