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.**