Enrollments explained
Student versus registration versus enrollment, the three statuses, and everything downstream that reads them.
An enrollment is one student in one program. It is the roster row that everything downstream reads: attendance sheets, the kiosk's class list, tuition, reports, monthly billing and inactivity alerts all start from an active enrollment.
Students then Enrollments is the list of every one of them.
Student, registration, enrollment
Three different things, and mixing them up causes most "why isn't this working" questions:
| What it is | |
|---|---|
| Student | A person your studio has a record for. |
| Registration | A completed sign-up form belonging to that student. |
| Enrollment | That student, in one specific program. |
A student can exist with no enrollment for as long as you like. They will show up in Students then Students and nowhere else — not on an attendance sheet, not in the tuition report, not on the kiosk.
One student in two programs has two enrollment rows. They are completely independent: separate statuses, separate tuition, separate monthly charges. Unenrolling from one must not disturb the other.
A student can only hold one enrollment per program. Trying to add a second is quietly ignored rather than duplicated.
The two charts
Above the table, and hidden entirely when there are no enrollments at all:
- By Program — a big count of active enrollments and a pie chart splitting them by program, with a colour key.
- Monthly Trend — a bar per month for the last six months, counting enrollments created in that month. It is a joining chart, not a headcount: a month with no bar is a month nobody signed up, not a month with no students.
Enrolling somebody
Enroll Student opens a short form: start typing a name to search your students, pick one, choose a program, press Enroll Student. The enrollment is created active.
The student has to exist first. If they don't, add them from Students then Students — see Adding students by hand and in bulk — or enroll them directly from Students then Registrations if they registered.
The columns
| Column | What it does |
|---|---|
| Student | Click the name for a detail panel without leaving the page. |
| Program | A dropdown. Changing it moves the enrollment to another program in place, keeping the row. |
| Status | A badge — Active, Inactive or Suspended. |
| Enrolled | The date the enrollment was created. |
| Tuition | The resolved monthly rate with a badge naming which rule produced it. Click to edit. |
| Billing | Only present when your studio uses automatic monthly billing. |
| Actions | The status dropdown. |
Above the table: a name search, a program filter and a status filter.
Tuition and Billing have their own articles — Setting your prices, Applying a discount to a student and Starting monthly billing for a student. For a studio that does not take money through Dojo Tiger, the Billing column does not exist at all — not an empty one.
The three statuses
| Status | On the roster? | What else it does |
|---|---|---|
| Active | Yes. On the attendance sheet, counted in reports, eligible for kiosk check-in, in scope for inactivity alerts. | Monthly billing runs normally. |
| Suspended | No. Temporarily out. | Monthly billing is paused — collection stops, the subscription survives. Setting them back to Active resumes it. |
| Inactive | No. Out. | Monthly billing is set to stop at the end of the paid period, so the family keeps the month they paid for. |
Change it from the dropdown in the Actions column. There is no confirmation step — it takes effect immediately.
Suspended is the pause button, and it is not obvious
There is no "pause billing" button anywhere in Dojo Tiger. Pausing a family's monthly payment is done by setting their enrollment to Suspended, and resuming it is done by setting the enrollment back to Active.
This is the least discoverable behaviour in the product and it has its own article: Stopping, pausing and unenrolling.
A roster change never fails because of Stripe
The status is written first, and the billing consequence is applied afterwards. If Stripe is unreachable, the roster change still goes through and a nightly reconciliation job repairs the difference. Marking a student inactive at 9pm because they moved away must never be refused.
Which status to use
- They've quit → Inactive.
- Injured, travelling, taking a term off → Suspended.
- They're back → Active.
- They're moving to a different class → change the Program dropdown rather than creating a second enrollment.
There is no delete. An enrollment is a record that somebody trained with you, and their attendance history and rank hang off it.
Where enrollments show up
| Screen | How it uses them |
|---|---|
| Attendance sheet | Every active enrollment in the class's program is pre-listed as an unmarked row. |
| Kiosk | A student can only check in to a class in a program they are actively enrolled in — or one they have a trial booking for. |
| Tuition report | Expected monthly revenue, from active enrollments and their resolved rates. |
| Membership reports | Growth, retention, class utilisation and engagement are all counted from enrollments. |
| Inactivity alerts | Only actively-enrolled students are candidates. |
| Family view | A parent sees the schedule for the programs their children are enrolled in, and the videos granted to those programs. |
That last table is the real answer to "why can't this student check in?" or "why is the attendance sheet empty?" — nine times out of ten, there is no active enrollment.
Last reviewed