This page describes what the planner actually does. Not a feature list — the method, with the formulas, so you can check the output against it by hand if you want to.
Nothing here is generated by a language model. Every figure comes from arithmetic on the numbers you entered. The same inputs always produce the same plan, and any number in the output can be traced back to a step below. That matters when you have to defend an entry fee to a committee, or explain to a coach why their team plays at 9am on Sunday.
The format determines the match count, and the match count drives everything downstream — pitch hours, referee slots, budget lines. So it is settled first.
| Single round robin | N × (N−1) / 2 matches, across N−1 rounds (N rounds if N is odd, with one bye each round) |
| Straight knockout | N−1 matches, because every match eliminates exactly one team. Byes do not change this |
| Groups + knockouts | Group matches summed per group, plus the knockout and placing matches for each tier |
With an odd number of teams a dummy bye slot is added to make the bracket even. That is why an odd round robin has as many rounds as teams.
This is the check most spreadsheets skip, and it is the one that causes tournaments to overrun. Capacity is computed before any fixture is placed.
| Slot length | match duration + changeover time |
| Matches per pitch per day | floor(available minutes per day / slot length) |
| Total capacity | matches per pitch per day × pitches × days |
| Pitches required | ceil(matches / (matches per pitch per day × days)) |
| Days required | ceil(matches / (matches per pitch per day × pitches)) |
If capacity is short, you are told how many pitches or days are missing before anything else runs — not after a schedule has been half drawn. If the margin is under roughly one extra round, it is flagged as tight rather than passed silently.
Fixtures are placed one at a time, earliest feasible slot first. A slot is only feasible if it violates none of the following. These are constraints, not preferences — the scheduler will use another day rather than break one.
| Rest between matches | A team cannot play again until the minimum rest has elapsed (60 minutes is the usual youth setting) |
| Matches per team per day | A cap you set; once a team hits it that day, no further fixture is placed for them |
| Pitch occupancy | One match per pitch at a time, changeover included |
| Opening hours | Matches are only placed inside a pitch's open windows, and must finish inside the same window |
| Pitch size matching | An 11-a-side match only goes on a pitch that can take it; larger pitches can host smaller formats |
| Stage barrier | No knockout fixture starts before every group match in that division has finished |
| Round order | Within a tier, a round cannot start before the previous round has finished |
Pitches can have several windows in one day (for example 9–12 and 14–18 with nothing over lunch), and windows can apply to a single day only. A pitch can also be closed for a whole day.
Referees are assigned after fixtures are placed, working through the schedule in chronological order.
| No overlap | A referee already committed to an overlapping time is not available |
| Not their own club | If the roster entry records a club (written as name@club), that referee is never appointed to their own club's matches |
| Load balancing | Among the available referees, the ones with fewest appointments so far are picked first |
| How many per match | Follows the format: normally one for 7-a-side, a referee plus two assistants for 11-a-side |
If the roster is too small to cover every match, you are told how many appointments are short rather than getting a schedule with silent gaps.
The budget is built from the schedule, not estimated separately. Match count and pitch hours come from steps 1 to 3, so the numbers cannot drift apart.
| Pitch hire | day rate × pitches × days (or per-match / hourly, if that is how your venue prices it) |
| Referees | referees per match × matches × fee |
| Staff, medical | headcount × days × day rate |
| Kit, awards | per pitch and per age group |
| Contingency | a percentage of the direct-cost subtotal |
| Break-even entry fee | total spend / number of teams |
Unit prices are per market, not converted from one currency. English pitch hire, referee fees and insurance follow different structures from Chinese or American ones — for instance affiliated English clubs already hold public liability through county affiliation, while American organisers buy single-day cover per event.
Tournament planning is not a task where a plausible answer is good enough. A fixture list that looks right but puts a team on the pitch twice in twenty minutes is worse than no fixture list, because nobody checks a document that appears finished.
So the planner is built as arithmetic with explicit constraints, not as a model producing a likely-looking schedule. When capacity is insufficient it says so and stops, rather than quietly dropping fixtures to make things fit. When the referee roster is too small it reports the shortfall instead of leaving matches unstaffed. Failing loudly is a feature.
Worth knowing before you rely on it:
Travel time between venues. Multi-venue tournaments are scheduled per pitch; the planner does not know how long it takes to drive between two sites. If your venues are far apart, add that into the rest setting yourself.
Weather and postponements. There is no rescheduling engine. If a day is lost you re-run the plan with the remaining days, which is quick, but it is a new plan rather than a patch to the old one.
Guaranteeing your local prices. The default unit costs are researched per market and are a starting point, not a quote. Pitch hire in particular varies by a factor of three within one country. Replace them with your own figures as soon as you have them.
Team preferences. Requests like “we can only play Sunday morning” are handled through arrival-time constraints, but the planner does not negotiate between competing requests. It applies the constraints you give it.
Check it against your own tournament
Put in your teams, pitches and days and compare the output against the formulas above. If a number does not reconcile, that is a bug worth telling us about — every figure is supposed to be traceable.
Open the planner