Swim School & Aquatics Center POS: Levels That Promote, Makeups That Fill, Families That Bill as One, and Sessions That Close Clean
Run swim lessons where levels promote instead of stalling at the desk, makeups fill empty slots instead of leaking revenue, siblings across different classes bill to one family account with one card on file, and lane rentals plus team fees plus retail close from the same numbers.
The NoPOS developer relations team writes practical guides for building on the NoPOS REST API — from first smoke test to production POS.
Saturday morning at eight: that is the whole reality of the category. Four learn-to-swim classes push off the wall while two private lessons take the far lanes, the parent viewing deck holds forty families with coffee and a full retail wall of goggles plus caps plus fins, a makeup family of three arrives with credits from last week's storm closure plus a sibling moved up a level mid-session plus a disputed card charge from the summer session that still has not been answered, the front desk holds waitlists for the sold-out Tuesday Tadpoles, a birthday-party deposit for next weekend, and a high-school team invoice for twelve lanes across six weeks — while lessons, makeups, parties, and retail revenue land in four different piles. A generic register treats every sale like a coffee, so the level promotion stalls at the desk while the next session sells out around it, makeup credits tracked on paper become next month's missing reconciliation, sibling discounts applied from cashier memory become margin that never comes back, and team lane hours nobody logged become Monday-morning credit memos. Build the flow around the single truth of swim schools — every lesson belongs to a swimmer on a dated session, every swimmer belongs to a family with one card on file — and the pool turns at full margin instead of comping its way through the season.
Sell the session, not the transaction
Session inventory is class seats by level by time, and it dies on a single front-desk binder. Hold every session as an enrollment machine — leveled classes with per-class capacities and instructor ratios that fill the water instead of overloading it, online enrollment with skill-level placement that routes the new six-year-old to Guppies instead of tying up the desk for twenty minutes, waitlists that backfill the Tuesday cancellations automatically instead of leaving paid water empty, private and semi-private lessons with per-instructor calendars that bill on what swam instead of what was promised — with pricing that flexes by session so a peak summer intensive and a drizzly February weekday never ring the same, and weather and pool-closure rules that convert a thunder-cancelled Saturday into a makeup credit instead of a refund line. Handle the deck reality: offline-first registers that keep checking in when two hundred phones crush the lobby Wi-Fi, tender mixes of tap, scan, and cash that settle per desk instead of per guess, sibling and multi-class discounts enforced at enrollment instead of argued at pickup, and trial and evaluation swims that ring at zero with a reason code instead of vanishing off the books. Every dollar belongs to a swimmer on a dated session, and when the session sells itself by level and time, the water fills instead of clogs.
Promote the levels, don't stall them at the desk
Levels are the progression engine, and they die on instructor-memory handoffs. Ring every swimmer — Tadpoles through Sharks with per-level skill checklists that move the kid up the week they earn it instead of the week someone notices, mid-session promotions with prorated class-price differences that settle at the desk instead of a second emailed invoice, instructor skill assessments logged per swimmer per class so the substitute Saturday teacher inherits the roster instead of guessing, private-lesson skill plans with per-session goals that build toward the next level instead of treading water — so no swimmer sits in the wrong level for a month. Handle the coaching reality: class rosters with medical flags and guardian pickup rules that route the right kid to the right lane, instructor-to-swimmer ratios enforced at enrollment instead of discovered at the wall, level-capacity counts that flag the sellout before registration week instead of during it, and evaluation-to-enrollment conversion with follow-up holds that turn the free trial into a paid seat instead of a lost lead. When every swimmer has a level, a class, and a promotion path, the base compounds instead of leaks. Lessons, makeups, and retail all reconcile from the same numbers.
Count the makeups, don't shrug the credits
Makeups are pure retention on a schedule, and they die in the honor system. Ring every credit — storm closures, pool-maintenance shutdowns, and instructor sick days issued per swimmer per session with starting balances logged at the moment of cancellation, makeup bookings with per-class open-seat matching so the missed Tuesday finds a Thursday lane instead of expiring quietly, family-wide credit pools that let any sibling burn the balance instead of stranding it on one kid's record, no-show and late-cancellation rules with per-class standby fills that recover the seat instead of absorbing it — so nothing leaves the schedule unlogged. Handle the credit reality: expiration windows by policy that nudge the family to book instead of surprising them at zero, transfer and freeze rules for vacations and medical holds that pause billing on what paused instead of charging through it, sibling-swap bookings that move one kid's seat to another's without a refund-and-re-ring, and front-desk override codes with reason and manager approval so every exception shows up at close. When every makeup has a swimmer, a session, and a settle, the lanes stay full instead of half-empty.
Ring the family, the lanes, and the party
Families, rentals, and parties are the second ticket, and they die in the lobby stampede. Ring every household — sibling enrollments across different levels with family billing to one card on file that settles before the session instead of chasing parents after, autopay plans with installment billing and failed-card retries that collect the tuition without a desk confrontation, lane and party-room rentals with deposit holds and per-hour minimums that release on checkout instead of a paper tag, birthday-party packages with instructor counts, cake-cutting windows, and private-swim add-ons that bundle into one ticket instead of three emailed invoices — so the lobby rush rings instead of walks. Handle the building reality: retail walls with goggle and cap size runs that flag the refill before the summer run instead of during it, team and school-group lane contracts with per-week hour blocks and invoice balances tied to the weeks that swam, open-swim and lap-swim admissions with capacity windows that spread arrivals instead of stacking them at noon, and swim-team fees with per-swimmer dues, meet entries, and fundraising round-ups that attach to the family account instead of a separate spreadsheet. When every lesson, rental, party, and goggle belongs to a swimmer in a family on a dated session, the desk, the lanes, and the wall compound instead of collide.
Close the day across lessons, makeups, lanes, and retail
Pool close spans four businesses under one roof. Count cash against each desk and deck drawer by tender type, reconcile card batches including session deposits taken weeks ago and autopay runs from overnight, and split the period by stream — lesson revenue with seats-per-class and per-swimmer yield so the dead February weekday earning a third of the summer Saturday shows up plainly, makeup revenue with credit issuance versus redemption and expiration tied to the sessions that ran, and retail revenue with units-per-swimmer and goggle attach tied to the day's attendance. Then add the pool layer: sibling and multi-class discounts applied versus abused, storm credits and medical freezes still outstanding, no-show lessons with standby-fill recovery, waitlist conversions with backfill counts, and tomorrow's ops sheet with class rosters, instructor assignments by lane, makeup availability, and party arrival times ready before the doors open. When lessons, makeups, lanes, parties, and retail all reconcile from the same system, close takes minutes and tomorrow's first class starts from facts.
Build from the current contract
Open the gateway for OpenAPI, Swagger, AGENTS.md, llms.txt, and the first X-API-Key smoke test.
More from NoPOS Blog
Esports Arena POS: Station-Time Billing That Starts on Login, Tournament Brackets That Settle on Check-In, F&B Fired to the Station, and Close Across Stations Plus Events Plus Retail
Run esports arena service where station-time billing starts on login instead of on memory, tournament brackets and walk-in stations settle from the same numbers, food and energy-drink runs fire to the station instead of the room, and the whole night reconciles across stations, events, and retail.
Industry GuideHVAC & Plumbing Field-Service POS: Dispatch Boards That Fill the Day, Quotes That Convert on the Driveway, Parts That Bill From the Truck, and Close Across Techs Plus Jobs Plus Agreements
Run HVAC and plumbing service where dispatch fills every tech's day instead of whiteboarding it, quotes convert on the driveway instead of dying in the inbox, parts and truck stock bill from the job instead of Monday-morning write-offs, and the whole day reconciles across techs, jobs, and maintenance agreements.