Make-up credits and waitlists help academies handle absences gracefully and fill empty spots efficiently.
Enable make-up lessons
Go to Academy Settings and enable Make-up lessons. Configure:
- Make-up notification deadline hours — how far before a lesson a student must report absence to earn a credit (default 24 hours)
- Make-up credit expiry days — how long credits remain valid (default 30 days). Also used as the fallback window for private and camp lessons without a term, and when expiry mode is
days - Make-up credit expiry mode —
days(fixed window from when the credit is earned) orend_of_term(expires at the enrolled term's end date for group lessons with a term). When a credit is earned near or after term end, a minimum 7-day grace period applies so it is not immediately expired
Optional earn limits
You can cap how many credits a student may earn in a period (redemption is not capped):
- Maximum credits earned per period — leave empty for no limit, or set a number between 1 and 99
- Measure the limit by — rolling days (credits earned in the last N days) or per enrolled term (credits tied to the same term as the booking)
- Rolling window (days) — used for rolling-days mode, and for private/camp bookings without a term when using per-term mode (default 30 days)
When a student reaches the cap, further credits are blocked until the window resets or a new term starts. Absence reports and cancellation grants both count toward the limit.

How credits are earned
Students earn credits from three sources:
- Reported absences — session credit, if reported before the deadline
- Single-session cancellation — session credit when staff cancel one date and check Grant a make-up session credit (requires make-up lessons enabled)
- Full-lesson cancellation — when staff cancel all remaining sessions and opt in to grant credits:
- Group, term-bound private, or standalone private package → term credit
- Camp → session credit
Credits from cancellations are never automatic — the staff member must select the grant checkbox at cancel time. Coach-absence flows may grant credits automatically when your academy is configured that way.
See Lesson Cancellation and Postponement for the full cancel and postpone workflow.
Credit types and redemption
- Session credits — redeem for one lesson occurrence
- Term credits — redeem for full term re-enrollment in a compatible lesson
Guardians choose from a weekly calendar of upcoming sessions that pass compatibility checks. Credits cannot be used for past lessons, the same lesson that earned the credit, or a date where the student already has a booking.
Compatibility rules
Replacement lessons must match the credit on:
- Sport — same sport when your academy runs more than one racquet sport (tennis, pickleball, padel, badminton, squash, or other). Single-sport academies apply this automatically
- Lesson type — same type, except group and camp may redeem each other (e.g. a term absence credit used on a holiday camp day in the same sport)
- Skill level — when the credit specifies a level (
beginner,intermediate, oradvanced), the replacement lesson must match. Any on the credit or on the replacement lesson acts as a wildcard and matches all skill levels - Age group — when the credit has a custom age group ID, the replacement lesson must use the same age group record (not just a similar label). Legacy credits without an age group ID follow juniors/adults/all rules and optional ball color matching for juniors
Credits are not matched by lesson name — two similarly titled classes still must meet the rules above.
See Configuring Age Groups for how custom age groups affect make-up credit compatibility.
Keeping credits aligned after lesson edits
When a student earns a credit, CourtSync stores a snapshot of the source lesson's sport, skill level, and age group settings. When you save that source lesson in Term Lessons or Lesson Management, any available credits earned from bookings on that lesson are updated to match the lesson's current settings. Used or expired credits are not changed.
If guardians cannot see expected replacement sessions, check that:
- The missed lesson was saved after you corrected sport, skill level, or age group (to refresh the credit)
- The replacement lesson uses the same sport, skill level, and age group as the credit requires
- The replacement lesson has upcoming scheduled sessions in the term (re-save the lesson if schedules were recently changed)

Enable the waitlist
In Academy Settings, enable Waitlist. Set waitlist expiry hours — how long a notified person has to claim a spot (default 24 hours).
When a lesson is full, guardians see a Join waitlist option on the public booking page.

Waitlist promotion flow
When a spot opens (booking cancelled or removed):
- The first pending waitlist entry is promoted to notified status
- An email is sent with a claim link and expiry time
- On Professional+ plans with academy SMS enabled, opted-in guardians may also receive an urgent waitlist spot available SMS
The guardian opens the claim link to complete booking. A valid waitlist claim bypasses the capacity check.
Claim and conversion
When the guardian completes booking through the claim link, the waitlist entry status changes to converted. If the claim expires, a background job marks the entry as expired and promotes the next pending entry.

Monitor from the dashboard
View waitlist entries from Bookings and make-up credit activity from the owner dashboard. Ensure your team knows the absence reporting deadline and any earn limits you have configured so students do not miss credit eligibility.
Related guides
- Managing Bookings — waitlist tab, booking status, and plan differences
- Lesson Cancellation and Postponement — cancel, postpone, and grant credits
- Configuring Age Groups — custom age groups and make-up compatibility
- Creating group lessons — capacity, waitlist, and credit rules for group lessons
- Creating camp lessons — session credits and group ↔ camp redemption
