How many batting orders does your roster actually have?
Twelve players produce 479,001,600 possible batting orders. That number is easy to quote and easy to misunderstand, so it is worth walking through where it comes from — and where it needs correcting.
Where the number comes from
A batting order is a sequence, and the count of possible sequences is a factorial. With nine hitters, the first slot has nine candidates. Once that slot is filled, the second has eight remaining, the third has seven, and so on. Multiply those together and you get 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1 — written 9! and equal to 362,880.
The reason the number explodes is that each additional player multiplies the whole previous total:
- 9 players — 362,880 orders
- 10 players — 3,628,800 orders
- 11 players — 39,916,800 orders
- 12 players — 479,001,600 orders
- 13 players — 6,227,020,800 orders
To put the last one in human terms: if you evaluated one batting order every second without sleeping, working through all 6.2 billion arrangements of a thirteen‑player roster would take about 197 years. Twelve players would take roughly fifteen.
The correction most people skip
Here is where the headline figure needs a caveat. The factorial answers “how many ways can I arrange all of these players?” But if you carry twelve players and only nine of them bat, that is not the question you are asking. You are choosing nine from twelve and putting them in order — a permutation, not a full factorial.
That count is 12! divided by 3!, which is 479,001,600 ÷ 6 = 79,833,600. Still an absurd number of options. But it is roughly six times smaller than the figure a factorial gives you, and if a piece of baseball writing quotes the bigger number for a partial lineup, it has not thought carefully about the problem.
The point is not the exact figure. The point is that the search space is far too large for intuition, at every roster size you will ever coach.
Why the count matters at all
A reasonable objection: so what? Most of those orders are obviously bad, and no coach considers them. Nobody is genuinely weighing the lineup where the worst hitter bats first and the best bats ninth.
That is true, and it is the right objection. The count matters for a narrower reason: it explains why convention exists and why convention is unverified. “Best average third, power fourth, weakest bat ninth” is a compression of the search space down to something a human can hold. It is a heuristic, and it was adopted long before anyone could check it against the alternatives.
Heuristics are not worthless — this one is roughly directionally sensible. But there is a meaningful difference between “this order is good” and “this order is the best available for these nine hitters,” and only one of those claims has been tested.
What actually drives the difference
Order matters because of a single mechanism: who bats in front of whom determines how often your best hitters come to the plate with runners on base. Everything else follows from that.
Put a high on‑base hitter in front of your best slugger and the slugger’s extra‑base hits drive in runners more often. Put your two worst hitters back‑to‑back and you have built an inning‑ending machine that comes up several times a game. Bury a high on‑base hitter at the bottom and you have spent his best skill in the slot that gets the fewest plate appearances.
These effects are individually small. They compound across a season, and they are exactly the kind of small compounding effect that human judgment is bad at and arithmetic is good at.
The honest limits
Three things worth saying plainly, because analytics writing tends to omit them.
The gains are real but modest. Optimizing a batting order is not worth several wins. It is worth a fraction of a run per game against a conventionally sensible order, and rather more against a genuinely bad one. It is free, which is the argument for doing it.
Small samples make the inputs shaky. Early in a season, on‑base and slugging percentages are noisy, and an optimizer fed noisy inputs will produce orders that jump around. That is a property of the data, not a bug in the math. Carrying prior‑season numbers forward until the current sample means something is a reasonable practice.
You know things the numbers do not. A player returning from injury, a kid who cannot handle batting leadoff yet, a developmental reason to give someone a look higher in the order. Those are legitimate and they should override the output. The value of a projection is that it tells you what the deviation costs, so you are making the trade knowingly.
The practical version
You do not need to care about factorials to use this. What follows from all of the above is short:
- Use on‑base percentage, not batting average, as your primary input.
- Do not bury a high on‑base hitter at the bottom of the order.
- Avoid stacking your weakest hitters consecutively.
- Re‑check the order as the season’s numbers move, because the optimum moves with them.
Diamond Data PRO does the arithmetic and reports the projected runs per game for the order it returns, so the size of the difference is visible rather than asserted. How the optimizer works.