Fix unrostered players outranking real value picks
Found live: Tyreek Hill (no longer on any team) still projected as a WR34-caliber starter (158 pts) off last year's box score, surfacing as a huge false "value" pick in best_available's value sort since his real market ADP had already crashed to reflect his roster status but his model projection hadn't. The existing stale-season check (4a20af8) only fires when last_season lags the board's freshest players, which doesn't catch someone who played a full slate as recently as anyone else but has since been cut or retired mid-cycle. apply_current_team now flags off_roster: True for a player absent from a populated depth chart (every team has filed one, he's on none of them. project() applies the same 0.4x discount used for one stale season, and attach_adp's synthetic-ADP fallback treats it as one stale-season-equivalent too, so a player without real market ADP gets buried the same way. Verified: Hill's projection drops 158->63 pts, rank 70->217, VOR flips positive to -78.7 -- no longer surfaces as a value pick. Top-10 overall board is byte-identical before/after, so rostered players are untouched. Full suite (91 tests) passes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> EOF )
Z
zacharytran26 committed
1753e385ee169b4b4106161887790a1a9495650e
Parent: 4f62358