Skip to main content
Every match in C3 Esports moves through a defined set of statuses from scheduling to completion. Understanding this lifecycle helps players, managers, and staff know what to expect and what actions are available at each stage.

Status overview

SCHEDULED

    │ (30 min before match time)

CHECK_IN_OPEN

    ├── Both teams check in ──────────────────────────────┐
    │                                                      ▼
    │                                                 IN_PROGRESS
    │                                                      │
    │                                        Result submitted by one team
    │                                                      ▼
    │                                           PENDING_CONFIRMATION
    │                                                      │
    │                               ┌──── Opponent confirms or 24h passes
    │                               │                      │
    └── One or both teams           │               COMPLETED ◄─────┐
        miss check-in               │                               │
              │                     └── Opponent disputes ──► (dispute resolution)
              ▼                                                      │
         FORFEITED                                                   │
                                                    Staff override ──┘

CANCELLED (can occur from SCHEDULED or IN_PROGRESS — admin action)

Status definitions

The match has been created and assigned a time, but the check-in window has not opened yet. The match appears on both teams’ dashboards with a countdown timer.Available actions: None (players wait). Managers can request a reschedule.
The 30-minute check-in window is active. Players can click Check In on the match page.Available actions: Check in (any roster player). Managers can contact staff if an emergency prevents check-in.Triggered by: The match status cron job (/api/cron/update-matches) when the current time is 30+ minutes before the scheduled match time.
Both teams have checked in. The match is actively being played.Available actions: None on the platform during gameplay. After the series ends, the manager submits results.Triggered by: Both teams having at least one player check in by the match start time.
One or both teams failed to check in by match time. The match is over without being played.Available actions: The present team’s manager clicks “Record Forfeit” to formally log the result.Triggered by: The match cron job when the match start time passes and one or both teams have no check-in.Note: The match page shows which team forfeited and the reason.
A result has been submitted by one team’s manager. The opposing team has 24 hours to confirm or dispute.Available actions: Opposing manager: Confirm Result or Dispute.Triggered by: A manager submitting game-by-game scores and replay files via the result form.
The match result has been finalized. Standings have been updated.Triggered by: Manual confirmation by the opposing manager, OR auto-confirmation after 24 hours without action, OR staff resolving a dispute.Note: Completed matches cannot be changed except by staff through a formal dispute process.
The match was cancelled by staff and no result is recorded. Neither team gains or loses points.Triggered by: Admin/staff action only — used for scheduling errors, duplicate matches, or other administrative reasons.

Timeline example: a normal match

TimeEventStatus
7:00 PM ETMatch created in systemSCHEDULED
7:30 PM ETCheck-in window opensCHECK_IN_OPEN
7:35 PM ETTeam A checks inCHECK_IN_OPEN
7:52 PM ETTeam B checks inCHECK_IN_OPEN
8:00 PM ETMatch start time; both teams checked inIN_PROGRESS
9:15 PM ETSeries ends; teams finish playingIN_PROGRESS
9:30 PM ETTeam A manager submits result and replaysPENDING_CONFIRMATION
9:45 PM ETTeam B manager reviews and confirmsCOMPLETED

Timeline example: forfeit

TimeEventStatus
7:30 PM ETCheck-in opensCHECK_IN_OPEN
7:48 PM ETTeam A checks inCHECK_IN_OPEN
8:00 PM ETMatch time; Team B has not checked inFORFEITED
8:05 PM ETTeam A manager records the forfeitFORFEITED (finalized)
8:05 PM ETStandings update: Team A +3ptsCOMPLETED

What triggers status changes

Most status transitions happen automatically via the match status cron job (/api/cron/update-matches) which runs every 5 minutes. Manual triggers (staff action or manager action) can also advance a match status:
Trigger typeTransitions caused
Cron job (automatic)SCHEDULED → CHECK_IN_OPEN, CHECK_IN_OPEN → IN_PROGRESS or FORFEITED, PENDING_CONFIRMATION → COMPLETED (auto-confirm)
Manager actionIN_PROGRESS → PENDING_CONFIRMATION (submit result), PENDING_CONFIRMATION → COMPLETED (confirm)
Staff actionAny status → CANCELLED, COMPLETED → score override, FORFEITED → declared by staff