METHODOLOGY
Every day at 3:00 PM US/Eastern, the system pulls live NBA data from ESPN, computes each available player’s real last-10-game averages in points, rebounds, and assists, then ranks them by stability and locks a three-leg parlay whose lines are intentionally shaded under each player’s recent floor.
Daily auto-fire at 3:00 PM ET
A scheduled Heartbeat cron fires the generator at exactly 15:00 America/New_York. The fresh slate is published to the dashboard immediately.
Pull tonight's slate from ESPN
The generator hits ESPN's public NBA scoreboard for the target date, then fetches the active roster of every team playing that night.
Real last-10 game logs
For every rostered player, the generator pulls their full season game log from ESPN, drops DNPs (0 minutes), and computes the true average / floor / ceiling for points, rebounds, and assists across their 10 most recent played games.
Rank by stability, then shade the line
In each of the three categories, the player with the highest stability score (avg ÷ stdev) is chosen — the most consistent, lowest-variance performer. Then the conservative line-shading rule below is applied to set the OVER number well below his last-10 floor.
avg = mean( last_10_games ) min = min( last_10_games ) buffer = max( round(avg * 0.25), 2 (points) or 1 (rebounds/assists) ) raw_line = avg - buffer safe_cap = min - 0.5 // never above any of the L10 games line = min( raw_line, safe_cap ) // snap to FanDuel-style .5 line, floor at 0.5 suggested = floor(line) + 0.5 side = OVER
Worked example from the user’s spec: a player who averages 20 points across his last 10 gets a buffer of 5 (25% of 20), producing a raw line of 15. Snapped to the .5 format that FanDuel uses, the suggested bet becomes OVER 14.5 PTS — a line below every one of his last 10 games.
| COMPONENT | SOURCE |
|---|---|
| Tonight’s NBA schedule | GET site.api.espn.com/.../nba/scoreboard |
| Team rosters (both sides of each game) | GET site.api.espn.com/.../nba/teams/{teamId}/roster |
| Per-player full game log (PTS / REB / AST per game) | GET site.web.api.espn.com/.../athletes/{id}/gamelog |
| Daily 3 PM ET trigger | Manus Heartbeat scheduled task |
| Slate persistence (date + picks + raw L10) | Project MySQL/TiDB database (Drizzle ORM) |
| One-line parlay summary | LLM (Manus built-in Gemini) — cosmetic only, all numbers come from ESPN |
Disclaimer. ESPN’s game-log feed is a near-real-time feed of completed games, not a live injury report. Always cross-check tonight’s active list and lineup news on FanDuel or the team’s official sources before placing any bet. All content is for entertainment only. 21+. If you or someone you know has a gambling problem, call 1-800-GAMBLER.