Industry guide · Booking & Scheduling

Dance Studio Software: Fixing Recitals, Family Billing and Class Placement

The short answer

If you run one location under 300 families, keep Jackrabbit or DanceStudio-Pro and spend the money on staff instead. If you run three or more locations, 800+ enrolled dancers, a recital with 60+ routines, and you have a front desk person whose actual job title should be "spreadsheet reconciler", building is defensible. Honest bands from our delivery: a focused first release costs $60k to $130k and ships in 12 to 16 weeks; a full platform covering enrollment, recitals, costumes, family billing and staff scheduling runs $150k to $400k phased over 6 to 12 months. Let arithmetic decide it: if you can name 30+ hours a month of manual reconciliation and a five-figure annual leak in unbilled costumes and unrecovered failed payments, the build pays back inside two seasons.

Why dance studio software makes or breaks a multi-location studio owner

A dance studio looks like a gym with tights until you open the billing. A gym sells one thing to one person. You sell a Tuesday 4:15 Ballet II to a nine year old, bill her mother, who also has a seven year old in Tap I and a fourteen year old on competition team, on a family account with a sibling discount, an autopay card that expired in February, a costume deposit that was due in November, and a recital ticket allocation that depends on how many routines her three kids are in. That is one family. You have 900.

The tools you are running now were built for the first problem, not the third. Jackrabbit Class handles enrollment and family billing genuinely well and prices around $59 to $199 a month by student count. DanceStudio-Pro is cheaper and dance-native, with costume and recital modules bolted on. Mindbody, if you inherited it from a fitness-minded predecessor, does not understand families at all, it understands individuals with memberships, which is why your front desk has a shared Google Sheet called FAMILY MERGES. Studio Director, Akada, Class Manager, iClassPro: same shape, same ceiling.

Here is the scene that tells you where you actually are. It is early May. Your studio director has a laptop open with four tabs: Jackrabbit for enrollment counts, a Google Sheet named RECITAL_2026_FINAL_v7 with a tab per routine, a Dropbox folder of costume size charts as PDFs from three vendors, and Gmail, where 40 parents are asking why they were charged $85 for a costume their daughter is not wearing because she dropped Jazz II in March. The routine order was rebuilt by hand for the third time because a quick-change conflict was found: one dancer is in routine 12 and routine 14 with a costume that takes four minutes to get into. That fix took two hours and broke two other things. Across a recital season we routinely see 120 to 200 hours of this per location, and that is before ticketing. At a studio director's loaded cost, that is real money, and it is the same money every single year.

Problem 1: the family account is the real unit, and your software thinks it is the student

Mrs. Alvarez has three dancers in eleven classes. Your sibling discount is 10% off the second dancer, 15% off the third, but not on competition team tuition, and not on the summer intensive. Two of the kids are on her card, the third is billed to her ex-husband under a court arrangement. In Jackrabbit you can approximate this. In Mindbody you cannot, so someone created two accounts and now the sibling discount is applied by hand every month via an account credit that a part-time admin has to remember.

Off-the-shelf tools cannot fix this because the discount engine is a flat rule table, not a policy engine. They give you a percentage field and a checkbox. They do not give you: discount tier by dancer rank within household, exclusion by class category, split-payer allocation on a single invoice, and proration rules that differ between drop mid-month and withdraw before the 15th.

What a custom build does: model the household as a first-class object with dancers, payers, payment methods, and payer allocation rules attached to it, and put your tuition policy in a rules engine your director can edit without a developer. Every invoice line carries its provenance: base tuition, which discount rule fired, which payer it was allocated to, what proration applied and why. When Mrs. Alvarez calls, your front desk clicks the line and reads her the reason instead of saying they will look into it. We build a dry-run mode so the director can run next month's billing against current enrollment and see the totals and every changed line before a single card is charged. That one screen kills the majority of billing disputes because it catches the bad rule before the parent does.

Problem 2: recital production is the highest-stakes workflow and it lives in a spreadsheet

