Skip to content

By · Published: 2026-10-12

A rec league season from draft night to the last inning

Every volunteer coach in a kids’ league ends up making three kinds of decision over and over: who picks first at the draft, who bats where, and who sits which inning. Each one is small. Across a twelve-game season they add up to a few hundred choices, and every one of them is a choice some parent can read as favouritism. This guide runs one season end to end with three of the site’s tools, in the order you’d meet them, with the arithmetic for each step worked out before the first practice.

The example league is a coach-pitch division with six teams. Our team has eleven kids, games run six innings with nine in the field, and the schedule is twelve games. Change the numbers to match yours; the method doesn’t change.

Step one: the draft order, settled before anyone knows who it favours

Six coaches sit down after evaluations to divide the player pool. Someone has to pick first, and in a snake draft that also decides who picks last in round two. The Fantasy Draft Order Generator does this job for any league, not just fantasy: paste the six coach or team names one per line, click Generate draft order, and it reveals the order one pick at a time, top pick first.

Before the meeting, agree two things in writing in the league chat.

Flat or weighted. With the weighted lottery option off, the order is a plain shuffle and every coach has a 1 in 6 chance at each slot. With it on, the tool gives the first line the most tickets and the last line one ticket, then draws without replacement. Paste the teams in reverse of last season’s standings, worst first, and with six teams the tickets run 6, 5, 4, 3, 2, 1 out of 21. That works out like this:

Team (worst to best last season)Chance of pick 1Chance of pick 6
1st line (worst)28.6%2.6%
2nd line23.8%4.1%
3rd line19.0%6.6%
4th line14.3%11.5%
5th line9.5%22.3%
6th line (best)4.8%52.8%

The worst team lands in the top two 53.4% of the time, and the best team picks last just over half the time. For a kids’ league where the standings were mostly decided by which families moved away, many leagues reasonably prefer flat. Decide which, then stop discussing it.

A seed. Pick a phrase everyone can see in advance, such as the league name and season, and type it into the Seed box under Options. The same seed, the same list in the same order and the same weighted setting always reproduce the same order, so any coach can re-run it at home and get the identical result. Post the exact list order alongside the seed, because changing the order of the lines changes the draw.

The tool hands you a single sequence. If your league runs a snake, picks reverse in even rounds and you apply that by hand; the post on snake drafts explains why a snake evens out the picks without promising even teams. Export the order as CSV so the result outlives the browser tab.

Step two: eleven kids, nine positions, six innings

Once you have a team, the slot arithmetic is worth doing before you promise parents anything. Nine fielders for six innings is 54 field slots. Eleven kids into 54 doesn’t divide: 54 is 11 × 4 + 10, so ten kids can play five innings and one kid plays four. No schedule can do better, and no coach should say “everyone plays the same”.

The Fair Rotation / Substitution Tool builds that schedule. Paste the roster, set On-field per period to 9 and Periods / quarters to 6, and click Build rotation. For each inning it sorts the roster by innings played so far, after a random shuffle that breaks ties, and takes the nine with the fewest. The result is a grid of innings, plus a collapsible “Minutes played per player” list that shows the 5s and the single 4.

Two details of how that algorithm behaves with these numbers, both checked by running its logic a few hundred thousand times:

  • The short kid is always decided in the sixth inning. After five innings, 45 slots have gone to eleven kids, so one kid has played all five and ten have played four. In the sixth inning the kid on five sits, plus one of the ten on four, picked at random. That second kid is the one who ends on four.
  • About one game in five, somebody sits the fifth and sixth innings back to back. Two kids sat out the fifth inning, and the random sixth-inning pick lands on one of them 2 times in 10. It’s still the same total, but it feels worse to a seven-year-old, and it’s worth a glance at the grid before you print it.

The good news is that every prefix of the schedule is balanced too. If the game is called after five innings for time, ten kids have four innings and one has five. Nobody is ever more than one inning behind anyone else.

Step three: carry the fairness across games yourself

Each time you build a rotation, the tool starts fresh. It doesn’t know who was short last Saturday, so across a season the short straw is an independent 1 in 11 draw each game. Over twelve games:

