Setting class age and rank requirements
How to restrict a class to certain ages or ranks so the right students show up.
Updated June 4, 2026
When a school grows, mixed classes start to fall apart. The 4-year-olds slow down the 8-year-olds. White belts get lost in the same room as green belts. The fix is to restrict each class to the right students.
Where to set restrictions
Open the class at /classes/{class-id}/edit and scroll to Requirements. You can set:
- Minimum age. Students younger than this cannot enroll. The system uses the student's birthday to check.
- Maximum age. Students older than this cannot enroll. Useful for keeping a "Tigers" class age-pure.
- Minimum rank. Student must be at this rank or higher.
- Maximum rank. Student must be at this rank or lower. Useful for "beginners only" classes that lose value when high-rank students drop in.
- Discipline. Useful when one student studies multiple disciplines.
What enforcement looks like
- At enrollment. A guardian trying to enroll a child who does not meet the requirements sees a clear message ("Tigers is for ages 4 to 6. Your child is 7. Try Lions instead.").
- At signup for a single class. Same message.
- At kiosk check-in. A student who somehow ended up in a class they do not qualify for is allowed in but flagged for the instructor. No surprises at the desk.
Make-up credits
Make-up credit rules respect the requirements. A Yellow Belt make-up credit can only be used in a class where Yellow Belts are allowed.
Overriding for a one-off
If you want a specific student in a class they do not qualify for (an older student helping with a younger class, a high-rank visiting student at a beginners' clinic), use the Override option on the enrollment. Adds them anyway, with a note.
Birthday rollovers
When a student ages out of a class because their birthday passed, you get a heads-up at /students two weeks ahead. A "needs new class" badge appears. The parent portal also alerts the family, with a "find a new class" link.
This avoids the painful conversation in the parking lot.
