for swim schools · 2026

Swim school software for term lessons and payments

Run leveled swim lessons in term blocks, take payments from parents on your own Stripe, cap each lane and manage waitlists when a stage fills up. Intake for swimmer details, automatic reminders, the admin side on autopilot. From $15 a month.

who this is for

Built for leveled lesson blocks

Swim schools don't sell single drop-ins — they sell multi-week blocks where a swimmer works through a level before moving up. That's exactly what term-based courses do in Junocal. You set up a block for each stage, parents enrol a swimmer into the whole run, and one payment covers the term.

Cap each lesson to what a lane or instructor can safely take, run a waitlist when a stage fills, and collect the swimmer's age, level and medical notes at enrolment with intake forms. Parents pay you on your own Stripe, and confirmations and reminders send themselves. The admin runs in the background while you coach.

Junocal is the booking, enrolment and payments layer that keeps the right swimmers enrolled, paid and reminded. Term blocks, parent payments, waitlists, intake and automated emails all run from one place, so the admin side runs itself while you coach. All of it from $15 a month, with no annual contract.

what you get on starter

Everything a swim school runs on, from $15

Term blocks for every level

Term-based courses let you set up a multi-week run for each level and sell the whole block in one booking. Parents enrol a swimmer into a leveled progression — Stage 1 through Stage 5 — and one payment covers the term.

Per-class and per-lane capacity

Cap each lesson to the number of swimmers a lane or instructor can safely take, and not one more. Run separate stages at the same time, each with its own limit, so groups never get oversubscribed.

Parent payments on your Stripe

Connect your own Stripe account and parents pay you directly at Stripe's published rates — no Junocal markup, no commission. Card, ACH in the US and Direct Debit in the UK all work for recurring term fees. Money lands in your balance.

Two-mode waitlists for full levels

When a stage fills, families join a waitlist instead of bouncing off a closed page. The moment a spot frees up, Junocal offers it to the next swimmer in line automatically — you don't chase anyone by hand.

Intake for swimmer details

Conditional-logic intake forms collect age, current level, water-confidence and medical or allergy notes at enrolment, showing follow-up questions only when relevant. Answers attach to each swimmer's record for the instructor to see.

Automatic reminders to parents

Booking confirmations, 24-hour reminders, welcome emails and failed-payment recovery send themselves. Parents get the lesson time and details without you emailing anyone — and missed term payments get chased automatically.

get paid your way

Term fees on your own Stripe, reminders on autopilot

You connect your own Stripe account and parents pay you at Stripe's published rates — no Junocal markup, no marketplace commission. Card, ACH in the US and Direct Debit in the UK all work for recurring term fees, and the money lands in your balance directly. Junocal never holds your funds.

Booking confirmations, 24-hour reminders, welcome emails and failed-payment recovery all send themselves. Parents get the lesson time without you emailing anyone, and a missed term payment gets chased automatically. Every one of those automated emails is included on Starter.

capacity and waitlists

Cap each lane, fill freed spots automatically

Every class and term block carries its own capacity, so you can hold a beginner group to the number of swimmers a lane or instructor can safely take. Run several stages at once, each with its own limit, and none of them gets oversubscribed.

When a level fills, families join a two-mode waitlist instead of hitting a closed page. The moment a swimmer drops, Junocal offers the spot to the next family in line automatically. If you assign swimmers to specific lanes, pick-a-spot floor-plan booking lets parents pick the lane at enrolment.

classes you can run

One tool for every level you teach

Learn-to-swim stages

Leveled term blocks for beginner through advanced stages, each with its own capacity and waitlist.

Parent-and-baby classes

Short term courses for water-confidence groups, with intake for the child's age and any notes.

Squad and improver lessons

Multi-week progressions for stronger swimmers, sold as a block with one payment per term.

Holiday intensives

Crash-course blocks over a school break — set the dates, cap each group, take payment up front.

Private and duet lessons

1:1 and duet appointments for swimmers who want focused coaching, booked on the same calendar.

Adult learn-to-swim

Term blocks and drop-ins for adult beginners, with packs for those who prefer to pay as they go.

when you scale

Move up to Studio when you add a team or a pool

Starter covers one location, up to 10 rooms and up to 5 instructor seats — plenty for a single pool and a small coaching team. When you add instructors who need their own logins, a front-desk role for sign-ins, email broadcasts to parents, a substitute pool for cover, or a second site, Studio at $29/month unlocks them. Growth at $69/month adds up to 10 locations and QuickBooks. Everything you built on Starter carries straight over — no rebuild, no migration.

the things swim schools ask

Questions

Can Junocal run leveled swim lessons in term blocks?

Yes — term-based courses are a core Junocal feature, built for exactly this. You set up a multi-week block for each level (Starfish, Stage 1, Stage 2, and so on), parents enrol a swimmer into the whole term in one booking, and a single payment covers the run. Pricing starts at $15/month on Starter with no annual contract.

How do parents pay for swim lessons?

You connect your own Stripe account (Stripe Connect Standard) and parents pay you directly at Stripe's published rates — no Junocal markup and no marketplace commission. Card, ACH in the US and Direct Debit in the UK are all supported, which suits recurring term fees. The money lands in your Stripe balance; Junocal never holds your funds.

Can I cap each lesson and run a waitlist when a level fills up?

Yes. Every class and term block has its own capacity, so you can hold a Stage 1 group to six swimmers per lane or instructor and not a place more. When a level is full, two-mode waitlists capture the next families and offer a freed-up spot automatically when someone drops. You can also pick-a-spot if you assign swimmers to specific lanes.

How do I collect swimmer details like age, level and medical notes?

Conditional-logic intake forms run at enrolment, so you can ask for the swimmer's age, current level, water-confidence and any medical or allergy notes — and show follow-up questions only when they apply. Answers attach to the swimmer's record, ready when the instructor opens the day-of roster. It's included from the $15/month Starter plan, not a paid add-on.

Can I sell a block of lessons as a pass that swimmers use over the term?

Yes. Alongside term enrolment, packs let you sell a bundle of lessons — say ten swims — as one purchase, and the balance draws down each time a swimmer books in. Parents pay once instead of session-by-session, and the credit count looks after itself. Packs are included from the $15/month Starter plan, not a paid add-on.

Start on Starter, for $15 a month

Term blocks for every level, parent payments on your own Stripe, waitlists, intake and automatic reminders — with no annual contract. Free CSV export and free migration in your first 30 days.