← All findingssource · memory/project_rank_bucket_endpoint.md
GET /api/v1/clv/by-rank?league=&formula_id=&min_decimal_odds=&since=
answers "does the board's ORDER predict anything?" without anyone
re-deriving it by hand.
Method: keep settled+priced+scored rows clearing the serving floor, rank WITHIN each night by value edge (p_hit x decimal − 1 — the same key the card sorts by), report cumulative buckets top 1/3/5/10 + tail with record, ROI, avg CLV, and a Welch z of each bucket's mean units vs every row below it. Rank is RECOMPUTED from stored inputs, never read back — the card computes rank at serve time, so a stored value would freeze one night's board shape and would not reach pre-ranking history.
First live read (WNBA priced_lineedges, 11 nights, n=170):
| bucket | n | ROI | CLV | z |
|---|---|---|---|---|
| top 1 | 11 | +40.4% | +1.88c | +0.92 |
| top 3 | 33 | +27.8% | +2.15c | +0.82 |
| top 5 | 55 | +22.2% | +1.78c | +0.61 |
| top 10 | 105 | +21.5% | +1.20c | +1.00 |
| rank 11+ | 65 | +6.8% | +0.90c | −1.00 |
| all | 170 | +15.9% | +1.09c | — |
Monotone on BOTH ROI and CLV — but no bucket is significant (need |z|≥1.96). Individual rank slots are pure noise at n≈11 (rank 2 −10%, rank 3 +53%). correlation(edge, units) = +0.04 — the ordering sorts into ordered-looking buckets while barely predicting pick-by-pick.
How to use it: top 3-5 is the defensible band if betting a subset;
believe the CLV column over ROI (steadier at these samples); expect the
buckets to compress toward low single digits as n grows — the whole
board is +15.9% ROI on only ~+1.1c CLV. rank ships on every pick as of
2026-08-04 (grading 243b0fb), so this becomes a FORWARD test from here.
Re-check at ~500 picks. See project_odds_floor_validated.