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
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
- Games past the 24.5 line31, 25, 27, 30, 26, 28 → 6 hits
- Games counted10
- Hit rate6 ÷ 10 = 60%
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
Formula · additive method
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
- 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%
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
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
- 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%
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
Formula · stake share and gap
di is the decimal odds of side i at its best book.
The same formula with real numbers
- 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%
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
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
- 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
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