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)
Current: Fresha memberships (basic tier tracking, no engagement automation, no rebook reminders, members cancel when they forget to book). Olivia: Silver member ($49/month, 2 × 60-min services). Usage: month 1 (books 2, uses both ✓). Month 2: Olivia busy (books 1, uses 1, forgets about 1 unused credit). Month 3: Olivia remembers (uses 1 leftover + 1 new = 2, all used). Month 4: Olivia forgot again (books 0, loses 2 credits to expiry, no reminder sent). Olivia: "I didn't get my money's worth, canceling." Churn: loses Olivia (12 months future value = $588 lost, no automated recovery). New system: engagement automation. Olivia: Silver member ($49/month, 2 × 60-min services). Usage tracking: system dashboard (Olivia sees: "2/2 services used this month, next reset 30 June"). Olivia uses both (month 1 complete). June 24: system sends (email + SMS: "Olivia, 6 days until your next 2 credits reset! Book your services or they expire. Browse massage + facial therapists here [link]."). Olivia receives: reminder (remembers, 2 minutes later: books 60-min facial with Maria [July 1], gets into habit). Month 3: Olivia books early (5 June: "Need to use my credits before July 1 reset", books massage + facial [7 June + 15 June]). Olivia's usage pattern: month 1 (2/2), month 2 (2/2), month 3 (2/2) = 6 services booked, 6 used (100% utilization). Olivia: never considers canceling (feels like she's getting full value). Retention: Olivia stays (12 months × $49 = $588 future revenue retained). Member James: Bronze member ($29/month, 1 × 60-min massage). Usage: month 1 (books 0, no reminder sent). Month 2: James cancels (didn't use it). Churn: lost James ($29 × 12 = $348 annual lost). New system: churn prevention. James: Bronze member ($29/month, 1 × 60-min massage). System tracks: James hasn't booked (30 days in, system flags "James at risk"). Manager receives: alert (James 30-day no-book, churn risk score 85/100). Manager sends: personalized email (James: "Hi James, haven't seen you in a month. Your Bronze membership includes 1 massage. How about a relaxing Swedish massage this weekend? Book now [link]."). James: reads email (remembered he had membership, books 90-min massage [waited too long, wants more than 60-min, books and upsells to 90-min, paid overage $40]). James: satisfied, keeps membership. Retention: James stays (future value $348+). Tier upsell: Olivia (uses 2/2 services month 1, requests 3rd massage [exceeds Silver]). System alerts: Olivia (Silver member, 2 services included, 1 overage $60). Olivia: "I'd use 3 monthly, should I upgrade?" System shows: Gold $99/month (4 services, 20% retail discount). Olivia upgrades: (Gold $99/month, monthly overage gone). Upsell conversion: 10% of members upgrade to higher tier (average upgrade +$30/month). 5000 members × 10% × $30/month upgrade × 12 months = $1.8M additional annual revenue. Value: engagement reminders (churn prevention, 85% retention improvement), usage analytics (manager visibility), upsell automation (tier migration), member lifetime value +$588 per retained member. Payback: 4 weeks.
3. Gift Voucher System — Digital Gift Codes, Customizable Denominations ($25, $50, $100), Automatic Expiry Tracking (12-month validity), Purchase + Redemption Logging, Partial-Balance Tracking (No Lost $20), Low-Balance Alerts (Email Recipient When $10 Left), Audit Trail (Prevent Fraud)
Current: physical gift vouchers (manual tracking, receptionist notes, expiry forgotten, loss 8% rate = $4,160/year lost, no digital record, disputes). Olivia's friend (receives gift voucher $100, physical card). Friend visits: voucher handed to receptionist. Receptionist scans: barcode (generic, no denomination). Receptionist notes: spreadsheet (friend name, $100 balance). Friend books: 60-min facial ($80). Receptionist rings: manually deducts (balance now $20). Receptionist notes: spreadsheet entry. Week later: new receptionist Amy (spreadsheet lost). Friend returns: "I have $20 balance." Amy: "No record." Dispute (friend upset, spa reputation damage). Digital loss: 10 vouchers/week × 8% manual loss = $80/week = $4,160/year. New system: digital gift codes. Olivia (buys gift voucher for friend, $100). System generates: unique code (GIFT-2406-KL9M2). Olivia: shares code (SMS or email to friend). Friend receives: code (GIFT-2406-KL9M2, $100 balance, expires 13 June 2027). Friend visits: spa. Receptionist: "Welcome, do you have a voucher?" Friend: "Yes, code GIFT-2406-KL9M2." Receptionist enters: code (system loads: valid ✓, $100 balance, expiry 13 June 2027 ✓, friend's name). Friend books: 60-min facial ($80). System deducts: $100 – $80 = $20 remaining. System logs: redemption (code GIFT-2406-KL9M2, redeemed $80, remaining $20, date 8 June 2026). System sends: email to friend (automatically, "Your voucher balance: $20 remaining, expires 13 June 2027"). Week later: friend returns (uses $20 balance for skincare retail). System logs: final redemption ($20 → $0, code expires). No manual notes (zero loss). Expiry protection: friend's code expires 13 June 2027 (12 months from purchase). System sends: reminder 30 days before (email: "Your voucher expires 13 June 2027, $5 balance remaining, use it before expiry!"). Friend uses: last $5 (skincare product). Code fully redeemed (zero fraud, zero loss, 100% revenue captured). Voucher fraud prevention: thief finds code (GIFT-2406-KL9M2) in email. Thief visits: spa, enters code. System checks: transaction history (code redeemed 8 June by friend [name visible], remaining $20, code active but linked to friend's account [system flags unusual activity]). Manager reviews: "Code redeemed 2x (8 June by friend, now by different person?) Verify." Manager checks: code history (8 June facial, valid. New attempt: different person, different time, system requires verification). Manager contacts: friend (SMS: "Did you try to redeem your gift code at 2 pm today?"). Friend: "No, I used it last week." Manager blocks: code (fraud prevented, zero loss). Partial balance automation: Olivia (buys voucher $100). Friend redeems: $80 (balance $20). Friend forgets to spend $20 (code approaches expiry: 30 days left). System sends: reminder (email: "Your $20 remaining expires soon, book a quick 20-min express facial and use it!"). Friend: redeems $20. Full voucher value captured (zero waste). Bulk voucher sales: wellness group (offers bulk gift vouchers for corporate clients: 100 vouchers × $50 = $5,000 sale). System generates: 100 unique codes (batch BULK-2406-A1 through A100). Corporate client: distributes codes to employees (100 codes, each $50). Employee John: redeems code (books $45 massage). System logs: John used $45 of $50. Manager's dashboard: shows batch BULK-2406 (50 redeemed, 50 unused, $4,500 revenue captured, 50 pending [expiry 13 June 2027]). Value: digital tracking (zero manual loss), fraud prevention (code authentication), expiry automation (reminder system), revenue capture (no abandoned balances). Payback: 3 weeks.
4. Retail Upsell at Checkout — Therapist-Recommended Products (Maria recommends: "Lavender face cream $35, pairs with your facial"), Purchase History Tracking (Olivia bought Lavender cream 3 months ago, suggest: upgrade to premium $55), Dynamic POS Upsell (Real-Time Recommendations), Retail Margin Tracking (40% margin on skincare, highlight margin leaders), Commission Integration (Therapist 10% commission on retail sold)
Current: no retail upsell system (therapist-driven ad-hoc, manager "Anything else?" at POS, 60% members leave without offer, $174,600/year retail lost). Olivia: completes 90-min massage. Therapist Sarah: "You might like our lavender cream, pairs well with massage." Olivia: "Maybe, check at checkout." Olivia walks to POS. Manager: generic "Anything else?" Olivia: "No." No retail sold (Sarah's recommendation lost). New system: retail recommendations. Olivia (during massage): Sarah suggests "Lavender face cream $35". System tracks: suggestion (Sarah offered, Olivia expressed interest [non-committal]). Olivia walks to checkout (10 minutes later). Manager opens: Olivia's receipt in system. System shows: recommended product (Lavender cream $35, suggested by Sarah, margin $14 [40%]). Manager: "Sarah recommended our lavender cream—perfect for post-massage skin. Interested?" Olivia: "Oh yeah, let me grab it." Manager: adds to cart (checkout total: massage $150 + lavender cream $35 = $185). System logs: retail upsell successful (Sarah's commission: 10% of $35 = $3.50 automatically added). Therapist commission tracking: Sarah (40 hours massage at $60/hour = $2,400 base, retail commissions: lavender cream $3.50, body oil $2, face mask $1.50 = $7 total). System calculates: Sarah's weekly pay (40 hours × $60 + $7 retail = $2,407). Automated payout: system sends payment to Sarah's bank (zero manual calculation, zero spreadsheet errors). John (different therapist, week's retail commissions: body lotion $5 + shampoo $2 = $7, 35 hours × $60 = $2,100, total $2,107). System tracks: both therapists (zero disputes, transparent commission structure). Repeat purchase targeting: Olivia (bought Lavender cream 3 months ago). Olivia: now books new massage. Manager notes: Olivia's history (Lavender cream purchased, 3 months past repurchase cycle). System suggests: upgrade (Lavender cream Premium $55 [20% uplift from standard $35]). Manager: "Olivia, remember the lavender cream you loved? We've got the premium version now—20% more concentrated, lasts twice as long. Want to try it?" Olivia: "Yeah, sounds good." Upsell successful (standard $35 → premium $55, margin uplift +$7). Margin-based recommendations: system identifies (high-margin products): face masks (60% margin $18 profit), body oils (55% margin $15 profit), shampoos (50% margin $8 profit). Low-margin: discounted packages (20% margin $10 profit). System prioritizes: high-margin recommendations (manager sees: face mask $30 [60% margin] highlighted, not shampoo $16 [50% margin]). Manager's upsell focus: pushes high-margin products (monthly retail margin: 40% avg, system optimization pushes to 45% avg = 12.5% margin improvement). Retail per visit: baseline $15 (15% of members buy retail). System upsell: targeting increases to $22 (48% conversion uplift). 3-spa group: 200 visits/day × 15% baseline = 30 retail purchases/day × $15 = $450/day. With system: 200 visits/day × 22% conversion = 44 retail purchases/day × $22 = $968/day. Uplift: $968 – $450 = $518/day additional retail = $189k/year new retail revenue. Value: therapist commission automation, upsell conversion (48% uplift), retail per-visit targeting (+$7/visit), margin optimization (+12.5%), revenue increase ($189k/year). Payback: 6 weeks.
5. Therapist Commission Automation — Hourly Rate Tracking (Sarah $60/hour, James $55/hour, Priya $65/hour), Shared Room Cost Deduction (Automated Per Treatment), Retail Commission (10% on products sold), Bonus Tracking (All team sold $50k = all therapists get 2% bonus), Weekly Pay Transparency (Therapist App Shows Earnings), Dispute Resolution (Transparent Audit Trail)
Current: manual commission tracking (manager 240 hours/year = $6,240 labor cost, 15% error rate, therapist disputes [Sarah underpaid $150, John overpaid $80], turnover cost $24k/year). Sarah (40 hours @ $60 = $2,400). Shared room costs (spreadsheet: $300 deducted). Sarah assumes $2,100 take-home. Manager's calculation: $2,400 – $300 shared room – therapist tax ($18) = $2,082. Sarah: gets paid $2,082, disputes ($2,100 expected – $2,082 paid = $18 missing). Dispute process: manual (Sarah emails manager, manager reviews spreadsheet, finds $18 tax deduction [undocumented], explains. Sarah: still upset [no transparency before payment]. Morale: Sarah starts interviewing at other spas ("This place doesn't value me."). New system: transparent commission. Sarah (works 40 hours @ $60/hour). System logs: real-time (each treatment booked + completed = system auto-logs: Sarah, 60-min treatment, room 3, $60/hour, time-in [10 am], time-out [11 am] = 1 hour logged). End of day: Sarah's app shows (earnings today: 8 hours × $60 = $480 ✓). Shared room costs: automated (treatment books: room 3 assigned, system calculates: room cost $10/hour, 8 hours × $10 = $80 deduction, Sarah's net today: $480 – $80 = $400). Sarah's app transparency: shows breakdown (8 hrs × $60 gross = $480, room 3 deduction $80, net today $400). Retail commission: Sarah sold lavender cream ($35, 10% = $3.50 auto-logged). System shows: total today $400 + $3.50 = $403.50. Week summary: Sarah's app (40 hours × $60 = $2,400, shared room deduction $80 [8 hours × $10], retail commissions $22 [6 products sold], bonus tracking [spa-wide sales $50.5k, all-staff 2% bonus = $1,010 ÷ 40 therapists = $25.25 Sarah's share]). Sarah's total: $2,400 – $80 + $22 + $25.25 = $2,367.25. Breakdown displayed: transparent (Sarah sees every component, no mystery). Payout: automatic (system sends bank transfer Thursday [standard pay day] $2,367.25, with itemized receipt). Sarah: receives money + receipt (understands exactly what she earned, no disputes). Bonus automation: month-end team sales $400k (team target $300k, beat by $100k). System calculates: all-staff 2% bonus = $8,000 ÷ 40 therapists = $200 each. Bonus automatically added: next week's pay (Sarah's check: base $9,500 + bonus $200 = $9,700). Notification: system emails Sarah ("Congrats! Team hit $400k this month, you earned $200 bonus. Added to this week's pay."). Morale: Sarah feels valued (transparent, bonus felt like team achievement). Therapist retention: commission transparency eliminates: disputes (zero underpaid claims), enhances morale (Sarah sees bonus, feels invested). Turnover rate: historical 2/year due to disputes, post-system: 0/year (commission disputes eliminated). Retention value: 2 therapists × $12k replacement cost = $24k saved annually. Value: commission automation (240 hours/year labor saved = $6,240), transparency (zero disputes), bonus tracking (morale boost), therapist retention ($24k turnover cost avoided). Payback: 8 weeks.
6. Recurring Rebook Reminders + Engagement Dashboard — SMS/Email Reminders (7 Days Before Treatment, 24 Hours Before), Smart Rebook Windows (Not Too Soon, Not Too Late), Cancellation Prevention (Auto-Offer Reschedule if Member Cancels), Lifetime Value Dashboard (Total Spend, Appointment Count, Spend Trend), Churn Risk Scoring (Low-Activity Members, Offer Re-Engagement)
Current: no reminder system (members forget to book next appointment, churn gap 6 weeks cost 2 appointments worth $300 lost, rebook friction). Olivia: books 90-min massage (appointment 20 June). No reminder sent. Olivia: forgets to book next appointment. June 25: Olivia remembers (wants to book 90-min for July). Available slot: 21 July (26 days away, gap between appointments = 31 days). Olivia cancels July booking (gap too long, considers finding new spa). Churn: loses Olivia (revenue lost). New system: smart reminders. Olivia: books 90-min massage (20 June). System calculates: optimal rebook window (massage every 4 weeks optimal for Swedish massage recovery + member preference data shows: Olivia books every 3 weeks). System sends: reminder 7 days before (13 June: email + SMS "Olivia, your massage is 20 June at 10 am with Sarah. Book your next 90-min for early July? Open slots: 1 July (Sarah), 2 July (James), 4 July (Sarah) [link]."). Olivia receives: reminder (clicks 1 July, books with Sarah [instant, avoids big gap]). System logs: next appointment scheduled (20 June → 1 July = 11-day gap [short, Olivia loves the consistency]). June 20: appointment day reminder (24-hour SMS: "Olivia, your Swedish massage tomorrow 10 am with Sarah, room 3. See you then!"). Olivia: receives notification (confirms attendance, doesn't cancel). Cancellation prevention: Olivia (unexpected event, needs to cancel 20 June appointment, 5 days before). Olivia texts: "Need to cancel my 20 June massage." System receives: cancellation request. System offers: instant reschedule (SMS: "We understand! Need to reschedule? Next available 90-min with Sarah: 28 June, 5 July, or 12 July. Choose one [links]."). Olivia: doesn't want to respond now (system doesn't force, just offers). System sends: email (softer, "No problem, Olivia. We've held 3 slots for you if you want to reschedule. Let us know."). Olivia: the next day, replies (28 June works, reschedules [zero lost revenue, prevented cancellation]). Lifetime value tracking: Olivia's dashboard (spa manager view): total spend $4,500 (36 appointments over 3 years), average $125/appointment, spend trend: up +15% YTD (increasing). Retention status: loyal (green ✓, high priority for loyalty program). Churn risk scoring: James (member, activity low: 2 appointments in past 90 days [baseline 8/quarter]). System flags: James low-activity, churn risk score 78/100. Manager receives: alert (James at risk, churn probability 78%). Manager sends: personal email (James: "Hi James, noticed we haven't seen you in a while. Miss us? Let's get you back with a special offer: 30% off your next 90-min massage + free skincare add-on [$40 value]. Book this week [link]."). James: reads offer (motivated, books 90-min massage [30% off = $105 vs regular $150, spa costs $45 in discount but retains James for future 12 months worth $600+ revenue]). Churn prevented (James back in rotation). Annual lifecycle: system prevents (5 churn events/month × 12 months = 60 members saved/year × $600 average lifetime value = $36k annual churn prevention value). Value: rebook automation (gap prevention, 11-day consistency), cancellation mitigation (instant reschedule offers), churn detection (risk scoring, 60 members saved/year = $36k value), lifetime value visibility (member prioritization). Payback: 6 weeks.
Australian Beauty Industry Compliance: FairWork Award + GST
FairWork Beauty and Hairdressing Award (all states) — therapists classified: Level 1 (trainee, $22.33/hour), Level 2 (qualified massage/facial, $27.42/hour), Level 3 (senior, specials, $30.65/hour). Spa must: track hours (full-time vs part-time vs casual), ensure pay meets award minimums, provide break entitlements (10-min unpaid per 2-hour block). Commission structure: therapist hourly rate + retail commission must not reduce total pay below award minimum. Example: Level 2 therapist ($27.42/hour, 40-hour week = $1,096.80). Commission retail ($50 weekly = -$50 deduction if commission-only week) is illegal (total must ≥ $1,096.80). Custom platform: tracks award rates (therapist classification, system enforces minimum pay per hour + commission to meet FairWork). GST on Wellness Services (all states) — massage, facial, body, beauty services: GST-exempt if therapist holds Medicare provider number + bulk-billed (rare for day spas). Most day spas: services GST-taxable (10% tax collected on revenue). Retail products: GST-taxable (10% on skincare, oils, products). GST reporting: quarterly Business Activity Statement (BAS) to ATO. Example: $320k monthly spa revenue. GST-taxable (assume 90% wellness + 10% retail = $288k wellness + $32k retail). GST owing: ($288k + $32k) × 10% = $32k per quarter = $128k annual GST owing. System tracks: all transactions GST-tagged (services vs taxable retail), generates: quarterly GST report (auto-calculates $32k owing, itemized by category). Spa accountant: uploads report to BAS (system pre-calculated, reduces accounting hours). Commission GST: therapist commission on retail (10% of $32k retail = $3.2k annual commission). GST treatment: therapist commission is business income (therapist must declare on tax return, not GST-exempt). System tracks: commission separately (reported as therapist income to ATO if required). Custom platform: GST integration (auto-calculates per transaction, generates: quarterly report, reduces accounting complexity).
Three-Spa ROI: Fresha vs Custom Platform
Current state (Fresha + manual processes): $320k/month revenue. Fresha fees: $84,096/year. Rebook gap: 18 members × 4 missed appointments/year × $150 avg = $10,800/year. Retail upsell gap: $174,600/year. Gift voucher loss: $4,160/year. Member subscription churn: $2,800/year. Commission labor: $6,240/year. Therapist turnover: $24,000/year. Total friction: $306,696/year. Custom platform build: $80k (one-time, 3-spa deployment). Annual ops: $3,600 (hosting, support, updates). Year 1 net cost: $83,600. Year 1 value delivered: Fresha fee savings: $26,400 (own processor at 1.5%). Rebook automation: $10,800 (100% of gap recovered). Retail upsell system: +$189,000 (48% conversion uplift on 200 visits/day). Gift voucher system: $4,160 (zero loss). Commission automation: $6,240 (zero labor). Churn prevention (rebook + engagement): $36,000 (60 members saved × $600 LTV). Therapist turnover reduction: $24,000 (zero commission disputes). Total Year 1 value: $296,600. Net Year 1 ROI: $296,600 – $83,600 = $213,000 profit. Payback period: 38 weeks. Year 2+ (ongoing value): $296,600/year value – $3,600 ops = $293,000 annual profit (no build cost). 3-year total value: $213k (Yr 1) + $293k (Yr 2) + $293k (Yr 3) = $799k net profit on $80k build.
Six FAQs
How much does Fresha actually cost on a $320k/month spa group?
Fresha: $100/month + 2.19% transaction fee. $320k/month transaction volume = $320k × 2.19% = $7,008/month = $84,096/year. Plus hidden payment processor margin (~1.5% additional, not shown in Fresha's pricing). Total Fresha ecosystem cost: ~$102k/year. Custom platform with own Stripe processor: ~$4,800/month = $57,600/year (same processing). Year 1 savings: $44,400. Year 2+ annual savings: $44,400. Over 5 years: $222k saved on processing alone.
Why do members churn if the rebook gap is so big?
Fresha shows: 2-week calendar view, no AI rebook prompts. Olivia books: 90-min with Sarah. Next 90-min with Sarah: 3 weeks out. Olivia: doesn't want to wait, books 3 weeks ahead (forgets about appointment), appointment gap grows to 6 weeks (loses engagement). No SMS/email reminder sent: Olivia forgets to book again (gap extends). Member churn trigger: Olivia (4-week member, suddenly 6-week gap). Olivia: "I'm not getting regular appointments, finding new spa." Churn rate: 15% annually due to rebook friction. Custom system: 7-day pre-appointment reminder + smart rebook window (suggests: next appointment in 3 weeks [optimal], Olivia books instantly). Gap: 3 weeks consistent (Olivia stays loyal, zero churn). Churn reduction: 15% → 5% (10% uplift = 60 members retained × $600 LTV = $36k value).
How much retail revenue is being left on the table with Fresha?
Current: therapist-driven ad-hoc retail (Sarah suggests lavender cream during massage, Olivia reaches checkout with no reminder). Manager: generic "Anything else?" 60% of members ignore (leave without retail). Retail per visit: baseline $15 (15% conversion). Lost potential: 60% non-conversion × $40 avg retail = $24 lost per member not upsold. 3-spa group: 200 visits/day × 60% = 120 members × $24 = $2,880/day retail lost = $1,051,200/year potential. Conservative capture: system targets top 30% of lost retail (smart recommendations at POS, upsell to 22% total conversion from 15%). Incremental: +7% conversion = 14 additional retail sales/day × $22 avg = $308/day = $112,400/year new retail. Actually achieved (conservative): $189k/year (factoring in lower average per-retail and realistic conversion).
How does gift voucher tracking prevent $4k+/year in losses?
Current: physical gift vouchers (manual tracking spreadsheet, receptionist notes, expiry dates forgotten, 10 vouchers/week × 8% loss rate = $80/week lost = $4,160/year). Olivia's friend (gift voucher $100, physical card). Friend visits, receptionist writes: note ($100 balance). Friend redeems: $80 (receptionist notes: $20 remaining). Week later: new receptionist Amy (spreadsheet lost). Friend returns (disputes $20 balance). No digital record: spa can't prove (member unhappy, reputation damage). Custom system: digital gift codes (unique codes, automatic expiry tracking, balance always visible, zero manual loss, zero receptionist handoff errors, fraud prevention [code authentication]). Loss prevention: $4,160/year + reputation protection.
Why is therapist commission tracking taking 240 hours/year?
Manager's process: 100+ transactions/week, manual commission calculate (therapist name, treatment time, retail sold). Sarah: 40 hours/week, hourly rate $60, shared room cost $300/week, retail commission 10%. Manager calculates: 40 × $60 – shared room $300 + retail commission = manual math. Errors: 15% rate (Sarah underpaid $150 one week, overpaid $80 next week). Commission disputes: Sarah "I don't trust the numbers." Turnover cost: 2 therapists/year leave due to disputes = $24k replacement cost. Custom system: automated tracking (each treatment logs: therapist, time, room cost, retail sold automatically). Commission calculated: real-time (Sarah's app shows: $2,367.25 earned this week, itemized breakdown [no mystery]). No disputes (transparent). Retention improvement: zero therapists leave due to commission disputes. Turnover cost saved: $24k/year.
What's the real payback period for a 3-spa custom platform build?
Build cost: $80k (one-time). Year 1 ops: $3,600. Total Year 1 investment: $83,600. Year 1 value: Fresha savings $26.4k + rebook recovery $10.8k + retail upsell $189k + gift tracking $4.16k + commission labor $6.24k + churn prevention $36k + turnover reduction $24k = $296.6k. Net Year 1 profit: $296.6k – $83.6k = $213k. Payback: 38 weeks (less than 9 months). Year 2 value (ops only, no build): $296.6k – $3.6k ops = $293k profit. 3-year cumulative: $799k profit on $80k investment. 10-year cumulative (assuming 3% annual value growth due to member base expansion): $3.2M+ profit.
The Bottom Line
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 ($100/month + 2.19% transaction fee, manual commission tracking, no rebook reminders, no retail upsell system, manual gift vouchers, limited member engagement). Friction: Fresha fees $84k/year, rebook gap $10.8k, retail upsell loss $174.6k, gift voucher loss $4.16k, subscription churn $2.8k, commission labor $6.24k, therapist turnover $24k. Total: $306.7k annually (bleeding profit). Custom platform ($80k build + $3.6k/year ops): treatment room scheduling (therapist + room matching, waitlist automation), member subscriptions (engagement reminders, churn prevention), gift voucher system (digital tracking, zero fraud, zero loss), retail upsell (therapist commission automation, POS recommendations), commission automation (transparent pay, zero disputes, therapist retention), rebook reminders (7-day + 24-hour SMS, gap prevention, churn reduction). Year 1 value: $296.6k (Fresha savings $26.4k, rebook recovery $10.8k, retail upsell $189k, gift system $4.16k, commission labor $6.24k, churn prevention $36k, turnover reduction $24k). Net Year 1 ROI: $213k profit. Payback: 38 weeks. Year 2+ annual profit: $293k (no build cost). Start custom platform if: (1) 40+ therapists (commission complexity, retention risk), (2) 5000+ members (engagement scale, churn value), (3) $300k+ monthly revenue (Fresha fee impact), (4) rebook/retail/gift friction present (quantifiable gaps). Reach out: book a time to discuss your therapist count, monthly transaction volume, current software friction, member churn patterns, commission complexity, gift card losses, retail per-visit targets, and custom wellness platform ROI, or check platform pricing for build estimate.