TiltDataLabs Audit Proof
MLB Picks · Wednesday, August 19, 2026
These picks were cryptographically committed to a public Git repo and signed to the Rekor transparency log before games started. Independently verifiable — the file cannot have been generated retroactively.
Correction — read before the picks below
The stamped file below is the cryptographic pre-game commitment and cannot be modified without breaking the OTS + Rekor proof. The picks the operator actually placed at book (and their real outcomes) may differ from what the stamp records. Full context:
Show full correction memo
# Correction — 2026-08-19 TDL picks **Status**: DB corrected 2026-08-20. Original pre-game stamp preserved. ## What the stamp says `v2/pipelines/mlb/tdl_picks/2026-08-19.json` (sha256 `de78e9d0ef95433920d0e9c8748b213c6b7bcd7b3ac2d8437d9250ca97359c86`, stamped via OTS + Rekor at commit `8041f941` on 2026-08-19 13:45 UTC) recorded 2 picks: - WSH F5 -0.5 (F5 spread, WSH @ TEX) — stake 45u @ 2.35 - SEA F5 -0.5 (F5 spread, SEA @ MIL) — stake 35u @ 2.35 Both showed model probability 0.5408, edge +11.53%, recorded 12:44-12:47 UTC. ## What actually happened Both picks were **plateau artifacts** from an isotonic calibrator bug. On 2026-08-19, F5 training data was stale (game_targets.parquet had collapsed to 2026-only rows) and the isotonic calibrator produced a monotone plateau where multiple distinct raw probabilities all mapped to the same calibrated value (0.5408). This produced identical "high-edge" tiles for both games on the site's dashboard. The operator clicked "took this pick" on SEA F5 -0.5 through the site UI (persisted to DB as `tdl_picks` id 252 and `user_selections` id 267) before realizing the edge was phantom. **The operator did not physically place either bet at book.** WSH F5 -0.5 never made it to the DB — it appeared only in the snapshot JSON due to a separate `_snapshot_tdl_picks` write racing with the UI actions. The only bet physically placed at book on 2026-08-19 was: - **NYY ML @ BAL, decimal 1.86 (-116), $40 stake, FanDuel — WON 5-3** (`tdl_picks` id 253, recorded 19:44 UTC, `result: win`, `profit: $34.40`, CLV -2.22pp against 1.94 close) ## What was corrected DB (2026-08-20 13:15 UTC via direct SQL): - `DELETE FROM tdl_picks WHERE id=252` (SEA F5 -0.5 phantom) - `DELETE FROM user_selections WHERE id=267` (matching tracker phantom) Site performance page + tracker page (both DB-driven) now show the correct 1-0 day for 2026-08-19. The **stamped JSON is intentionally unchanged**. Re-snapshotting the file would break the pre-game cryptographic proof — the original OTS + Rekor attestations remain valid for the original hash. This markdown is the audit trail explaining the divergence between what was stamped and what was placed. ## Root causes shipped - `bbc0ef46` (2026-08-19): pybaseball_loader schema-shrinkage guard — prevents FG mlbapi fallback from corrupting the pitcher_stats cache (unrelated but same day's fire drill). - `6e6e9bf7` (2026-08-19): `refresh_fg.py` + weekly reminder — durable Cloudflare bypass for FG data refreshes. - `21c0df86` (2026-08-20): tracker.py pending count fix (push+PPD were miscounted as pending). ## Root causes still open - Tracker `_pick_key` omits `side` — a tracked selection on one side of a market lights up "took this pick" on the opposite side after a refresh. Root cause of the "MIL F5 -0.5 phantom" the operator saw on 2026-08-19. - F5 calibrator plateau — isotonic collapses raw probs to identical calibrated values on some days; sigmoid retrain attempted and reverted 2026-08-19 after a validation harness regression. Deferred; documented as systemic in the 2-week audit (`plateau in `over_under` every single day`).
Bitcoin Anchor
Stamp pending block- SHA-256 Hash
- 2cd1f57bf6cd6f0e2bf2ee77173f33bd5fa16d57ad243bb9b5e1fa3ef6d58f37
- Picks in file
- 2
Want to verify the stamp without trusting our server?
Verify independently at opentimestamps.org →On opentimestamps.org, drag the .json file into the "original" slot and the .ots file into the "proof" slot. It will re-hash, check against Bitcoin, and confirm — no install needed.
How the proof works
The picks below are connected to a Bitcoin block — here's the chain
- 1. Picks file
The exact JSON shown in "The Picks" section below.
Open raw JSON - 2. SHA-256
A fingerprint of the file. Change one character and this hash changes.
de78e9d0…359c86 - 3. Sigstorelogged2026-08-19 13:45:52 UTC4. Bitcoinstamping…
The picks file's SHA-256 was logged to Sigstore when the pipeline ran, and Sigstore's log is itself anchored to Bitcoin via OpenTimestamps. If anyone changes the picks after the fact, the hash no longer matches — and the chain breaks visibly. The verify buttons below let you check each link in your own browser.
- GitHub commit
- 2026-08-19T13:45:55Z
- Sigstore log
- 2026-08-19T13:45:52Z
The Picks
Committed at the SHA-256 above · Editing any pick invalidates the proof| Game | Pick | Odds | Edge | Result |
|---|---|---|---|---|
| NYY ML | 1.86 | +6.6% | WIN | |
| SEA F5 -0.5 | 2.35 | +11.5% | PENDING |
More verifiable picks at tiltdatalabs.com