Skip to main content
Documentation

Seasons

A season strings several competitions together into one standings table. Run a league in spring, a major in the autumn and a few one-day events in between, and the season keeps a running score across all of them — so there's a circuit champion at the end, not just a winner per event.

Each event in a season is an ordinary competition that runs exactly as it would on its own. The season sits on top: it decides which events count, how much each one is worth, and how results turn into season points.

What a season is — and isn't

  • A season is a scoring window. You pick the events, pick a scoring model, and the platform totals it up.
  • It doesn't change how any event is played. Stages, groups, brackets and match reporting are all per competition. If you want two events to be structured the same way, use a competition template; if you want their results to count together, use a season. You can do both.
  • The season applies its own points table. Each event's results are converted to season points using the season's scoring settings, so events don't need identical stage scoring to combine cleanly.
  • Team leagues are a separate feature. Club-vs-club seasons have their own divisions, fixtures and promotion/relegation — see Team Leagues. A team-league season's results don't feed a scoring season; only individual players score here.

Creating a season

From your organization page, open Seasons and choose New season.

| Field | What it's for | | ---------------- | ------------------------------------------------ | | Name | Shown on the season page and in the seasons list | | URL slug | The season's address under your organization | | Description | Optional intro shown on the public page | | Game system | Optional; ties the season to one game | | Start / End date | Display only — they don't open or close anything |

A new season starts in Draft. Nobody's standings change until you activate it.

Adding events

Go to the season's Manage → Events page and pick any competition in your organization — running, finished or still in draft (the picker shows each one's status). You can add events at any point during the season, and remove one that hasn't been finalized.

Each event has a weight, defaulting to 1. It multiplies the season points a player earns from that event, so a major that should count double gets a weight of 2. Anything other than 1 shows as a badge (e.g. 2x) on the event row and on the public page.

A season needs at least one event before it can be activated.

Scoring models

Scoring lives under Manage → Scoring and can be edited while the season is Draft or Active.

| Model | How a player earns season points from an event | | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | Placement Points | From their final placement in the event, using one of the placement formulas below, plus any participation points. | | Match Points | From every match they played in the event: points per win / draw / loss, an optional bonus per game won, plus participation points. | | Hybrid (Placement + Match) | Both of the above, blended: placement points × placement weight + match points × match weight (defaults 0.6 and 0.4). | | Elo Rating / Glicko-2 Rating | No points at all — the season keeps a rating that is replayed from every finalized event's matches. The standings show Rating instead of Points. |

Placement formulas

| Formula | Points for a given place | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Linear | 1st place points, minus a fixed step per place, never below the minimum (defaults: 25, step 2, minimum 1) | | Exponential Decay | Base × decay^(place − 1) (defaults: base 100, decay 0.85) | | Field Size Based | Field size − place + 1, so a win in a bigger field is worth more. The field size is the event's player count, but never below the base field size or above the cap (defaults 32 and 64). | | Custom Table | Exactly the points you enter per place |

Participation points are added once per event a player took part in, whatever their placement.

Placement comes from the final placements an event records when its stages complete — see Managing Events. In a dual-division league, only the Seed division's placing counts here; the Timezone division's matches still count under Match Points.

Match Points fields

| Field | Meaning | | ----------------- | --------------------------------------------------------------------------------------- | | Win / Draw / Loss | Points per match result (defaults 3 / 1 / 0) | | Game Win Bonus | Extra points per individual game won inside a match (e.g. each game of a best-of-three) | | Participation | Points per event played, added once | | Forfeit Penalty | Accepted by the form, but not applied to totals yet — leave it at 0 |

Match Points count every match the player played in the event, across all of its stages.

Drop scores, minimum events and tiebreakers

  • Drop Scores — drop each player's lowest-scoring events from their total. Set how many to drop; a player is never dropped below one counted event. The standings show both the raw total and the adjusted total.
  • Minimum Events for Ranked Standings — players with fewer finalized events than this are listed in a separate unranked block at the bottom of the table rather than mixed into the ranking.
  • Tiebreakers — an ordered list applied when points are equal: Total Points, Adjusted Points (after drops), Events Played (more or fewer = better), Best Single Placement, Head-to-Head Record, Recent Form, Average Placement. Head-to-Head Record is recorded on each row but doesn't currently reorder the table; put another tiebreaker after it if you need a deterministic order.

Running a season

  1. Activate the season (Manage → Settings → Activate Season) once it has at least one event. Scoring stays editable.
  2. Finalize each event when it's done: Manage → Events → Finalize on the event row. Finalizing records the event's final placements from its completed stages, converts the results to season points, and recalculates the standings. Only finalized events count — an event that hasn't been finalized contributes nothing, however far along it is.
  3. Unfinalize if something changes (a corrected result, a late forfeit ruling). The event drops out of the standings until you finalize it again.
  4. Complete the season when the last event is in. If any events are still unfinalized you get a warning first — you can still complete, they just won't count. A completed season can be reopened to Active if you need to fix something, or archived once it's truly done.

Two things worth knowing:

  • Finalize after the event completes. Placements only exist once a competition's stages are completed, so finalizing an event that's still running gives everyone zero placement points for it (matches already played still count under Match Points). Unfinalize and re-finalize once it's over.
  • Finalizing is what computes the points. If you change the scoring settings or an event's weight after finalizing, unfinalize and re-finalize the affected events to recompute them under the new settings.

What players see

The season's public page, linked from your organization's Seasons list, shows:

  • Standings — rank, player, Points (or Rating for Elo / Glicko-2 seasons), events played, best placement, win–loss record and average placement, with the unranked block underneath when a minimum-events rule is set.
  • Events — every event in the season with its status, a Finalized marker once its results are locked in, and its weight badge when it isn't 1.

What this doesn't do (yet)

  • No per-event scoring override from the UI — every event uses the season's scoring model, scaled only by its weight.
  • Forfeit Penalty is not applied to Match Points totals.
  • Head-to-Head Record doesn't reorder tied players.
  • Team-league seasons don't feed scoring seasons.