Timeless Baseball League · under the hood

How the sim engine works

Every result in TBL comes from one matchup question: when this batter faces this pitcher, how often does each outcome happen? The answer uses log5, the standard odds-ratio method for combining two rates against a league baseline.

Step 1 · Real rates, not ratings

A card is a real single season. The engine reads that season's per-plate-appearance rates — strikeout, walk, hit by pitch, single, double, triple, home run — straight from the batting or pitching line. Nothing is scaled to a 1-99 rating.

Step 2 · log5 odds-ratio blending

For each outcome the batter rate and pitcher rate are converted to odds, multiplied, and divided by the odds of the era-adjusted league average. Converted back to a probability that gives the matchup rate:

odds(x) = x / (1 - x)

matchup_odds = odds(batter) * odds(pitcher) / odds(league)
p            = matchup_odds / (1 + matchup_odds)

Two league-average players produce league-average results. An elite bat against an elite arm lands between them, tilted toward whichever is further from the baseline — which is exactly what real matchups do. The league term is taken from the seasons involved, so a 2001 slugger is not judged against a 2015 run environment.

Step 3 · The 24 base-out states

Outcomes are applied to a full base-out model: three out states across eight baserunner configurations. Runners advance, double plays and steals resolve in context, and runs score from actual sequences — no lookup table of expected runs. Relievers enter by leverage and the closer takes the ninth with a lead, which is why saves are a real category.

Step 4 · Seeded, reproducible randomness

Each game draws from a deterministic random number generator seeded by the league, week and game. Reload the box score a month later and every pitch of that game is identical — the record can be trusted and nobody can reroll a bad night.

Try one plate appearance

See the odds math

2001 Barry Bonds versus 2000 Pedro Martinez, blended with log5 against the era-adjusted league average. Take a swing — no account needed.

  • Ball in play, out34.4%
  • Strikeout30.0%
  • Walk15.3%
  • Home run8.7%
  • Single5.3%
  • Double3.6%
  • Hit by pitch2.6%
  • Triple0.2%

Read next

Learn how a league season runs, which categories decide a week, or open the solo sandbox and sim a full season right now.