Why this is the first screen
A season is the frame everything else sits in. Memberships belong to a season, dues are charged for a season, registration opens and closes within one, and the front desk asks "is this person a member this season".
A club with no current season set has a front desk that answers "season has not started" to every family that walks up — correctly, and unhelpfully.
What you can do today
Seasons (needs manage_seasons) lists the club's seasons and lets you:
- Create a season with a name, start and end dates, and a registration window
- Make one current — the single most consequential button on the screen
Only one season is current at a time. Making a new one current is what rolls the club over.
The registration window
The window is when the public join form accepts submissions. Outside it, the form is not offered. Set it before you tell families to sign up.
Season states at the gate
| Situation | What the desk sees |
|---|---|
| Season has not started | Yellow — "set the club's current season, or move the start date" |
| Season has ended | Yellow at the gate, red at meet entry |
Both are yellow rather than red on purpose: a club in the gap between seasons still has a front desk, and a missing current season is a club's admin problem, not a reason to refuse a family at the door. Meet entry is red because entry fees are remitted and non-refundable.
Closing a season
Automatic season close, along with the recurring jobs that sweep lapsed memberships and expire waitlist offers, is not built yet. Roll the club forward by creating the next season and making it current.