report: proj-v1.1 takeable-edge proof — NOT PROVEN (n=45 MLB overs)
Read-only proof. N-gate passed (overlap 45). proj-v1.1 edge-CLV partial correlation controlling for price = 0.245 (n.s.); ~half the raw 0.455 is the shared -fair_prob_lock term (mechanical). Champion out-predicts proj on the same rows (champ partial-CLV 0.380 sig; champ-edge->hit 0.25 vs 0.12). Unders contaminated (CLV -9.3); WNBA proj-v1.1 doesn't run. Promotion HELD; the under-audit is moot since proj loses to the champion first. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VsztNChZ7vEvSR61AuMhD1
This commit is contained in:
@@ -53,7 +53,7 @@ Prod endpoints confirmed LIVE + real: `/api/snapshot/{mlb,wnba}`, `/api/accuracy
|
||||
| Champion (engine1) | YES | PARTIAL | YES | YES | `analyzeViaEngine1.js`; `enriched`→`snapshot`/`grades` (`snapshotService.js:674,680`). Measured tiny-n only (~18 MLB/~5 WNBA, "within noise"; WNBA loses) |
|
||||
| arch-v1 | YES | NO | NO | NO | `challengerProjection.js`; rides `withChallenger`→**ledger only** (`:693`). "measured, never served" (`ledgerService.js:251`) |
|
||||
| contact-v1 | YES | NO | NO | NO | `contactChallenger.js`; ledger col `p_win_contact` only |
|
||||
| proj-v1 / v1.1 | YES | NO | NO | NO | `projectionChallenger.js`+`projection/distribution.js`; ledger cols `proj_*` only; nothing outside ledger reads them |
|
||||
| proj-v1 / v1.1 | YES | **NO (tested 2026-07-29)** | NO | NO | `projectionChallenger.js` (MLB-batting only). PROOF ORDER verdict: **NOT PROVEN** on n=45 takeable MLB overs — edge-CLV partial-r (controlling price) = 0.245 (n.s.); ~half the raw signal is the shared −fair_prob_lock term (mechanical); and the CHAMPION out-predicts it (champ partial-CLV 0.380 sig, champ-edge→hit 0.25 vs proj 0.12). Ledger-only |
|
||||
| Champion alt-ladder | YES | NO | YES | Desk-only | `analyzeViaEngine1.js:486`; real re-grades ±1 line; `gradeAdapter.js:100` maps to card **Desk-gated** |
|
||||
| proj-v1 `proj_ladder` | YES | NO | NO | NO | `distribution.js:100`; ledger-only, reaches no card |
|
||||
| Price gate / EV | YES | PARTIAL | PARTIAL | PARTIAL | fields on `enriched`; hero gates on `isTakeable`+`ev_pct` (`heroPropService.js:78`). **But prod grades show ev_pct/p_win/model_odds/value/takeable = NULL** — built, served-schema, not producing |
|
||||
@@ -142,3 +142,21 @@ scorer, pipeline, or real feature touched. Updated HONEST cells:
|
||||
- **CLV instrument REPAIRED 2026-07-28** (commit 6552281). Was: 59 usable closing_prob. Now: **406** (MLB 248, WNBA 158) — the collapse was `attachClosingProb`'s `.limit(50000)`/no-ORDER-BY read + write-once `market_unavailable`, NOT capture (95% per-prop coverage) or the join (0 key mismatches). **CLV finding, straight: MLB unders lag the close (mean −9.1 prob-pts, 74% lose); MLB overs +2.0; WNBA flat.** → the +4.57% MLB-C and over/under asymmetry are substantially stale-line artifacts. This UNBLOCKS the proof order (proj-v1.1), which gates promoting p_win/ev to served grades.
|
||||
|
||||
**Honest state after this order: "no KNOWN live fabrications" — not "provably none."** The audit was thorough (repo + prod), but absence of a claim of falsehood is not a proof of universal truth.
|
||||
|
||||
---
|
||||
|
||||
# proj-v1.1 TAKEABLE-EDGE PROOF — verdict 2026-07-29 (report-only, read-only)
|
||||
|
||||
**N-gate PASSED: overlap = 45** (settled ∩ proj-v1.1 ∩ MLB over ∩ CLV close ∩ fair_prob_lock ∩ takeable −160..+200). The CLV repair is what made n≥30 reachable. Edge basis = `proj_p_over_line − proj_book_implied` (de-vigged fair, VERIFIED not raw book).
|
||||
|
||||
**VERDICT: NOT PROVEN.** proj-v1.1's takeable-edge does NOT beat the champion or clearly beat the close on MLB overs.
|
||||
- Phase 1 buckets (descriptive; only the neg bucket clears ≥15): 6%+ edge (n=11) shows hit 70% / fair-ROI +0.57 / CLV +12.95pts — but even negative-edge rows show +2.7pt CLV (whole over-side is elevated = the stale-high concern).
|
||||
- Phase 2 partial correlation (the real test): raw r(edge,CLV)=0.455 → **partial r(edge,CLV | price)=0.245, n.s.** at n=45 (t≈1.64, p≈0.11). ~half the raw signal is the shared −fair_prob_lock term (mechanical). proj predicts the close itself only weakly (partial r(proj,close|lock)=0.281, n.s.).
|
||||
- Phase 2.6 champion comparison (same 45 rows): **the CHAMPION out-predicts proj-v1.1** — champ-edge→hit r=0.250 vs proj 0.120; champ partial-CLV=0.380 (SIGNIFICANT, p≈0.01) vs proj 0.245 (n.s.). Positive-edge fair-ROI comparable (proj +0.39 n=19, champ +0.34 n=26).
|
||||
- Shown, not judged: MLB unders (n=20) CLV −9.34pts, r(edge,CLV)=−0.03 (contaminated, zero signal); WNBA — proj-v1.1 does not run (MLB-batting only), N/A.
|
||||
|
||||
**Conditional dependency (moot):** the verdict was to be conditional on the under-capture audit clearing the over-side. It's moot — proj-v1.1 fails Phase 2.6 (loses to the champion) BEFORE the audit applies, so NOT PROVEN regardless. The stale-high concern is corroborated (whole-over-side baseline +CLV; half of proj's signal mechanical).
|
||||
|
||||
**Notable:** the one statistically-defensible edge signal here is the **CHAMPION's** p_win predicting CLV on takeable MLB overs (partial 0.380, p≈0.01) — NOT proj-v1.1. That champion signal is itself still audit-gated (if MLB overs are whole-side stale-high, even it is suspect).
|
||||
|
||||
**What accrues a re-test:** ~20-25 more settled takeable MLB-over rows (to test proj's residual ~0.245 partial against zero), AND proj-v1.1 must demonstrate it beats the champion — which it currently does not. Promotion stays HELD.
|
||||
|
||||
@@ -36,6 +36,18 @@
|
||||
> over/under asymmetry ARE substantially stale-line artifacts on the unders (line 38-39
|
||||
> below is now RESOLVED → confirmed, not "cannot determine"). Held: proj-v1.1 promotion +
|
||||
> p_win/ev on served grades = the PROOF order, gated on this.
|
||||
|
||||
> ## 🧪 proj-v1.1 PROOF verdict 2026-07-29 (report-only): **NOT PROVEN**
|
||||
> N-gate PASSED (overlap n=45 takeable MLB overs; the CLV repair made n≥30 reachable).
|
||||
> Edge = `proj_p_over_line − proj_book_implied` (de-vigged, VERIFIED). Phase 2 partial
|
||||
> correlation controlling for price: raw r(edge,CLV)=0.455 → **partial 0.245 (n.s.)** —
|
||||
> ~half the raw signal is the shared −fair_prob_lock term (mechanical). The CHAMPION
|
||||
> out-predicts proj on the SAME 45 rows (champ partial-CLV 0.380 SIG p≈0.01; champ-edge→hit
|
||||
> 0.25 vs proj 0.12). MLB unders (n=20) contaminated (CLV −9.3, r=−0.03); WNBA — proj-v1.1
|
||||
> doesn't run (MLB-only). **Verdict NOT PROVEN — proj-v1.1 loses to the champion before the
|
||||
> under-audit even applies, so the audit is moot for its promotion.** The one defensible
|
||||
> edge signal is the CHAMPION's p_win→CLV (0.380), itself still audit-gated. Promotion HELD;
|
||||
> re-test needs ~20-25 more settled takeable MLB-over rows AND proj must beat the champion.
|
||||
- **Redirect EXISTS + WIRED:** `closingCapture.buildCaptureRows`→`closing_captures` (append-only,
|
||||
provenance: captured_at/book/line_type/both-prices/missed_reason) via `intradayRefreshService:221`
|
||||
+ internal endpoint; `ledgerService.attachClosingProb`→`closing_prob` (de-vigs both raw sides,
|
||||
|
||||
Reference in New Issue
Block a user