The routine order is a constraint-satisfaction problem and everyone solves it by hand. The constraints are real and you know all of them: a dancer needs at least two routines of gap between costume changes, more if the change is a full unitard, the youngest ages should not be scheduled last, teachers who are also performing cannot be backstage wrangling, Act I and Act II need balanced runtime, and the finale needs everyone. Add a second show for capacity and the whole thing doubles.

DanceStudio-Pro has a recital module. It gives you a list you can drag around. It does not know that Emma is in routines 12 and 14, or that routine 12's costume is a two-piece with a headpiece that takes four minutes. It cannot tell you that before the show, only your stage manager can, in dress rehearsal, at 9pm, badly.

What a custom build does: it holds the dancer-to-routine graph and the costume-change-time attribute per routine, and runs the ordering as a solver. You set constraints, minimum gap by change complexity, act balance, age curve, teacher availability, and it produces a valid order in seconds plus a ranked list of what it had to relax. Change a cast at 4pm on Thursday and it re-solves and shows you the diff: three routines moved, one new conflict, here it is. This is the AI spend that returns money in this category, not a chatbot, an optimizer over your actual constraints. Alongside it, every downstream artifact generates from the same graph: backstage call sheets per dancer, quick-change lists per wing, the program in printable order, the video chapter markers. Nobody retypes anything.

Problem 3: costumes leak thousands per season and nobody can see where

Costume ordering is a purchase commitment made in November against an enrollment that will not hold. You order 42 of a style, 6 dancers drop by February, 3 join in January in sizes you did not order, 2 need alterations, one vendor backorders and ships in April. Meanwhile the parent portal shows a $85 costume fee charged to every enrolled dancer as of the November snapshot, and the reconciliation between what you charged, what you ordered, what arrived, and what got worn happens in a spreadsheet, once, angrily, in June.

Incumbent tools charge the fee. They do not run a costume as an inventory item with a lifecycle. There is no purchase order object, no vendor SKU, no size chart, no receiving step, no per-dancer assignment, so there is nothing to reconcile against. Across the studios we have worked with, the unreconciled gap between costume fees collected and costume cost actually incurred lands in the low five figures a season per location, and it goes both directions: sometimes you ate the cost, sometimes you overcharged a parent and they told forty other parents.

What a custom build does: costume becomes an object with vendor, SKU, size run, unit cost, lead time, and a state machine from ordered to received to assigned to worn. It is linked to the routine, and the routine is linked to the roster, so the moment a dancer drops the system tells you: this costume is now unassigned, it is a size 8, these two January enrollees need a size 8, reassign or return by the vendor's cutoff of March 3. The parent charge is driven off assignment, not off a November snapshot, so a drop triggers the correct credit automatically. On the vendor side, document extraction handles the packing slips and invoices: your admin photographs or forwards the PDF, the system reads line items and quantities and matches them to the purchase order, flagging the shorts. That is a task that eats a full day per shipment done by hand and takes about ten minutes with a human confirming the flags.

Problem 4: enrollment happens at 9pm and your front desk is asleep

Registration week is the single highest-value week of your year, and the parent doing it is a working mother on her phone at 9:15pm who has a specific question: my daughter is eight, she did two years of rec ballet somewhere else, which class does she go in, and does it conflict with her brother's Tuesday tap? Your website has a class grid. The grid does not answer her question. So she emails, and gets an answer 14 hours later, and by then she has enrolled at the studio across town.

Jackrabbit and iClassPro give you a registration form. They do not give you placement logic, because placement is your artistic director's judgment: age plus prior training plus a level chart plus whether the Tuesday 5:30 already has 18 in it. And they cannot answer a question in natural language at 9:15pm.

What a custom build does: encode the placement chart as data (age bands, prerequisite levels, teacher-override flags, cap per class) and put an AI intake agent in front of it that is grounded strictly in your class catalog, your placement rules, and the family's existing schedule. It asks the two questions it needs, proposes a specific class with a specific time, checks the sibling conflict, and either enrolls or, when the answer is genuinely a judgment call, writes a structured placement request to your artistic director's queue with everything already gathered. The rule we hold to: the agent never invents a placement, it either matches a rule or escalates with a complete file. The same engine handles waitlist promotion, so when a spot opens in the Tuesday 5:30 the next family gets an offer with a 24 hour hold instead of waiting for someone to notice.

