IDA logoIda OS
Login
Browse all sections

Tuition plans

/dashboard/plans

Tuition plans define the packages you bill against — the price, how often it bills (monthly, quarterly, every 6 months, or yearly), an optional practice hourly rate, and a registration fee. 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 on the Branding tab) 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.

app.idaos.co/dashboard/plans
The tuition plans table showing each level's monthly price, practice booking rate, registration fee, and active student count
The iPhone app's Tuition plans screen listing each level's monthly price with edit actions

Creating a plan

  1. 1Open Tuition plans and choose to create a new plan.
  2. 2Name 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), the practice booking rate per hour, and the registration fee.
  3. 3Save. 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.

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. The registration fee field on a plan is only a legacy reference amount and is not billed.

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 that has already started or that a family can't see.

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.

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, 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 its own line, like 'Sibling discount · 15% off', on the web and in the iPhone app. Leave the field empty to turn it off. The same field lives in the app's plan editor, so a change from your phone means exactly the same thing.

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.

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.

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.

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 app

iPhone 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. Deleting a plan that still has students on it offers to archive it instead, retiring the plan without disturbing those families' tuition.