Tournament Builder App: Schedule, Standings, and Bracket from Your Phone
Whether it's a futsal league, a workplace tournament, or a neighborhood organization — they all have the same three tasks: generate the fixture, collect scores, and keep the standings updated. You can do it in Excel, but no one opens that file mid-season.
What happens when you do it manually?
The traditional way: a WhatsApp group, an Excel file, and one person generating the fixture. First three weeks go fine. In the fourth week a match gets postponed, in the fifth scores don't get entered, in the sixth people argue about who played how many matches, and the league effectively ends.
The problem isn't lack of discipline; it's that you've built a system dependent on one person and tedious to update.
How does an automatic fixture generate?
When you enter teams, pairings are created by rule. In a single round-robin league, every team plays every other team once; the total number of matches is found with the formula n×(n−1)/2.
- 4 teams → 6 matches (double round-robin 12)
- 6 teams → 15 matches (double round-robin 30)
- 8 teams → 28 matches (double round-robin 56)
- 10 teams → 45 matches (double round-robin 90)
Which format is right for you?
- League: Everyone plays everyone. Gives the fairest result, takes the longest. Right choice if you have a stable group and regular venue.
- Elimination: Losers are out. Finishes in one day, one bad match can end the tournament. Ideal for tournament day.
- Groups: Groups first, then elimination. Balances match count and keeps fairness with large participation.
- League + playoffs: The format with the highest completion rate in friend groups.
Standings and goal difference
As scores are entered, the table should update itself; no one should have to calculate anything. Standard scoring is 3 for a win, 1 for a draw, 0 for a loss.
- In case of a tie, ranking is: goal difference → goals scored → head-to-head result.
- Goal difference = goals scored − goals conceded. A team that scores 20 and concedes 12 has a +8 difference.
- Write down the default loss score at the start of the season (e.g., 3-0).
- Announcing these rules from the start completely prevents end-of-season arguments.
When setting up an elimination bracket
- If participant count is 4, 8, 16, or 32, nobody gets a bye.
- If not, pull from the next higher power: with 12 participants, 16 − 12 = 4 teams get a bye.
- Bye is given to top seeds, not randomly.
- First seed goes to the top of the bracket, second seed to the bottom; they only meet in the final.
Sharing results
A league stays alive by making the standings visible. Exporting the table and fixture as a PDF and posting to the group ensures everyone sees the same information — no "I played 4 matches" argument ever starts.
Doing it from your phone
League & Tournament Maker supports league, elimination, and group formats. When you enter teams it automatically generates the fixture, as scores are added it updates the standings and goal difference, and in the elimination bracket it builds the next round on its own. Results can be shared as a PDF.
Frequently Asked Questions
How many matches are played in an 8-team league?
28 matches in single round-robin format, 56 in double round-robin. Formula: team count × (team count − 1) ÷ 2.
What happens if points are tied?
Common ranking is goal difference first, then goals scored, then head-to-head result between the teams. Announcing this rule at the start of the season is important.
Which format is better for a friend group?
Single round-robin league + playoffs has the highest completion rate. Double round-robin leagues drag on, so participation tends to drop mid-season.
League & Tournament Maker
Round-robin, elimination, and group stage tournaments; fixtures, standings, and PDF output.