Problem 5: multi-location makes every report a lie

Three locations, three Jackrabbit instances or one instance with location tags that half your staff ignore. A family with one dancer at the north studio and one downtown is two families. Your teacher who covers both is two staff records with two availability calendars that can and do double-book her. Your monthly number is a manual roll-up in a spreadsheet, so you learn that the downtown location's retention fell off in October sometime in December.

This is where off-the-shelf stops being a discount and starts being a tax. The tools were built single-tenant-per-studio, and multi-location is a tag, not an architecture. Cross-location household identity, one teacher with one calendar across sites, and a real-time roll-up of enrollment, revenue per available class slot, and retention by cohort are simply not in the product.

What a custom build does: one household record across all locations, one staff record with one availability calendar that hard-blocks conflicts including travel time between sites, and a metrics layer built on the transactional data rather than exported from it. The number that matters in this business is retention by cohort by class by teacher, because you can act on it: your Wednesday 4:15 Ballet I under one teacher retains at a visibly different rate than the same class under another, and you can only see that if the data model knows what a cohort is. Forecasting on top of it is worth building once you have two seasons of history: given current enrollment and last year's attrition curve by level, here is your April headcount by routine, which is the number your costume order actually depends on.

What this costs and how long it takes

These are Digital Heroes bands from delivery across 2,000+ projects, not market averages. A focused first release, the piece that is actually bleeding, typically runs $60k to $130k and ships in 12 to 16 weeks. For most studios that first release is either the family billing and enrollment core or the recital and costume production system, never both. A full platform covering enrollment, placement, family billing, recital production, costume inventory, staff scheduling, parent portal and reporting runs $150k to $400k phased over 6 to 12 months, shipped in slices you use as they land rather than one launch day.

What drives price up specifically in this category: payments, first and worst. Card-on-file autopay across 900 families with split payers, retries on decline, and ACH means a real payment integration with Stripe or a similar processor plus a dispute and dunning flow, and if you take payment info anywhere near your own servers you are in PCI scope and the cost jumps. Keep card data in the processor's vault and out of your database. Second: the recital solver, because constraints are cheap to describe and expensive to satisfy well, budget a discrete chunk for it. Third: migration. Ten years of Jackrabbit history with duplicate families, dancers who appear three times, and costume fees recorded as generic line items is a real project on its own, typically 3 to 5 weeks, and the studios that skip it regret it in month two. Fourth: minors. You are holding names, dates of birth, photos and video of children, which puts you in COPPA territory in the US and means media consent has to be a per-dancer field enforced at the point where photos and video get used, not a PDF in a filing cabinet.

Build versus buy: take the honest side

Buy. Genuinely, buy, if you are one or two locations under roughly 300 families with a recital under 30 routines. Jackrabbit at $200 a month is not your constraint, and $80k spent on software instead of a second studio director or a third studio is a bad trade. Most studios that call us at this size do not have a software problem, they have a two-people problem. We say so.

Build when these are true together, and they usually arrive together: three or more locations, 800+ enrolled dancers, a recital of 50+ routines across two shows, and at least one full-time person whose week is mostly reconciling systems that should agree. The concrete signals: your recital order is built in a spreadsheet outside the software, you cannot answer retention by teacher without a manual export, your costume reconciliation gap is five figures, and you have paid for a second tool to cover the first tool's gap and are now maintaining the seam between them. When a studio owner can name the 30+ monthly hours and the annual leak, the arithmetic decides it, not taste. The position we hold: build the workflow that is unique to you, the recital and costume and placement machinery, and keep buying commodity where you can, payments, email, accounting. Do not rebuild Stripe. Do rebuild the spreadsheet, because the spreadsheet is your operation.

