Booking policies
Cutoffs and fees that actually hold the line.
Pick a preset, tune the hours, set the fee. The public booking page and the client portal both enforce the cutoff. Late-cancel and no-show fees land on the appointment as an outstanding balance the next visit picks up.
Built for salons that lost a chair last week to a 9am cancellation at 8:50am. The policy framework you tune once and let the page enforce.
01/
Four presets, then customize.
Pick Flexible, Fair, Moderate, or Firm as a starting point. Each sets sensible defaults for the cancel cutoff, the reschedule cutoff, the late-cancel fee, and the no-show fee. Tune from there: change one number, save, the new policy applies to every booking from this point forward.
Flexible.
Generous cutoffs, no fees. The shape most salons start with while they read the room.
Fair.
Moderate cutoffs, no-show fee only. A middle ground for repeat-client salons.
Moderate.
Tighter cutoffs, late-cancel fee plus no-show fee. The shape that fits a busy chair-rental operation.
Firm.
Tight cutoffs, both fees set to a meaningful percentage. The shape medspas and high-cost service providers ask for.
02/
Cancel and reschedule cutoffs, independent.
Set the cancel cutoff in hours before the appointment start. Set the reschedule cutoff separately. Some salons want a 48-hour cancel rule and a 24-hour reschedule rule because a reschedule keeps the relationship and a cancel does not. Both numbers live in your business settings.
03/
Past the cutoff, the page tells the truth.
Inside the cutoff window, the cancel button on the client portal says "your card will be charged the late-cancel fee" instead of a generic confirm. The reschedule button blocks with a polite explanation and a Cancel instead button so the client has a real next step. No surprise charges, no buried fine print.
Cancel preview shows the fee.
Before the client confirms, the dialog renders "A late-cancel fee of $X applies" with the exact dollar amount. They see it before they tap.
Reschedule block has a way out.
The block message tells them why and how late they are, then offers Cancel instead so the visit doesn't freeze.
Same enforcement on every surface.
Client portal, public booking page, and the cancel link inside the confirmation email all run the same cutoff math against the appointment start.
Receipts explain the policy upfront.
The booking confirmation email summarizes the policy: cancel by X hours, reschedule by Y hours, late fee $Z. The client sees it the moment they book.
04/
Fees as flat amounts or as percentages.
A flat-amount fee fits when every service is similar in price. A percentage fee fits when your service mix runs from a $30 brow tint to a $400 colour correction (the punishment scales with the loss). Pick the shape on the policy form; the math runs on the service price at the time of booking.
05/
Fees as outstanding balance today. Auto-charge later.
When a fee triggers, it lands on the appointment as an outstanding balance. You see it on the appointment detail card; the client sees it on the next visit's checkout. The salon decides whether to collect, waive, or roll it into the next service.
Stripe Connect on the way.
Once Connect lands, the same fee hook auto-charges the saved card instead of just recording the balance. The toggle is per-business, opt-in.
Receipt PDF reflects the fee.
When the balance is collected at the next visit, the receipt itemizes the original service and the carried fee separately.
Reports net the fee in.
Collected late-cancel and no-show fees count as revenue on the P&L. Waived ones do not. The audit trail is on the appointment.
Waive in one click.
A regular got sick? Open the appointment, hit Waive on the outstanding balance. The audit row records who waived and when.
06/
Who the policy protects, in practice.
A 24-hour cutoff with a 50% no-show fee is the difference between an empty chair and a covered chair. The strongest signal salons report after enabling Firm: the marginal no-show client either books somewhere else or actually shows up. Either outcome works.
Common questions
Honest answers, including the ones we don't love.
What happens if I change the policy mid-week?
New bookings get the new policy. In-flight bookings keep the policy that was active at the time of booking, which is what the confirmation email told the client. The audit trail on the appointment records which policy version was active.
Can I have different policies per service?
Today the policy is business-wide. Per-service overrides are on the post-launch list (different no-show shape for a microblading consult vs a haircut makes sense). For now, the right tool for a high-stakes service is a higher deposit at booking.
Does the fee auto-charge a card on file?
Not yet. v1 records the fee as an outstanding balance on the appointment; the salon collects at the next visit, waives, or adjusts. Card-on-file auto-charge unlocks once Stripe Connect ships, and the auto-charge will be a per-business opt-in toggle, not the default.
What about a no-show that wasn't their fault?
Open the appointment, hit Waive on the outstanding balance, optionally write a reason. The audit row preserves who waived and when. Same flow if the salon decides to apply the fee as in-store credit instead.
Can a client cancel outside the cutoff for free?
Yes. Inside the cutoff window, cancel is free and the slot frees immediately. The waitlist auto-match scan runs on every cancellation, so the next person in line gets the email the moment the slot opens up.
Pairs well with
Fourteen days. No card.
Try Flowesce on a real Saturday.
No card required, no auto-charge at the end. If Flowesce isn't for you, export everything in one click and walk.