Tuition plans
Tuition plans define the packages you bill against — the price, how often it bills (monthly, quarterly, every 6 months, or yearly), and an optional practice hourly rate. A plan's price is always the full amount for its period, like $450 per quarter. Each plan corresponds to one of your studio's dance levels (which you define under Settings → Classes) and is kept in sync with a Stripe product and price so recurring billing 'just works'. You set your plans up here, and students land on them from the student record — by their dance level, or by picking an exact plan when a level has more than one; a family's tuition is the sum of its active students' plans.
Payments
34 families · October goes out Thu, Oct 1
- ML
Lindqvist family
October tuition · autopay
$185.00Autopay - HB
Brooks family
October tuition · by hand
$240.00Due Thu - SR
Reyes family
Spring recital costume
$64.50Paid - JT
Tanaka family
Regional championship entry
$90.00Paid
Tuition, costumes, entries and workshops on one ledger
On this page13
- Creating a plan
- Who is on a plan — and taking a dancer off
- Add-on plans: an extra class on top
- Practice rate and registration fee
- Letting families claim class seats
- Letting families join weekly classes
- Seasonal (per-month) pricing
- Sibling discount
- Studio rules: the settings every plan shares
- If tuition isn't set up yet
- Changing prices safely
- Adding a plan after billing has started
- On the iPhone app
Creating a plan
- 1
Open Tuition plans and choose to create a new plan.
- 2
Name the plan, choose the dance level it covers, and pick its billing interval — monthly, quarterly, every 6 months, or yearly. Then set the price (the full amount for the period, like $450 per quarter), and the practice booking rate per hour. The registration fee isn't set on a plan: it's one per-family fee for the whole studio, on Registration → Settings.
- 3
Save. Ida OS creates the matching Stripe product and price automatically.
Note. A plan is tied to a level: assigning a student to that level puts them on the level's plan, and the student form's Tuition plan field can put a dancer on an exact plan when a level has more than one (their level then follows the plan). You do not assign plans to families directly — the family total is the sum of its students' plans.
Who is on a plan — and taking a dancer off
Editing a plan shows two panels — Edit and Dancers. Dancers lists everyone currently on the plan with their family, so 'who is actually on this?' is one click, on the web and in the iPhone app alike.
Admins can take a dancer off a plan right there: the remove button beside their name asks you to confirm, and the dancer stops being billed that plan — the dancer and their family are untouched. Removal is only offered when it would stick: a dancer who is on the plan because it is your studio default, or because of their dance level, would land straight back on it — Ida explains that instead, and points you to assigning them a different plan (or turning off the default) first.
A plan open to all dancers (rather than tied to one level) can be your studio's default: tick 'Use this plan' under 'Default on registration' in the plan editor, and dancers are put on it automatically when their family registers, unless you assign them a different plan. A default is optional — a studio can run without one, with every family picking its own programs — and an add-on plan can't be the default, since the automatic plan is always a dancer's main plan. The default plan wears a Default badge — 'Assigned automatically on registration' — on your program list, so it is easy to spot. And turning the default off, or moving it to another plan, never moves anyone: dancers already on it keep their plan and their tuition until you change them yourself.
Add-on plans: an extra class on top
Normally a dancer bills one plan. If your studio offers an extra weekly class families can take alongside their main one — a Ceili class, say — make its plan an add-on: when creating or editing the plan on the web, tick 'Families can add this on top of another plan'. On your registration form, add-on plans then appear as an 'Additional classes' list under each dancer's plan pick, each with its price — on the web and in the app — and the family ticks the ones they want as they register. The dancer keeps their main plan; the add-on is billed on top of it, cycle after cycle.
Staff can stack add-ons too, straight from the student record — no registration form needed. When your studio has add-on plans, the add and edit student forms show the same 'Additional classes' list under the Tuition plan field, on the web and in the iPhone app: tick the ones the dancer takes, save, and the family's tuition follows. A dancer's own main plan never appears in the list — choosing a plan as their main plan quietly drops it from their add-ons — and an add-on plan you have since closed stays visible (marked inactive) on a dancer who already holds it, so you can keep it or clear it.
Billing takes care of itself: a dancer's tuition becomes their main plan plus each add-on, the family total sums it all as usual, and autopay and the family's bill breakdown follow along automatically. At studios that price tuition by each dancer's classes, an add-on shows as its own named line on the family's tuition bill, and it bills in addition to any per-dancer tuition maximum — the maximum caps class tuition, not separate programs. A program that already bills through one of the dancer's weekly classes is never charged again as an add-on. A dancer's own main plan is never offered to them as an add-on, and studios that mark no plans as add-ons see nothing new — registration stays one plan per dancer.
An add-on counts on the calendar too: if the add-on plan allows families to claim class seats, a dancer who holds it as an extra gets Drop in on the class levels it claims — you don't have to widen the main plan's claim settings — and the classes it unlocks appear on that dancer's calendar view, on the web and in the app.
An add-on never stands in for a main plan. A dancer billed by their dance level always lands on the level's own plan — even when a cheaper add-on is tagged with that level — and the add-on bills only when a family or staff actually adds it. The same rule keeps the student form simple: a level with one plan plus add-ons has nothing to choose, so you are only asked to pick an exact plan when a level truly has more than one main plan — on the web, in the iPhone app, on a family spreadsheet import, and when Ida adds a dancer for you. And the price you see is the price that bills: everywhere a level's plan is shown — the tuition preview a family sees when joining a class, a class's drop-in price, the plan on a dancer's card, and the per-level prices on the student form — it is that same main plan, on the web and in the iPhone app.
Note. However add-ons are picked — by the family at registration, by an answer your registration form assigns programs from (see 'Assigning programs from answers' on the Registration page of this guide), or by staff on the student form — the dancer's main plan still comes from their level, the Tuition plan field on their student record, or that form rule. Re-registering shows a dancer's current add-ons already ticked, so families can keep or drop them each period.
Practice rate and registration fee
The practice booking rate is the per-hour price charged when a family books or suggests a Practice-type slot on the calendar — it is multiplied by the slot length, and because it lives on each level's plan, the amount can differ per student level. Private lesson and studio rental suggestion rates are set separately under Settings → Bookings.
The studio's registration fee is managed on Registration → Settings, or under Settings → Payments & Bookings: enable it and set the default per family, then collect it from the roster or let families pay it themselves through the registration form. A plan that carries an old per-plan sign-up amount still shows it on its form, labeled plainly as a note that is never billed; plans without one don't show the field, and plan lists never show it as a fee — the studio's one registration fee is the only one collected.
Letting families claim class seats
A plan can let families put a dancer into a class themselves, straight from the calendar — no booking request or studio approval. When creating or editing a plan, turn on 'Allow families to claim class seats', tick which of your class levels the plan may claim — they don't have to match the plan's own billing level, so a flex plan can claim classes across several levels — and choose the drop-in billing: a weekly free allowance, or paid per class with a drop-in price beside each claimable level. Each selected level needs its own price, and they can differ — so that flex plan can charge one rate for Level 3 classes and another for Level 4. Families on the plan then see a 'Drop in to this class' option on eligible upcoming classes, on the web and in the iPhone app; paid claims send them to pay before the seat is confirmed.
Allowance claims take a seat for one session and count against that dancer's weekly budget; cancelling before the class starts returns it. Paid claims charge the drop-in price for the class level being booked, up front (no weekly budget): the seat is held while the family pays and confirmed when the payment settles, an abandoned payment releases the hold on its own, and once paid the family can no longer cancel it themselves — refunding the charge from Payments is what takes the dancer back off that session's roster. A dancer's regular classes are separate from all this — series roster seats never use up claims, and a dancer already on a class's roster has nothing to claim there. Claimed dancers appear on the class roster and attendance checklist with a Drop-in badge, capacity is always respected (a full class can't be claimed), and neither can a class a family can't see, or one that has already started — unless 'Allow parents to Join past classes' in your studio settings opens a window for recent classes.
Every plan a dancer holds counts here — their main plan and any add-on plans stacked on it at registration. A class is claimable when any of those plans claims its level; the plan made for that level is the one that applies, bringing its own billing — its weekly allowance, or its drop-in price for that level — and when more than one plan carries a weekly allowance, the dancer's weekly budget is the total across them.
Note. The weekly allowance follows your studio's calendar week — the 'Week starts on' day in Settings. Paid drop-ins need your Stripe account connected — until then families see a notice instead of a pay button. Workshop and camp dates are never claimable; families register for those in Workshops.
Letting families join weekly classes
Whether families can put a dancer into a weekly class themselves is yours to decide, class by class. Every plan's editor carries the signup rules under 'Who picks their weekly classes?' — whatever kind of plan it is, one flat price per level or tuition priced by each dancer's classes. You pick means staff place dancers and families see no Join on the calendar. Families pick lets a family Join a weekly class straight from the calendar, with the tuition preview described on the Calendar page of this guide. They ask first turns that Join into a request you approve before the dancer is in — and approving keeps the class date the family asked for, so the dancer's spot and tuition start on the class they pressed, even when your approval comes after that class has met, inside the past-Join window when you allow one. Only when the requested date has slipped outside that window does the dancer start the day you approve instead; the family never has to send the request again. One choice sets every weekly class the same way, or open 'Different rule per class' to mix — say, beginner classes open to families while competition classes stay yours to place.
These rules belong to your weekly classes themselves, not to any one plan — you will find the same settings in every plan's editor, and a change made from one applies everywhere. They save even on a plan that is already live and billing, and they cover regular weekly signups only: one-off drop-ins are governed separately by 'Allow families to claim class seats' above. Changing a rule here never disturbs the rest of your tuition setup — how practices are billed, your drop deadline, and your sibling discount stay as they are unless you change them yourself. The same control sits in the iPhone app's plan editor and means exactly the same thing.
A Join normally keeps to the dancer's level: a weekly class at a different dance level offers that dancer no Join, and the panel says so by name. If your studio is happy for dancers to take classes outside their assigned level, turn on Cross-level class enrollment — under Settings → Bookings on the web, or Studio settings → Class enrollment in the iPhone app. With it on, a dancer's level never blocks a family Join, and Open to join on the family calendar shows those classes too. It is off until you turn it on, and it only changes what families can do themselves — staff can always add any active dancer to any class from Manage roster.
Note. Opening a class to families never bypasses your limits: a full class can't be joined, and classes you keep on You pick simply offer no Join — families browse them on the calendar as before. And unless you turn on Cross-level class enrollment, a dancer's level still has to match the class.
Seasonal (per-month) pricing
Tuition does not have to be the same every month. Alongside the flat monthly price, a plan can carry seasonal exceptions — pick a month and set what it should cost instead. You only add the months that differ; every other month falls back to the flat amount, so a summer at a lower rate or a dark December is a couple of entries rather than a whole separate plan. A seasonal month can even be $0 — a full summer break — and autopay takes it in stride: those months simply collect nothing, and a family who starts autopay during a free month saves their card now and is first charged on the next month that bills. Seasonal pricing belongs to monthly plans: quarterly, 6-month, and yearly plans bill one flat amount per period, and switching a plan off monthly clears its seasonal months.
Seasonal pricing also works per family: a family can carry its own month-by-month schedule when they need something different from their plan. Ida OS keeps each family's live Stripe subscription in step with their seasonal schedule automatically — when an upcoming month is priced differently, the change is scheduled for that family's next billing date, with no mid-cycle charge or proration.
Note. A family's own tuition override is self-contained: setting a family's flat amount or seasonal months replaces the plan's pricing for them rather than layering on top of it. Manual-billing families are display-only and are never re-billed automatically.
Sibling discount
Studios that price tuition by how many classes each dancer takes can give multi-dancer families an automatic break. In the plan editor, alongside the class-count pricing settings — or under Studio rules on the Tuition plans page, at studios on Ida's newest look — set the Sibling discount percent: whenever a family has two or more dancers each owing tuition, the dancer with the lowest tuition gets that percent off. It is not a coupon to hand out family by family — it applies itself, recalculates on its own as class counts change, and shows on the family's bill breakdown as one line of its own, like 'Sibling discount · 15% off', under the dancer it comes off: each dancer's own lines show their amount before the discount, so the breakdown always adds up to the bill. Leave the field empty to turn it off. The same fields live in the iPhone app, so a change from your phone means exactly the same thing — and a family's record works their tuition out with the same split, each dancer before the discount and the discount named to its dancer, on the web, in the app, and in Ida's answers. A family registering with Ida sees the same figure, too: the monthly tuition estimate on the payment question takes the discount off, so the number a family sees while joining is the number billing charges.
You can change the percent at any time, even while billing is live, and it flows straight through: upcoming autopay amounts are brought in line, and an unpaid tuition bill already sitting on a family's Payments page rewrites itself to the new amount. A tuition bill that is already paid is never changed, and neither is a tuition charge you entered by hand — only the bills Ida raises itself recalculate, and only while the month they cover is still being taught: a bill for a month whose classes are over stays as billed.
Note. The discount goes to one dancer per family — the one with the lowest tuition after their own class counts and any per-dancer maximum are settled — and only when at least two dancers have tuition to pay. A percent can land the total on cents; families always see the exact amount.
Studio rules: the settings every plan shares
At studios on Ida's newest look, the Tuition plans page keeps the settings that are the same for every plan in one place: a Studio rules row sits under your plans — on the web and in the iPhone app — so a studio-wide rule is never buried inside one plan's form. The page itself opens with the next tuition run in plain words — 'October's tuition, $12,642.15 from 37 families, goes out Thu, Oct 1.' — and Studio rules opens with the same figures, split into how many families collect on autopay and how many pay by hand.
Below the run sit the rules themselves: the charge date (set under Settings → Payments — a Change link takes you there), whether each charge covers that month or the next, the drop deadline — the day of the month after which families can't drop a class for next month, for plans billed by class count or per class — and the sibling discount percent. The drop deadline and the discount save right there, and a note names the run a change lands on — 'Saving before Thu, Oct 1 changes October's run.' A 'Who gets which plan' row opens the familiar rules for the default plan, what a bill covers, and how families join each series.
If tuition isn't set up yet
Ida bills tuition from your plans, and that billing is switched on once per studio. New studios start with it on; if yours doesn't have it yet, every tuition rule that needs it — the sibling discount, the drop deadline, the plan and series rules — says so instead of failing: 'Let's set up how you charge tuition first', with a Set up tuition button. One click turns tuition billing on, keeps the plans you already have, and your plans bill from the next charge date. The same notice and button appear in the iPhone app, and you can simply ask Ida to set it up from chat.
If your studio already has tuition history from before — payments or class seats that predate Ida's billing — the notice asks you to use Report a problem instead, so the Ida team can set it up with you and nothing is billed twice.
Changing prices safely
Editing a plan's price creates a new Stripe price for future subscribers. Families already subscribed stay on the price they signed up at, so a price change never silently re-bills existing families.
The same care applies to the billing interval: changing how a plan bills never rewrites a live autopay subscription — existing families keep billing on the interval they signed up on, and Ida points out the mismatch when you next save that family's billing so you can decide how to move them over.
Once tuition billing is running, a plan families are billed on is settled: its name, price, level, and how often it bills are locked — the editor says so — and a new price means a new plan, added alongside for dancers to move to. The rest of the plan still saves normally: its description, practice rate, class-claim and drop-in settings, and the signup rules. Archive and Reactivate keep working while billing is live too, because closing a plan only means no new dancers land on it — it drops out of registration and stops catching dancers by level or default, while a dancer already placed on it keeps billing exactly as before — and reactivating puts it back on offer. A flip that would move someone's tuition is refused with the reason in plain words instead: the studio default can't be archived until you choose another default, a plan can't close while dancers carry it as an add-on or are enrolled in a class it prices, and a closed plan can't reopen when that would start billing a dancer who has no plan today. Whenever a plan opens or closes, dancers without a plan of their own are kept on the plan they are billed on today, so nobody's amount moves. This works the same on the web, in the iPhone app, and when Ida makes the change from chat.
Heads up. Archiving or deleting a plan archives its Stripe product and price rather than destroying them. Existing subscriptions keep billing; only future enrolment is affected. You will be warned how many active students would be unlinked.
Adding a plan after billing has started
A plan added mid-season is billed like any other — you never have to redo your billing setup for it. At studios that price tuition by how many classes each dancer takes and bill on a set day of the month, a new plan you add joins tuition billing on its own: dancers on it count in their family's tuition bills straight away, and Ida also looks back at the most recent billing day, so a cycle the new plan would have missed is billed rather than skipped (a bill a family already paid is left alone). This works the same whether you add the plan on the web or in the iPhone app — see 'Tuition bills without autopay' on the Payments page of this guide for how those bills reach families.
Note. Only the new plan is folded in — plans already billing keep charging exactly what they were, so adding an offering never moves anyone else's tuition.
On the iPhone appiPhone app
Tuition plans lives in the More tab's Money section, which only admins see — instructors' logins keep clear of tuition on the phone just as they do on the web. It shows each plan as a card with its level and price shown with its billing period, any seasonal months (the current month highlighted), how many active students are on the plan, and its practice rate. Tap a plan to edit it — including its billing interval and its class-claim settings: the same 'Allow families to claim class seats' switch, claimable levels, and weekly allowance or paid billing as the web, with paid billing asking for a drop-in price beside each selected level — or New plan to add one; the same Stripe syncing applies, so a change made from your phone behaves exactly like one made on the web. Every plan's editor also carries the same 'Who picks their weekly classes?' rules as the web — You pick, Families pick, or They ask first, for every weekly class at once or class by class — and saving them works on live plans just as it does on the web. Deleting a plan that still has students on it offers to archive it instead, retiring the plan without disturbing those families' tuition.