Cookie preferences

Choose what we may use. Strictly necessary cookies keep you signed in and can't be turned off; everything else is your call and changes nothing about how the site works. You can change your mind any time from the footer.

For Acuity Scheduling

The booking page is the last thing they touched before becoming a customer.

Export your bookings, match them against closed sales, and find out which appointment types and which channels produced revenue.

No API key Nothing to install in Acuity SchedulingNothing to install No card requiredNo card

Acuity Scheduling sits on the lead side in CloseRev: every booking carries the contact details somebody typed, the appointment type and a timestamp, which is a complete lead file most businesses never think to export. Matched against closed sales from whichever system invoices, it answers which channels produced bookings that became money. Revenue with no traceable booking is reported as Direct / Unknown.

Last checked against Acuity Scheduling's own documentation on September 25, 2026.

The gap

The calendar is full. Nobody can say which of last month's marketing filled it.

Acuity Scheduling sees

What was sold, to whom, and for how much.

no shared row
Your ad account sees

The click, the keyword, the call, and what each one cost.

The file

What the export needs in it.

Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.

  1. Needed

    Client phone or email

    As typed at booking. A booking is one of the cleanest contact captures available, because the client wants the confirmation.

  2. Needed

    Appointment type

    Consultation, treatment, discovery call, paid session. These are different leads and must never be pooled.

  3. Needed

    Booking date and appointment date

    Both. The gap is how far ahead people book, which differs by channel.

  4. Optional

    Intake form field for source

    A single “how did you hear about us” question turns every future booking into an attributable lead.

Step by step

Getting the file out of Acuity Scheduling.

Written for somebody with Acuity Scheduling open in the next tab. Report names vary by edition, so each step says what to look for.

  1. Export bookings

    One row per booking with a contact detail, the appointment type and the dates.

  2. Keep the appointment types apart

    A free consultation and a paid session are not the same lead, and averaging them is the usual mistake.

  3. Add one source question to the intake form

    It costs a field and makes every future booking attributable without any tracking at all.

  4. Export closed sales

    Contact detail, amount, date, from whatever invoices.

  5. Upload both

    The join runs on the email and the phone, normalised, with cancellations and no-shows kept visible.

What comes back

The page Acuity Scheduling cannot show you.

Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the Med Spas & Dermatology page — not from a Acuity Scheduling account.

Traced to a channel$165,60072% of $230,000
Sales matched201 of 280high confidence only
Average sale$820per paid sale
ChannelShareSalesRevenue
Meta Ads96$78,200
Google Ads61$55,200
Email marketing44$32,200
Direct / Unknown79$64,400

Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.

The argument

What changes when the booking and the ad share a row.

A booking is a better lead record than most forms produce

Somebody booking an appointment types a real email address because they want the confirmation, and a real phone number because they expect a reminder.

That makes the contact details on a booking unusually accurate — better than a contact form, where a wrong address costs the person nothing.

It also carries a timestamp and an appointment type, which is more structure than most lead files have.

The result is a high match rate against a customer record, which means less revenue disappearing into Direct / Unknown for want of a usable key.

Most businesses running a scheduler already have months of this and have never exported it once.

No-shows and cancellations are the cost, and they cluster by source

A booked appointment that nobody attends has consumed a slot somebody else could have had, and for a practitioner that slot is the entire inventory.

Channels differ substantially in how often their bookings are kept: an appointment booked after a long consideration is attended far more reliably than one booked on an impulse from an advert.

Counting only the appointments that happened hides that completely and makes the impulsive channel look efficient.

Keeping cancellations and no-shows in the file gives a real cost per attended appointment per source, which is the number a practitioner's diary actually runs on.

It is also frequently a reminder-settings finding rather than a channel one, which is a cheaper thing to fix.

One question on the intake form beats any tracking you could install

A scheduler sits at the end of the journey, so the referrer it sees is usually your own website rather than whatever produced the visit.

A single free-text or dropdown question — how did you hear about us — captures what no pixel can: the neighbour, the podcast, the sign, the search somebody made a month ago.

It is self-reported and therefore imperfect: people misremember, and the last thing they saw is not always what decided them.

So the report keeps it as its own labelled source beside any tracked ones rather than merging them, because two imperfect signals reported separately beat one blended figure that looks precise.

For a small service business it is often the only source data that exists, and it is better than nothing by a very wide margin.

Appointment type is the split that makes the ranking usable

A free fifteen-minute consultation and a paid ninety-minute session are different products with different values and different buyers.

A channel producing mostly one will be ranked as though it produced the mix, which is how a good source of paid work gets cut for producing few bookings.

Splitting on appointment type is immediate, requires nothing extra, and usually reveals that one type produces nearly all the revenue.

That changes where the booking links go on the website, which is a cheaper intervention than changing the media plan, and it can be tested within a week rather than a quarter.

Fair questions

“Acuity Scheduling already does that.” Not quite.

They say

“Acuity already reports on bookings.”

We say

On bookings, which it sees. It has no view of what was invoiced afterwards, or of what produced the visit.

They say

“We do not have a lead file.”

We say

You do. Every booking you have taken is stored, timestamped and exportable, with real contact details.

They say

“Self-reported sources are unreliable.”

We say

They are imperfect, and they are the only record of the channels no pixel sees. The report keeps them labelled rather than merged.

Questions

Acuity Scheduling, specifically.

Something else? Ask us and a person answers.

No. It reads an exported file, so your calendar, clients and forms stay where they are.

Acuity Scheduling and the other product names and logos on this page belong to their owners and are shown to identify the software a file comes from. CloseRev is not affiliated with or endorsed by them, and connects to none of them: it reads a file you export.

Start today

Two exports, and you will know.

Nothing to install in Acuity Scheduling, no API key, and no need to have been tracking anything until now. Last year works as well as this month.