Starting monthly billing for a student
The Start dialog, why the amount isn't editable, and why the first payment is taken immediately.
Monthly billing is started one enrollment at a time, by a member of staff, after the family has agreed to it. There is no bulk action and no automatic enrollment-time trigger — putting a family on a standing monthly charge is a decision somebody takes on purpose.
This needs automatic monthly billing switched on.
Before you start
Two things have to be true, and the screen tells you when they aren't:
- The enrollment is Active. Billing a student who has left is refused with "Only an active enrollment can be put on monthly billing."
- The family has a card saved. If they don't, the row reads Needs card and offers no Start button at all — pressing one could only fail. Use Email guardian instead (below).
The enrollment also needs to resolve to more than $0.00. A $0 rate is refused with "This enrollment resolves to $0.00 a month. Set a tuition rate before starting billing."
Starting it
Find the row
Students then Enrollments. Search by name, or filter by program. Look at the Billing column — the row should read Not billing.
Press Start
The family's saved cards are fetched from Stripe at that moment, so there is a short pause before the sheet opens.
Check the summary
The top of the sheet names the student, the program, the monthly amount and the billing email. Read the email — it is who will be charged and who gets the receipts.
Pick the card
A dropdown of saved cards: brand, last four, expiry. If the family has only one, it is already chosen.
Tick the confirmation
"This family agreed to be billed $95.00 every month." The tick is required — the Start monthly billing button stays disabled until it is on.
This is the one dialog in the app with an explicit confirmation checkbox. A one-off charge is a payment; this is standing authority to take one every month with nobody watching, and staff should have to say so out loud.
Start
The first payment is taken immediately. A toast confirms the family is now billed that amount each month for that program.
Why the amount isn't editable
The figure in the sheet is shown for confirmation, not for typing. It is the enrollment's effective rate, resolved by the server at the moment you submit — custom rate, then promotion, then sibling tier, then the program's monthly rate. See Setting your prices.
Making it typeable would create a second, invisible price that no report knows about and no discount rule can reach. If the amount is wrong, close the sheet, fix the tuition on the enrollment, and start again — the sheet will then show the corrected figure.
Why the first charge is immediate
The sheet says it plainly:
The first payment is taken now, then $95.00 on the same day each month until someone stops it. The rate follows this enrollment's tuition, including any discount.
Charging straight away is what proves the card works, while you are still looking at the screen and the parent is still in the room. The alternative — schedule it for the 1st and find out three weeks later that the card was declined — turns a 30-second conversation into a phone call.
It also sets the billing day: the family renews on that date each month, and that date is what the Billing column shows as renews 3 Sep.
Starting mid-month charges a full month
There is no proration. A family started on the 20th pays a full month on the 20th, and again on the 20th of each following month. If you want everyone aligned to the 1st, start them on the 1st.
When the family has no card
The row shows Needs card and one button: Email guardian.
That sends the family an email — "Add a card to keep the student's spot" — linking straight to their own payments page. If the guardian has no Dojo Tiger account yet, the link also prefills a signup, and the toast tells you that: "Sent to … They'll create an account first."
There is no confirmation dialog. It sends to the address already on file, changes nothing and costs nothing to get wrong. Pressing it twice sends a second nudge, deliberately.
Once they have added a card, the row flips to Not billing with a Start button.
Two programs, two subscriptions
A student enrolled in two programs gets two separate subscriptions, started separately, appearing as two lines on the family's statement.
That is deliberate: unenrolling from one program must not disturb billing for the other, and per-program revenue reporting stays straightforward. It does mean telling a family to expect two charges rather than one.
A double-click cannot create two subscriptions
The dialog mints one request identifier when it opens and reuses it for every attempt. If the same start is submitted twice, the second is recognised and nothing is created twice — the toast says "… was already set up for monthly billing — nothing was created twice."
That protection matters more here than anywhere else in the app: a duplicate here is not one extra charge, it is a second subscription billing the family every month until somebody notices.
Afterwards
The row becomes Active · $95/mo · renews 3 Sep, with a Stop button. The first charge appears in the student's charge history and on Reports then Payments straight away, and the family sees a read-only Monthly billing card on their own payments page showing the amount and the next date.
Last reviewed