Published August 21, 2026 · 6 min read
Most gym owners who've changed software have heard the same warning, usually from someone who did it badly: you will lose people's payments. Fair warning, and an avoidable one. The data itself rarely goes wrong. The money goes missing in the two weeks where a member's renewal date sits between the old system and the new one, and neither of them charges it. Here's the order to do it in so that doesn't happen to you.
Your access ends when your subscription does. Most platforms let you export your own data while you're a customer, and what happens after that varies: Mindbody says you lose access the day the site is deactivated, and Zen Planner's terms let them delete the data once the billing cycle ends. So the very first move, before you've picked a new system or even finished shopping, is to pull your data out and put it somewhere you control.
This is the part owners resist, because it means paying twice for a month. Pay twice for a month. A second subscription costs you somewhere between $30 and $200. One missed billing cycle at a 90-member academy puts five figures of dues in limbo, and getting it back means a week of awkward emails asking people to pay you again. Some of them won't.
The overlap exists so that every member's charge date passes at least once while you still have both systems in front of you. Once someone has been billed successfully in the new system, they're done and you never think about them again. Work through the roster in charge-date order and the whole thing drains itself.
Cancel the old subscription when the last person on the list has paid through the new one, and not before. A finished import doesn't count. The money has to have moved.
This one surprises people: your members' saved card numbers can't be exported to a spreadsheet, by anyone. Card data lives with the payment processor, under PCI rules that exist specifically to stop it being emailed around as a CSV, and any vendor who offered to hand you one in a file would be telling you something alarming about how they store it.
That leaves two routes that actually work.
Attendance records point at two things: a person and a class. Neither exists in a brand new account, so importing history first produces a pile of rows attached to nobody. Members first, then your programs and schedule, then history.
A good importer lets you upload the same file twice without creating duplicates, which means you can run it, look at what happened, fix the spreadsheet, and run it again. Check that before you trust one with your roster.
| Data | How it gets there |
|---|---|
| Members: contact details, birthday, status, emergency contact | CSV import |
| Membership name and next charge date | CSV import, saved as a note on the member's profile so you can see when they're due |
| Attendance history | CSV import, mapped to your new classes |
| Belt ranks and stripes | Set in bulk in the new system. Rank structures differ too much between platforms to survive a file |
| Families and guardians | Linked in the new system after the member import |
| Signed waivers | Have members re-sign. A signature attached to your current waiver text is worth more in a dispute than a PDF that came out of a vendor you no longer use |
| Saved cards | Re-collected, or copied processor to processor |
Under-13 members are the one category where an import can quietly put you offside. In the US, COPPA covers the personal information an online service collects from children under 13, and it wants verifiable consent from a parent or guardian before that happens. Importing a birthday doesn't import that consent.
What you want is a system that holds imported kids behind the same consent gate as ones you add by hand: on the roster for you, not visible on the kiosk or any public sign-up surface, until a guardian has confirmed. Then link the guardian and send the request. If your new platform doesn't distinguish a child record from an adult one at all, that's worth knowing before you move 60 kids into it.
| When | What |
|---|---|
| Week 0 | Export everything from the old system. Sign up for the new one. Don't cancel anything. |
| Week 1 | Import members. Build programs and the class schedule. Import attendance. Set belts. Nobody is billed and no member sees anything yet. |
| Week 2 | Connect your payment processor and build your plans. Message your members: you'll be asking for cards once, the rate is unchanged. Start enrolling whoever renews first. |
| Week 3 | Run check-ins in the new system. Keep the old one open and unused. Keep working down the roster in charge-date order. |
| Week 4 | Everyone has been charged once in the new system. Now cancel the old subscription. |
None of that is technically hard. The hard part is the last row, because by week three the new system looks finished and the old invoice is annoying. Wait for the money anyway.