Prop Hunter
Ranks player props against their own history to surface mispriced lines, behind a two-line composed file that is deliberately two lines.
/prophunter · src/composed/prophunter
Ranks a player's props against that player's own history, so a line is judged against what the player usually does rather than against the field.
A two-line file on purpose
export default function PropHunter() {
return <PropHunterView {...usePropHunter()} />;
}The state is usePropHunter, the markup is PropHunterView, and this is the
seam the route renders. Like
Value Bets V2, the surface is large enough
that a hand-written prop list would be longer than most components and would
need editing twice for every change — so the boundary is a hook, and the file
that joins them is as thin as it can be.
Reading it
Start at use-prop-hunter.ts. Every request, parser and derivation is there,
and the view underneath cannot reach the network — so anything the board does
is in the hook, and anything it looks like is in the view.