Most martial arts schools don't lose students because the teaching is bad. They lose them in the gaps between moments nobody owns: the parent who booked a trial and didn't show, the kid who came to three classes and then went quiet, the adult who was two classes short of being eligible for a stripe test and didn't know it.
If you run a dojo, academy or gym, you can probably name a few of those students right now. And if you look at where their information lives, it's usually spread across four places: the booking form, the payment system, an attendance sheet at the front desk, and the instructor's memory.
A CRM for a martial arts school is supposed to close those gaps. This post is about what it actually has to track to do that, why generic CRMs miss most of it, and how to build one that fits your school if the off-the-shelf options don't.
The four leaks
Every school's numbers are different, but the places students fall out are surprisingly consistent.
1. Lead to first class. Someone fills in the "free trial" form at 10pm. By the time anyone calls back two days later, they've booked a trial at the BJJ gym down the road. The fix isn't clever marketing, it's speed: a lead needs an owner and a follow-up time the moment it arrives.
2. Trial to enrollment. The trial went well, the kid loved it, the parent said "we'll think about it". Nobody wrote down what they were thinking about (price? schedule? the drive?), so the follow-up call is generic and goes to voicemail.
3. The quiet weeks. A student's attendance drops from three classes a week to one, then to zero. In a spreadsheet you only notice when the payment fails or they ask to cancel. By then the decision is made.
4. Progress nobody sees. Students stay when they can see themselves moving: a stripe, a belt test date, a coach saying "you're close". If attendance and curriculum aren't connected to rank, nobody can tell a student they're three classes from testing, so that motivating conversation never happens.
Why a generic CRM doesn't fit
A sales CRM thinks in deals: a lead, a few stages, closed-won. That covers the first two leaks at best. A martial arts school's real cycle runs for years and looks different:
- The customer isn't always the student. A parent pays for two kids in different programs. One account, several students, one person to call.
- Rank is the product. Belts, stripes, the curriculum required for each rank, and the attendance needed before a test. A generic CRM has no idea what any of that means.
- Attendance is the health signal. Not emails opened. Classes attended per week, compared to that student's own normal.
- Contracts and memberships have rules. Monthly or term agreements, freezes for injuries, family discounts, cancellation notice periods.
- Waivers and minors. You need a signed waiver per student, and a parent or guardian on file for every minor.
Dedicated school software (Zen Planner, Spark Membership, Kicksite, Gymdesk and others) handles much of this, and if one of them fits your school, it's usually the fastest answer. Where schools struggle is the edge: a rank system the software doesn't model well (a traditional karate syllabus with kyu grades, a BJJ program with degrees on black belts, a kids' program with tip stripes in five colors), a multi-program school where the same family does kickboxing and kids' judo, or owners who'd rather not pay per member for features they don't use.
What the CRM actually has to hold
Whether you buy or build, check it against this list. It's the data model behind the four leaks.
- Families and students. A family (or adult member) record that holds billing and contact, with one or more students under it. Each student has a date of birth, program, current rank and start date.
- Leads and trials. Source, date, assigned staff member, trial class booked, attended or not, and a "what's holding them back" field with a few fixed options (price, schedule, distance, child unsure, comparing schools) plus a note.
- Ranks and requirements. Per program: the ordered list of ranks, the minimum classes or time at the current rank before testing, and optionally the techniques to check off.
- Attendance. One row per student per class. This is the table everything else reads from.
- Memberships. Plan, price, start, end or renewal date, status (active, frozen, cancelled) and freeze dates.
- Tasks. Follow-ups with an owner and a due date: call this lead, check on this student, schedule this test.
Then the views your staff actually open:
- Front desk: today's classes with a quick check-in list.
- Instructor: students eligible or nearly eligible to test, by program.
- Owner: new leads this week, trials booked vs attended, enrollments, students whose attendance dropped, renewals coming up.
Building it with an AI app builder
If you decide to build, the hard part isn't the software anymore, it's writing down your school's rules clearly. Here's how that looks in Mythex, an AI app builder where you describe the app and it builds it with a database and logins. (I work on Mythex; the same prompts work as a spec for any builder or a developer.)
Prompt 1: the core.
Build a CRM for a martial arts school. Families have one billing contact (name, phone, email) and one or more students. Students have name, date of birth, program (Kids Karate, Teen/Adult Karate, Kickboxing), current rank, rank start date and status (trial, active, frozen, cancelled). Ranks for Karate go White, Yellow, Orange, Green, Blue, Purple, Brown, Black. A student can test for the next rank after 24 classes at their current rank. Record attendance per student per class. Staff sign in; roles are Owner, Instructor and Front desk.
Prompt 2: leads and trials.
Add leads: parent or adult name, phone, email, child's age if a kid, program interested in, source (website, walk-in, referral, social), assigned staff member, follow-up date. A lead can book a trial class. After the trial, staff mark attended or no-show and pick a reason if they didn't enroll yet: price, schedule, distance, child unsure, comparing schools, other. Converting a lead creates the family and student. Show a "follow up today" list for the logged-in staff member.
Prompt 3: the at-risk list.
On the owner dashboard, show active students whose classes in the last 14 days are less than half of their average over the previous 8 weeks, with their last class date and the family's phone number. Add a button to create a follow-up task for that student.
Prompt 4: testing.
Add an instructor view per program that lists students who have reached the class requirement for their next rank, and students within 3 classes of it. Let instructors schedule a test date and record pass or retry. Passing updates the rank and resets the rank start date.
Prompt 5: check-in.
Add a front desk check-in page that shows today's classes and the students enrolled in each program, with large buttons to mark attendance. It should work on a tablet.
Expect to spend most of your time on corrections, not on the first build: "kids under 7 are in Little Dragons, not Kids Karate", "brown belt needs 6 months, not a class count", "freezes don't count against the rank timer". That's normal. Each correction is a sentence.
What your team gets
- A web app with a real Postgres database holding families, students, attendance, ranks and leads, with history you can query later.
- Staff sign-in with Owner, Instructor and Front desk roles, so the front desk doesn't see what the owner sees.
- A tablet-friendly check-in page and a phone-friendly follow-up list.
- Your own domain (crm.yourschool.com) from the Pro plan up.
- The code, which you can edit, export or hand to a developer later.
Honest limits
- Billing is the biggest piece. If you want automatic monthly payments inside the app, you'll connect your own Stripe account, and recurring billing with freezes and family discounts needs careful testing. Many schools keep their existing payment system and record membership status in the CRM instead.
- Migration takes an afternoon of cleanup. Exporting students from your current software is easy; deciding what each old status means in the new system is the slow part.
- Texts cost money. Email reminders are straightforward. SMS needs a provider account (Twilio or similar) that you set up and pay for.
- Waivers have legal weight. The app can store a signed waiver and the date, but the waiver wording is a question for your lawyer, not your software.
- Someone owns it. Plan for one person to make changes. It's much less work than reconciling four spreadsheets, but it isn't zero.
For schools with more than one location or a team
Once several people work in the same system, permissions start to matter: instructors at one location shouldn't edit another location's students, and parents' phone numbers shouldn't be open to anyone with the link. On Mythex's Business plan the app can be members-only (only signed-in people in your team workspace can open it), with roles per member and sign-in through your Google Workspace domain. The martial arts school CRM page has a starting prompt you can copy, and plans are on the pricing page. There's a Free plan if you want to try the first prompt before deciding anything.
Whatever you use, start with the leak that hurts most. For most schools that's the at-risk list: it's one table (attendance) and one rule, and it's the conversation that keeps a student on the mat.
If your rank system has a rule that doesn't fit the prompts above, describe it in the comments and I'll suggest how to phrase it.
Top comments (0)