This package provides helper methods to convert between different odds types, calculate overall odds of single and multiple/parlay bets, etc.
npm install --save oddsjs
This package exposes a factory function Odds(options)
that takes an optional options object.
precision
(default 4): a number representing how far to show fractional odds. Another way to look at it is this is the y in1ey
or1 x 10^y
in terms of how precise to show fractional odds (i.e. 12345/10000)
calculateOdds(...americanOdds) => BigNumber
: Takes one or multiple american odds and returns the overall odds. For multiple odds provided it assumes a parlay of events. The total odds can be multiplied by a test wager to see how much would be returned to the bettor if she wins (this amount includes the wager, so total amount returned including the wager amount)- NOTE:
#calculateOdds
returns an instance of the main object in bignumber.js, orBigNumber
in their examples. This is to prevent losing precision when returning final odds before all of your desired transformations are done, but you can convert to a javascript string or number usingtoString()
,toFixed(n)
,toNumber()
, or others.
- NOTE:
getAmericanOddsFromOverall(overallOdds) => String
: Takes overall odds (also the output ofcalculateOdds
) and returns a american odds representation of the odds.getFractionalOddsFromOverall(overallOdds) => String
: Takes overall odds (also the output ofcalculateOdds
) and returns a fractional odds representation of the odds.
import Odds from 'oddsjs'
// or const Odds = require('oddsjs').default
const odds = Odds() // same as `const odds = Odds({ precision: 4 })`
// two team parlay, each with american odds of -110
const twoTeamParlayOdds = odds.calculateOdds(-110, -110)
// returns instance of BigNumber with final odds
twoTeamParlayOdds.toNumber()
// 3.644628099173554
odds.getAmericanOddsFromOverall(twoTeamParlayOdds)
// "+264"
odds.getFractionalOddsFromOverall(twoTeamParlayOdds)
// "320/121"