Skip to content

SaaS vs Custom

Day Spa & Wellness Software — Treatment Room Scheduling, Member Subscriptions, Gift Vouchers, Retail Upsell at Checkout, Therapist Commission Tracking, Recurring Rebook Reminders, Fresha Fee Model vs Custom Platform, AU FairWork Compliance

All articles
💆 💳

Three-spa wellness group (Brisbane, Gold Coast, Sunshine Coast; 40 FT therapists, 12 treatment rooms, $320k monthly revenue, 5000+ active members, 60% massage/facial/body, 20% retail skincare, 15% gift vouchers, 5% add-ons): Fresha booking software ($100/month + 2.19% per transaction, auto-deducted from payments). Monthly transaction volume: $320k total revenue. Fresha fee: $320k × 2.19% = $7,008/month = $84,096/year. Member Olivia: books 90-min Swedish massage ($150). Fresha processes: payment (Olivia charged $150), system deducts: Fresha fee ($150 × 2.19% = $3.29). Spa receives: $146.71. Therapist Sarah: hour is $60 (Fresha doesn't track). Sarah's commission: not automated (manager manually calculates: Sarah worked 40 hours × $60 = $2,400, minus shared room costs [spreadsheet], Sarah's net $1,980). Member portal friction: Olivia (wants to rebook 90-min massage next month). Olivia navigates: Fresha app (finds therapist Sarah's calendar). Sarah's calendar: booked (back-to-back, no 90-min slot until 3 weeks later). Olivia books: 3 weeks out (doesn't want to wait). Olivia leaves: no rebook reminder (Olivia forgets to book again, appointment gap 6 weeks). Spa loses: recurring revenue (4 appointments/month baseline, 3-week gap costs 2 appointments worth $300 lost). Retail upsell friction: Olivia (completes 90-min massage). Therapist Sarah: offers skincare retail (Sarah doesn't track: "Check with manager at checkout."). Olivia walks to checkout (no retail recommendation, no targeted upsell). Manager at POS: "Anything else?" Olivia: "No thanks." Olivia leaves (missed retail cross-sell $40). Retail add-on gap: 60% of members leave without upsell offer (20 members/day × 60% = 12 members, 12 × $40 avg retail = $480/day lost = $174,600/year retail lost). Gift voucher friction: Olivia's friend receives: gift voucher ($100, physical card). Olivia's friend visits: spa (voucher handed to receptionist). Receptionist scans: voucher (generic barcode, no digital tracking, no expiry recorded, no denomination tracking). Olivia's friend: books 60-min facial ($80, within $100 voucher). Receptionist rings: sale (manually deducts $80 from $100, remainder $20 balance). Receptionist notes: $20 remaining on card (spreadsheet entry). Week later: new receptionist Amy (unfamiliar). Olivia's friend returns: redeeming $20 balance. Amy: "What balance?" (Spreadsheet lost, no digital record). Olivia's friend: can't prove balance (disputes $20 loss, spa reputation damage, member lost). Digital gift voucher loss: 10 physical vouchers/week × 8% manual loss rate = 0.8 vouchers/week lost = $80/week lost = $4,160/year retail lost. Member subscription friction: Olivia (member subscription: $49/month, unlimited 60-min massages [2 per week = 8 per month], valued at 8 × $120 = $960 retail if paid per service). Olivia's usage: month 1 (8 massages used, full value). Month 2: Olivia busy (uses 2 massages, 6 unused). Month 3: Olivia remembers (uses 4 massages, 4 unused). Subscription churn: Olivia cancels (month 4, "I wasn't using it enough"). Spa loses: recurring $49/month (future 12 months = $588 lost). Member lifetime value: Olivia's subscription revenue: 3 months paid ($147), future potential: 12 months × $49 = $588 (lost due to low engagement). Automation gap: Fresha doesn't remind (Olivia never got "You've used 2 of 8 massages this month, book your next appointment" notification). Therapist commission friction: 12 therapists, hourly rate $60/hour, commissions on retail sales (10% commission on skincare sold). Manager's process: end of week, manager reviews: 100+ transactions (therapist names, treatment times, retail items sold). Manager manually calculates: therapist Sarah: 40 hours × $60 = $2,400 base (deduct shared room costs $300 = net $2,100), retail sold $500 (10% commission $50), total: $2,150. Therapist John: 35 hours × $60 = $2,100, shared room $300 = $1,800, retail $200 (10% = $20), total: $1,820. Manager's time: 100 transactions × 3 min/transaction = 300 min = 5 hours/week = 20 hours/month = 240 hours/year of manual commission tracking ($26/hour × 240 = $6,240/year labor). Commission errors: 15% rate (due to manual entry, spreadsheet errors). Sarah underpaid by $150 (room cost miscalculated). John overpaid by $80 (retail commission double-counted). Disputes: Sarah "I should have gotten $200 more", John "Why did I get extra $80?". Therapist morale: commission opacity kills retention (Sarah considers leaving: "I don't trust the numbers."). Turnover cost: replacing therapist ($8k onboarding + 4 weeks lost productivity = $12k per replacement). 2 therapists leave/year due to commission disputes = $24k turnover cost. **Total friction: $30k+ annually** (Fresha fees $84k, rebook gap $5.4k [18 members × 4 missed appointments × $150 avg], retail upsell gap $174.6k, gift voucher loss $4.16k, member subscription churn $2.8k, commission labor $6.24k, therapist turnover $24k).

Three-spa wellness group (Brisbane, Gold Coast, Sunshine Coast; 40 FT therapists, 12 treatment rooms, $320k monthly revenue, 5000+ active members, 60% massage/facial/body, 20% retail skincare, 15% gift vouchers, 5% add-ons): Fresha booking software ($100/month + 2.19% per transaction). Monthly transaction volume: $320k. Fresha fee: $320k × 2.19% = $7,008/month = $84,096/year. Member Olivia: books 90-min Swedish massage ($150). Fresha deducts: fee ($150 × 2.19% = $3.29). Spa receives: $146.71. Therapist Sarah: hour is $60 (Fresha doesn't track commission). Sarah's commission: manual spreadsheet (manager calculates: Sarah 40 hours × $60 = $2,400, minus shared room $300 = $2,100). Rebook reminder friction: Olivia (wants to rebook 90-min next month). Sarah's calendar: booked (no 90-min slot for 3 weeks). Olivia books: 3 weeks out (doesn't want to wait). No rebook reminder sent (Olivia forgets). Appointment gap: 6 weeks (loses 2 appointments worth $300). Retail upsell friction: Olivia (completes massage). Sarah: offers skincare retail (doesn't track). Olivia walks to POS (no recommendation, no upsell). Manager: "Anything else?" Olivia: "No." Missed retail: $40 per member. 60% of 20 members/day = 12 members × $40 = $480/day = $174,600/year retail lost. Gift voucher friction: Olivia's friend (gets gift voucher $100, physical card). Friend visits (voucher handed to receptionist, manual notes, no digital tracking). Friend books: 60-min facial ($80). Receptionist notes: $20 balance (spreadsheet). Week later: new receptionist Amy (unfamiliar, spreadsheet lost). Friend returns: "I have $20 balance." Amy: "No record." Dispute (member reputation damage). Digital loss: 10 vouchers/week × 8% loss = $80/week = $4,160/year lost. Member subscription friction: Olivia ($49/month, unlimited 60-min massages). Usage: month 1 (8 used), month 2 (2 used, 6 unused), month 3 (4 used). No reminder sent (Olivia unaware of unused credits). Olivia cancels (month 4, "not using enough"). Subscription churn: 3 months paid ($147), future 12 months lost ($588). No engagement automation. Commission tracking friction: 12 therapists, manager's process: 100+ transactions/week, manual calculate (5 hours/week = 240 hours/year = $6,240 labor). Errors: 15% rate (Sarah underpaid $150, John overpaid $80). Commission disputes (Sarah: "I don't trust the numbers", considers leaving). Therapist turnover: 2 therapists/year due to disputes = $24k replacement cost. **Total friction: $30k+ annually** (Fresha fees $84k, rebook gap $5.4k, retail upsell gap $174.6k, gift voucher loss $4.16k, subscription churn $2.8k, commission labor $6.24k, therapist turnover $24k).

Why Fresha Hits Hard: The 2.19% Fee Model

Fresha's business model: SaaS booking platform ($100/month base), transaction fee (2.19% of every payment processed). $320k/month spa group: $7,008/month in Fresha fees alone = $84,096/year. Fee structure: Fresha's 2.19% is industry-standard for payment processor margins (Stripe ~2.2%, Square ~2.75%), but Fresha's lock-in: no alternative payment gateway option. Payment processing lock-in: Fresha requires: all payments processed through Fresha's payment partner (can't use Stripe, Square, or any other processor). Fresha profit model: take 2.19% + payment processor margin (Fresha's margin ~1.5%, processor margin ~1%, total cut ~2.5%). 3-spa group: revenue $320k/month. Fresha/processor margin: $320k × 2.5% = $8,000/month (hidden cost beyond the 2.19% displayed). Fresha's fee justification: booking platform, payment processing, customer communication, simple POS. What's missing: therapist commission tracking (manual), member subscription engagement (no automation), gift card digital system (manual), retail upsell intelligence (none), rebook reminders (none), member lifetime value tracking (none). Custom platform advantage: own payment processor relationship (Stripe, Square), control fee rate (1.5% typical for established merchants). $320k/month spa group: Stripe processing cost ~$4,800/month = $57,600/year (vs Fresha $84k/year = $26.4k/year savings). 3-spa group: year 1 Fresha fee savings alone = $26,400 (before any feature value).

Six Custom Features That Beat Fresha

1. Treatment Room Scheduling — Multi-Therapist Availability, Duration Options (30-min, 60-min, 90-min, 120-min), Room Inventory (12 treatment rooms, each with specific services), Therapist Preferences (Maria: facials only, James: massage + body, Priya: all services), Member Real-Time Availability, Overbooking Prevention, Waitlist Auto-Notification

Current: Fresha calendar (basic month view, no room-level scheduling, therapist preferences manual, members see limited slots). Olivia: wants 90-min Swedish massage with Sarah. Fresha calendar: shows Sarah's availability (2-week view, no room level). Sarah: assigned room 3 (dedicated to Swedish massage). Room 3: booked every 60 min (back-to-back treatments). Olivia: "I want 90-min with Sarah." Fresha shows: no 90-min slot available (next 90-min with Sarah is 3 weeks out). Olivia: books 3 weeks (doesn't want to wait, considers canceling). New system: room + therapist scheduling. Olivia: searches "90-min Swedish massage" (real-time search, system checks: all 12 rooms, all 40 therapists, filters by service [Swedish massage], duration [90-min], availability). System shows: Sarah available (room 3, 10 am Friday = 2 days out, Olivia books [happy, short wait]). James: available (room 5, 2 pm Tuesday = next day, also shows). System presents: "Sarah (10 am Friday, room 3) or James (2 pm Tuesday, room 5)" (gives choice). Olivia books: Sarah Friday (booked instantly). System prevents: overbooking (room 3 locked for Sarah's 90-min, no conflicting bookings). Waitlist automation: Olivia (friend Emma wants Saturday 2 pm, no availability). Emma: joins waitlist (system tracks). Cancellation: Thursday, therapist Kate cancels her Saturday 1 pm appointment (room 7, 90-min). System detects: cancel (triggers waitlist check). Emma (top of waitlist for Saturday): system sends notification (SMS + email: "Emma, your waitlist availability! 90-min Swedish massage, Saturday 1 pm, room 7 with Kate. Confirm within 1 hour?" Emma confirms: within 1 hour (appointment booked, zero manual work). Therapist preferences automation: Priya (offers all services: massage, facial, body). Maria (facials only, no massage due to back injury). James (massage + body, no facials). System enforces: Olivia searches "facial" (system filters: shows Maria + Priya only [James hidden]). Olivia searches "massage" (system filters: shows Sarah + James + Priya [Maria hidden]). No manual scheduling errors (business logic automated). **Value: smart room + therapist matching (members see best options, short wait times), overbooking prevention (zero double-bookings), waitlist automation (zero manual notifications), therapist preferences enforced (zero scheduling mismatches). Payback: 2 weeks.**

2. Member Subscriptions + Recurring Rebook Automation — Membership Tiers (Bronze $29/month [1 × 60-min massage], Silver $49/month [2 × 60-min/facials], Gold $99/month [4 services, 20% retail discount]), Usage Tracking (Credits Remaining, Services Used This Month), Auto-Rebook Reminders (SMS/Email 7 Days Before Monthly Reset), Engagement Analytics (Low Usage Alerts to Spa Manager), Churn Prediction (Cancel Risk Score)

Let us make some quick suggestions?
Please provide your full name.
Please provide your phone number.
Please provide a valid phone number.
Please provide your email address.
Please provide a valid email address.
Please provide your brand name or website.
Please provide your brand name or website.