oddsjs
This package provides helper methods to convert between different odds types, calculate overall odds of single and multiple/parlay bets, etc.
NOTE: All methods in this package return instances of the main object in
bignumber.js, or BigNumber
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 using
toString()
,
toFixed(n)
,
toNumber()
, or others.
Install
npm install --save oddsjs
Usage
This package exposes a factory function Odds(options)
that takes an optional options object.
Options
-
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)
Methods
-
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) -
getAmericanOddsFromOverall(overallOdds) => BigNumber
: Takes overall odds (also the output ofcalculateOdds
) and returns a american odds representation of the odds. -
getFractionalOddsFromOverall(overallOdds) => BigNumber
: Takes overall odds (also the output ofcalculateOdds
) and returns a fractional odds representation of the odds.
Example
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