Append-only. Every baseball call is filed with a metric, threshold, and window, then resolves by computation when the window closes. Corrections are appended in the open — nothing is ever edited or deleted. A hit rate with the misses removed is marketing, not measurement.
Record: 3 hit · 4 miss · 9 open
Crowd vs. Engine: engine 1–1 · crowd 2–0
The docket
Every call we have ever filed, in the order it comes due. The full card for each one is below — this is the whole record on one screen, so you never have to take our arithmetic on faith.
annotation, not an edit: the 2026-07-11 19:19 UTC append captured war_at_filing (4.18) on the day of filing so the +2.0 WAR window has a frozen baseline. This line exists because a reader rightly asked what that corrected_at was.
The record above stands as filed. Corrections are appended, never applied.
No live grade. This resolves on FanGraphs WAR, refetched when the window closes. We do not carry a live FanGraphs feed — and MLB's own WAR is a different calculation, so we will not substitute it and pretend.
In plain terms: We're saying he finishes like a star: at least +2 WAR from filing through September 27 — a pace only the game's best sustain. He does it, or the ledger says MISS.
In plain terms: We're saying the luck turns: his results on contact climb at least +0.03 over the filing baseline by September 27. Call it a 30-point jump — points, the same way an average moves. The bat has already earned it — the stat line pays up, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):8 G · .207 AVG · 0 HR · 4 RBI · .654 OPS
In plain terms: We're saying the results give it back: value on contact falls at least 0.030 from the filing baseline by September 27 — 30 points, handed back. The bat never supported the stat line; gravity does the rest — or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):11 G · .282 AVG · 0 HR · 1 RBI · .618 OPS
In plain terms: We're saying the results give it back: value on contact falls at least 0.025 from the filing baseline by September 27 — 25 points, handed back. The bat never supported the stat line; gravity does the rest — or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):13 G · .313 AVG · 2 HR · 5 RBI · .920 OPS
Sprint call. Board No. 1 by overlay: 107.6 EV95 with results 0.106 under the physics. The gap starts closing now — thirty days on the clock.
Correction · baseline · 2026-07-14
Baseline frozen against an incomplete lake. This call was filed at 06:18 UTC on 2026-07-13, but its baseline (0.3224) was computed from a derived table that did not yet hold the games of 2026-07-12 — two of his balls in play were missing from it. With them, the baseline would have been 0.3168.
Why it matters: the baseline is the number a call is judged FROM. A baseline 0.0056 too high means he must now climb 0.0216 from where he actually stood, not the 0.0160 we set. That is 35% of the threshold, and it makes this call HARDER for us.
The call stands and resolves exactly as filed. No voids. That rule is only worth something because it binds us when the error runs the other way too — the same fault made C0007's fade 38% EASIER. We do not get to keep the one that helps and void the one that hurts.
Cause: the raw games were cached but the derived tables lagged them by a day, and nothing checked. Fixed since: lake.guard() now refuses to price a call from a lake standing behind its own published boards, and every call records baseline_through — the last day of games its baseline actually saw — so this is visible on the ledger rather than buried in it.
The record above stands as filed. Corrections are appended, never applied.
In plain terms: We're saying the luck turns: his results on contact climb at least +0.016 over the filing baseline by August 12. Call it a 16-point jump — points, the same way an average moves. The bat has already earned it — the stat line pays up, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):5 G · .375 AVG · 0 HR · 7 RBI · 1.037 OPS
LF · 6' 1" · 209 lb · age 28 · born Encinitas, CA · Colorado Rockies
Sprint call. Results running a tenth of a run per ball in play over the contact quality. Gravity works, and it works on a schedule.
Correction · thesis · 2026-07-14
Unit error in the sentence, not in the call. Results on contact here are valued on the wOBA linear weights — a single is 0.9, a double 1.25, a triple 1.6, a home run 2.0, an out 0 — and not in runs, whose values for those same four events are roughly .47, .78, 1.09 and 1.40. A different scale, and a different zero. So the gap this call was priced on is a tenth of value-on-contact; it is not 'a tenth of a run'. The terms are untouched and the call resolves exactly as filed — the baseline (0.4944) and the threshold (-0.017) were always in value-on-contact, which is what aval_change measures, and nothing about how this call will be judged has changed. Only the sentence named the wrong unit. Found 2026-07-14 in a frame audit that caught the same error on the One Chart, which had denominated its y-axis in runs since the day it was drawn. Definition: /legend#luck-gap.
The record above stands as filed. Corrections are appended, never applied.
Correction · baseline · 2026-07-14
Baseline frozen against an incomplete lake. This call was filed at 06:18 UTC on 2026-07-13, but its baseline (0.4944) was computed from a derived table that did not yet hold the games of 2026-07-12 — two of his balls in play were missing from it. With them, the baseline would have been 0.4879.
Why it matters: the baseline is the number a call is judged FROM. A baseline 0.0065 too high means he only has to fall 0.0105 from where he actually stood, not the 0.0170 we set. That is 38% of the threshold, and it makes this call EASIER for us. We are disclosing an error that runs in our own favour, because a ledger that only reports the mistakes which cost it is a sales brochure.
The call stands and resolves exactly as filed. No voids — the same fault made C0006's breakout 35% HARDER, and we do not get to keep the one that helps and void the one that hurts.
Cause: the raw games were cached but the derived tables lagged them by a day, and nothing checked. Fixed since: lake.guard() now refuses to price a call from a lake standing behind its own published boards, and every call records baseline_through — the last day of games its baseline actually saw — so this is visible on the ledger rather than buried in it.
The record above stands as filed. Corrections are appended, never applied.
In plain terms: We're saying the results give it back: value on contact falls at least 0.017 from the filing baseline by August 17 — 17 points, handed back. The bat never supported the stat line; gravity does the rest — or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):11 G · .136 AVG · 2 HR · 7 RBI · .483 OPS
3B · 6' 2" · 205 lb · age 26 · born Rehoboth Beach, DE · Athletics
Sprint call. A +0.082 luck gap on league-average contact. The lease is up.
Correction · 2026-07-13
process disclosure: Gelof entered the 10-day IL on 2026-07-10, three days before this engine sprint auto-filed — the autofile stage did not check roster status. The call stands and resolves under the freeze rule, no voids; a roster gate now blocks IL-listed players at draft and at publish.
The record above stands as filed. Corrections are appended, never applied.
In plain terms: We're saying the results give it back: value on contact falls at least 0.017 from the filing baseline by August 27 — 17 points, handed back. The bat never supported the stat line; gravity does the rest — or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):13 G · .125 AVG · 1 HR · 5 RBI · .471 OPS
Sprint call. The loudest gap on the board — 0.113 — on a catcher slugging under his contact quality. Physics says the results arrive; fifty-two days to show it.
In plain terms: We're saying the luck turns: his results on contact climb at least +0.025 over the filing baseline by September 3. Call it a 25-point jump — points, the same way an average moves. The bat has already earned it — the stat line pays up, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):1 G · .333 AVG · 1 HR · 2 RBI · 1.666 OPS
Sprint call. Breakout board No. 9, at thirty-four: 109.9 EV95 with results 0.069 under the physics. The contact is still elite and the line has not caught up to it — thirty days on the clock.
In plain terms: We're saying the luck turns: his results on contact climb at least +0.015 over the filing baseline by August 13. Call it a 15-point jump — points, the same way an average moves. The bat has already earned it — the stat line pays up, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):13 G · .250 AVG · 0 HR · 3 RBI · .684 OPS
Straw poll · frozen at the close0 with the machine, 1 fading · 1 ballot · The crowd was right.
CF · 6' 0" · 180 lb · age 26 · born Winkler, MB, Canada · Chicago White Sox
Sprint call, filed four days after the cycle and three after the All-Star nod. Fade board No. 2: 103.7 EV95 with results 0.086 over what that contact supports. The results give it back — thirty-eight days on the clock.
In plain terms: We're saying the results give it back: value on contact falls at least 0.015 from the filing baseline by August 21 — 15 points, handed back. The bat never supported the stat line; gravity does the rest — or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):14 G · .409 AVG · 6 HR · 12 RBI · 1.378 OPS
Fade on a lucky arm. Rodriguez is allowing 2.29 runs per nine on a 4.48 fielding-independent line — the widest gap among established starters, and a clean one (his FIP sits mid-pack). Our H-ARMGAP study says a gap this shape regresses; the runs come back.
In plain terms: We're saying the shiny ERA was luck: over the window he allows runs at a rate of at least 3.50 per nine — up from the 2.29 he'd been running, regression toward the arm his strikeouts, walks and homers actually describe. He holds the line, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):3 G · 18.2 IP · 0.96 ERA · 18 SO · 0.86 WHIP
P · 6' 0" · 210 lb · age 35 · born Guanare, Venezuela · Atlanta Braves
Fade on a lucky arm. Pérez is allowing 3.16 runs per nine on a 4.81 fielding-independent line — a 1.65-run gap over 85 innings, and a clean one (his FIP sits with the pack). Our H-ARMGAP study says a gap this shape regresses; the runs come back.
No live grade. This resolves at the window's close on the RA9 he posts inside it — and we grade it then, not now. The in-flight scoreboard here is built on balls in play, which is a hitter's arithmetic; a pitcher's in-window pace has no validated model yet, so we do not print one and pretend.
In plain terms: We're saying the shiny ERA was luck: over the window he allows runs at a rate of at least 3.99 per nine — up from the 3.16 he'd been running, regression toward the arm his strikeouts, walks and homers actually describe. He holds the line, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):2 G · 9.0 IP · 5.00 ERA · 5 SO · 2.00 WHIP
SS · 6' 1" · 200 lb · age 26 · born Colleyville, TX · Kansas City Royals
Bobby Witt Jr. has been crushing the ball — his contact is worth more than almost any hitter in baseball — but the scoreboard hasn't paid him for it. That gap between how hard he's hit and what he's gotten is the widest of any star this year, and it's held over a full season, so it isn't a fluke. We're betting the results catch up to the bat by season's end.
In plain terms: We're saying the luck turns: his results on contact climb at least +0.015 over the filing baseline by September 27. Call it a 15-point jump — points, the same way an average moves. The bat has already earned it — the stat line pays up, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):12 G · .318 AVG · 3 HR · 6 RBI · 1.000 OPS
3B · 5' 11" · 215 lb · age 29 · born Tomball, TX · Cincinnati Reds
No one in baseball has been shortchanged like Ke'Bryan Hayes — he's squaring the ball up far better than his numbers show, the widest luck gap in the league. A hole that deep almost always fills back in. We're betting his results snap back inside a month.
In plain terms: We're saying the luck turns: his results on contact climb at least +0.022 over the filing baseline by August 26. Call it a 22-point jump — points, the same way an average moves. The bat has already earned it — the stat line pays up, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):13 G · .241 AVG · 1 HR · 1 RBI · .678 OPS
In plain terms: We're saying the luck turns: his results on contact climb at least +0.019 over the filing baseline by October 15. Call it a 19-point jump — points, the same way an average moves. The bat has already earned it — the stat line pays up, or we take the miss.
Resolves by computation, not argument.
Last 14 days (through 2026-08-27):9 G · .048 AVG · 0 HR · 0 RBI · .262 OPS