Loading release evidence…
Hardball Signal

Completed-season analytics · current edition 2025

Every run, role and season traced back to the play.

Independent MLB player and game analytics built from event-level evidence — CORE rate impact, CROWN cumulative value, PULSE recent form and SIGNAL evidence quality — kept inspectable from the leaderboard all the way down to the plate appearance it came from.

This is a finished season, read backwards. The source publishes twice a year and never mid-season, so there is no in-season 2026 edition here and nothing on this site updates during a season — a deliberate constraint, not a gap.

Highest 2025 CROWN · partial ledger

Aaron Judge

+55.1runs above replacement·+5.25wins

CROWN provisional

Batting accounts for +50.9 of Judge's +55.1 runs in this partial ledger. Fielding and catching are not measured in this edition.

Why this ledger is partial

This total adds only the components that exist. A missing component is not a zero. Position and league adjustments are not applied in this edition.

  • Fielding — unavailable — no fielding component exists in this release
  • Catching — unavailable — no catching component exists in this release
  • Position — not applied — no positional scarcity model in v1
  • League — not applied — no league-strength model in v1
+50.9BattingBaserunning -0.5Fieldingnot measuredCatchingnot measured
Component values as a table
Aaron Judge — every CROWN component, identical values to the chart
ComponentRunsCoverage
Batting+50.92published component
Baserunning-0.48single-identifiable-runner standalone terminal SB/CS/PO/POCS only; multi-runner or unidentified actions, advancement, and strict compound secondaries remain unallocated
Fieldingnot measured — component does not existunavailable — no fielding component exists in this release
Catchingnot measured — component does not existunavailable — no catching component exists in this release
Positionnot measured — component does not existnot applied — no positional scarcity model in v1
Leaguenot measured — component does not existnot applied — no league-strength model in v1
Replacement+4.61published component

Each node is a CROWN component in runs, placed where it happens.

Open Aaron Judge’s full profile →

2021-2025 regular seasons, complete through 2025-09-28 · 2025 postseason: 47 games through 2025-11-01 · CORE Actual: research · CROWN: provisional · PULSE: research · nothing here is validated

Where the 2025 season finished

Every figure links to the surface it came from. Hitter and pitcher CORE are different questions on different denominators and are never ranked against one another.

Find a player

Every player published in the 2025 release is reachable by name. You can also browse the complete list, open the ratings, or compare two players.

Who produced the strongest rate impact?

CORE is rate, not volume: value per role-standard workload. CORE Actual research

View the full ratings →

RESEARCH — retrospective, context-limited rate estimates. NOT validated, NOT a WAR replacement, NOT comparable across roles. Park/defense/quality-of-opposition adjustments are NOT yet applied.

Selection: top 8 by published CORE value within each cohort, at the same opportunity floor the ratings route publishes (hitters 400 fitted PA, starters 400 BF, relievers 150 BF); ties broken by player id ascending

Who accumulated the most total value?

CROWN is volume and rate together, above a role-specific replacement baseline. CROWN provisional

Open the CROWN ledger →
#PlayerRoleCROWN runsWinsOpportunitiesLargest componentComponents present
1Aaron Judgebatter+55.1+5.25655Batting3 of 7
2Shohei Ohtanibatter+47.3+4.51704Batting4 of 8
3Juan Sotobatter+41.2+3.93688Batting3 of 7
4George Springerbatter+34.4+3.28562Batting3 of 7
5Paul Skenesstarter+34.2+3.26733Pitching2 of 6
6Kyle Schwarberbatter+34.0+3.24702Batting3 of 7
7Cal Raleighbatter+32.5+3.10675Batting3 of 7
8Cristopher Sánchezstarter+32.2+3.07807Pitching2 of 6
9Garrett Crochetstarter+32.0+3.05814Pitching2 of 6
10Tarik Skubalstarter+29.9+2.85748Pitching2 of 6

this release is NOT better than WAR and is not comparable to it. Three of its four inputs carry a SIGNAL band of weak, fielding and catching do not exist, pitching still contains defense, and position and league adjustments are not applied

Selection: top 10 by published partial CROWN runs; ties broken by player id ascending

Why this player ranks here

The same ledger the ranking is built from, opened up. CROWN provisional

starter · 2025

Paul Skenes

+34.2runs, partial ledger

Pitching accounts for +30.5 of Skenes' +34.2 runs in this partial ledger. Fielding and catching are not measured in this edition.

Open Paul Skenes’s ledger →

