EV calculator
EV calculator for sports bets: enter the odds and your fair probability or the fair odds, and get the expected value per bet, the edge and the break-even price.
Expected value, edge and break-even price for a bet, from the odds and your fair probability.
The calculator runs in your browser with JavaScript; the formulas it uses are explained below.
An EV calculator tells you what a bet is worth on average. Enter the odds a book is offering and your estimate of the true probability, or the fair odds from a no-vig calculation, and it returns the expected value per bet, the edge as a percentage of the stake, and the break-even price: the shortest odds at which the bet still pays its way. Below: the inputs and outputs, the betting EV formula, two worked examples, the mistakes that make an edge look bigger than it is, and how to get both inputs from the API.
How to use the EV calculator
There are two inputs, plus an optional stake:
- The odds offered, in American, decimal or fractional format, at the book where the bet would be placed.
- The fair probability or the fair odds. This is the estimate of the outcome's true chance. Most people take it from a sharp book's no-vig price or a consensus across books; a well-calibrated model works too.
- A stake, if you want the result in money rather than percent.
It returns three numbers:
- Expected value per bet: the average profit or loss at that stake over many bets like it.
- Edge: expected value as a percentage of the stake.
- Break-even price: the fair odds. A longer price has positive expected value, a shorter one negative.
Used as a positive EV calculator, the question becomes simple: is the offered price longer than the break-even price? If it is, the edge is above zero.
The betting EV formula
With decimal odds D, fair probability p and stake S:
EV = p × (D − 1) × S − (1 − p) × S
= S × (p × D − 1)
edge = p × D − 1
break-even probability = 1 / D
break-even (fair) price = 1 / p (decimal odds)
The first line is the textbook version: the chance of winning times the profit, minus the chance of losing times the stake. It simplifies to one multiplication, the edge formula the MCP find_outliers tool uses. If you have fair odds rather than a probability, convert them first: p = 1 / fair decimal odds.
Worked example 1: an underdog priced above fair
A sharp book has a game at -165 / +140. De-vigged with the multiplicative method in the no vig calculator, the underdog's fair probability is 40.09%, fair odds +149.4. Another book offers the underdog at +155, decimal 2.55.
- Edge: 0.4009 × 2.55 − 1 = 0.0223, or 2.23%.
- Expected value on a $100 stake: $2.23.
- Break-even price: 1 / 0.4009 = 2.494, or +149.4.
On average, bets like this return $2.23 per $100 staked, yet any single one still loses about 60% of the time. With the additive no-vig method the fair probability is 39.70% and the edge falls to about 1.24%, a reminder that the edge is only as precise as the fair probability behind it.
Worked example 2: a prop priced below fair
A pitcher's strikeouts, Over 6.5. The consensus fair probability of the over, from several books' no-vig prices, is 53.5%. One book offers the over at -125, decimal 1.80.
- Edge: 0.535 × 1.80 − 1 = −0.037, or −3.7%.
- Expected value on a $50 stake: −$1.85.
- Break-even probability at -125: 1 / 1.80 = 55.56%. Break-even price for a 53.5% chance: 1 / 0.535 = 1.869, about -115.
The over is more likely than not to hit, but the price is shorter than fair, so the bet loses money on average. A likely outcome isn't the same as a good price; the expected value calculator measures the price against the probability.
Common mistakes
- Using the offering book's own probability. That probability includes the book's margin, so the result always comes out negative.
- Comparing different lines. A fair probability for Over 6.5 says nothing about Over 7.5. Match the line exactly.
- Trusting stale prices. A large apparent edge is more often a price one book hasn't moved yet, or has already pulled, than a real opportunity.
- Ignoring limits. Books limit accounts that keep taking prices above fair, so an edge on paper may not be available at any size.
- Judging by short-term results. Expected value is a long-run average. A 2% edge on a +155 price swings widely over a few hundred bets.
Getting the inputs from the API
Both inputs come from odds data. For the fair probability, pull a sharp book with format=probability and de-vig it. For the offered price, /v1/best-lines returns the best price per outcome across every sportsbook and exchange at identical lines, with best_books naming where it is.
const headers = { Authorization: `Bearer ${process.env.PRECISEAPI_KEY}` };
const base = 'https://api.preciseapi.com/v1';
const [sharp, best] = await Promise.all([
fetch(`${base}/odds?league=nba&markets=moneyline&books=pinnacle&format=probability`, { headers }).then((r) => r.json()),
fetch(`${base}/best-lines?league=nba&markets=moneyline&format=decimal`, { headers }).then((r) => r.json()),
]);
// Fair probability per event and side, from Pinnacle's no-vig moneyline.
const fair = new Map();
for (const e of sharp.data) for (const b of e.bookmakers) for (const m of b.markets) {
const total = m.outcomes.reduce((s, o) => s + o.price, 0);
for (const o of m.outcomes) fair.set(`${e.id}|${o.side}`, o.price / total);
}
for (const e of best.data) for (const m of e.markets) for (const o of m.outcomes) {
const p = fair.get(`${e.id}|${o.side}`);
if (p) console.log(o.name, o.best_price, o.best_books.join(', '), `edge ${((p * o.best_price - 1) * 100).toFixed(2)}%`);
}
There is no /v1/ev endpoint: the calculation runs on your side, so you choose the reference book and the de-vig method. A /v1/odds call costs 2 credits and a /v1/best-lines call 3. The positive EV API page walks through the full workflow, and on the MCP server the find_outliers tool scans a league for prices above the no-vig consensus or a sharp book and ranks them by edge. Prices move and books limit winning players, so verify every number at the book before betting.
Frequently asked questions
What is a good EV percentage?
There's no fixed threshold. Large apparent edges on main markets are rare, and they usually turn out to be a stale price or a mismatched line. Check the price at the book and the timestamps before treating an edge as real.
What is the difference between expected value and edge?
Edge is expected value divided by the stake. An expected value of $2.23 on a $100 bet is a 2.23% edge.
Where should the fair probability come from?
Usually a no-vig price from a sharp book such as Pinnacle, or the median of several books' no-vig prices. A model's probability also works if it is well calibrated against results.
Does the EV calculator work for parlays?
For independent legs, multiply the legs' fair probabilities and their decimal odds, then apply the same formula. Same-game parlays have correlated legs, and their prices aren't in the feed. API access for the inputs starts on Edge; see pricing.
More calculators
- Implied probability calculator: Turn American, decimal or fractional odds into implied probability, and convert between formats.
- No vig calculator: Remove the vig from a two- or three-way market to get the hold, fair probabilities and fair odds.
- Arbitrage calculator: Check whether the best prices on each side make an arb, and split a stake across the legs.
- All sports betting calculators