Acuity revenue and capacity dashboard with real utilization
See booked revenue by service and by staff member, true utilization against open capacity, and no-show trends for any date range you pick.
Build me an interactive capacity and revenue dashboard for my Acuity Scheduling account. I am the practice owner and my practice manager also uses it. We open this when we want to know how the business actually performed over a stretch of time, so the emphasis is on clear comparisons and drill down rather than raw tables. This is something a person opens and explores, not a scheduled report that gets sent anywhere.
A date range picker sits at the top of the app and drives every panel on every view. Give it presets for this month, last month, last 30 days, last 90 days, and quarter to date, plus a custom start and end date. Changing the range refetches and recomputes everything below it. Remember the last range and the last view each user had open so they land back where they were.
The first view is the overview. It shows booked revenue for the selected period, broken down two ways: by appointment type and by staff calendar. Next to that, show appointment volume against open capacity so I get a real utilization percentage per calendar, which is the single number Acuity itself will not give me. Also show a no-show and cancellation rate trend across the period, and a comparison against the immediately preceding period of equal length so I can see at a glance whether revenue, volume, utilization, and no-show rate are up or down. Show the deltas as both an absolute change and a percentage, with clear direction, and remember that a falling no-show rate is good news while falling revenue is bad news, so color the direction by whether the movement is favorable rather than by its sign.
The second view is the drill down. From any appointment type or any staff calendar on the overview, I want to click through into that one slice and see the underlying appointments listed out with client name, date and time, price, and paid status, along with whether the appointment was canceled or marked as a no-show. Let me sort and filter that list, and show the slice totals at the top so the detail always reconciles with the number I clicked from.
A third smaller panel shows outstanding packages and coupons, so I can see prepaid balances that clients still need to use up. Show who holds each one, what it was for, and how much remains outstanding, since that is money already collected that represents a future service obligation.
Handlers read everything from Acuity Scheduling. Use List Appointments for the bookings in the selected range. Use List Appointment Types and List Appointment Addons for pricing, so revenue reflects add-ons and not just the base service price. Use List Calendars for the staff breakdown and to label each calendar with a real person's name. Use Get Available Times to compute open capacity against what was actually booked, which is what makes the utilization percentage meaningful. Use List Certificates for the packages and coupons panel.
There are a few Acuity data quirks to handle carefully or the numbers will be wrong. Prices come back as decimal strings rather than numbers, so parse them before summing or the totals will concatenate instead of add. The paid field is the string yes or no rather than a boolean, so compare against the string. List Appointments is capped by a max parameter and has no cursor, so page long ranges by narrowing the date filter: set direction to ASC and use the last result's datetime as the next minDate, continuing until a page comes back short. Acuity also rate limits at ten requests per second with twenty concurrent connections, so when probing capacity do not fan out one request per day per appointment type without bounds. Narrow the days worth probing first, batch the work, and cache capacity results for the selected range so that changing views does not refetch everything.
Compute utilization per calendar as booked appointments measured against booked plus still open slots for the same window, and show the raw counts next to the percentage so the number is auditable. Exclude canceled appointments from booked revenue but keep them in the cancellation rate calculation, and treat no-shows as a separate category from cancellations since they hurt differently. Use the account timezone so date boundaries line up with how I actually think about my days.
Every view has an export button that writes what is currently on screen, respecting the active date range and any drill down filter, to a tab in a Google Sheets spreadsheet using Append Values, for anyone who wants the numbers in a spreadsheet. Let me pick the spreadsheet and tab, remember that choice, and append a header row plus a row noting which date range the export covers so past exports stay interpretable.
Handle the empty and thin cases gracefully. If a range has no appointments, say so plainly instead of rendering an empty chart. If capacity data cannot be retrieved for a calendar, show the revenue and volume figures and mark utilization as unavailable for that calendar rather than silently showing zero or hiding the calendar entirely.
What does this prompt do?
- Shows booked revenue for any date range you pick, split by appointment type and by staff member, so you can see which services and which people actually bring in the money
- Calculates a true utilization rate per staff calendar by comparing appointments booked against the time that was still open, the number Acuity's own reports will not give you
- Tracks no-show and cancellation rates over the period and compares every figure against the previous equal length period so you know whether you are up or down
- Lets you click into any service or staff member to see the individual appointments behind the number, with client, date, price, and paid status, plus a panel of outstanding prepaid packages and coupons
What do I need to use this?
- An Acuity Scheduling account you can sign in to, with your appointment types and staff calendars already set up
- Pricing filled in on your appointment types and any add-ons, since revenue figures are built from those prices
- A Google account if you want the export button to send the numbers to a spreadsheet
- Enough booking history in the period you want to review for the comparisons to be meaningful
How can I customize it?
- Change the default date range the dashboard opens on, or add your own presets such as year to date or a specific season
- Decide how revenue is counted, for example whether to include add-ons in service totals or to count only appointments already marked as paid
- Choose which spreadsheet and tab the export button writes to, and adjust which columns get exported
FAQs
How is the utilization percentage actually calculated?
Will this work on lower Acuity plans?
Does this change anything in my Acuity account?
Can I see the individual appointments behind a number?
What are the outstanding packages and coupons for?
How far back can I report?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.
Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.
Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.
Stop exporting Acuity data just to answer basic questions.
Get revenue by service and staff, real utilization, and no-show trends in one dashboard you can actually click into.