How to choose a developer for dance studio software

First, make them model the household in front of you before you sign anything. Ask them to sketch the data model for a family with three dancers, two payers, a sibling discount that excludes competition tuition, and a mid-month drop. If they draw a Student table with a parent_email column, they are going to build you a fourth Mindbody. The household, the payer allocation, and the enrollment-as-a-dated-fact are the three objects that decide whether this works.

Second, ask what they have shipped that involves recurring billing against a changing roster. Not e-commerce. Recurring billing where the thing being billed for changes mid-cycle, with proration and credits and a dispute trail. That is the hard part, and a team that has done it will immediately start talking about idempotency, retries, and dry runs. A team that has not will say Stripe handles that.

Third, get their migration plan in writing before the build starts, with the dedupe strategy named. Ask specifically how they will handle families that exist twice in Jackrabbit and how you will verify the money moved correctly. The right answer includes a reconciliation report you sign off on and a period where both systems run.

Fourth, ask directly who owns the code and where it lives. You should own the repository, the infrastructure accounts, and the data, from day one, in your name, not the agency's. Ask them to say it plainly. Then ask how they handle minors' data and media consent, and see whether they already know that consent has to live on the dancer record and gate the media pipeline, or whether they think it is a checkbox on the registration form.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. In a practice using direct self-booking with easy rescheduling, online-booked appointments had a far lower no-show rate (1.8% median) than offline bookings (5.9%), though a hospital's request/triage system showed the opposite pattern - indicating booking-system design, not online booking per se, drives no-show outcomes. Source: GMS / PubMed Central (German medical practice & university hospital study) (2025) →
  2. Across ten outpatient clinics the mean no-show rate was 18.8%, and the marginal cost of no-shows reached $14.58 million per year for those clinics, at roughly $196 per missed appointment (2008 figures). Source: BMC Health Services Research / PubMed Central (Kheirkhah et al.) (2015) →
  3. In Gartner's 2025 AI in Finance Survey of 183 CFOs and senior finance leaders (fielded May-June 2025), 59% reported using AI in their finance function, with accounts payable process automation adopted by 37% of respondents (the second-highest single use case, behind knowledge management at 49%). Source: Gartner (2025) →
  4. Almost half of all the activities people are paid almost $16 trillion in wages to do in the global economy have the potential to be automated by adapting currently demonstrated technologies. Source: McKinsey Global Institute (2017) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does custom dance studio software cost for a 3 location studio with about 900 dancers?
