The easiest way is to bill each student with a recurring invoice in GoHighLevel, give each student a make up token field, and let families book make ups on a class calendar. The bottom line: swim schools already run on published rules for billing dates, make ups, and cancellations, so the work is putting those rules into fields and workflows once.

What real schools publish

SwimLabs and Swimtastic bill monthly tuition automatically on the 25th of the month before the classes and say the amount can vary with the number of weeks in a month. Swimtastic requires a withdrawal by the 15th to avoid the next month's charge, with a partial refund window afterward. SwimLabs allows a make up within two weeks of a missed class, and Swimtastic within three weeks, one a month. SwimJim bills on the first, gives one complimentary make up token a month for weekly swimmers, asks families to cancel at least one hour ahead, and charges $30 for a declined card. Imagine Swimming allows one make up a month, to be scheduled within 30 days, with none for missed make ups. Timpany Center runs 6 to 8 week sessions of one 35 minute lesson a week, with a make up week at the end of each session, and a 12 hour cancellation notice, and its 2023 calendar limits make ups to documented illness and pool closures. The rules differ, so yours must be written down.

Fields and rules

Field or ruleExample
Billing day and amountMonthly on the 1st, or a per session price on a term
Make up tokensNumber field, 1 added each month
Make up windowWithin 3 weeks of the missed class
Cancellation notice1 to 12 hours, by school policy
LevelWhich class calendar the student books

Build it in GoHighLevel

  1. Connect Stripe and create an invoice template for each level's tuition.
  2. Build a workflow that sends the first invoice at enrollment and then uses the Send Recurring Invoice action on your billing schedule.
  3. Create a class calendar for each level with seat limits. GoHighLevel's class booking calendar sets seat limits and recurring class times.
  4. Create a Make up tokens number field. Build a workflow with the Payment Received trigger that adds one token each billing cycle, using the math operation action.
  5. Build a workflow that starts when you tag a student Absent. Use an If/Else on tokens. If tokens are above zero, send the make up calendar link and subtract one. If not, send the policy message.
  6. Build a Payment Failed workflow that texts a link to update the card before the next class.

GoHighLevel's help page on recurring invoices says the Send Recurring Invoice workflow action needs an invoice template created under Payments, then Invoices, and a gateway connected under Payments, then Integrations. It says the action is currently supported for Stripe connected sub accounts, that card details are stored only after the first invoice is paid manually, that a Payment Failed trigger can retry and notify the customer, and that conditional branches can send different templates by contact attributes. The Payment Received trigger page says it fires for payments from forms, manual payments, memberships, Text2Pay links, and subscription charges.

What the workload looks like

For example, a school with 300 students gets about 300 invoices a month. If 10 percent miss a class in a month, that is 30 make ups (300 times 0.1). A token field and a booking link answer those without a phone call each.

Mistakes to avoid

How this was handled before

Swim schools billed by the term with a check or a paper form, and handled make ups at the front desk with a clipboard. Monthly card billing and a portal came with the franchise systems. A recurring invoice and a token field give an independent school the same controls.

What to measure after launch

Track declined cards per month, make ups booked against tokens issued, and withdrawals by the 15th. If tokens issued far exceed make ups used, families are not finding the booking link, so resend it with each absence message.

Check before you switch it on

US text messages sent from a standard 10 digit number need A2P 10DLC registration. The HighLevel support portal says registration is required for texts to US recipients from 10 digit long code numbers and that toll free numbers do not require it. HighLevel's opt in guidelines also say a person cannot be forced to agree to text messages in order to submit a form, so keep the consent box optional. One compliance guide separates informational texts, which need documented consent, from marketing texts, which need prior express written consent. Ask your attorney which category your reminders fall into. Parents are the contacts for young swimmers, so record which parent agreed to texts. This is general information, not legal advice.

Questions people ask

How do schools bill?

SwimLabs and Swimtastic bill monthly on the 25th for the next month, and SwimJim bills on the first.

How many make ups do schools allow?

Several allow one a month, and windows range from two weeks to 30 days.

Does GoHighLevel bill on a schedule?

Yes, with the Send Recurring Invoice action for Stripe connected accounts.

Ready to try it yourself? Start a GoHighLevel account here.

You can also see this in action in our GoHighLevel capabilities demo.