Competios → A season

A season

One league. One table. Always right.

A league is not a long tournament — it is a commitment. Results arrive out of order, two teams finish level on points, and somebody has to know what that means. What Competios runs today is one round-robin, end to end.

Autumn League · Division 1
ROUND-ROBIN · 6 ENTRANTS
#TeamPWDLPts
1NR Northside Rovers541013
2HC Harbour Club531110
3MW Millwood52218
4EV Eastvale52036
5SP St. Peters51134
6BQ Bridge Quays50141
3 points for a win, 1 for a draw. Tie-break: head-to-head, then wins.

A sample table. Standings are computed from completed results, in the shape the public page renders.

Runs today

What the engine does now

Every line here is in the shipped organiser loop and covered by tests.

  • One round-robin, generated at once. Every entrant plays every other. Byes are recorded honestly rather than invented.
  • Standings that recalculate themselves. Played, wins, draws, losses and points, tie-broken head to head, then by wins. No recount, no spreadsheet.
  • Immutable results with a recorded adjudication path. Void, replay or forfeit, each with a reason attached and kept beside the original result.
  • Idempotency-safe retries. A score submitted twice from a bad connection is recorded once.
  • Version-fenced concurrent writes. Two organisers editing at once cannot clobber each other; the stale write is rejected.
  • A public page with no account. Fixtures, standings, entrants and the champion, on a link anyone can open.
  • Reschedule a single match. Move one match’s time without breaking the table — completed results are what count, not the calendar.
In development

What we are building next

None of this exists in the product today. It is written here as the roadmap it is, and the order is still open — tell us which one you need first.

  • Seasons across weeks. There is no season entity yet: one competition is one self-contained format.
  • Promotion and relegation. How many go up is not a setting anywhere in the product.
  • Home and away. The round-robin that ships is a single complete round, not a double one.
  • Playoff qualification. No format hands off into another yet, so a group stage cannot feed a knockout.

Why a season is different

The week a spreadsheet breaks.

One evening’s knockout fits on paper. A league does not — because a league has state, and state drifts the moment two people edit it.

Results arrive out of order. A rescheduled match gets played after the round that followed it. The table is computed from completed results, so it stays right either way.
Ties need rules decided in advance. Head-to-head first, then wins — settled before the first fixture, not argued about in December.
Somebody disputes a result. Adjudication is a recorded act with a reason attached, not a message that scrolls away in a group chat.
Two people edit at once. Every write states the version it expected, so the stale one is rejected instead of quietly winning.
A league basketball match in a packed hall, players contesting the ball at the rim.

Fixtures

The whole round generates at once, then bends when life happens.

Every entrant plays every other, generated in one go at lock time. Move a single match and the table does not care: it counts completed results, not the calendar.

Round-robin · fixtures
SAT 21 — SUN 22 NOV
SAT 11:00Northside RoversvEastvale3 – 1
SAT 14:30MillwoodvBridge Quays2 – 2
SUN 10:00Harbour ClubvSt. Petersto play
SUN 13:00MillwoodvHarbour Clubrescheduled

A sample fixture list. Times are set by the organiser and can be changed one match at a time.

Everyone else just watches

A page your players will actually check on Sunday night.

Standings, fixtures and results on a link anyone can open — no account, no app, no login wall. This one is shipped: the public competition page requires no authentication at all.

We are not linking one from here yet. Which competition is public and populated enough to show a stranger is a call we have not made, and a link to an empty page would undo the point of this one.

The way in

Create competition

Name the event, add a tournament, set the entry offer, then publish when you are ready.

Participants register on the public event page once you publish. Prefer a hand-held first night? Email us with the date, format and likely entrant count.

Start on Competios

The create form is the organiser front door. Published events still list Register for entrants at /events.

Create competition

Opens the Competios create form on this site.

Email about organising

Use your normal email account. You are not added to a mailing list or automated sales sequence.

alex@sneat.co