Over a 12-game seasonProbability
A given kid is never the one on four innings31.9%
A given kid is short two or more times29.9%
A given kid is short three or more times8.9%
At least one kid on the team is short three or more times74.8%

That last line is the one that produces the awkward conversation in week nine. Three short games out of twelve is three innings fewer than a teammate, from a process that is perfectly fair game by game. The fix is a tally, not a different tool. Keep one row per kid in a notebook or a spreadsheet, and tick it whenever that kid finishes on four. Before the next game, look at the grid the tool builds. If the kid on four already has a tick and someone with none is on five, swap them in the last inning. You are not overriding the randomness so much as finishing the job it can’t see.

Save each game’s grid as you go. The Recent results panel keeps only the last ten results for each tool in your browser, and a twelve-game season is longer than that. The CSV export writes one row per inning with the on-field names separated by pipes, which is all the record you need.

Step four: who plays where, inning by inning

The rotation tool decides who is on the field. It doesn’t say where. For that, take each inning’s nine names and give them to the Random Sports Position Assigner with the sport set to Baseball (9). The rotation tool’s Copy button gives you lines like P3: Ava, Ben, Cole, ...; paste one inning’s names without the label as a single comma-separated line, and the position assigner splits a one-line list on its commas. Nine names fill P, C, 1B, 2B, 3B, SS, LF, CF and RF exactly, so nobody shows up as bench.

Randomising positions every inning spreads the experience around: a kid playing five innings with nine positions in play has a 44.5% chance of catching at least once in a game. Catching gear between every inning is a nuisance, though, so many coaches assign catcher by hand for two or three innings at a time and randomise the rest. The tool can’t lock a position, so in practice you assign, then swap the two kids by hand. The post on short-handed lineups covers what this tool does when you have fewer than nine.

Step five: the batting order, and the box to untick

The Random Batting Order shuffles the whole roster into an order. Most coach-pitch leagues bat everyone in a continuous order, so all eleven names go in, and Generate lineup gives a numbered list.

Untick Assign positions for this workflow. With it on, the tool shuffles nine positions and hands them to hitters 1 to 9 in order, and anyone batting 10th or 11th gets no position at all. With eleven kids, that quietly couples the bench to the bottom of the order: the two kids sitting the first inning would always be the last two hitters. You already have the defence from steps two and four, so let this tool do only the order.

There’s no seed on this one. Each click is a fresh shuffle, so generate once, copy or export, and post it. Over the season the same independence applies as before. Each game, any given kid leads off with probability 1 in 11, and over twelve games a given kid never leads off 31.9% of the time. Expect three or four of your eleven to finish the season without ever batting first. If that matters to your families, use the same tally trick as for innings: note who has led off, and after the shuffle, swap the leadoff with someone who hasn’t had a turn.

The game-day routine

Put together, a game takes about five minutes of prep the night before:

  1. Open the rotation tool, check the roster (it’s saved in your browser, so you only remove absentees), and build six innings.
  2. Compare the short kid against your tally and make at most one swap.
  3. Run each inning’s nine names through the position assigner and fix catcher by hand.
  4. Untick Assign positions and generate the batting order.
  5. Export the rotation, copy the batting order, and write both on the lineup card.

When an absence changes the numbers, redo the slot arithmetic first. Ten kids for 54 slots is 10 × 5 + 4, so six kids play five innings and four play six; nine kids means everyone plays every inning and the rotation tool has nothing to decide. Twelve kids is 12 × 4 + 6, so six play five and six play four, which is the easiest number of all to explain.

What this buys you at the end of the season

You’ll still get the parent who counts innings. The difference is that you can show your work: a draft order anyone could re-run from a published seed, a rotation grid for every game, a tally showing that the short games were spread out, and batting orders generated by a tool rather than by you. The coach’s guide to fair lineups argues that trust in youth sports is won on the lineup card. Doing it the same way for all twelve games is what keeps that trust.

← Back to all posts

Send feedback

Found a bug, want a feature, or just say hi? Send it our way.