0Pitching+30.5Fieldingnot measuredCatchingnot measuredPositionnot measuredLeaguenot measuredReplacement+3.7CROWN+34.2
Ledger values as a table
Paul Skenes — component ledger, identical values to the chart
ComponentRunsRunning totalCoverage
Pitching+30.53+30.53DEFENSE-ENTANGLED: team defense and park effects remain inside this value (component ledger: defense_battery_unallocated). No fielding component may coexist with it
Fieldingnot measured—unavailable — and blocked while pitching is defense-entangled
Catchingnot measured—unavailable — no catching component exists in this release
Positionnot measured—not applied — no positional scarcity model in v1
Leaguenot measured—not applied — no league-strength model in v1
Replacement+3.70+34.23published component
CROWN (partial)+34.23+34.23sum of the components that exist

Bars run left to right from zero: each component starts where the one above it ended. A dashed slot is a component that does not exist in this release.

What changed late in the season?

Each trailing window sits beside that player’s own full-season anchor, so form is never read without its baseline. PULSE research

Open PULSE →

a chronological forward test found these short windows have HIGHER error than a cutoff-frozen league average, so movement here is a record of what happened and carries no demonstrated forecasting value

Selection: hitters with at least 300 season PA whose trailing-50-PA window clears the sample floor, ranked by trailing window minus that player's own full-season anchor; ties broken by player id ascending

One play, fully accounted for

Every rating on this site is assembled from plate appearances like this one. Here is the whole accounting for a single swing.

2025-09-28 · Twins 1 · Phillies 2

Max Kepler — Home run, bottom 8

+0.370win probability, home perspective

The home side went from 0.281 to 0.651 at a leverage index of 2.64, and the play was worth +1.000 runs against the base-out state it began in.

State before

Before: 0 out, bases empty

RE 0.501

State after

After: 0 out, bases empty

RE 0.501

Every published value for this plate appearance
FieldValue
Inningbottom 8
BatterMax Kepler
EventHome run · HR/L9D
Runs scored1
Run expectancy before0.5005
Run expectancy after0.5005
Run value+1.0000
Win probability before0.2806
Win probability after0.6511
WPA+0.3704
Leverage index2.639
Source line13191

run value is run expectancy after minus run expectancy before, plus runs scored on the play; both expectancies are the published 24-state matrix this game's own run value was computed against win probability and WPA are stated from the home team's perspective; the visiting perspective is the exact complement

Win probability before, after and WPA are each rounded to four decimals in the source payload, so the difference of the first two can sit one unit in the last place from the third. The published WPA is the model's value, not a subtraction of two rounded displays.

Selection: largest absolute win-probability change among plate-appearance-ending events of the most recent fully admitted slate (2025-09-28); ties broken by game id then sequence

How strong is the evidence?

SIGNAL rates the evidence behind each construct, never a player’s ability. Six axes stay separate and the overall band is the minimum across them. SIGNAL research

Open SIGNAL →
ConstructOverallsampleidentifiabilitygranularitynoiseavailabilitylineage
base out run expectancymoderatestrongstrongstrongstrongmoderatelimitingstrong
baserunning impact rateweakweaklimitingmoderateweaklimitingweaklimitingweaklimitingstrong
batting impact rateweakstrongweaklimitingmoderatemoderatestrongstrong
event run valuemoderatestrongmoderatelimitingmoderatelimitingstrongstrongstrong
pitching impact rateweakstrongweaklimitingmoderatemoderatestrongstrong
win probability neutralmoderatemoderatelimitingmoderatelimitingstrongmoderatelimitingmoderatelimitingstrong

six axes published SEPARATELY; no weighted composite is accepted as scientific truth; the overall band is the minimum across axes and names its limiting axis; low granularity cannot be erased by high lineage; high sample cannot erase poor identifiability

Five seasons, and the seams between them

The event corpus reaches back further than the ratings do, and the rule changes that forbid reading straight across it are declared rather than assumed.

Open the corpus →
2021187,2102022187,365rule break2023190,416rule break2024188,938rule break2025189,311rule break
Season coverage as a table
Reconciled corpus by season
SeasonGamesEventsClean gamesConservation
20212,429187,2102,429reconciled
20222,430187,3652,430reconciled
20232,430190,4162,430reconciled
20242,429188,9382,429reconciled
20252,430189,3112,430reconciled

