How to Build a Single-Elimination Tournament Bracket (Seeds, Byes, and Print Day)
Build a single-elimination tournament bracket the right way: how seeding works, why non-power-of-two fields need byes, and how to print a clean chart for game night.
How to Build a Single-Elimination Tournament Bracket (Seeds, Byes, and Print Day)
The first bracket I ever ran was a Friday foosball ladder for eleven coworkers, and I drew it on a whiteboard during lunch. By the third match nobody could agree who was supposed to play next, two people swore they had a bye, and the marker ran dry mid-semifinal. Single-elimination is a simple format with one annoying detail that trips almost everyone up, and once you understand that detail the whole thing snaps into place. This guide walks through how a single-elimination bracket is actually structured, how seeding decides who meets whom, what to do when your player count is an ugly number like 6 or 11, and how to get a clean printout for a real game night or a season-ending playoff.
What a Single-Elimination Bracket Really Is
Single-elimination means one loss and you are out. Winners advance, losers go home, and the last unbeaten entrant takes the trophy. It is the fastest competitive format there is: 16 entrants need only 15 matches total, because every match eliminates exactly one person and you have to eliminate 15 of the 16 to be left with a champion. The trade-off is that an off day ends your run, so the format rewards consistency over a long ladder of second chances.
Here is the one detail that matters more than any other: a single-elimination bracket only works cleanly when the number of slots is a power of two. Two, four, eight, sixteen, thirty-two, sixty-four. Each round halves the field, so it has to halve down to exactly one with no fractions left over. With 8 players you play 3 rounds (8 to 4 to 2 to 1). With 16 you play 4 rounds. The round count is simply log2 of the slot count, and that math only lands on a whole number when the slot count is a power of two.
That is why so many homemade brackets fall apart. People draw a tree for 6 or 11 entrants, hit a round where the math does not divide evenly, and start improvising. The fix is byes, and a real bracket handles them on purpose, not as an afterthought.
Seeding: Who Faces Whom
Seeding is the order you place names into the bracket, and it decides every first-round pairing. There are two honest ways to do it.
Keep your input order when you have a ranking. If line 1 is your strongest team and the list runs down to your weakest, seeded order pairs the top seed against the bottom seed, the second seed against the second-from-bottom, and so on. The point is to protect the favorites: the best two entrants land on opposite halves of the tree and can only meet in the final. League standings, last season's results, or a power ranking all make good seeds.
Shuffle when you want a blind draw. A random draw is the fair answer when there is no ranking, or when you want nobody to claim the bracket was rigged. A pickup game night almost always wants a shuffle. A ranked playoff almost always wants seeded order. If you are reaching for randomness for any draw like this, a dedicated list randomizer gives you a clean shuffle you can re-run and share, and the same crypto-grade shuffling sits behind the bracket tool's shuffle button.
The mistake I see most: people shuffle when they actually have a ranking. If you hit shuffle on a seeded field, your top two could collide in round one by pure chance, which is rarely what a ranked playoff wants.
Byes: The Fix for Awkward Player Counts
A bye is an empty slot whose opponent advances for free. When your field is not a power of two, you pad it up to the next power of two with bye slots, and the entrant paired against a bye walks into the next round without playing.
The rule of thumb is that byes always go to the top seeds. That is not favoritism for its own sake; it is what keeps the bracket balanced. Giving the strongest entrants a free pass into round two means the early real matches happen lower in the field, where they belong, and the tree stays symmetric.
A few quick examples of the padding math:
- 6 entrants pad to 8, adding 2 bye slots.
- 11 entrants pad to 16, adding 5 bye slots.
- 20 entrants pad to 32, adding 12 bye slots.
- 23 entrants pad to 32, adding 9 bye slots.
And note what byes do to the round count: because you pad first, 6 players still play 3 rounds (padded to 8), and 20 players play 5 rounds (padded to 32). The round count is never the raw entrant total. It is log2 of the padded slot count, full stop.
Worked Example: Six Players, Eight Slots
Let me run the whole thing with six entrants, because six is the smallest count that shows every wrinkle. Say your roster is Alice, Ben, Cara, Dan, Eve, and Finn, in that order, and you are keeping seeded order because Alice is your top seed.
Six is not a power of two, so the field pads up to 8, the next power of two. That adds 2 bye slots, and those byes go to the two top seeds: Alice and Ben. They skip round one entirely.
Round one therefore has only two real matches, played by the lower four seeds: Cara versus Finn, and Dan versus Eve. The other two round-one slots are bye advancements, Alice and Ben walking through untouched. So you see two genuine opening games plus two free passes.
That leaves four players for the semifinals: Alice, Ben, and the two round-one winners. Two semifinal matches, then a final, then a champion. Three rounds total, exactly as log2 of 8 predicts. Six players, padded to 8, three rounds, two byes, and nobody arguing about who plays next.
You can build that entire structure in one click with the tournament bracket generator: paste your six names, choose seeded or shuffled, and it pads the field, places the byes on the top seeds, pairs round one, and labels every round from the opener through the semifinals and final.
Printing for Game Night or a League
A bracket is only useful if everyone can see it. For an in-person event, the simplest reliable approach is to copy the bracket as plain text and print or post it. Text travels everywhere: it pastes into a team channel, prints from any device, and shows up the same way for everyone. No screenshots of a half-cropped tree, no "which version is current" confusion.
For a league playoff, generate the bracket once from the final standings in finishing order, leave it on seeded, and you get the quarterfinals, semifinals, and final laid out so you can book courts and time slots around the schedule. Post the text on the wall, share the link with captains, and the same draw reopens for anyone who clicks it.
One privacy note worth knowing before you share a link: a shareable bracket URL encodes the player list in the query string, so a link pasted into chat records those names in the recipient server's access log. For a confidential draw, copy the text and paste that instead of sharing the URL. For a casual game night, the link is the fastest way to get everyone on the same page.
That foosball ladder I botched on the whiteboard would have taken about thirty seconds done properly: paste eleven names, pad to 16, hand five byes to the top seeds, print the text, done. The format is genuinely simple once you respect the one rule that the slot count has to be a power of two and let byes carry the rest.
Made by Toolora · Updated 2026-06-13