1. Your booking export and your assumptions
Needs a status column and a start date column (with the time, or a separate time column). Client, service, price, booked-on and cancelled-at columns are used when present. Column names and status words are matched by alias and are unverified against real Square Appointments, Acuity, Calendly, Vagaro, Fresha or Booksy exports: if a file is not read, the page says which rows were skipped and why. Duplicate rows are dropped; bookings you cancelled yourself and bookings still open are left out of every rate.
Deposit or no-show fee what-if (your assumptions)
Choose the export file or paste it, then click Analyze bookings.
Result
What a deposit or no-show fee might recover
By weekday
| Weekday | Bookings | No-shows | No-show rate | Late cancels | Lost revenue |
|---|
By hour of day
| Starts at | Bookings | No-shows | No-show rate | Late cancels | Lost revenue |
|---|
By service
| Service | Bookings | No-shows | No-show rate | Late cancels | Lost revenue |
|---|
By lead time
| Booked ahead | Bookings | No-shows | No-show rate | Late cancels | Lost revenue |
|---|
Repeat no-show clients
These names come from your file and stay on this device.
| Client | Bookings | No-shows | Late cancels | Lost revenue |
|---|
The model, and what it leaves out
- Counted bookings: attended, no-show and client-cancelled bookings. Bookings you cancelled yourself and bookings still open (booked, confirmed, pending) are left out of every rate and counted separately.
- No-show rate is no-shows over counted bookings. Late-cancel rate is client cancellations made less than your notice window before the start, over counted bookings; it needs a cancelled-at date, and cancellations without one are counted as cancellations of unknown notice, never as late.
- Revenue lost: price of each no-show, added up. Late-cancel revenue is shown apart as at risk, because some late-cancelled slots are rebooked. A row with no price uses its service's average from the same file; a service with no prices uses the default price you type, which is a placeholder, not a measurement.
- Breakdowns: by weekday and hour of the start time as written in the file (time zones are not converted), by service, and by lead time from the booked-on date (under 2 days, 2 to 14 days, over 14 days). A group under 5 bookings is marked as a small sample and never named as the worst.
- Deposit or fee what-if: the share you assume is prevented counts as kept visits at the same price; the rest are assumed to pay your fee percentage on the share you say is collected. All three numbers are your assumptions, not a forecast.
- Reconciles. Weekday rows and service rows each add up to the counted bookings at the top; hour-of-day and lead-time rows add up over the bookings that carry a start time or a booked-on date.
- Not modelled: clients who leave because of a fee, refunds and processing fees, rebooked slots, overbooking, reminders, waitlists, staff time and wages, how your local rules limit fees or deposits, and anything not in the file.
- Unverified: column names and status words are matched by alias and no real Square Appointments, Acuity, Calendly, Vagaro, Fresha or Booksy export was available when this was written.
Common questions
How do I find my no-show rate from a Square Appointments, Acuity, Calendly, Vagaro, Fresha or Booksy export?
Export your appointments or bookings list as a CSV with the client, service, start date and time, status and price, drop it here and click Analyze. The tool counts the bookings that ended as attended, no-show or client cancellation, and divides. Bookings you cancelled yourself and bookings still in the future are left out of every rate.
What counts as a no-show and what counts as a late cancellation?
A no-show is a booking whose status reads as a no-show, missed or did not attend. A late cancellation is a client cancellation made less than the notice window you type (24 hours by default) before the start time, which needs a cancelled-at date in the file. Cancellations with no cancelled-at date are counted as cancellations of unknown notice, never as late.
How is the revenue lost worked out?
Price times no-shows, using the price in the file. Late-cancellation revenue is shown separately as at risk, because a late-cancelled slot is sometimes rebooked. A booking with no price uses the average for its service in the same file, and a service with no prices uses the default price you type, which is a placeholder and not a measurement.
Which weekdays, hours, services and lead times are missed most?
The tables break the rate down by weekday, by starting hour, by service and by lead time (booked under 2 days ahead, 2 to 14 days, over 14 days, which needs a booked-on column). Groups with fewer than 5 bookings are marked as a small sample and are not called the worst, because one missed slot in three bookings is not a pattern.
Who are my repeat no-show clients?
Any client with two or more no-shows in the file, with the number of missed appointments and the dollars lost, largest first. Clients are matched by email when the file has one, otherwise by name. The names stay in your browser and are never uploaded.
What would a deposit or no-show fee recover?
It is an estimate from two numbers you type: the fee or deposit as a percentage of the service price, and the share of no-shows and late cancellations you assume it would prevent. A prevented one is treated as a kept visit at the same price, and each remaining one is assumed to pay the fee. Both figures are your assumptions, not a forecast, and clients lost to the fee are not modelled. The no-show fee calculator and the appointment deposit calculator work through the policy itself.
Is my client list uploaded?
No. The file is read in this browser tab and never leaves your device. There are no accounts, cookies or analytics vendors.
Which file formats and column names does it read?
Comma, semicolon, tab or pipe separated text, including UTF-8 with a byte order mark and UTF-16, with quoted fields. Dates can be ISO, month/day/year or day/month/year, with or without a 12-hour or 24-hour time, or in separate date and time columns. Status words such as No Show, Missed, Did not attend, Cancelled or Canceled, Completed, Attended and Checked out are matched by alias. No real Square Appointments, Acuity, Calendly, Vagaro, Fresha or Booksy export was available when this was written, so the aliases are unverified; a file that is not read says which rows were skipped and why.