Moneyball Labs

Applied mathematics

Game Theory & Economics Lab

Four models, each built on this season's KBO numbers rather than constants imported from another league. Every assumption is stated where it is made, so you can disagree with a specific one instead of the whole thing.

RE24

Run expectancy

Pick a cell. The bunt and steal models beside it solve for that exact situation.

Runners0 out1 out2 out
___Bases empty
1__1st
_2_2nd
__33rd
12_1st, 2nd
1_31st, 3rd
_232nd, 3rd
1231st, 2nd, 3rd

Each cell is the runs a team can expect to score from that situation to the end of the inning, rescaled so the empty-and-nobody-out cell equals the KBO's own 0.56 runs per inning — a factor of 1.17 on the reference grid.

The bunt

1st · 0 out

Swing away

1.01

Bunt

0.78

Difference

−0.222

The break-even success rate is 100%. Below that, swinging away scores more runs on average.

The steal

1st · 0 out

Hold

1.01

Go

0.99

Difference

−0.015

Break-even success rate 72%. A runner who goes at a lower rate than that is costing his team runs, however fast he looks doing it.

Zero-sum game

Nash pitch mix

Why a pitcher does not throw his best pitch every time, expressed as a mixed strategy.

Batter / PitcherFastballOffspeed
Sitting fastball
Sitting offspeed

Each cell is the batter's wOBA in that combination. League average wOBA is .346. Change a value and the equilibrium resolves again.

Nash equilibrium

Pitcher throws fastball49%
Fastball
Offspeed
Batter sits fastball37%
Fastball
Offspeed

Batter wOBA at equilibrium

.347

Throw the fastball 49% of the time and the batter gains nothing by guessing either way. That is the whole reason a pitcher does not throw his best pitch every time.

Markov chain

Monte Carlo simulator

Two clubs, ten thousand games, one plate appearance at a time, extra innings and walk-offs included.

@

Win probability

61.0%
39.0%
Samsung LionsLotte Giants
Away runs / game
5.77
Home runs / game
4.25
Games played
10,000
Went to extras
8.9%
Tied after 11
2.7%
Home W–L–T
3,767–5,967–266

Margin of victory, from the home side

-9-6-30369

Extra innings are played to the KBO's limit of 11, and from the ninth on a game ends the moment the home side leads. Steals, wild pitches, errors, productive outs and sacrifice flies are all in. Win probability splits ties evenly; no home-field edge is added.

Does it work?

The simulator against the season

Each club played 4,000 games against a league-average opponent. If the engine is right, what it scores and allows should land near what the club has actually scored and allowed. Across the ten clubs the typical miss is 0.25 runs a game scored, 0.15 allowed, and 30 points of winning percentage.

ClubR/G simR/G realRA/G simRA/G realPCT simPCT real
KT Wiz5.415.734.464.51.600.647
Samsung Lions5.205.604.744.65.569.589
KIA Tigers5.125.344.584.61.577.556
LG Twins4.965.025.135.04.506.545
Doosan Bears4.574.784.224.38.559.525
SSG Landers4.804.905.655.53.451.468
Lotte Giants4.664.725.225.15.469.454
NC Dinos4.874.995.425.36.479.451
Hanwha Eagles5.215.706.085.80.453.407
Kiwoom Heroes4.063.925.995.67.355.357

The engine runs slightly cold — a few tenths of a run below the league — because it has no park effects and treats every out in play alike. Clubs whose real record beats their simulated one have usually won close games the run totals do not explain; the standings page calls that luck.

Marginal value

Contract value

The only comparison that matters in a salary negotiation: what does a win cost from this player against that one?

WAR so far
8.59
Prorated to 144 games
8.59
Cost per win (₩100M)
1.7

KIA Tigers

WAR so far
7.90
Prorated to 144 games
7.90
Cost per win (₩100M)
0.5

LG Twins

WAR is prorated from 144 games to a 144-game schedule, which assumes health and no second-half decline. Salary is yours to enter: the KBO does not publish a complete pay table, and this tool leaves the field blank rather than inventing one.