POSTERIOR · PUBLIC RECORD
Data

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.

Public entries
19
since 2026-07-11
Resolved
19
0 voided
Live slate
Gated
subscriber + API
STRONG-tier resolved rate
50.0%
4/8 · STRONG only; sitewide headline uses STRONG + LEAN
Latest delayed resolved rows

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.

API handoff
GET /api/v1/accuracy
GET /api/v1/calibration
Open API sandbox
Team filter
EntryMarketGradeOutcome
Zach McKinstry
Detroit Tigers · 2026-07-12 · 2026-07-12-824250-656716-1plus
1+ hitsSTRONGwon
1 hit · BET
Jacob Wilson
Athletics · 2026-07-12 · 2026-07-12-824574-805779-2plus
2+ hitsSTRONGlost
1 hit · BET
Ryan Waldschmidt
Arizona Diamondbacks · 2026-07-12 · 2026-07-12-823925-814439-1plus
1+ hitsLEANlost
0 hits · BET
Spencer Steer
Cincinnati Reds · 2026-07-12 · 2026-07-12-824491-668715-1plus
1+ hitsLEANwon
2 hits · BET
Zack Short
New York Mets · 2026-07-12 · 2026-07-12-823602-670097-1plus
1+ hitsLEANlost
0 hits · BET
Geraldo Perdomo
Arizona Diamondbacks · 2026-07-12 · 2026-07-12-823925-672695-1plus
1+ hitsSTRONGlost
0 hits · BET
Keibert Ruiz
Washington Nationals · 2026-07-12 · 2026-07-12-822708-660688-1plus
1+ hitsLEANlost
0 hits · BET
Colby Thomas
Athletics · 2026-07-12 · 2026-07-12-824574-687515-1plus
1+ hitsSTRONGlost
0 hits · BET
8 delayed resolved rows visible · CSV remains authoritativeDownload CSV receipt
Download

Optional filter: ?season=2026 · public release delay: 24 hours after settlement

Schema

Simplified audit schema, no nested data, parses in pandas.read_csv.

ColumnNotes
predictionIdStable public ID for the model entry
predictedAtISO timestamp when the model entry was filed
gameDateISO date (YYYY-MM-DD) the game was scheduled for
seasonYear integer
playerNamePlayer, pitcher, team, or market subject
teamNameTeam at publish time when applicable
marketPublic market label such as 1+ hits or strikeout over
gradeSTRONG | LEAN | WATCH | SKIP
statuswon | lost | voided
actualHitsResolved hit count when the market is hit-based
modelProbabilityCalibrated model probability, 0-1
consensusProbabilityDelayed no-vig market consensus probability, 0-1
marketGapmodelProbability minus consensusProbability
entryDecimalDecimal odds captured at entry
decisionActionDelayed BET | WAIT | PASS decision view for the entry
decisionReasonPlain-English reason for the filed decision
fairPriceModel-implied American fair price
fairAmericanOddsMachine-readable model-implied American fair price
bestLineCaptured best book line when available
bestBookmakerBookmaker name for the captured line when available
bestAmericanOddsMachine-readable captured American odds when available
bestLineCapturedtrue when a playable line was captured at publish time
marketTrustMarket-family trust tier shown to users
marketTrustNotePlain-English market-family trust note
decisionContextLineup, recent-form, weather, and state badges
lineupConfirmedtrue/false when lineup status was known at publish time
lineupSpotBatting-order slot, 1-9, when known
formAdjRecent-form multiplier used in the filed decision context
weatherAdjWeather multiplier used in the filed decision context
gameStatePRE | LIVE | FINAL state used by the filed decision view
decisionProofModel probability, market probability, edge, and tier proof
closingDecimalClosing decimal odds when available
closingMovementResolved closing movement metric when available
modelVersionModel version label used for the entry
calibrationVersionCalibration version label used for the entry
releasedAtTimestamp when this entry became eligible for the public ledger
How to use

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)}")
License + citation

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}
}