Stop modeling rebounds as rebounds. Start modeling missed-shot environments and you will have better WR%.
I’ve been building NBA prop models for a while and rebound props have always been one of the more interesting ones to break down.
You can’t just model player averages, minutes, opponent rebounding rank, recent form, line value, etc.
I used to and hit the same roadblock for Rebounds every season, that’s when I found it’s the wrong starting point.
A guy can be an elite rebounder, but if the matchup pulls him away from the rim, the opponent does not miss much, or he is sharing the floor with another rebound vacuum, the average starts lying pretty fast.
I started testing rebound props less like:
“is this player a good rebounder?”
and more like:
“is this game going to create the right kind of rebound chances for his role?”
⚠️ The first filter that stood out was rest advantage for bigs.
Filter:
Centers / PFs
24+ min per game
2+ days rest
opponent on second night of a back-to-back
REB props only
2023-24 season:
104 qualifying games
Over hit 56.8%
Average line: 9.2
Average actual: 10.1
Delta: +0.9 rebounds
2024-25 season:
98 qualifying games
Over hit 58.1%
Average line: 9.4
Average actual: 10.4
Delta: +1.0 rebounds
Not some insane “retire tomorrow” edge, but it held across both seasons and the mechanism makes sense. The rested big isn’t always the better rebounder it’s just the environment is just better. (Not including Wembanyama)
That is the part I think people miss with rebound props.
They look at the player average, but the better question is where the available rebounds are coming from.
A missed rim attempt is not the same as a missed above-the-break three. A corner three does not rebound the same as a pull-up middy. A center guarding a stretch 5 is not in the same rebounding position as a center sitting near the rim all night. Or a forward playing next to a weak rebounding small-ball lineup is not the same as a forward sharing minutes with two glass cleaners.
Same player. Same line. Completely different rebound environment.
Player projects for 32 minutes, opponent creates above-average missed shot volume, matchup keeps him near the rim, no second rebounder is stealing boards, and the line is still priced near his season average.
That is a very edge opened bet.
Curious if anyone on reddit models rebounds this way?
I’m happy to share the SQL filters / schema if anyone wants to replicate it or poke holes in it.