Skip to content

Salon Operations

Beauty & Hair Salon Software — Why Custom Beats Fresha & Timely at Multi-Location Scale

All articles
💇 💰

Fresha/Timely: 2.19% Transaction Fee or $25–130/Seat/Month. A 4-Salon Chain at $1.2M Revenue = $26K/Year. Custom System Owns Bookings + Walk-In Queue + Retail POS + Tax + Rosters + Commissions + Loyalty. Forever.

A beauty and hair salon with two stylists doing $300k annual turnover on Fresha pays 2.19% per booking ($6.57 on a $300 service). Monthly: ~$550 in transaction fees. Annual: $6,600. Add a second salon: two stylists each, $300k each = $13,200/year in Fresha fees alone. Four salons (the point where custom software becomes mandatory) at $300k each = $1.2M annual revenue = $26,280 in Fresha transaction fees. Timely is a flat-rate alternative: $25–80/seat/month per location. Four salons with 2 stylists each = 8 seats = $2,400–7,680/year (if you're paying the per-seat model). Add staff scheduling ($200–300/mo per location = $9,600–14,400/yr), retail POS if you're selling shampoo/product ($500–1,200/mo = $6,000–14,400/yr), and loyalty/rewards (usually $150–300/mo = $1,800–3,600/yr). A typical 4-salon operator spends $26–45k annually on software. Each salon manager logs into Fresha for bookings, a separate rostering tool for staff schedules, a different POS for retail sales, and a fragmented loyalty app. Booking data lives in Fresha, commission calculations are done in a spreadsheet, retail inventory isn't connected to the booking calendar. Custom salon software — online/walk-in booking unified queue, staff rostering with availability sync to calendar, retail POS with GST tax rules, commission tracking (percentage of service + percentage of retail), loyalty points auto-issued per booking or spend, and multi-location dashboard — costs $55–75k upfront. You own it forever. Payback: 18–24 months. Year three onwards: you're saving $26–45k annually, and your data is centralised, commission calculations are auditable, and you're not bleeding to per-transaction fees as revenue grows.

Why Fresha and Timely Drain Multi-Salon Margin

Fresha's transaction fee model is deceptively simple: 2.19% per booking. On a $300 haircut service: $6.57 fee (centre pays Fresha, not client). A busy salon with 4 stylists doing 80 bookings/week = 4,160 bookings/year. If average service is $250: $1.04M revenue. Fresha takes: $22,786 annually. Add retail (hair products, colour products, treatments): if retail is 15% of salon revenue ($156k), Fresha charges 2.19% on retail too ($3,419). Total Fresha bill for one busy salon: $26,205/year. Two salons: $52,410. Timely flips the model: $35–80/seat/month (per stylist, per location). Four stylists in one salon = $140–320/mo. Four salons with 4 stylists each = 16 seats = $6,720–61,440/year (pricing varies wildly by region). Timely doesn't charge per-transaction, but you're paying whether the salon is busy or slow. A slow salon (2 stylists, $150k annual revenue) pays $600–1,920/year in per-seat fees but only does $150k in revenue — you're paying 0.4–1.3% of revenue just for bookings. Fresha would cost only $3,285 (2.19% of $150k). At slow-salon revenue, Fresha is cheaper. At $1M+ revenue, custom becomes the only rational choice because you're losing 2.19% of every dollar to transaction fees.

Real cost for a 4-salon operator (4 stylists per salon, $1.2M annual revenue):

  • Fresha (2.19% of $1.2M revenue): $26,280/yr
  • Timely (if switching from Fresha): $6,720–19,200/yr (16 seats × $35–100/mo)
  • Staff scheduling (Deputy, Zenario, or manual): $2,400–4,800/yr per location = $9,600–19,200/yr (4 locations)
  • Retail POS (Square, Lightspeed, Toast): $500–1,200/mo per location = $24,000–57,600/yr (4 locations)
  • Loyalty & rewards (Smile.io, Stamped): $150–300/mo = $1,800–3,600/yr
  • Client communication (SMS reminders): $200–400/mo = $2,400–4,800/yr
  • Commission tracking & payroll integration: $400–800/mo = $4,800–9,600/yr
  • Inventory management (if separate from POS): $100–300/mo = $1,200–3,600/yr
  • Total: ~$50,480–118,480/year

Custom salon software: $60–75k build (one-time), run forever. Four salon managers log into one dashboard. Head office sees live revenue: "Salon 1 did $310k YTD (bookings $245k, retail $65k). Salon 3 did $280k (trend down 12% from last quarter)." Daily operations: client books online for 2pm haircut with Sarah ($80 service). System auto-calculates: $80 to salon, $17.60 to Sarah (22% commission), $0 to Fresha (because you own the software). Retail: client buys $45 shampoo. System logs: $45 to retail, $9 to Sarah (20% of retail), 10% GST ($4.50) auto-calculated and reported. Walk-in queue: client walks in 1:50pm (no online availability). Staff app shows: Sarah is available at 2:15pm, queue is 2 clients. Client is added to walk-in queue, SMS sent: "You're 3rd in queue. Est. wait: 25 min." Staff rosters: Monday Sarah works 10am–6pm, Tuesday Sarah works 10am–2pm (she's part-time). System auto-calculates her hours (30 hrs/week), checks against award rates (QLD hairdressing award = $25.50/hr base, penalty rates on Sunday). Friday payroll: system calculates Sarah's pay ($765 for 30 hours + no penalties this week). Salon owner approves, auto-pays via Xero payroll integration. Loyalty: client receives 1 point per $1 spent (via booking or retail). After 100 points ($100 spend), system auto-issues $10 loyalty credit. Client app shows: "You have 47 points. 53 points = $10 off next visit." Year one: $60k build + $600/yr hosting. Year two: $600/yr. Four salons break even at month 18–20. Year three: $26–45k in software savings (no more Fresha fees, no per-seat Timely fees, no fragmented POS costs). At $1.5M revenue, custom costs stay at $600/yr; Fresha would cost $32,850/yr. You save $32,250 per year at scale.

What Custom Replaces: Six Core Modules

1. Online & Walk-In Booking — Unified Queue

Client visits website, books 2pm "Cut & Colour" with Sarah on Wednesday. System checks Sarah's availability: she has 1:30pm (colour takes 2 hours, finishes 3:30pm), next available is 3:45pm. Client books 3:45pm, receives SMS + email confirmation. At 3:30pm, walk-in client arrives. System shows queue: Sarah will be free at 3:45pm, but Tom is free now. Walk-in is offered: "Tom is free now, Sarah at 3:45pm." Walk-in takes Tom, system logs both appointments. Online client receives reminder at 3:30pm: "Your appointment is 15 min away. Tap to check in." System flags if client doesn't check in (no-show tracking). Fresha and Timely do online bookings but not walk-in queue integration; you're managing walk-ins manually or with a separate notebook. Custom systems unify online + walk-in in one queue, preventing double-booking and overbooking.

2. Retail POS with GST Tax

Sarah finishes client's haircut at 5:15pm. Client buys: $45 shampoo, $35 treatment, $25 styling mousse = $105. System calculates: $105 ÷ 1.1 = $95.45 base, $9.55 GST (rounded). Salon records sale, system updates inventory (shampoo: 48 → 47 units). Retail sale is linked to the appointment ("added to appointment on 2026-06-13 by Sarah"). Commission logic: shampoo and treatment are salon-margin products (20% of gross to stylist), mousse is stylist-supply (stylist bought 100 units at wholesale, retails for $25, stylist margin is 40%). System applies rules per product. Sarah's commission: ($95.45 base × 20%) + (mousse margin based on cost) = auto-calculated, no spreadsheet. End of day: salon owner sees "Wednesday $1,245 revenue (bookings $980, retail $265). Stylist commissions: $310.50." GST: $213.64 (10% of $2,136.40 total revenue for the day, across salon). End of quarter: BAS (Business Activity Statement) report: GST collected $2,748, GST paid on supplies $890, net GST owing $1,858. Fresha and most POS systems don't do GST natively in Australia; you're running a separate calculator or doing it manually in an accountant's software. Custom systems embed Australian GST rules into the transaction flow.

3. Staff Rosters with Award Rates

Manager schedules weekly. Monday: Sarah 10am–2pm (part-time), Tom 10am–6pm (full-time). Tuesday: Sarah off, Tom 10am–6pm, Priya 12pm–5pm (casual). System shows: Sarah's YTD hours are 28/week (below 30 threshold), Tom is 40/week (full-time), Priya is 16/week (casual). QLD hairdressing award rates: full-time $25.50/hr base, part-time $26.00/hr (slight penalty), casual 25% loading ($31.88/hr). System auto-calculates weekly payroll: Sarah (4 hrs Mon × $26 = $104), Tom (8 hrs/day × 5 = 40 hrs × $25.50 = $1,020), Priya (5 hrs × $31.88 = $159.40). Manager reviews Friday, submits to Xero. Payroll processes Monday. System tracks: Tom has worked 40 hrs/week for 12 weeks (eligible for 4 weeks annual leave = $1,020 accrual). Staff app shows personal dashboard: "You're at 28 hours YTD. You're on track for $15k salary this year." Fresha and Timely don't do payroll; you're using Deputy or a separate payroll app. Custom systems integrate rostering + award rate logic + payroll into one flow, eliminating dual-entry and calculation errors.

4. Commission Tracking & Multi-Tier Rules

Sarah's contract: 22% of service revenue (haircut, colour, treatments), 20% of retail (products she sells), 10% facility fee (salon rent allocation). Tom's contract (senior stylist): 28% of service, 22% of retail, no facility fee (Tom negotiated out). Priya (casual): 18% of service, 18% of retail, $5/hour facility contribution. Each week system calculates: Sarah did $1,200 services (Sarah commission $264), retail $300 (Sarah commission $60), facility = $1,200 × 2% = $24. Sarah total: $348. Tom did $1,600 (commission $448), retail $200 (commission $44), no facility. Tom total: $492. Priya did $500 (commission $90), retail $100 (commission $18), facility = $5/hr × 20 hrs = $100. Priya total: $8 (commission math: $90 + $18 - $100 facility = $8). System logs each transaction to the stylist (no mystery about how commission is calculated). Monthly commission report: Sarah earned $1,392 across 4 weeks. Tom earned $1,968. Priya earned $32. If Sarah disputes a commission, system shows exact appointments and retail sales that month. Fresha and Timely don't do commission tracking; most salons use a spreadsheet or Honeybook. Custom systems embed tiered commission rules per stylist, eliminating payroll disputes.

5. Client Loyalty & Repeat Booking

Client books first appointment: $80 haircut with Sarah. System auto-creates loyalty account, issues 80 loyalty points (1 point per $1 AUD). Client app shows: "You have 80 points. 100 points = $10 off next appointment." Client returns 3 weeks later, books second appointment: $120 colour service. System issues 120 points, deducts previous balance (80 → 200 points). Client's third appointment: client has $200 points = two $10 credits available. System applies 1 credit ($10 off $300 service = $290 charge). Loyalty points are tracked per-client, per-salon (not per-stylist, so client loyalty transfers across staff changes). Quarterly report: "Top 10 clients by lifetime spend. Top 5 clients: $8,400 lifetime revenue. Loyalty redeemed this quarter: $1,260 (represent 1.8% of salon revenue)." Email trigger: "You haven't booked in 8 weeks. Here's $15 off your next cut." System auto-sends to lapsed clients, driving re-engagement. Fresha has basic loyalty but it's a paid add-on; Timely doesn't have it natively. Custom systems embed loyalty as a core retention engine, not an upsell.

6. Multi-Location Dashboard & Head Office Reporting

Regional owner oversees 4 salons. Opens dashboard: Salon 1 (CBD, $310k YTD revenue, 6 stylists), Salon 2 (North, $280k YTD, down 12% vs last year, 4 stylists), Salon 3 (South, $295k YTD, 5 stylists), Salon 4 (West, $315k YTD, 6 stylists). Total: $1.2M YTD. Owner sees: Salon 2 is trending down. Clicks Salon 2: last 3 months revenue $68k, $72k, $65k (declining). Drill into stylists: Priya (star stylist) left 2 months ago, revenue dipped. System flags: "Priya's clients haven't re-booked since departure (15 clients at risk of churn)." Email blast sent to those clients: "Priya has moved. Try our new stylist Tom — he's trained in balayage and specialises in colour correction." 3 of 15 re-book with Tom. System logs: "Re-engagement: +$900 revenue from Priya churn recovery." Payroll report: across 4 salons, $310k paid to stylists YTD (average 25.8% commission rate). GST report: $130k GST collected, $45k GST paid on supplies, $85k net GST owing (ready for BAS). Walk-in queue analytics: Salon 1 walk-ins represent 18% of revenue (strong foot traffic), Salon 4 only 8% (mostly online bookings). System suggests: "Salon 4 should invest in street signage or Google Local Services Ads to drive walk-in traffic." Fresha and Timely don't provide multi-location reporting; you're exporting data from each salon and consolidating in a spreadsheet or BI tool. Custom systems unify all 4 salons in one dashboard with actionable insights.

The ROI Math: 4-Salon Operator ($1.2M Annual Revenue)

Item Year 1 Year 2+
Custom build (one-time) $65,000 $0
Hosting (Netlify + Postgres) $600 $600
Maintenance & updates (3 hrs/mo) $3,600 $3,600
Total Custom ~$69,200 ~$4,200
Fresha/Timely + tools (est.) $50,480–118,480 $50,480–118,480
Annual Savings (Year 2+) Loss: $0–49,280 Gain: $46,280–114,280

Year one shows a net loss (custom build upfront), but by month 18 payback is reached. Year two, you're $46–114k ahead. Year three: the gap widens exponentially. At this ROI, custom software scales dramatically when you add a fifth salon (Fresha costs jump to $32.8k/yr, custom stays at $4.2k/yr) or when revenue grows to $1.5M (Fresha = $32,850, custom = $4,200). A regional owner with growth ambitions can't afford to stay on Fresha.

Australian Salon Specifics

GST is mandatory on all salon services (haircuts, colour, treatments, retail) — it's built into the price for clients, but the salon owner collects it and pays it quarterly via BAS. Custom systems auto-calculate GST per transaction (10% of service price, inclusive of any discounts). Hair & Beauty Workers Award (Fair Work) sets minimum rates per state: NSW $25.50/hr (base), QLD $25.50/hr, VIC $25.50/hr (same across states, but penalty rates vary). Casual stylists get 25% loading (~$31.88/hr). Full-time staff accrue annual leave (4 weeks), personal leave (10 days), long-service leave. Commission contracts are common in salons and vary widely (18–28% of revenue depending on seniority and stylist negotiation). Custom systems need to enforce commission rules per stylist, track award rate compliance, and auto-calculate accrued leave. Payroll integration with Xero or MYOB is critical (most salon owners use one of these for tax/BAS). Custom systems export payroll data directly to Xero, eliminating manual entry. GST reporting for BAS is annual (1 January – 31 December) or quarterly (by choice); custom systems track GST collected and GST paid on supplies, generating BAS-ready reports monthly. Fresha and Timely don't have Australian payroll, award rate, or GST logic; you're handling those externally. Custom systems embed Australia-specific compliance natively.

Six FAQs

What if our revenue grows from $1.2M to $2M — do custom software costs scale?

No. Custom system costs are fixed: hosting is $600/yr (bandwidth scales cheaply), maintenance is ~3 hrs/mo ($3,600/yr). Fresha costs scale to 2.19% of $2M = $43,800/yr. Custom system saves you $39,600 more per year at $2M revenue than at $1.2M. This is why custom is mandatory at high revenue.

Can we switch from Fresha to custom without losing our booking history?

Yes. Fresha exports appointment data (client name, date/time, service, price, stylist, notes) as CSV. Custom system imports that history in hours — all 1,000+ historical bookings are restored. No data loss, no re-entry. Client loyalty points and transaction history can be migrated too, though loyalty points reset to $0 (new system, fresh start) and you can issue a one-time credit to maintain goodwill.

What if we hire a new stylist with different commission rates?

Manager adds stylist to system: name, hourly rate, commission tiers (e.g., 20% of service, 18% of retail, $5/hr facility fee). System applies those rules to all future bookings. Existing stylist rules unchanged. System calculates payroll correctly per stylist. No spreadsheet juggling.

How do we handle cancellations and no-shows — do clients lose loyalty points?

Customizable rules: by default, if client cancels 24+ hrs in advance, no penalty (points issued on booking, points retained if cancelled). If client no-shows, points aren't issued. If client cancels within 24 hrs, you can charge a cancellation fee (deducted from their next loyalty credit) or retain the points they earned. Rules are set per salon (Salon 1 strict, Salon 2 lenient). System sends reminder SMS at 24 hrs and 2 hrs before appointment (reduces no-shows by ~30%).

Can we handle appointment deposits or partial pre-payment?

Yes. Appointment can require deposit at booking (e.g., $30 deposit for $150 colour service). System collects via Stripe/Square, holds deposit, and applies it to the final invoice. If client cancels, deposit is refunded or converted to store credit (configurable). System tracks: "Colour services: $2,000 bookings, $1,800 completed (deposits applied), $200 cancelled (refunded)."

Who maintains the app — updates, bugs, new features?

Maintenance contract covers security patching, OS updates, dependency upgrades (React, Node.js, Postgres), Stripe/payment processor integration changes, and 3–4 feature requests per year (new loyalty tier, SMS templating, etc.). Bugs fixed within 2 business days. SLA is 99.7% uptime (better than Fresha, which is 99.5%). In-house developers can own the codebase and negotiate lower hours (e.g., 2 hrs/mo = $2,400/yr). Most salon chains prefer managed support.

The Bottom Line

Fresha and Timely are the default because they're low-friction for single salons. But a 4-salon chain bleeding $26k/year to Fresha transaction fees (or $50–100k to fragmented tools) doesn't need SaaS licensing scaling with revenue. It needs one booking system (online + walk-in), retail POS with GST, staff rosters with award-rate compliance, commission tracking per stylist, loyalty that drives repeat bookings, and a multi-salon dashboard. Custom app costs $65k upfront and $4,200/year to run. Fresha/Timely costs $50–118k/year, forever. Year two, your custom system is $46–114k ahead. Year five, you've saved $200–450k+ and own your data, your client records, your commission calculations, and your compliance audits. No transaction fees bleeding margin. No per-seat fees. No fragmented dashboards. You control the app. You control the client experience. You control the economics.

Ready to build a salon platform that scales with your locations? Check Aidxn's custom software packages, or book a call to map your salon count, current pain points, stylist commission structures, and multi-location ROI timeline.

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.