How we calculate
The arithmetic behind every number, with a worked example for each. For how games are counted, see How we count.
Educational explanation of our method. It is not advice, a prediction or a promise of profit. Past results do not guarantee future results. Prices change and may be wrong; we take no bets and hold no funds. This page describes how the app works as of October 6, 2026 and may change.
On this page
Hit rates#
"7 of last 10" means that in the 10 most recent counted games, the player's stat was past the line 7 times. For an "over" line, past means strictly higher; for an "under", strictly lower. A game that lands exactly on the line is a tie: it counts as a game played but not as a hit. Example: line 24.5 points, last 10 games of 31, 22, 25, 19, 27, 24, 30, 26, 18, 28 gives 6 overs (31, 25, 27, 30, 26, 28), so 6 of 10, or 60%. Where no sportsbook line exists, the line is set near the player's recent average (marked ≈), so that hit rate shows how often the player beat their own recent form, not a sportsbook's line.
Hits are games strictly past the line; games are the counted games. A tie counts as a game, not a hit.
- Games past the 24.5 line31, 25, 27, 30, 26, 28 → 6 hits
- Games counted10
- Hit rate6 ÷ 10 = 60%
The fair price#
A sportsbook's two prices include its margin, so the chances they imply add up to more than 100%. We take Pinnacle's prices and remove that margin ("de-vig"). Example, both sides at −110 (decimal 1.9091): each side implies 1 ÷ 1.9091 = 52.38%, the total is 104.76%, and dividing each side by the total gives 52.38% ÷ 104.76% = 50.00% each. That is the multiplicative method. We also run the additive method (take half the extra 4.76% off each side) and, for each side, keep the lower of the two, so the choice of method can never make an edge look bigger. The chances on all sides can add up to slightly under 100% for that reason.
Prices older than 6 hours at build time are not used as the reference. When a player prop has no fresh two-sided Pinnacle price, we may instead use an average of the books that priced both sides: each book's two prices get their own margin removed, and we keep the lower of the middle value and the mean, with at least 4 books required. Those cards say “Average of N books, margin removed” (N is the number of books averaged) and never name Pinnacle; cards that use Pinnacle say “Reference price (Pinnacle), margin removed”. Averages of many books are a weaker reference than a single sharp book, so read those cards with extra care.
o1 and o2 are the decimal odds on the two sides. We keep the lower of the two methods for each side.
- Implied chance, each side at 1.90911 ÷ 1.9091 = 0.5238
- Total of both sides0.5238 + 0.5238 = 1.0476
- Multiplicative0.5238 ÷ 1.0476 = 0.5000
- Additive0.5238 − (1.0476 − 1) ÷ 2 = 0.5000
- Fair chance, lower of the two50.00%
Positive EV %#
Edge = fair chance × decimal odds − 1. Example: Pinnacle prices a game at 1.8333 and 2.0000. The fair chance for the 2.0000 side works out to 47.72%. A book offers that side at 2.15. Then 0.47727 × 2.15 − 1 = 0.0261, shown as +2.61%. It compares a price with a fair price; it does not say what will happen.
Every percentage and money figure is rounded down, never up (2.6136 shows as 2.61, never 2.62; −3.7601 shows as −3.77). We also shade toward the worst case: the lower fair chance of the two methods above. If a figure is going to be off, it should be off on the small side.
p is the fair chance (lower of the two methods), d the book's decimal odds. Always rounded down.
- Pinnacle 1.8333 and 2.0000: lower fair chance of the 2.0000 sidemin(0.47826, 0.47727) = 0.47727
- Fair chance × book odds0.47727 × 2.15 = 1.02613
- Take away the stake1.02613 − 1 = 0.02613
- Edge, rounded down+2.61%
Why you will rarely see +40% here#
Large gaps against Pinnacle are almost always a misquote or a stale price, not a real opening. On moneylines we leave out any price more than 15% above fair. When player-prop prices are switched on, a gap over 15% on a player prop appears only if at least 5 books price the line, the offering quote is under 30 minutes old and it stands well clear of the other books, and it is marked as an outlier; above 60% we treat it as a data error. A day with nothing on the board is the normal result, and we say so rather than fill the screen.
Arbitrage#
Add up 1 ÷ the decimal odds of every side, each at its best book. Under 1, the prices disagree enough that pricing every side would return more than the total stake on paper. Example: 2.10 at one book and 2.05 at another. 1 ÷ 2.10 = 0.4762 and 1 ÷ 2.05 = 0.4878, which total 0.9640. The gap is 1 ÷ 0.9640 − 1 = 3.73%. The stake split is each side's share of that total: on $100, $49.39 on the 2.10 side and $50.60 on the 2.05 side (shares of 49.39% and 50.60%), so each side pays back about $103.73 on paper. This is before fees, limits and price changes. It is an illustration of the arithmetic, not a result you should expect: prices move and books limit or void bets.
All sides must be quoted within 10 minutes of each other, and results under 0.1% are hidden.
di is the decimal odds of side i at its best book.
- Side 1, 2.101 ÷ 2.10 = 0.4762
- Side 2, 2.051 ÷ 2.05 = 0.4878
- Total, under 1?0.4762 + 0.4878 = 0.9640 < 1
- Stake share, side 10.4762 ÷ 0.9640 = 49.39%
- Stake share, side 20.4878 ÷ 0.9640 = 50.60%
- On $100, rounded down$49.39 and $50.60
- Gap, rounded down1 ÷ 0.9640 − 1 = 3.73%
Price age#
Every price shows how old it is, because prices move. After an hour the age turns amber. After 3 hours a price that would have shown as clearing your minimum shows as pending instead, and the sizing figure is hidden. After 26 hours the price is hidden. Only sportsbooks licensed in your province or state are compared, never offshore ones.
Position-sizing calculator#
It turns your own inputs into a number using a fraction of the Kelly formula. Example: fair chance 52%, decimal odds 2.00, so full Kelly is (1 × 0.52 − 0.48) ÷ 1 = 4% of the bankroll. At half Kelly that is 2%, or $20 of a $1,000 bankroll (capped at 5%). It is arithmetic on numbers you provide, not advice, and it switches off once a price is old. Stake size is your own decision; the formula assumes the fair chance is exactly right, and it never is.
p is the fair chance, q = 1 − p, b = d − 1 for decimal odds d, and k the fraction (1 full, 0.5 half, 0.25 quarter).
- Odds 2.00, fair chance 52%b = 2.00 − 1 = 1 · q = 1 − 0.52 = 0.48
- Full Kelly(1 × 0.52 − 0.48) ÷ 1 = 4%
- Half Kelly (k = 0.5)0.5 × 4% = 2%
- Of a $1,000 bankroll2% × $1,000 = $20
Past results, not predictions#
Hit rates and trends describe games that already happened. We do not predict games, make picks or say what to bet.
Educational explanation of our method. It is not advice, a prediction or a promise of profit. Past results do not guarantee future results. Prices change and may be wrong; we take no bets and hold no funds. This page describes how the app works as of October 6, 2026 and may change.