soccer-predictor

0.0.2 • Public • Published

Soccer Predictor

Latest npm version Build Status Dependency Status devDependency Status Test Coverage

A JS library that predicts soccer match outcomes using basic mathematics.

Installation

Use yarn or npm to install.

yarn add soccer-predictor           # yarn 
npm install soccer-predictor --save # npm 

Install locally

git clone https://github.com/CookPete/soccer-predictor.git
cd soccer-predictor
yarn # or npm install 
npm run build

Testing locally

npm test # Run tests 

Usage

import { analyseResults, calculateProbabilities } from 'soccer-predictor'
 
// Some basic example data
const results = [
  { homeTeam: 'Team A', awayTeam: 'Team B', homeGoals: 1, awayGoals: 0 },
  { homeTeam: 'Team B', awayTeam: 'Team C', homeGoals: 2, awayGoals: 1 },
  { homeTeam: 'Team C', awayTeam: 'Team A', homeGoals: 1, awayGoals: 3 }
]
 
// Function to map match data to soccer-predictor data
function getMatchDetails (match) {
  return {
    homeTeamName: match.homeTeam,
    awayTeamName: match.awayTeam,
    homeGoals: match.homeGoals,
    awayGoals: match.awayGoals
  }
}
 
// Parse results into an array of teams with calculated stats
const teams = analyseResults(results, getMatchDetails)
 
// Use calculateProbabilities to calculate the chance of
// various outcomes of a match between two teams
const probabilities = calculateProbabilities(teams[0], teams[1])
 
console.log(probabilities.result) // Probability of a home win, away win or draw
// {
//   home: 0.657541673613264,
//   draw: 0.252533180170396,
//   away: 0.089924594462736
// }
 
console.log(probabilities.scores[1][0]) // Probability of a 1-0 result
// 0.2300324502673927
 
console.log(probabilities.over['2.5']) // Probability of over 2.5 goals
// 0.2895346409101279
 
console.log(probabilities.btts.yes) // Probability of both teams to score
// 0.2429353553660894
 

For more examples, see examples.

FAQ

How does it work?

There are plenty of articles available that go into depth about basic poisson prediction. Essentially the library parses a series of match results and provides functions to return a rough percentage likelyhood of various outcomes of a match between two teams.

Further reading:

Isn’t it called football?

Yes, but football-predictor seems too ambigious. Everyone knows what soccer is.

Dependents (0)

Package Sidebar

Install

npm i soccer-predictor

Weekly Downloads

2

Version

0.0.2

License

CC0-1.0

Last publish

Collaborators

  • cookpete