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
A season closes by itself the day after its end date, in your club's time zone. When it does:
- every membership still open in it — active, pending, lapsed, suspended — becomes expired
- anyone still waiting on its waitlist leaves the list, and an offer nobody answered expires (the family is emailed that it has gone)
- the season's status becomes closed
A closed season can still be the current one — the weeks between seasons are real — so the desk keeps working. Roll the club forward by creating the next season and making it current. A draft season is never closed automatically.
Lapsed memberships
A membership whose dues are still unpaid 30 days after their due date is moved to lapsed by a daily check, which turns the family red at the gate with "Membership lapsed", and every adult in the household is emailed to say so. Thirty days is the default; change it under Club setup → Settings → Memberships (1 to 365 days). Payments count against the oldest invoice first, so a later snack-bar tab never lapses dues that were paid. A family with a dated grace from the treasurer is left alone, and a membership with no dues invoice is never lapsed.