Standings and season
Pools, brackets, league points, the season ladder, promotion and relegation — how scores become standings, and standings become a season.
Pools
A pool ranks by wins, then by point difference — every point scored in a game counts, even in a loss. When two teams are dead even, head-to-head decides. The standings update the moment each score locks, in front of everyone.

Brackets
The bracket generates for any number of entrants — byes place themselves and the qualifier advances without anyone clicking. A consolation bracket can catch the first-round losers, so nobody crosses town for a single match.
In pool + playoffs, the bracket’s seeds come from the pool standings: “1st of pool A vs 2nd of pool B” resolves itself the moment the pools finish.

League points
In a league, every match earns points on the scale of its division’s level: so much for a win, a tie, a loss — and pool play can pay differently from playoffs. A presence point can reward simply showing up: it’s often what brings the middle of the table back in February.
Everything is set in League points, level by level. The defaults are sensible — only touch them if your league already has its traditions.
The season ladder
Session after session, points pile into the season ladder: the long standings, the ones retold at the year-end party. It lives on the event’s public page, next to each session’s own ranking.
Promotion and relegation
For leagues with several levels, Up & down mode keeps the staircase alive: when a session locks, the top of each division moves up, the bottom moves down, and the moves show — ▲ and ▼ — on the standings. You choose whether divisions stay fixed all season or reshuffle as results come in.
All of it is set under How the standings evolve: the engine (up & down, or a full re-sort from the ladder), and how many places trade at each border between divisions — automatic by division size (the bigger the division, the more movement, never anyone from mid-table), or fixed by hand.
Publishing results
There’s nothing to publish — it’s already public. The event page carries the season ladder, each division its standings and bracket, each session its results page. The link you shared on day one shows, at season’s end, the whole story.
After the last session, the final standings are simply… the standings. Screenshot them, send the link, hand out the prizes — there’s no “official export” step to forget.