← All findingssource · memory/project_public_board_kelly_gate_empties_card.md
Found 2026-08-28 (user: "games start in 1 hour, why is nothing there?").
- The public Board (
nightly-picks/src/lib/picks-data.tsactionableStake, since the 2026-08-09..11 "align public data surfaces" commits) renders ONLY rows whosekelly_stake_units > 0. Zero/missing stake → hidden. When nothing survives the page shows "CORE CHECKED · NO ACTIONABLE EDGE". - Kelly (grading
internal/kelly, fraction 0.25,MinFullKellyEdge=0.01) is computed from grade_v2'sp_hitvs the captured price. grade_v2 ≈ market (AUC 0.506, project_decision_layer_audit) → p_hit ≈ implied → edge < 1% → stake 0 for nearly everything. Tonight's 17 CORE picks: p_hit 0.48–0.55 vs implied 0.50–0.59, all kelly=0. - Last 7 nights, picks actually published on the board: 8/22 0/21, 8/23 2/32, 8/24 0/18, 8/25 1/19, 8/26 1/9, 8/27 1/9, 8/28 0/17. Five picks in a week.
- The +71u "system" is NOT what the board shows. The record is the flat-1u benchmark of every priced CORE pick (marketing copy says so explicitly); the Board is the Kelly subset. The retro already measured that the Kelly gate refused +57u (project_two_month_retro_2026_08).
- The API still returns all CORE rows (grading
nightly_picks.gokeeps zero-stake rows, ranked "least bad"); the hiding is purely frontend. - Timezone red herring: the user's Mac is CEST, so at 00:46 local the "today" page is
8/29 (empty, correct — tomorrow's slate) while tonight's games are the 8/28 ET slate. The
site resolves today via
todayET()correctly; bare/wnba(no date) is a 404 becausesrc/app/[league]/page.tsxnever existed — nav never links there, minor.
Timeline (verified in nightly-picks git, 2026-08-28): until 2026-07-09 the Board showed every CORE pick at the tier default (1u core / 0.5u list) — the same population as the Ledger. d78fae0 (7/09) swapped in grading's Kelly stake (0 = "don't stake", still rendered). d8a515f (8/09, "align public data surfaces") began HIDING every row with stake <= 0. Board publish counts across August: 8/02 0, 8/05 2, 8/08 1, 8/10 1, 8/12 3, 8/15 0, 8/18 0, 8/20 3, 8/22 0, 8/23 2, 8/24 0, 8/25 1, 8/26 1, 8/27 1, 8/28 0 — near-empty ALL month. The Ledger (nightlypicks.com/ledger?league=wnba) never changed: it lists every priced CORE row (349-244, +64.8u flat-1u, 599 settled as of 8/27), which is why it "always shows data".
DECIDED + SHIPPED 2026-08-28 (option A, nightly-picks 4f85412): actionableStake →
benchmarkStake (0 instead of null; never hides). Board = complete priced CORE rows at the
served floor, one per physical market, caps 4/game 16 total, ranked by grading's
value_flag→value_edge_pct. Slip shows Model stake · 0.0u + Benchmark · 1.0u chip when
Kelly=0; header splits "model stake" from "flat-1u benchmark" units. 20 copy strings in 10
files rewritten (Board ≠ "positively staked subset" anymore). grading's decision envelope
UNCHANGED (still action=PASS for zero-Kelly) — game-page receipts may still read PASS; a
grading PR to say WATCH is the open follow-up. Verified: 225 tests, next build, local render
= 12 slips for 8/28 (17 CORE deduped). Gotcha: in zsh for path in … clobbers $PATH.
Original decision framing: publish the flat-1u CORE feed (the measured system) with Kelly as an annotation, or keep the Kelly-only board that is empty most nights. My recommendation: show CORE; a gate with no ranking power should not decide the whole card.
Related: project_kelly_staking, project_grade_v2_system, project_roi_guard_nightly_tiers.