[ Removed by Reddit ]
[ Removed by Reddit on account of violating the content policy. ]
[ Removed by Reddit on account of violating the content policy. ]
[ Removed by Reddit on account of violating the content policy. ]
I'm a data analyst by day. About 18 months ago I got tired of losing on props by going with my gut, so I started treating it like a work problem. Built a Postgres database that ingests box scores via the NBA stats API, PrizePicks lines from a scraper I wrote, and rotation data from a combo of the NBA's hustle stats endpoint and pbp stats. Everything is timestamped and versioned so I can re-run any historical window.
The dataset: 412 regular season games from Nov 2024 through April 2025, plus the same window for the 2023-24 season for validation. Every starter and 6th man. Points, rebounds, assists, 3PM, and steals+blocks. That's roughly 4,800 player-game rows per season.
Here's what held up across both seasons.
Edge 1: High-usage guards on back-to-back unders (PTS and AST)
I defined "high-usage" as >26% usage rate per Cleaning the Glass. Then I filtered for guards playing their 2nd game in 2 nights where they played >30 min the night before.
2023-24 season: 87 qualifying player-games. Under hit on points at 58.6%. Under hit on assists at 61.2%. Average line on points was 22.4, average actual was 19.1. That's a -3.3 delta.
2024-25 season: 91 qualifying player-games. Under on points: 56.0%. Under on assists: 59.3%. Average line 22.8, average actual 20.0. Delta: -2.8.
The edge compressed slightly year over year but stayed significant. For context, a 57% hit rate at -110 implies a 4.5% ROI. Over a season with maybe 2-3 of these spots per week, that's ~60 bets. At 1 unit each, you're looking at +2.7 units on average. Not life-changing, but it's free money if you're disciplined.
The mechanism is pretty obvious when you think about it: these guys are running the offense, carrying the ball up, taking the tough shots. On night 2 after 32+ minutes of that, the legs go first. Shot velocity drops. They settle. Assists dry up because they're not driving and kicking as hard. The books shade maybe 0.5 points from the normal line but the real performance hit is 2-3x that.
Specific example: Ja Morant, Dec 14 2024 (2nd night of B2B after 34 min vs IND). Line was 24.5 points. He put up 16 on 6-of-17 shooting with 4 assists (line was 7.5). Under both by a mile. This pattern repeated for Shai, Fox, Maxey, Brunson. The only guys who seemed immune were LeBron (he's a freak) and occasionally Luka (who will literally shoot his way into volume regardless of fatigue, but his efficiency tanks).
Edge 2: Rest-advantage overs for big men (REB only)
This one surprised me. I expected rest advantage to matter more for guards given the running, but the rebounding edge for well-rested bigs was actually cleaner.
Filter: Centers and PFs with >24 min/g, coming off 2+ days rest, facing a team on a B2B. Rebounds line only.
2023-24: 104 qualifying games. Over hit 54.8%. Average line 9.2, average actual 10.1. Delta +0.9.
2024-25: 98 qualifying games. Over hit 56.1%. Average line 9.4, average actual 10.4. Delta +1.0.
Why this works: When the opponent is on a B2B, their guards are slower getting back in transition, their bigs are slower to box out, and there are more live-ball rebounds available in general because shooting percentages drop on B2Bs too. The well-rested big feasts on the chaos. It's not that he's playing better, it's that the environment creates more available rebounds.
I watched this play out in real time with Domantas Sabonis on March 3, 2025. Kings had 2 days rest. Hawks were on a B2B. Sabonis line was 11.5 rebounds. He grabbed 19. Wasn't even close. The Hawks bigs looked like they were moving in sand.
Edge 3: The 0.5 point line move signal
I tracked every prop line from open to close for the 2024-25 season using 15-minute snapshots. When a player prop line moved 0.5 points or more from open to game-time close, the direction of the move correlated with the result at 59.3% across 1,240 qualifying moves.
That number is absurd if you think about what it means. The books are adjusting because sharp money came in, and that sharp money is right almost 60% of the time. If you could just ride the coattails of line moves that size, you'd have a 7% edge at -110 without doing any analysis of your own.
The problem: detecting the move requires checking the line multiple times between open and close. I automated it. If you can't automate it, set a reminder to check PrizePicks and DraftKings at open and then again 90 minutes before tip. If the line moved 0.5+, ride it. If it didn't, pass.
One important caveat: this edge is stronger on totals and spreads than on player props specifically. On player props the sample is smaller and the noise is higher. But the direction holds.
What doesn't work (despite what you've heard):
Home/away splits: I ran a paired t-test on every starter's home vs away performance. Out of 143 qualifying players, 21 had a statistically significant difference (p < 0.05). That's 14.7%. Almost exactly what you'd expect by random chance at a 0.05 threshold. The "home court advantage" for individual player props is largely a myth.
"Trending" overs/unders: A player going over 4 out of 5 games has zero predictive value for game 6. I checked. The over rate for players coming off 4+ overs in their last 5 was 51.2%. That's coin flip territory. Recency bias is the single most expensive cognitive error in prop betting.
I'm happy to share the SQL queries or the schema if anyone wants to replicate this.