Player props edge — matchup × pace × rate
A prop line is a book's projection wearing a price tag. To find edge you need your own projection and a way to compare the two in the same units. This lesson builds that projection from three inputs — matchup, pace, and rate — then walks the arithmetic from raw stat line to an edge percentage you can size against.
Why per-game averages lie
The number on the broadcast graphic is points per game, and it is the worst input you have. Per-game production bundles three separate things into one number: how good the player is, how many minutes he plays, and how fast his team plays. A player averaging 9.2 rebounds tells you almost nothing until you know whether that came in 24 minutes or 34, and whether his team ran 95 possessions a night or 103.
Split it into a rate and an opportunity, and each piece behaves differently. Rates are sticky — per-minute rebounding barely moves week to week. Opportunity is volatile — minutes swing on foul trouble, blowouts, rest, and injuries, sometimes by 30% overnight. Books model both. They weight the volatile half too slowly, and that lag is where player props edge lives.
The framework, in one line:
Projection = rate × projected opportunity × pace adjustment × matchup adjustment
Rate — the player's own production per unit of opportunity
Divide the season line by the denominator that actually generated it. Our example player: 9.2 rebounds in 27.0 minutes.
9.2 / 27.0 = 0.341 rebounds per minute
That is his rate. For scoring and assists you often want a finer denominator — per 100 possessions, per touch, per route run in the NFL. Usage rate (the share of his team's possessions a player finishes with a shot, free-throw trip, or turnover while on the floor) is the cleanest version for basketball scoring props.
Whichever denominator you pick, per-minute and per-possession rates predict better than per-game averages, because they survive the thing that changes most: how much the player plays.
Two guardrails. Use enough sample that the rate is stable — a full season, or 15 games minimum in the current role. And recompute it when the role changes; a player moved from bench to starter often changes rate as well as minutes.
Pace — the denominator everyone forgets
Pace is possessions per game. It sets how many chances exist for anyone to do anything.
Our player's team runs 98.5 possessions per 48 minutes; tonight's opponent runs 103.5. Games land between the two, usually closer to the faster team's style than a naive average suggests, but a midpoint is a fine first estimate: call it 101.0 possessions. Against his own team's baseline that is a pace multiplier of 101.0 / 98.5 = 1.025.
A 2.5% bump sounds trivial. It is not — it applies to every counting stat in the game and stacks with the other two factors. In football the same logic runs on plays; in hockey, on shot attempts.
Matchup — what the defense concedes to this role
Matchup adjusts for who is on the other side, and the useful version is rate allowed to the position or role, not overall defensive rank. A team can be elite overall and still concede rebounds to opposing forwards, because their scheme sends guards to help and leaves the glass. Ask the specific question: what does this defense give up, per possession, to the exact role your player occupies?
Say the opponent concedes rebounds to opposing forwards at 4% above league average. Matchup multiplier: 1.04.
Keep these modest. Position-level defensive splits are noisy, and a multiplier outside roughly 0.90-1.10 usually means you are reading small-sample noise as signal.
The worked projection
Put the three factors together with projected minutes. Our player's starting forward is questionable, and the beat reporting suggests a modest bump: project 31 minutes rather than his 27.0 season average.
- Rate: 0.341 rebounds per minute
- Opportunity: 31 minutes
- Pace: × 1.025
- Matchup: × 1.04
0.341 × 31 = 10.57 10.57 × 1.025 = 10.83 10.83 × 1.04 = 11.26 projected rebounds
The line is over 10.5. Our projection clears it, but a projection is a mean, not a probability. You need the distribution.
Pull his game-log standard deviation — say 3.9 rebounds. Counting stats are not perfectly normal, but near the middle of the distribution a normal approximation is close enough to price with.
z = (10.5 − 11.26) / 3.9 = −0.195
The probability of landing above 10.5 is therefore about 57.7%. That is your fair probability. Now go get the market's.
Devig the market and compute the edge
Your reference book posts Over 10.5 at -130, Under 10.5 at +105. Convert both to implied probability:
- Over: 130 / (130 + 100) = 56.52%
- Under: 100 / (105 + 100) = 48.78%
They sum to 105.30%. That extra 5.30% is the hold — the book's margin, also called vig or juice. Strip it out by scaling each side down proportionally (equal-multiplier devigging, Lesson #7):
56.52 / 105.30 = 53.68% no-vig on the over
So the market's honest estimate is 53.7%. Yours is 57.7%. That is a 4.0 percentage-point disagreement — but the number that matters is the best price you can actually get, not the reference book's.
Across the stack, the best available over 10.5 is -120 at another book. Implied: 120 / 220 = 54.55%, decimal 1.8333.
Edge % = (fair probability × decimal odds) − 1 = (0.577 × 1.8333) − 1 = 1.058 − 1 = +5.8%
Sanity-check it in dollars. On $100 at -120 you win $83.33 or lose $100:
(0.577 × $83.33) − (0.423 × $100) = $48.08 − $42.30 = +$5.78 per $100
Same answer. That is a real prop edge, and it is the exact calculation to size against — half-Kelly by default, quarter-Kelly if the minutes projection is shaky, never past the 5% bankroll cap.
Why usage shifts move the number most
Rerun the projection with one change. The questionable forward is ruled out, and your minutes projection goes from 31 to 35. Nothing else moves.
0.341 × 35 = 11.94 → × 1.025 = 12.24 → × 1.04 = 12.73 projected rebounds
z = (10.5 − 12.73) / 3.9 = −0.572, which puts the fair probability at about 71.6%.
Edge at that same -120: (0.716 × 1.8333) − 1 = +31.3%.
Now compare the three levers head to head, holding everything else at the base case:
| Change | Fair probability | Move vs. base |
|---|---|---|
| Base case (31 min) | 57.7% | — |
| Four extra minutes (35 min) | 71.6% | +13.9 pts |
| Matchup multiplier 1.04 → 1.00 | 53.4% | −4.3 pts |
| Pace multiplier 1.025 → 1.00 | 55.0% | −2.7 pts |
That table is the lesson. A four-minute usage shift is worth more than three times the entire matchup adjustment and five times the pace adjustment. Injury news is the largest single mover of prop value, because it changes the denominator rather than nudging a multiplier — and it often changes rate too, when a player inherits a bigger role rather than just more clock.
It is also the most competitive edge, because the books know. The window between a rule-out hitting the wire and the slow books reposting is where this projection turns into a bet (Lesson #16).
Running this at scale
You can do the arithmetic above by hand for one player. There are several hundred priced props on a normal night, and the interesting ones are rarely the players you were already watching.
That is what the Proptimizer is for. It scans 100+ sportsbooks continuously at roughly 50ms refresh, computes the no-vig probability for every player prop, compares it to the best available price, and reports edge % and hold % per row alongside where that price lives. It runs the devig-and-compare half of this lesson for the whole slate at once.
The projection half stays yours. The tool says a number is mispriced against consensus; your matchup, pace, and rate work says whether consensus is the thing that is wrong. Sort by edge, then discard every row where you cannot explain why the number is stale. What survives is the bet.