Solo beauty booking systems compared: Booksy, Fresha, Square Appointments, Acuity Scheduling, and ChairHold
Most booking-system comparisons are feature tables. This one is an operational review built around one scenario: a client taps the link in your IG bio, books an appointment, and pays a deposit. Which systems make that scenario work without routing the client through a marketplace, without taking payment into a platform wallet instead of your own Stripe, and without a subscription that costs more than the problem it solves? That scenario separates the field faster than any feature count.
Why these five systems
These are the five systems a solo beauty pro in 2026 actually evaluates. Booksy holds the largest market share among solo stylists, colorists, and barbers. Fresha over-indexes in lash, brow, makeup, and PMU. Square Appointments has grown from 11% share in 2023 to roughly 14% in 2026, driven by its free tier and its positioning as a full POS stack. Acuity Scheduling is the most common choice among PMU artists and mobile groomers who prioritize booking configuration flexibility. ChairHold is the purpose-built one: a single deposit link for the IG bio, mandatory deposit on every booking, direct Stripe payout.
Each system was designed with a different primary use case. Booksy and Fresha were designed for marketplace discovery — they make money when clients find you through their platform. Square was designed for the POS hardware stack — the booking layer sits on top of Square Terminal. Acuity was designed for calendar flexibility — its primary market is multi-service businesses that need fine-grained scheduling rules. ChairHold was designed for the deposit-at-booking scenario for IG-native solo pros. The design origin shows up in every operational detail.
The deposit-from-IG-bio test
Here is the single most revealing test you can run before choosing a system: send yourself through the booking flow from your IG bio link. Specifically, observe four things. (1) Does the client have to create an account on the platform's marketplace? (2) Does the deposit land in your own Stripe account or in a platform wallet? (3) Does the client see your cancellation policy before entering a card number? (4) How many taps does it take from IG bio link to deposit confirmation?
The answers reveal the architecture of each system more clearly than any pricing page.
Booksy
A client who taps your Booksy link from your IG bio lands on a Booksy marketplace page. To book, they need a Booksy account — create an account or log in. Once booked, the deposit is collected into Booksy's payment system (Booksy Pay), not into your Stripe. The payout to you happens on Booksy's settlement schedule, not Stripe's.
The marketplace account requirement is not an accident — it is the mechanism Booksy uses to build its client network. Once a client has a Booksy account and has booked you through Booksy, they can also discover other Booksy providers. That is valuable when you want marketplace discovery. It is a structural friction point when you already have the client and just want them to pay a deposit at booking.
Fresha
The Fresha flow is structurally similar to Booksy's. A client who taps your Fresha booking link lands in Fresha's booking interface, creates or logs into a Fresha account, and books. Payment is processed through Fresha's gateway at 3.5% + 20¢ per transaction — a 60-basis-point markup over Stripe's standard 2.9% + 30¢. The deposit lands in Fresha, not in your Stripe.
Fresha markets itself as "free" because there is no monthly subscription fee. The revenue model is Smart Pricing: a 20% commission on new clients who find you through the Fresha marketplace. At $50k/yr with 10% of revenue coming through Fresha-sourced clients, that is $1,000/yr in commissions alone, before processing fees. See the full five-layer cost breakdown in the true annual cost section below.
Square Appointments
Square's booking flow is cleaner than Booksy's or Fresha's for the IG-bio scenario. A client who taps your Square booking link lands on a dedicated booking page, selects a service, picks a time, and pays a deposit — no marketplace account required. The friction is lower.
The trade-off is payment-stack lock-in. Square's deposit feature ("Prepayments") routes payment through Square's processing system — 2.9% + 30¢ for online transactions. The deposit lands in your Square balance. If you ever want to switch away from Square, the payment history stays in Square, not in Stripe. If you are already using Square Terminal for in-chair transactions, that may not matter — the Square ecosystem is already your stack. If you want deposits in Stripe specifically, Square cannot do it.
Acuity Scheduling
Acuity's booking flow requires more setup work but provides more configuration flexibility than any other system in this comparison. A client taps your Acuity scheduling link, selects a service and appointment type, picks a time from your Acuity calendar, and pays a deposit via your connected Stripe or Square account. No marketplace account required. Deposit goes directly to your BYO payment processor.
The deposit feature lives in the Powerhouse tier ($20/mo). The $16/mo Emerging tier does not include deposits. If deposits are the reason you are evaluating Acuity, the comparison price is $20/mo, not $16/mo. Configuration includes appointment type setup, deposit amount per service type, reminder timing, intake forms, and scheduling rules — this is also where the setup complexity lives. Acuity can do more than the other systems in this comparison, and it takes longer to configure correctly.
ChairHold
The ChairHold flow is purpose-built for the IG-bio scenario. The client taps one link, lands directly in Stripe Checkout, sees your service description and cancellation policy displayed on the checkout page before entering a card number, and pays the deposit. The deposit lands in your Stripe account on Stripe's standard T+2 payout schedule. No marketplace account required. No platform wallet intermediary.
The policy text displayed on the Stripe Checkout screen (the
policy_text field in ChairHold's configuration) is what
makes the deposit defensible in a Stripe dispute — the client has seen
and agreed to the cancellation terms before paying. This is Exhibit A
in any chargeback response. The other systems in this comparison either
cannot display custom policy text at checkout or display it in a
non-Stripe context that carries less weight in a card-network dispute.
The deposit is mandatory on every booking — there is no per-service toggle to make deposit optional for some services. This is a design decision: the behavioral commitment signal that makes deposits effective at reducing no-shows works because the client knows every booking requires a deposit, not just some of them. Optional deposits create an implicit signal that the no-show risk policy is negotiable.
Platform-by-platform operational details
Booksy: $29/mo for solo
Booksy's primary value proposition for solo operators is marketplace discovery. Clients searching "barber near me" or "stylist in [city]" inside the Booksy app can find your profile. For a new solo pro with no existing client base, marketplace discovery can meaningfully accelerate the first few months of client acquisition.
The cost of that discovery is the 20% commission that Booksy charges on new clients who find you through the marketplace. A $120 color service booked through Booksy's discovery channel costs you $24 in commission — not from the first booking, but for as long as that client continues to book via Booksy. The commission applies each time the client books through the Booksy platform, not just on the initial acquisition.
Booksy's deposit system collects payment through Booksy Pay. You cannot connect your own Stripe account to receive deposits directly. The payout timeline and Booksy's processing rate are separate from Stripe's. For operators who have already built their financial stack on Stripe — tax reporting, payment history, dispute management — this creates a parallel payment record in a separate system.
Client list portability: Booksy allows CSV export of your client list. The list includes contact details, appointment history, and spend data. What it does not include is the Booksy-sourced client's tendency to rebook through Booksy next time — that behavioral pattern stays in Booksy's system, not in yours.
Fresha: free subscription, commission model
Fresha's "free" positioning is accurate in the narrow sense that there is no monthly subscription fee. The revenue model is a commission on new clients who book via the Fresha marketplace (called Smart Pricing), plus a processing markup on all card transactions.
Smart Pricing: when a new client discovers you through Fresha's platform and books, Fresha charges 20% of the service value as a commission. This is the same commission model as Booksy, but Booksy has a visible subscription fee while Fresha obscures the cost in the "free" framing. For an operator who gets significant traffic from Fresha's marketplace, the commission cost exceeds the Booksy subscription cost quickly.
Processing rate: 3.5% + 20¢ per transaction, compared to Stripe's standard 2.9% + 30¢. On a $100 transaction that is $3.50 vs $3.20 — a 30¢ difference per transaction that compounds at volume. At $50k/yr, the processing markup alone is approximately $150/yr over Stripe rates.
Fresha's market concentration: Fresha over-indexes significantly in lash, brow, PMU, and makeup compared to the overall market. Solo providers in those verticals find more discovery volume through Fresha's marketplace than in verticals where Booksy dominates. The commission math changes based on how much of your traffic comes through the marketplace. An operator whose IG following generates 90% of bookings and whose Fresha listing generates 10% has a very different annual Fresha cost than one who relies on Fresha for 40% of bookings.
Square Appointments: free for solo, Square-only payments
Square's free tier for solo operators (one staff member) is genuinely free — no subscription fee, no transaction surcharge beyond standard Square processing. This makes Square the lowest-subscription-cost option in the comparison if you are not already paying for the Plus plan ($29/mo).
The deposit constraint is specific: Square's Prepayments feature (which is what deposits are called in Square's interface) routes payment through Square's processing stack. You cannot connect BYO Stripe to receive Square bookings' deposits. This matters for two reasons. First, if you use Stripe for other revenue — invoicing, retail, tip processing — the Square deposit revenue sits in a separate system with separate tax reporting and separate dispute management. Second, if you want the Stripe Checkout policy-text display that creates a defensible paper trail for chargebacks, Square cannot replicate that experience.
The co-existence use case: the most natural Square + ChairHold pairing is using Square Terminal for in-chair payment (completing the service, tipping, retail) and ChairHold's deposit link for the IG-bio booking + deposit flow. The deposit lands in Stripe; the service completion lands in Square. This is not a problem unless you want a single-system financial stack. Many operators who came to ChairHold already had Square Terminal and kept both.
Acuity Scheduling: $20/mo Powerhouse for deposits
Acuity's position in this comparison is "maximum configuration flexibility at a mid-range price." The Powerhouse tier ($20/mo) is where deposits live, and it is the right comparison point if deposits are why you are evaluating Acuity.
What Acuity offers that the others do not: per-appointment-type deposit amounts (you can set $30 for a trim and $75 for a color correction), intake form questions before booking (useful for patch tests, consultation requirements, allergy disclosures), scheduling rules that block certain times or require minimum lead time, and availability sync with external calendars. For a PMU artist who needs to capture patch-test completion before a microblading booking, or a mobile groomer who needs intake questions answered before confirming a new-dog appointment, Acuity's pre-booking flow offers capabilities the other systems do not.
The setup investment is real. Configuring Acuity correctly for a multi-service menu with per-service deposit amounts, reminder timing, intake forms, and buffer rules takes several hours the first time. This is not a criticism — it is a match to use case. If you need that level of configuration, the setup investment is worth it. If you need one booking link for your IG bio that takes a deposit and sends a reminder, Acuity's configuration surface is overhead.
ChairHold: $9/mo, BYO Stripe, one link
ChairHold's design is the narrowest of the five systems: one booking link, mandatory deposit on every booking, deposit directly to your Stripe account, policy text displayed on the Stripe Checkout screen. It does not have a marketplace, a calendar sync, per-appointment-type deposit amounts, or intake forms. Those are deliberate omissions, not oversights — the product is built for the operator who has an IG following, wants to stop no-shows, and wants the deposit to land directly in their own Stripe.
The time-to-live feature is specific to ChairHold: a deposit offer can be configured to expire after a set period (30 minutes, 60 minutes, 120 minutes). When you send a cancellation-waitlist message to a client with a booking link and say "this slot closes in 60 minutes," the time-to-live makes that claim real — the link expires. This is the mechanism behind the waitlist slot-recovery model; see how to run a solo beauty waitlist for the full fill-rate mechanics.
refund_window_hours is the system field that controls
the cancellation window — when the deposit is refundable vs.
forfeited. It drives three things simultaneously: the system's
refund behavior, the policy_text displayed on the Checkout screen,
and the defensibility of a forfeited deposit in a dispute. The three
should always be in sync. The
no-show policy guide
covers this configuration in full.
True annual cost at $50k revenue
The five-layer cost framework breaks platform cost into: subscription, per-transaction processing margin, marketplace commission, SMS reminders, and tipped-deposit haircut. The table below shows the annual totals at $50k gross revenue. Full methodology and the three-year cost trajectory are in the 2026 booking platform economics post.
| Platform | Subscription/yr | Processing/yr | Marketplace/yr | Total TCO |
|---|---|---|---|---|
| Booksy | $348 | (Booksy Pay) | ~$1,100 | ~$1,840 |
| Fresha | $0 | ~$1,750 (3.5%) | ~$1,000 | ~$3,045 |
| Square Appointments | $0–$348 | ~$1,160 (2.9%) | $0 | ~$1,160 |
| Acuity Scheduling | $240 | ~$384 (BYO Stripe) | $0 | ~$624 |
| ChairHold | $108 | ~$290 (BYO Stripe) | $0 | ~$398 |
Notes on the table: Booksy's processing cost is included in Booksy Pay's consolidated pricing and not separated in the public rate card — the $1,840 TCO figure treats it as embedded. Fresha's marketplace commission is modeled at 10% of gross revenue sourced through Fresha discovery at the 20% commission rate ($50k × 10% × 20% = $1,000); operators with higher Fresha marketplace share will see higher totals. Square's range reflects the free tier (no subscription) vs. Plus ($29/mo); both tiers carry similar processing costs. Acuity and ChairHold both use BYO Stripe at 2.9% + 30¢ — the processing cost difference reflects ChairHold's lower total revenue routed through the deposit link vs. Acuity's full appointment value capture at some configurations.
The cost ordering at $50k/yr: ChairHold ($398) < Acuity ($624) < Square ($1,160) < Booksy ($1,840) < Fresha ($3,045). The spread between the most expensive (Fresha) and least expensive (ChairHold) is $2,647/yr — a difference that at $50k gross revenue represents 5.3% of total revenue. For the definitions behind these calculations, see the solo beauty pricing glossary entries on true TCO, net effective rate, and processing margin.
Platform dependency and client portability
Platform dependency is the degree to which your business outcomes are controlled by a platform you do not own. It has three forms in the booking system context: marketplace lock-in, payment-stack lock-in, and client-data lock-in.
Marketplace lock-in
Booksy and Fresha both create marketplace lock-in in two senses. First, your presence on their platform drives discovery traffic — clients searching within the app find you because you are on it. If you leave the platform, that discovery traffic disappears. You can take your client list with you but not the new-client pipeline the platform generates.
Second, clients who found you through Booksy or Fresha have a Booksy or Fresha account and the behavioral habit of booking through that platform. When you switch to a different booking system and update your IG bio link, existing Booksy-sourced clients may still attempt to rebook through Booksy because that is how they remember booking you. This is addressable with a client announcement message, but it creates friction during migration that does not exist when switching between Square, Acuity, and ChairHold.
Payment-stack lock-in
Booksy and Fresha collect deposits into their own payment systems. Square collects deposits into Square's payment system. Your Stripe account, if you have one, has no record of these transactions. This matters when a dispute occurs (the dispute is handled by Booksy's, Fresha's, or Square's dispute process, not Stripe's), when you want to reconcile total revenue (deposits live in one system, other income in another), and when you consider switching platforms (historical transaction records stay behind in the platform you leave).
Acuity and ChairHold both route deposits directly to your BYO Stripe account. Your Stripe account has the complete deposit transaction history. Stripe's dispute process, Stripe's reconciliation tools, and Stripe's reporting are all available. If you switch from Acuity to ChairHold (or vice versa), your payment history does not change — it stays in your Stripe account regardless of which booking system created the Stripe Checkout session.
Client data portability
All five platforms allow some form of client list export. The quality of the export varies. Booksy's CSV export is complete for contact details and appointment history. Fresha's export requires navigating the client database within the platform and produces a CSV, but the process is less straightforward. Square exports cleanly — client data is available in the Square Dashboard in CSV format.
Acuity and ChairHold have similar portability: your client email list is available for export, and because deposits landed in your Stripe account, your payment records were never in the booking system's database in the first place. The financial history travels with you because it was always in Stripe.
One specific portability consideration: when you switch from a marketplace-based system (Booksy or Fresha) to a BYO-traffic system (Square, Acuity, ChairHold), you are also switching from a marketplace-discovery model to an own-channel model. The booking system switch and the traffic strategy shift happen simultaneously. If you have not yet built an IG following or a direct client list that generates consistent inbound demand, the switch to a BYO system removes the platform-driven discovery before the own-channel pipeline is ready to replace it. Timing the migration to overlap with a period of strong own-channel demand is the operational variable that matters most.
The decision framework
Five questions, each with a clear implication. Work through them in order — the first question that eliminates a system saves you from evaluating all the details of a system that does not fit.
Question 1: Do you rely on marketplace discovery for new clients?
If yes — if a meaningful share of your new clients currently come from clients searching on a booking platform — the decision is between Booksy and Fresha. Booksy dominates in barber, color, and nail verticals. Fresha over-indexes in lash, brow, PMU, and makeup. The commission economics of each depend on how much of your revenue flows through marketplace-sourced clients vs. own-channel clients. See the individual head-to-heads — Booksy vs ChairHold and Fresha vs ChairHold — for the migration and co-existence paths if you want to reduce marketplace dependency over time.
If no — if IG, word of mouth, and Google Business Profile are your primary acquisition channels — you can eliminate Booksy and Fresha and focus on Square, Acuity, and ChairHold. None of those three charge marketplace commissions.
Question 2: Are you already using Square for in-chair payments?
If yes, the path with least friction is Square Appointments for the booking layer. The payment stack is already Square. The client data is already in Square. Adding Square Appointments' Prepayments feature adds deposit capability without adding a new system. The co-existence pattern — Square for in-chair, ChairHold for IG-bio deposit link — is also valid if you want BYO Stripe for deposits while keeping Square Terminal for in-chair. See the Square vs ChairHold comparison for the co-existence decision tree.
If no, Square's payment-stack lock-in is a reason to choose Acuity or ChairHold instead.
Question 3: Do you want deposits to land in your own Stripe account?
If yes — if you want your entire payment history in Stripe, want Stripe's dispute management, or want the Stripe Checkout policy-text display — the field narrows to Acuity Scheduling (Powerhouse tier) and ChairHold. Both route deposits directly to BYO Stripe.
If no — if you are indifferent about whether deposits land in Stripe vs. a platform wallet — Square, Booksy, and Fresha remain on the table.
Question 4: How much booking configuration do you need?
Per-service deposit amounts (different deposits for different services on the same menu), intake forms before booking, minimum lead time rules, availability sync with a personal calendar, or scheduling blocks for prep/cleanup time — if you need any of these, Acuity Scheduling is the right system. The Powerhouse tier includes all of them. See the Acuity vs ChairHold comparison for the full configuration surface comparison.
If you need none of those — you have a single-service or fixed-menu operation, you do not need intake forms, and you want a booking link that takes a deposit and sends a reminder — ChairHold's narrower scope is an advantage, not a limitation. Less configuration means less that can be configured incorrectly, and less maintenance as pricing changes.
Question 5: What is the annual cost tolerance at your current revenue level?
At $50k gross revenue: ChairHold ($398/yr) and Acuity ($624/yr) are the two BYO-Stripe systems. The $226/yr difference between them is about $19/mo — essentially the cost of one canceled appointment. If you need Acuity's configuration depth, the $19/mo premium is straightforward to justify. If you do not need the configuration depth, ChairHold's $398/yr TCO is the lowest of any deposit-capable system in the comparison.
Square at $1,160/yr is a real cost, not $0 — the processing rate on $50k/yr of card transactions is the system's actual cost even with no subscription fee. Booksy at $1,840/yr and Fresha at $3,045/yr carry significant marketplace commission components that reduce at lower marketplace traffic share but that are structurally difficult to eliminate while remaining on the platform.
Which system for which operator
These are not endorsements — they are the use-case fits that emerge from the operational analysis above.
IG-primary, BYO-Stripe, minimal setup: ChairHold. One link, mandatory deposit, direct Stripe payout, policy text in checkout. Works in ten minutes. See the 10-minute ChairHold setup guide.
IG-primary, BYO-Stripe, complex service menu: Acuity Scheduling (Powerhouse). Per-service deposits, intake forms, scheduling rules, BYO Stripe. Higher setup investment, more configuration surface.
Already on Square POS, want deposit-at-booking: Square Appointments (Prepayments). Stays within the Square ecosystem. Or Square Terminal for in-chair + ChairHold for IG-bio deposit link if you want deposits in Stripe specifically.
Lash, brow, PMU, or makeup, marketplace-driven discovery in your market: Fresha, with a plan to build own-channel traffic over 6–12 months to reduce commission exposure. Or Fresha for discovery alongside ChairHold for IG-bio-primary clients (a hybrid that splits traffic by channel).
Barber or stylist, marketplace-driven discovery: Booksy, with the same own-channel migration caveat. The 20% commission on marketplace-sourced clients is the cost of the discovery channel, and the question is whether the revenue from Booksy-sourced clients net of commission exceeds the cost of building own-channel acquisition to replace them.
Further reading
- 2026 booking platform economics: full five-layer TCO methodology
- Booksy vs ChairHold: deep dive for solo booth-rental beauty pros
- Square Appointments vs ChairHold: head-to-head and co-existence model
- Acuity Scheduling vs ChairHold: configuration depth vs simplicity
- Fresha vs ChairHold: the true cost of "free" and the commission structure
- Solo beauty pricing glossary: true TCO, net effective rate, processing margin
- ChairHold setup in 10 minutes
- The IG bio link that books appointments (and takes a deposit)
One link. Mandatory deposit. Your Stripe.
ChairHold is $9/mo flat — no commission, no marketplace, no platform wallet. Early access is 90 days free.