the event corpus spans every season above; CORE, CROWN, PULSE and SIGNAL are published for 2025 only, so this window shows reconciled coverage and the declared rule-regime breaks — not multi-season ratings, which do not exist here

Keep pulling threads

Compare

Put two ledgers side by side

  • Aaron Judge+55.1
  • Shohei Ohtani+47.3

Comparison refuses to rank across roles, because the units are not the same question.

Compare these two →

Parks

Run environments, highest and lowest

100 = neutralRockiesCOL141.9PhilliesPHI115.4DodgersLAN113.0RangersTEX81.0MarinersSEA81.8MarlinsMIA85.4
Park factors as a table
2025 descriptive park factors
ParkFactor (100 = neutral)Home R/GRoad R/G
Rockies141.911.728.26
Phillies115.49.438.17
Dodgers113.09.888.74
Rangers81.07.128.79
Mariners81.88.119.91
Marlins85.48.5710.04

DESCRIPTIVE ONLY for 2025. A park prior for season t may only use seasons <= t-1, so these factors may serve as priors from season 2026 onward, never for their own season. Multi-year smoothing requires MS-18 backfill.

Open parks →

Eras

What a rule change invalidates

Every declared rule-regime break records which comparisons it breaks, so a series that crosses one without a flag is treated as invalid rather than interesting.

Open eras →

Written from the numbers, not about them

Every sentence in an analytical biography is generated from a measured value and cites the artifact and field it came from. The engine has no path from free text to the page, so it cannot tell you why anything happened.

In the 2025 regular season Aaron Judge recorded 679 plate appearances with 179 hits, 53 home runs, 137 runs and 114 RBI.

That produced a 0.331 batting average, 0.457 on-base percentage and 0.688 slugging percentage, an OPS of 1.144.

Data coverage: 2021-2025 regular seasons, complete through 2025-09-28 · 2025 postseason: 47 games through 2025-11-01. The current season is not included. Source: open Retrosheet data. Sources →
Aaron Judge · 2025 edition · research
Read the biographies →

Why you can check these numbers

Coverage

2021-2025 regular seasons, complete through 2025-09-28 · 2025 postseason: 47 games through 2025-11-01

The current season is not included. Data as of 2025-09-28.

Sources

16 admitted source captures

Retrosheet event and game-log backbone with a pinned Chadwick identity register. Every capture is hashed and receipted.

Inspect provenance →

Status

  • core actualresearch
  • crownprovisional
  • park factorsresearch
  • pulseresearch
  • season statsresearch
  • signalresearch

nothing in this release is validated; every surface carries the status of the artifact behind it

See validation →

The whole record, room by room

Every surface answers one research question about the finished 2025 season. Start from the question you are actually asking.

Players

Who was this player in 2025?

One dossier per published player: season line, rate impact, cumulative ledger, recent form, and how strong the evidence is — with what cannot be measured stated plainly.

Open a player →

Compare

How do two players differ?

Component by component, on the same scale, with missing components shown as missing. No winner sentence — roles are different questions.

Compare players →

Teams

How did a club create and prevent runs?

Thirty club pages: record against run differential, park environment, and where the batting value actually came from.

Open a club →

Games

How did any game unfold?

All 2,430 regular-season games, event by event, with the win-probability path and every plate appearance traceable to its source line.

Open a game →

Seasons

What do five seasons of the corpus show?

Conventional 2025 counting lines, and how scoring moved across the 2021–2025 reconciled record.

Season stats → · History →

Context

How much did the park matter?

Descriptive run environments for every 2025 park, and the rule changes that stop seasons being read as one era.

Parks → · Eras →

Honors

Which honors does the evidence support?

Awards granted only where the cited metric's evidence clears the bar — and the blocked ones published with their reasons.

Honors → · Biographies →

Method

What is actually proven here?

What each metric family measures, what it refuses to claim, and the validation record behind the parsed corpus.

Methodology → · Validation →

What this is, and what it refuses to be

Four families, each with its own question

CORE Actual measures rate impact per role-standard workload. CROWN accumulates total value above a role-specific replacement baseline. PULSE records recent form beside a full-season anchor. SIGNAL rates how strongly the evidence supports each construct. Every number on this site carries its unit, its model, its status and its source lineage.

How every number is computed →

Boundaries

No odds, picks or betting content. No fantasy advice. No automated collection from MLB digital properties. No republication of proprietary metrics. No fabricated pitch, tracking or contact data — a surface without an admitted lawful source says so plainly rather than filling the gap.

Where the data stops →