Files
builtbykev f67245e1e5 Re-stamp A: 862 rows recovered by honest join (not 936 -- see deviation)
Database only; no application code changed, so the served path, champion
and reference ruler are byte-identical.

RESULT: 862 rows re-stamped from the takeable LOCK-TIME price in
lock_lines, 862/862 now anchored to takeable books, tagged
price_source='archive_restamp', quarantine lifted. 812 pending clean rows
recovered into the accruing verdicts. Holdout verification: 2,792 rows,
862 re-stamped included, 0 re-stamped rows non-takeable, 144 still
excluded, 0 quarantined rows leaked, and 0 NON-TAKEABLE rows remain in the
holdout population since 2026-08-01.

DEVIATION, stated rather than buried: the order authorised 936. That
figure came from a takeable book posting the same LINE. Requiring what a
re-stamp actually needs -- that book's price for the GRADED SIDE at LOCK
TIME -- resolves 862. Of the other 74, 73 have a takeable side-price only
OUTSIDE the lock window and 5 are genuinely one-sided markets.

I did not widen the window to reach 936. A takeable price captured hours
after the grade is a later market moment, not a lock price; substituting it
is precisely the reconstruct-vs-join line this order was fenced against,
and it would have been invisible in the totals -- showing only as a
cleaner-looking 936.

Those 74 were also RE-TAGGED, because their old label had become a lie:
recoverable_same_line -> no_takeable_lock_price_for_side. A future attempt
reading the old tag would have been invited to widen the window and call it
recovery.

takeable was RECOMPUTED from the recovered price rather than carried over
-- the old flag was computed FROM the contaminated price and was wrong on
its own terms. 101 rows had their flag change, which is the direct measure
of how wrong it was.

Provenance travels with the data (price_source), on the same principle as
is_proxy: a value recovered by a later join is not identical in kind to one
captured natively at grade time, even when it is the same number.

EVIDENCE FOR THE NEXT ORDER'S INVARIANT: 5 of the excluded rows are
one-sided TAKEABLE markets, and betrivers/hardrockbet legitimately quote
one side only. A guard that inferred takeability from price shape would
throw away real markets while still admitting a DFS book at -119 --
takeability is book IDENTITY, never price extremity or one-sidedness.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QJs13VsyiSKYQP6rj3NNmc
2026-08-02 16:22:06 -04:00

120 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RE-STAMP A — 862 ROWS RECOVERED BY HONEST JOIN
**Date:** 2026-08-02 · served path, champion and reference ruler **byte-identical**
(no application code changed) · database only.
---
## RESULT
| | rows | books | settled | pending |
|---|---:|---|---:|---:|
| **RE-STAMPED** (`price_source='archive_restamp'`) | **862** | **862/862 takeable, 0 non-takeable** | 47 | **812** |
| still quarantined | **144** | 0 takeable | 0 | 143 |
**Holdout verification, exactly as the committed scripts select:**
```
holdout rows total ................................. 2,792
re-stamped rows INCLUDED ......................... 862
re-stamped but non-takeable (must be 0) .......... 0
still excluded ..................................... 144
quarantined rows leaked into holdout (must be 0) ... 0
NON-TAKEABLE rows in the holdout since 2026-08-01 .. 0
```
**812 pending clean rows recovered** into the accruing verdicts, and the
contamination is fully out of the measurement population.
---
## 🔴 862, NOT 936 — a deviation worth stating plainly
The order authorised **936**, from the earlier finding that a takeable book posted
the **same LINE**. Requiring what a re-stamp actually needs — **that takeable
book's price for the GRADED SIDE, at LOCK TIME** — resolves **862**.
**Why the other 74 were left out:**
| reason | rows |
|---|---:|
| takeable side-price exists **only OUTSIDE the lock window** | **73** |
| genuinely **one-sided** takeable market | 5 |
*(overlapping; 74 distinct)*
**I did not widen the window to reach 936.** A takeable price captured hours after
the grade is **a later market moment, not a lock price**. Substituting it would be
exactly the reconstruct-vs-join line this order was fenced against — and it would
have been invisible in the totals, showing only as a cleaner-looking 936.
Those 74 were also **re-tagged**, because their old label had become a lie:
`recoverable_same_line`**`no_takeable_lock_price_for_side`**. A future attempt
reading the old tag would have been invited to widen the window and call it
recovery.
---
## THE JOIN
Same `player_key + stat + game_date + LINE`, **takeable books only**, from
**`lock_lines`** (lock time — *not* `closing_captures`, which is the wrong moment
for a lock price). Where several takeable books locked the same prop, the **latest
lock at or before the grade**, deterministically.
**`takeable` was RECOMPUTED, not carried over** — the old flag was computed *from*
the contaminated price and was wrong on its own terms. **101 rows had their flag
change**, which is the direct measure of how wrong it was.
Four distinct takeable books supplied the recovered prices.
## PROVENANCE
`price_source``native_takeable` vs **`archive_restamp`** — travels with the
data, on the same principle as `is_proxy` on the opportunity axis.
**A value recovered by a later join is not identical in kind to one captured
natively at grade time, even when it is the same number.** Any future bias check
can segment on it; `NULL` predates the distinction and claims nothing.
## WHAT STAYS OUT — 144 rows
| tag | rows |
|---|---:|
| `no_takeable_lock_price_for_side` | 74 |
| `no_takeable_quote` | 49 |
| `takeable_line_differs` | 21 |
**Re-stamping any of these would invent a lock price, or a line, we never
captured.** None has settled, so nothing is lost from the record — only 143
pending rows stay out of the holdouts, honestly.
---
## NEXT
**(b) Combined structural-hardening order** — shared, tested guards for:
- **`Number(null) === 0` → unknown ≠ zero** (6× recurring, most recently in my own
new module).
- **Takeable by BOOK IDENTITY, never by price extremity or one-sidedness.** This
audit produced direct evidence for that invariant: **5 of the excluded rows are
one-sided takeable markets, and `betrivers`/`hardrockbet` legitimately quote
one side only.** A thin, juiced or one-sided takeable market is **REAL**, not
contamination — and a guard that inferred takeability from price shape would
throw away real markets while still admitting a DFS book at 119.
**(c) `hits`** — inherits both guards, and must model thin/one-sided takeable
markets as a **normal state**, not a clean two-sided assumption.
**Carry-forward:** tb-v1 verdict · third pre-registered branch · **524 ≠ failure**
(100s Cloudflare origin timeout vs a ~115s snapshot; the work completes).
## TAGS
**VERIFIED:** 862 re-stamped, 862/862 takeable · 0 non-takeable in the holdout
since 2026-08-01 · 0 quarantined rows leaked · 144 still excluded · 101 takeable
flags corrected · 812 pending rows recovered.
**DEVIATION:** 862 not 936 — the 74 lack a takeable LOCK-TIME price for the graded
side; the window was not widened to reach the authorised number.