Bracket maker · Guide
How the bracket maker works
The short version: An entry list goes in and a wired, publishable single-elimination tree comes out. This guide covers how a field is seeded, where byes land and why, how results move winners up the tree, how placements are worked out, every customisation option, and what the share link, embed and exports contain.
Who this is for: Organisers who have made a bracket, or are about to, and want to know exactly how seeding, byes, results and exports behave.
Part 1
What the bracket maker is, and what it is not
A bracket is very old technology: two names, a line between them, and somebody goes through. The bracket maker draws one, wires it, records what happened and gives it a link. That is the entire scope.
Brackets, not tournament management. There is no registration and no check-in: nobody signs up to your bracket, and players do not report their own scores. An entry list goes in, and you record the results. For an event where players register, check in and report from Discord, use Clutchat tournaments.
Single elimination is the only format. A bracket stores only its inputs — the entrants, the seeding rule and the results you have recorded — and the tree is derived from those every time it is read. That is why clearing a result cannot leave a stale winner standing in the round above: the round above is recalculated, not patched.
Every edit is saved to the server as you make it, so the editor needs a connection. What that buys is one implementation of the bracket rules: the tree on screen, the tree that is stored and the tree in a file you downloaded cannot disagree with each other.
Part 2
Entrants and seeding
Type names in, paste a list, or import a spreadsheet. Rename, reorder, add and remove at any point. An entrant keeps one internal id through all of it, which is how a recorded result stays attached to the people who actually played it.
A paste accepts one name per line, or commas, or tabs; on a multi-line paste a second column becomes that entrant’s note. Import reads a real CSV or TSV: it works out the delimiter, guesses the header row and which column is which and shows you the guess, keeps "Smith, John" as one name, copes with quoted fields that contain line breaks, and takes the order from a seed column when there is one. Duplicate and unusable rows are reported with their line numbers rather than dropped quietly.
Seeding modes
Two separate things happen when a field becomes pairings: who is seed n, and where seed n sits in the tree. Keeping them separate is what makes bye placement correct.
- Standard
- The list is the seeding — the first row is seed 1. Pairs are then folded so that the top seeds meet as late as possible.
- Random
- The field is shuffled first and then folded exactly like standard. The shuffle is stored with the bracket, so the draw is reproducible and is not re-rolled every time somebody opens the page.
- As entered
- No fold. Rows are paired straight down the list: 1 plays 2, 3 plays 4. For a draw that was already made somewhere else.
Redraw
Redraw replaces the stored shuffle with a new one, and the previous draw cannot be recovered — which is the point of a redraw. It only changes anything in random mode, because standard and as-entered both read the list in the order it is already in.
Reseeding does not necessarily cost you your results. Each stored result remembers the two entrants it was entered for, and it survives if that exact pair still meets in that match — either way round. Results whose pairings no longer exist are dropped, and the editor tells you which ones went.
Part 3
Slots, the fold and byes
A single-elimination tree needs a power of two. Thirteen entrants therefore get a sixteen-slot bracket and three byes — sixteen minus thirteen — and the byes go to the top three seeds.
| Match | Top | Bottom |
|---|---|---|
| 1 | Seed 1 | Bye |
| 2 | Seed 8 | Seed 9 |
| 3 | Seed 4 | Seed 13 |
| 4 | Seed 5 | Seed 12 |
| 5 | Seed 2 | Bye |
| 6 | Seed 7 | Seed 10 |
| 7 | Seed 3 | Bye |
| 8 | Seed 6 | Seed 11 |
Nothing places a bye by hand. The fold pairs seed s against seed slots + 1 − s, so with thirteen of sixteen seeds filled the missing seeds are 14, 15 and 16, and their opponents are seeds 3, 2 and 1. Byes land on the top seeds because of the arithmetic rather than because of a special rule — and a match can never have two empty sides, because that would need a seed and its mirror to both be missing, which cannot happen once the field is more than half the bracket.
As-entered seeding has no fold to lean on, so it deals the byes off the top of the list instead: one per match, in the first matches, with the rest of the field paired in order behind them. Pairing straight down the list would push every empty slot to the bottom and could hand the last match two of them — a match that can never be decided.
A bye is not a match. It has no score, cannot be given one, and counts towards neither the played nor the playable total.
Part 4
Recording results
Score a match from the Results panel, or click it on the bracket. A match with both sides known is open; one still waiting on an earlier match is not, and a bye never is.
A whole round saves in one go. The editor holds the scores you type, marks both the row and the match on the bracket as unsaved, and sends them together — up to 128 results at once, applied in order. If any one of them is rejected, none are saved: a half-entered round is worse than none.
A match cannot end in a draw. Level scores are accepted only with an explicit winner, which is how a walkover or a forfeit is recorded as 0–0 and still decides who advances. Negative scores are refused, and so is a score for a match whose sides are not both known yet.
Changing who won a match clears every result above it that depended on the old winner, and clearing a result does the same. Re-entering that match later starts the later rounds afresh rather than resurrecting a semifinal that had already been unwound.
Part 5
Standings and placements
In single elimination the round you went out in is your finishing band. Both semifinal losers are 3rd; all four quarterfinal losers are 5th. Eight entrants finish 1 2 3 3 5 5 5 5. The champion is the only entrant who never lost, so they are alone in the top band, and the runner-up is alone in the next one.
Until the final is decided, the table reports how far each entrant got rather than a prediction: everyone still in shares 1st, and everyone knocked out holds their real band. Each row also carries wins, losses and the round the entrant went out in, and ties inside a band are listed by seed.
The third-place playoff
Turn it on and the two semifinal losers get a match beside the final. Until it is played they still share 3rd. Once it is decided the winner is 3rd and the loser 4th, and no other placement moves.
- It feeds nothing and eliminates nobody.
- It shares the final’s round but is not part of it, so the final does not read as unfinished while an optional match waits to be played.
- It does not change anyone’s elimination round: both players went out in the semifinal, and the playoff decides their order.
- It is ignored on a bracket too small to have two semifinalists, and turning it off drops the result it was holding.
Part 6
Customisation
Everything in this section except the third-place playoff changes how the bracket looks, not what it contains. Changes apply as you make them, so you judge a style by looking at it.
Palette
Four named palettes — bone, clay, pine and slate, the dark one. Picking one copies its colours onto the bracket, so a bracket you have already shared keeps its look even if the named palette changes later. You can also set accent, deep accent, surface, surface edge, text, muted text, line and winner colours yourself.
Backdrop, logo and brand
The canvas behind the tree can be a flat colour, a gradient or an uploaded image (fitted, filled or tiled, with an optional tint for legibility), and you can add a logo. A brand profile saves an accent, wordmark, logo and backdrop to your account once; applying it copies those onto a bracket, so later changes to the brand never alter a bracket you have already published.
Layout
- Direction
- Left to right, right to left, or top to bottom — the last reads well on a phone.
- Density
- Compact, standard or roomy: node size, row spacing and type size together.
- Connectors
- Elbow, straight or curved lines between rounds.
- Typeface
- Sans, mono or display, applied to the whole graphic.
- Corners and lines
- Node corner radius from 0 to 24 px, and line weight from 0.5 to 4 px.
- Node width
- Follows the density by default, or a fixed width between 120 and 420 px.
Labels and visibility
Rounds are labelled from the end — Final, Semifinal, Quarterfinal, then Round n — and you can override any of them, up to sixteen labels of 24 characters. You can also set a wordmark of up to 40 characters, the champion label and the bye label, show entrant notes as a second line under each name, and hide seeds, scores, round labels, the footer or the bracket’s own name. With no background colour the bracket renders on a transparent canvas, which is what a broadcast overlay wants.
Part 7
Exports and embeds
The export is the view. A downloaded SVG comes from the same renderer that draws the bracket on screen, with the interactive parts switched off, so it cannot drift from what you saw.
- SVG
- Vector and print-ready, with any backdrop or logo image included in the file.
- PNG
- Rendered at twice the size in your browser from that same SVG. Web fonts cannot be embedded that way, so type falls back to a system face — use the SVG where the exact typeface matters.
- CSV
- One row per match, including which match it feeds into, so a spreadsheet can rebuild the tree.
- Standings CSV
- Placement, wins, losses and elimination round, one row per entrant.
- JSON
- The stored bracket plus the resolved tree.
Every file is named after the bracket and its share code, such as summer-showdown-7QF2KD.svg. The Export panel also gives you an <iframe> embed snippet: it shows the live bracket and nothing else, scaled to the width of the frame, with the latest results each time it loads. Switch on the transparent background for a stream overlay and the bracket’s canvas is dropped, leaving only the tree on whatever is behind it.
Part 8
Share links and ownership
Every bracket has a six-character code — 7QF2KD — and a link at clutchat.com/brackets/b/7QF2KD. The alphabet leaves out O and 0, I and 1, S and 5, because these codes get read aloud and retyped.
Anyone with the link can view and export the bracket without an account. Only the owner can edit it: everyone else gets a read-only view rather than a sign-in wall. Somebody signed in who does not own a bracket is told it does not exist when they try to change it, rather than that it is somebody else’s, so nobody can probe which codes are in use.
Brackets belong to your Clutchat account. Sign in with Discord, Google or a six-digit code emailed to you; the email option is a code rather than a link because inbox scanners follow links and would use a one-time link up before you could.
Part 9
Quick reference
Keyboard
- Enter or Space
- On a focused match in the bracket, open its score dialog.
- Esc
- Close a dialog.
Limits
- Entrants
- 2 to 512. At 512 a bracket has 1,023 boxes.
- Entrant name
- 48 characters, with runs of spaces collapsed to one.
- Wordmark
- 40 characters. Champion label 24, bye label 16.
- Round labels
- Up to 16, at 24 characters each.
- Results saved at once
- 128, applied in order.
- Edits
- Five saves every ten seconds, which is why a round is saved in one go.