Open model ledger.
A public record of Posterior's resolved MLB model entries: model probability, no-vig consensus, market gap, grade, outcome, and model version. The public ledger is the receipt. It is not the real-time feed.
Posterior publishes resolved and voided model entries after settlement. Live entries, pending rows, book-by-book movement, and full signal attribution remain inside the subscriber almanac and API.
Read the ledger before you download it.
These are the latest delayed rows from the same canonical resolved ledger as the CSV, with losses included. They are not illustrative predictions or a curated performance sample. Live and pending rows stay behind subscriber and Builder API access.
| Entry | Market | Grade | Outcome |
|---|---|---|---|
Zach McKinstry Detroit Tigers · 2026-07-12 · 2026-07-12-824250-656716-1plus | 1+ hits | STRONG | won 1 hit · BET |
Jacob Wilson Athletics · 2026-07-12 · 2026-07-12-824574-805779-2plus | 2+ hits | STRONG | lost 1 hit · BET |
Ryan Waldschmidt Arizona Diamondbacks · 2026-07-12 · 2026-07-12-823925-814439-1plus | 1+ hits | LEAN | lost 0 hits · BET |
Spencer Steer Cincinnati Reds · 2026-07-12 · 2026-07-12-824491-668715-1plus | 1+ hits | LEAN | won 2 hits · BET |
Zack Short New York Mets · 2026-07-12 · 2026-07-12-823602-670097-1plus | 1+ hits | LEAN | lost 0 hits · BET |
Geraldo Perdomo Arizona Diamondbacks · 2026-07-12 · 2026-07-12-823925-672695-1plus | 1+ hits | STRONG | lost 0 hits · BET |
Keibert Ruiz Washington Nationals · 2026-07-12 · 2026-07-12-822708-660688-1plus | 1+ hits | LEAN | lost 0 hits · BET |
Colby Thomas Athletics · 2026-07-12 · 2026-07-12-824574-687515-1plus | 1+ hits | STRONG | lost 0 hits · BET |
Resolved ledger →
19 rows · won, lost, and voided entries only
Full live feed →
Current slate, pending rows, book movement, and full signal attribution
Optional filter: ?season=2026 · public release delay: 24 hours after settlement
Simplified audit schema, no nested data, parses in pandas.read_csv.
| Column | Notes |
|---|---|
| predictionId | Stable public ID for the model entry |
| predictedAt | ISO timestamp when the model entry was filed |
| gameDate | ISO date (YYYY-MM-DD) the game was scheduled for |
| season | Year integer |
| playerName | Player, pitcher, team, or market subject |
| teamName | Team at publish time when applicable |
| market | Public market label such as 1+ hits or strikeout over |
| grade | STRONG | LEAN | WATCH | SKIP |
| status | won | lost | voided |
| actualHits | Resolved hit count when the market is hit-based |
| modelProbability | Calibrated model probability, 0-1 |
| consensusProbability | Delayed no-vig market consensus probability, 0-1 |
| marketGap | modelProbability minus consensusProbability |
| entryDecimal | Decimal odds captured at entry |
| decisionAction | Delayed BET | WAIT | PASS decision view for the entry |
| decisionReason | Plain-English reason for the filed decision |
| fairPrice | Model-implied American fair price |
| fairAmericanOdds | Machine-readable model-implied American fair price |
| bestLine | Captured best book line when available |
| bestBookmaker | Bookmaker name for the captured line when available |
| bestAmericanOdds | Machine-readable captured American odds when available |
| bestLineCaptured | true when a playable line was captured at publish time |
| marketTrust | Market-family trust tier shown to users |
| marketTrustNote | Plain-English market-family trust note |
| decisionContext | Lineup, recent-form, weather, and state badges |
| lineupConfirmed | true/false when lineup status was known at publish time |
| lineupSpot | Batting-order slot, 1-9, when known |
| formAdj | Recent-form multiplier used in the filed decision context |
| weatherAdj | Weather multiplier used in the filed decision context |
| gameState | PRE | LIVE | FINAL state used by the filed decision view |
| decisionProof | Model probability, market probability, edge, and tier proof |
| closingDecimal | Closing decimal odds when available |
| closingMovement | Resolved closing movement metric when available |
| modelVersion | Model version label used for the entry |
| calibrationVersion | Calibration version label used for the entry |
| releasedAt | Timestamp when this entry became eligible for the public ledger |
A 30-second example
import pandas as pd
df = pd.read_csv(
"https://posterior.pro/data/picks.csv",
comment="#",
)
resolved = df[df.status.isin(["won", "lost"])].copy()
resolved["actually_won"] = (resolved.status == "won").astype(int)
resolved["bucket"] = (resolved.modelProbability * 10).astype(int) / 10
calibration = resolved.groupby("bucket").agg(
n=("actually_won", "count"),
predicted=("modelProbability", "mean"),
actual=("actually_won", "mean"),
)
print(calibration)
strong = resolved[resolved.grade == "STRONG"]
print(f"STRONG-tier resolved rate: {strong.actually_won.mean():.3f}")
print(f"STRONG sample size: {len(strong)}")
Public ledger
The delayed resolved ledger is free to use with attribution to posterior.pro. Do not imply Posterior endorses downstream analysis.
Subscriber and API exports are governed by the Terms of Service. They may not be resold, scraped, mirrored, or republished in bulk without written permission.
BibTeX
@dataset{posterior_public_ledger_2026,
author = {{Posterior Research Desk}},
title = {Posterior MLB Public Model Ledger},
year = {2026},
url = {https://posterior.pro/data/picks.csv},
note = {Delayed resolved ledger}
}