CourtSync lets academies define their own student grouping system instead of relying on the default juniors/adults/all split. Each age group has a label and a calendar colour that paints lesson slots on owner and coach schedules. How that colour is set depends on the grouping method you choose (see below).
Age groups are academy-wide — they apply across tennis, pickleball, padel, badminton, squash, and any other sports your academy runs. On calendars, sport appears as a glyph or badge only; slot fill always comes from the age group's calendar colour.
Default vs. custom age groups
By default, lessons use legacy age group fields (juniors, adults, all) with optional ball colour for junior Hot Shots pathways. Calendar rendering maps legacy ball colour to a fixed hex for paint only — it does not create age group records or drive make-up credit rules.
When you configure custom age groups, lessons use age group ID instead — a foreign key to your academy's age group definitions, each with its own calendar colour.
There is no forced migration. Academies that have not configured custom groups continue using the legacy fields until you are ready to switch. Existing lessons keep their current grouping until you update them.

Open Age Groups settings
Navigate to Academy Settings → Age Groups. Here you can view, add, edit, reorder, activate or deactivate, and delete groups.
If you have no groups yet, choose Seed defaults to create a starter set in one step, or Create manually to add groups one at a time.

Seed defaults
When your list is empty, Seed defaults offers three templates:
| Method | What gets created |
|---|---|
| Age range | Little Stars (4–6), Juniors (7–10), Intermediates (11–14), High Performance (15–18), Adults (18+) |
| Ball colour | Red Ball (Stage 3), Orange Ball (Stage 2), Green Ball (Stage 1), Yellow Ball — each with a preset calendar colour |
| Custom labels | Juniors and Adults starter labels with preset colours |
Seeded groups are fully editable after creation. You can seed once to get started, then add, rename, or deactivate groups as your academy evolves.
Choose a grouping method
When adding or editing a group manually, CourtSync supports three methods:
Age range
Use for bands like "Juniors 7–10" or "Adults 18+". Set min age and max age (leave max blank for open-ended ranges such as 18+).
Calendar colour is set automatically:
- Ranges that include anyone aged 13 or older use the adult colour (slate grey).
- Ranges with only ages under 13 use the junior colour (indigo).
You cannot pick a custom hex for age-range groups — the colour reflects junior vs adult at a glance on your schedule.
Ball colour
Use for Hot Shots–style pathways. Pick a ball preset (Red, Orange, Green, Yellow, or Blue). CourtSync fills in the descriptive label (e.g. "Red Ball (Stage 3)") and matching preset calendar colour. You can edit the label after creation; change the preset selection to switch colour.
Ball-colour groups are common for tennis academies but work for any sport where colour-stage labels fit your programme.
Custom
Use free-form labels such as "High Performance U12" or "Adult Beginner Social". You choose the calendar colour with the colour picker or hex input.

Create and order groups
Add each group with a label, method, and any required age range or ball preset. Use the up and down arrows on each row to reorder groups — order affects lesson creation dropdowns, calendar legends, and public lesson filters.
Active groups appear in lesson forms and public filters. Turn a group inactive when you no longer offer new lessons in that band but need to preserve historical bookings and make-up credit compatibility.
Delete is available for groups you no longer need. Prefer deactivating when any lesson, booking, or credit still references the group.

Apply age groups to lessons
When custom age groups exist, creating or editing group, private, and camp lessons shows your groups in a dropdown. The legacy juniors/adults/all and ball colour fields are replaced by the age group selector.
Tips:
- Assign the same age group record to every lesson that should share make-up credit compatibility (e.g. all "Green Ball" classes must use one Green Ball age group — not duplicate labels).
- Public lesson pages and schedule views filter by your custom groups so families see your academy's terminology.
- When importing a program pathway, map each stage to a matching age group during the wizard (or assign later from Edit program).
- In Camp Management, the Multiple camps wizard can split by age group so each generated camp inherits the right grouping.

Calendar colours and multi-sport
Age-group calendar colour drives slot fill on owner and coach calendars and weekly schedules. An Age groups legend below the calendar lists each active group and its colour.
Sport appears as a glyph or badge only — it does not change fill colour. Lesson status overlays (cancelled, postponed, rescheduled) and lesson-type accents (e.g. private purple, camp teal) keep their existing treatment and take precedence where applicable.
Legacy lessons without an age group ID still map ball_color to a fixed hex for paint only.
Make-up credit compatibility
When a student earns a make-up credit from a lesson with an age group ID, the credit can only be redeemed on lessons assigned to the same age group record (the same dropdown option in lesson settings — not merely a similar label).
Legacy credits without an age group ID follow the original juniors/adults/all rules and optional ball colour matching for juniors.
When you save a lesson that students missed, CourtSync refreshes available credits earned from that lesson so skill level and age group changes apply without students needing a new credit. Ensure replacement lessons you want to offer use matching age group and skill level settings.
Group and camp lesson types can redeem each other's credits when other compatibility rules match (same sport, skill level, and age group).
