What is a Term Class?
A term class is a fixed-duration enrolment where players sign up for an entire block of sessions (a term). Terms have a defined start date, end date, and session schedule. Term classes are common in structured programs such as learn-to-swim, tennis coaching programs, and school-term fitness classes.
Creating a Term Class
Scheduling
When creating a class with schedule type Term:
- Set term start date and term end date
- Set recurring schedule within the term (e.g., every Tuesday and Thursday)
- The system generates all sessions between the start and end dates on the configured days
Holiday exclusions
Specific dates within the term can be excluded (e.g., public holidays):
- During class creation, toggle individual session dates as Included or Excluded
- Australian public holidays are flagged automatically for review
- Excluded dates are displayed on the class detail page for players
- Enrolled players are not charged for excluded sessions
Pricing
Set a full-term price. This is the amount charged for the entire enrolment period. The per-session rate is calculated automatically for display purposes.
Booking fee: a single up-front term payment carries the term-class booking fee of 2.2% at checkout (floored at 50¢ GST-inclusive, academic for any realistic term price). If the term is paid by Stripe subscription instalments instead, each instalment is charged the subscription_payment rate of 3% per charge. The club's payout is reduced by the tier-based platform fee on the cash portion. See 05-payments-and-credits.md for the full fees model.
Drop-in Bookings
What is drop-in?
Drop-in allows casual players to book a single session in a term class without enrolling for the full term.
Enabling drop-in
Toggle "Enable drop-in" when configuring pricing. Set a separate drop-in price (typically higher than the equivalent per-session term rate).
Drop-in booking experience
When a player views a term class with drop-in enabled, the booking panel shows the next available session date and time (e.g., "Next: Tue 17 Mar · Single session"). The player is booked into that specific session, not the term as a whole.
Drop-in availability
Drop-in spots are subject to the same session capacity as full term enrolments. Drop-in players are shown on the session roster alongside term-enrolled players.
Pro-Rata Pricing
What is pro-rata?
Pro-rata pricing allows players to join a term class partway through the term and pay only for the remaining sessions, rather than the full term price.
Enabling pro-rata
Toggle "Enable pro-rata" when configuring pricing. The platform calculates the pro-rata amount automatically based on remaining sessions at the time of booking.
Pro-rata calculation
Pro-rata price = (Full term price ÷ Total sessions) × Remaining sessions at time of booking
This calculation is shown transparently to the player at checkout.
Auto-Renew
What is auto-renew?
Auto-renew allows players to opt in to automatic re-enrolment for the next term when their current term ends. The player's Stripe payment method is charged automatically.
Player opt-in
Players set their auto-renew preference directly in the booking modal before adding to cart. A toggle labelled "Auto-renew each term" appears under the full-term option when it is selected. The toggle's default follows the class's auto-renew setting (auto_renew_default_enabled) — on by default for newly created classes (clubs can switch it off per class). Subtext updates dynamically — when off it reads "this term only / no automatic re-enrolment"; when on it reads "automatically enrolled in the next term". The preference is carried through to the checkout page. Players can also change their preference at checkout or from their booking detail page at any time during the term.
Auto-renew timing
The auto-renew charge is processed 7 days before the current term ends.
Cancelling auto-renew
Players can cancel their auto-renew opt-in at any time before the charge is processed via Dashboard > My Classes > select booking > Manage Auto-Renew.
Auto-renew failure
If the auto-renew charge fails (e.g., expired card), the player is notified immediately and given the option to update their payment method and complete the renewal manually.
Term Pricing Changes
Price changes on live term classes
Changing the price of a live term class applies only to new enrolments. Existing enrolled players are charged at the price that applied at the time of their booking.
Date and Schedule Changes
Changing dates on a live term class
If the coach changes the term start date, end date, or session schedule on a class with existing enrolments:
- All enrolled players are notified immediately
- Players are given the option to cancel for a full credit refund within a response window
- Players who do not respond within the window are assumed to accept the change
Shifting the entire term
If the term needs to move (e.g., delayed start), the coach can update the start and end dates. The system automatically recalculates all session dates based on the new dates and configured schedule.
Multiple Terms
A single class can run across multiple consecutive terms. When a term ends:
- The class continues into the next configured term
- Players enrolled in auto-renew are charged and re-enrolled automatically
- Players not on auto-renew must re-enrol manually
Annual subscription
When the coach enables annual subscription on a term class with 2+ published terms, the class detail page shows a Subscribe Annually option alongside per-term enrolment. One click subscribes the player across every term — Stripe bills them at the start of each term via a Subscription Schedule.
If the coach has set an annual discount percentage, the Subscribe Annually card shows the discounted per-term price inline (e.g. "AU$135.00/term · Save 10% vs AU$150.00"). This is a percentage off each term's price, not a flat dollar amount.
In the class wizard, the annual discount field shows a helper text ("Players who subscribe annually receive this discount on each term's price") and a live price preview that calculates as you type. Adding all terms upfront is recommended — the wizard shows a soft nudge with an inline "+ Add more terms" button if only one term is configured.
This bypasses the cart flow; see 05-payments-and-credits.md for the full payment surface.
Term Class on the Roster
The session roster for term classes shows:
- Full term enrolments (with term period displayed)
- Drop-in bookings (labelled Drop-in)
- Auto-renew status per player
- Payment status per player
Holiday Camps vs Term Classes
| Feature | Term Class | Holiday Camp |
|---|---|---|
| Duration | School term (10–12 weeks typical) | School holidays (1–2 weeks typical) |
| Schedule | Regular recurring (weekly) | Multi-day block (consecutive or selected dates) |
| Pricing | Full term price, drop-in, pro-rata | Full camp, per week, day rate |
| Date change impact | Notifies enrolled players | Shifts entire program |
| Auto-renew | Supported | Not applicable |