Expect $60k to $130k for a focused first release covering one high-pain area, most often family billing and enrollment or the recital and costume system, shipping in 12 to 16 weeks. A full platform across enrollment, billing, recitals, costumes, staff scheduling and reporting lands at $150k to $400k phased over 6 to 12 months. At 900 dancers across three locations, payments complexity and data migration from your existing system are the two line items that move the number most.
Is it worth building custom software instead of just using Jackrabbit Class?
Not unless you are past roughly 800 dancers, three locations, and a 50+ routine recital. Jackrabbit at $59 to $199 a month handles enrollment and family billing well and is a fine tool for one or two locations. The moment your recital order lives in a spreadsheet outside Jackrabbit and someone spends most of their week reconciling systems, the tool has become the constraint rather than the saving.
How do we migrate ten years of student and billing history off DanceStudio-Pro or Jackrabbit?
Budget 3 to 5 weeks as a discrete project, not a footnote in the build. The real work is deduplication: families entered twice, dancers appearing under both parents, and costume fees recorded as generic line items with no link to an actual costume. Insist on a reconciliation report you personally sign off on, and run both systems in parallel for at least one billing cycle before you cut over.
How long before we can actually use custom dance studio software during a season?
A focused first release is usable in 12 to 16 weeks, and the sequencing matters more than the total. Time the first release to land in a low-stakes window, typically right after recital and before fall registration, never in the eight weeks before a show. Phased platforms ship in slices you use as they arrive, so the billing engine can be live months before the recital solver.
Do we own the code if we hire an agency to build our studio software?
You should own the repository, the cloud infrastructure accounts, and the data outright, in your name, from day one. Ask this before signing and get it in the contract, because some agencies retain the code and license it back, which quietly makes you a tenant of your own system. If a developer hesitates on this question, that is the answer.
Can AI actually help with recital scheduling or is that hype?
It genuinely helps, but as a constraint solver rather than a chatbot. Given your dancer to routine graph and costume change times per routine, it produces a valid running order in seconds respecting minimum gaps, act balance and age curve, and re-solves when you change a cast at 4pm on Thursday. The hype version is a chatbot that answers parent emails, the useful version is the thing that finds the quick change conflict before dress rehearsal does.
What compliance do we have to worry about with children's data and recital video?
Two things concretely: PCI scope on payments and COPPA territory on minors' data in the US. Keep card data in your processor's vault so it never touches your servers, which keeps PCI scope small and the build cheaper. For minors, media consent has to be a field on the dancer record that gates where photos and video can actually be used, not a signed PDF in a filing cabinet nobody checks.
Why can't Mindbody handle a dance studio?
Mindbody models an individual with a membership, and a dance studio's real unit is a household: multiple dancers, one or two payers, tiered sibling discounts, and a shared schedule. Studios running it end up creating duplicate accounts and applying sibling discounts by hand as monthly account credits. If your front desk maintains a shared sheet of family merges, that is Mindbody's data model failing, not your staff.
How much money are we actually losing to costume reconciliation each season?
Across the studios we have worked with, the unreconciled gap between costume fees collected and costume cost actually incurred lands in the low five figures per location per season, and it runs both directions. Sometimes you absorb costs for dancers who dropped after the vendor cutoff, sometimes you overcharge a parent who then tells forty other parents. The gap exists because the fee is charged off a November enrollment snapshot while the costume itself is never tracked as an inventory item with an assignment.
What tech stack should a booking and scheduling platform use?
The stack that has aged best across our booking builds is React or Next.js on the frontend, Node.js or Django on the backend, PostgreSQL for data, Stripe for payments, and Twilio for SMS. PostgreSQL matters more than people expect because booking systems live or die on transactional integrity: two people must never win the same slot. Be wary of anyone proposing a no-code tool for the core calendar engine; those work for booking pages, not for concurrency-safe scheduling.
Who owns the code if an agency builds my booking software?
You should own it outright, and the contract must say so: full IP assignment on final payment, source code in a repository you control, and no clause tying the software to the agency's servers. Watch for vendors that keep ownership and charge a monthly license, which quietly turns your custom build back into a subscription. Digital Heroes assigns all code and hands over the repository, hosting accounts, and documentation at handoff, and that should be your baseline expectation from any agency.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
Should I hire a freelancer or an agency to build my booking app?
A strong freelancer works for a simple booking page with payments, roughly the $5,000 to $12,000 range in our experience. Choose an agency once the project needs a designer, backend and frontend developers, and QA working at the same time, which describes nearly every system with staff schedules, payments, and reminders. The practical freelancer risk is bus factor: if one person leaves mid-project, an agency replaces them and you cannot.
How much does it cost to build a custom booking system for my business?
Most custom booking systems cost $15,000 to $60,000 to build, based on what Digital Heroes has delivered across service businesses from salons to clinics. The low end covers a single-service scheduler with payments and automated reminders; the high end adds multi-staff calendars, memberships, packages, and a client mobile app. The single biggest cost driver is how many scheduling rules your business runs on: staff availability layers, buffer times, room or equipment conflicts, and cancellation policies.
Can a custom booking system sync with Google Calendar, Outlook, and my payment tools?
Yes, two-way sync with Google Calendar and Outlook is standard in any competent booking build, alongside Stripe or Square for payments and Twilio for SMS reminders. The part needing real engineering is conflict handling: what happens when a staff member drops a personal event onto a calendar that overlaps an existing booking. In Digital Heroes builds, integrations take 20 to 30 percent of the project timeline; they are rarely the quick part vendors imply.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?