How we calculate

The arithmetic behind every number, with a worked example for each. It is history and maths, not advice. 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.

Formula hit rate=hitsgames

Hits are games strictly past the line; games are the counted games. A tie counts as a game, not a hit.

The same formula with real numbers
  1. Games past the 24.5 line31, 25, 27, 30, 26, 28 → 6 hits
  2. Games counted10
  3. Hit rate6 ÷ 10 = 60%
Ten games as bars against the 24.5 line. Six bars (31, 25, 27, 30, 26, 28) are past it; four (22, 19, 24, 18) are not. 24.5 31 22 25 19 27 24 30 26 18 28 6 of 10 past the line solid = hit, outlined = not
Each bar is one game's stat, from zero. Solid bars are past the dashed 24.5 line.

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. If we ever use a many-book average instead of Pinnacle for a line, the card says so; that is not yet switched on.

Formula · multiplicative method p1= 1o1 1o1+1o2 Formula · additive method p1= 1o1− 1o1+1o2−1 2

o1 and o2 are the decimal odds on the two sides. We keep the lower of the two methods for each side.

The same formula with real numbers
  1. Implied chance, each side at 1.90911 ÷ 1.9091 = 0.5238
  2. Total of both sides0.5238 + 0.5238 = 1.0476
  3. Multiplicative0.5238 ÷ 1.0476 = 0.5000
  4. Additive0.5238 − (1.0476 − 1) ÷ 2 = 0.5000
  5. Fair chance, lower of the two50.00%
Two sides each implying 52.38% total 104.76%, which is 4.76% over 100%. After dividing by the total, each side is 50%. As quoted: 104.76% 52.38% 52.38% 100% 4.76% margin Margin removed: 100% 50.00% 50.00%
Drawn to scale. Both sides together run to 104.76%; dividing by that total brings each back to 50%.

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.

Formula EV=p×d−1

p is the fair chance (lower of the two methods), d the book's decimal odds. Always rounded down.

The same formula with real numbers
  1. Pinnacle 1.8333 and 2.0000: lower fair chance of the 2.0000 sidemin(0.47826, 0.47727) = 0.47727
  2. Fair chance × book odds0.47727 × 2.15 = 1.02613
  3. Take away the stake1.02613 − 1 = 0.02613
  4. Edge, rounded down+2.61%
Number line of decimal odds. The fair price is 2.095 and the book offers 2.15, which is 2.61% above the fair price. 2.002.052.102.152.20 Fair price 2.095 Book price 2.15 +2.61%
Decimal odds on a line. The fair price is 1 ÷ 0.47727 = 2.095; the shaded gap to the book's 2.15 is the edge.

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.

Formula · is there a gap ∑i1di<1 Formula · stake share and gap si= 1di ∑j1dj gap=1∑i1di−1

di is the decimal odds of side i at its best book.

The same formula with real numbers
  1. Side 1, 2.101 ÷ 2.10 = 0.4762
  2. Side 2, 2.051 ÷ 2.05 = 0.4878
  3. Total, under 1?0.4762 + 0.4878 = 0.9640 < 1
  4. Stake share, side 10.4762 ÷ 0.9640 = 49.39%
  5. Stake share, side 20.4878 ÷ 0.9640 = 50.60%
  6. On $100, rounded down$49.39 and $50.60
  7. Gap, rounded down1 ÷ 0.9640 − 1 = 3.73%
Two inverse odds, 47.62% and 48.78%, stacked to 96.40%, which is 3.60% short of 100%. 47.62% 48.78% 100% 1 ÷ 2.10 1 ÷ 2.05 96.40% in total 3.60% short of 100%
Each bar is 1 ÷ the odds, drawn to scale. Stacked, they stop short of 100%: that is the gap.

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 Ontario-licensed sportsbooks are compared.

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.

Formula · fractional Kelly f*= b×p−qb size=k×f*,capped at 5%

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).

Formula illustration with made-up numbers
  1. Odds 2.00, fair chance 52%b = 2.00 − 1 = 1 · q = 1 − 0.52 = 0.48
  2. Full Kelly(1 × 0.52 − 0.48) ÷ 1 = 4%
  3. Half Kelly (k = 0.5)0.5 × 4% = 2%
  4. Of a $1,000 bankroll2% × $1,000 = $20
Full Kelly is 4% of the bankroll, half Kelly is 2%, and the cap is 5%. Full Kelly: 4% of bankroll Half Kelly: 2%, or $20 of $1,000 5% cap
Share of bankroll, drawn to scale from zero.

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.

For adults 19+ in Ontario, Canada only. Need to talk to someone? ConnexOntario, free and 24/7: 1-866-531-2600 · Responsible Use