Skip to content

Calibration / Residual anatomy

Separate recorded volume from per-row residual.

Each cell is a published time-bucket and probability-bucket segment from sports[sport].segments[]. Switch the cell measure, inspect its published fields, and compare the two rankings below each grid.

Absolute residual is not reducible miscalibration

A forecast near 50% can have a large absolute residual on an individual resolved outcome while still being calibrated across comparable forecasts. Total absolute residual mass also grows with the number of rows. These fields describe recorded residual volume and per-row residual; they do not establish a correctable calibration gap or its cause.

Use the calibration reliability view to compare forecasts with observed frequency across bins, and score decomposition to inspect the published Brier components.

Reading trail

Read first: Read observation dependence before interpreting residual rows with repeated observations.

Next question: How does the published Brier score separate into its recorded components?

Read the analysis: Where the forecast errors live (sources regenerated)

Cell measure

Forecasts grouped by game state

MLB

n_records
27,351
n_skipped
668

Sequential scale: 0 to 2,812.37 for Sum of absolute forecast errors; blank cells: no published segment.

MLB time bucket by probability bucket. Blank cells have no published segment.
Time bucket0-.2.2-.4.4-.6.6-.8.8-1
early(inn1-3)
mid(inn4-6)
late(inn7+)

Recorded volume

  1. early(inn1-3), .4-.62,812.37
  2. early(inn1-3), .6-.81,204.96
  3. mid(inn4-6), .4-.61,183.15

Per-row absolute residual

  1. late(inn7+), .4-.60.4987
  2. early(inn1-3), .4-.60.4888
  3. mid(inn4-6), .4-.60.4794

Forecasts grouped by game state

International soccer

n_records
4,265
n_skipped
882

Sequential scale: 0 to 233.42 for Sum of absolute forecast errors; blank cells: no published segment.

International soccer time bucket by probability bucket. Blank cells have no published segment.
Time bucket0-.2.2-.4.4-.6.6-.8.8-1
0-15
15-30
30-45
45-60
60-75
75-90+

Recorded volume

  1. 45-60, 0-.2233.42
  2. 75-90+, 0-.2191.95
  3. 60-75, 0-.2182.03

Per-row absolute residual

  1. 75-90+, .2-.40.7892
  2. 30-45, 0-.20.6338
  3. 60-75, .2-.40.6104

Source fields: residual_anatomy.json -> sports[sport].segments[] -> time_bucket, prob_bucket, n, mean_abs_residual, total_abs_residual_mass; sports[sport] -> n_records, n_skipped.

Excluded corpora: mlb_clean: byte-identical duplicate of mlb corpus -- excluded to avoid double counting