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.

Marketing attribution for med spas and dermatology practices

Which ads produced treatments people paid for?

Match completed, paid treatments to the inquiries and ads that produced them — including the packages bought months after the first consultation.

  • No card required
  • Nothing to install
  • Cancel anytime
Med Spas & Dermatology workspace August 2026 Sample data
Paid treatment traced to a channel

$165,600 72% of $230,000 paid

  • Meta Ads $78,200 · 34%
  • Google Ads $55,200 · 24%
  • Email marketing $32,200 · 14%
  • Direct / Unknown $64,400 · 28%
Direct / Unknown is shown, never shared out across the channels above.
Meta Ads · LeadAug 14 · (•••) •••-0134
Closed sale · Aug 27$820
Matched · high confidence

The blind spot

What's actually happening

Aesthetic inquiries are cheap to generate and mostly do not convert. The ones that do range from a single treatment to a multi-thousand-dollar package, and inquiry volume tells you nothing about which is which.

What you get

Built for med spas and dermatology practices.

Treatment value, not inquiries

Rank channels by what was actually paid, so package buyers stop being averaged away.

Consultations that convert later

A consultation in March that buys a package in July still matches the ad behind it.

Minimal data required

A contact detail, an amount and a date. No clinical or treatment detail needed.

A worked example

The number you can take into a budget meeting.

Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.

Total revenue$230,000paid paid treatment
Attributed to a channel$165,60072% of revenue
Average deal$820per paid sale
Match rate72%of sales matched
ChannelSalesRevenueShare%
Meta Ads96$78,20034%
Google Ads61$55,20024%
Email marketing44$32,20014%
Direct / Unknown79$64,40028%
01

Social produces the volume, but who produces the packages?

Aesthetics is one of the few local categories where paid social genuinely outperforms search for lead volume, which makes the reporting particularly misleading. Meta will show you hundreds of cheap inquiries; it cannot show you which of them bought a package.

Ranking by paid treatment value separates the channel that fills a consultation diary from the channel that fills a bank account. They are frequently not the same, and the gap is usually largest for the highest-value treatments.

02

The gap between consultation and purchase

Elective aesthetic treatment is discretionary, often discussed with a partner, and frequently booked around an event months away. A consultation in March that becomes a package in July is entirely normal and entirely invisible to click attribution.

Matching on the client rather than the session credits the July purchase to the March ad. It also lets you analyze a season that has already finished, which is how you find out whether last summer's campaign actually paid.

03

A package is cash today and treatment for the next eight months

Prepaid packages are how most aesthetic clinics smooth their year, and they make the revenue question genuinely ambiguous rather than merely fiddly. A client pays $2,400 in February for six sessions and takes them through to October. There are two defensible dates for that money and two defensible ways to book it, and the clinic's own records probably hold both — the takings on the day the card was charged, and the redemptions spread across the eight months that followed. Neither is wrong, and a report built on one will not agree with a report built on the other.

For attribution the payment date is the better choice, and not for accounting reasons. It sits closest to the decision, which is the thing the advert actually influenced. Booking the revenue on redemption spreads one marketing outcome across eight monthly reports and makes each month's ranking partly an artefact of what clients happened to redeem that month, which nobody chose and no campaign caused. It also delays the signal: a campaign run in February would not be fully assessable until the following winter, by which time it has been renewed or cancelled on a guess.

Whichever a clinic picks, the rule is to pick once and write it down. Switching halfway through a year produces a trend line measuring the export rather than the business, which is precisely the failure this exercise exists to remove. Clinics wanting both views usually export twice into separate imports and compare them, which takes an afternoon and occasionally reveals something worth knowing: a channel that looks strong on takings and unremarkable on delivered treatment is selling packages to people who do not come back to use them, and that is a retention problem wearing a marketing result.

04

Memberships are the difference between a clinic and a diary

The monthly membership changed this category more than any device did. A client on a recurring plan at $99 or $199 is worth several multiples of a walk-in appointment over a year, attends on a schedule rather than on a whim, and buys retail while they are already in the building. An advert producing members and an advert producing single treatments look almost identical on cost per lead, sit next to each other in the same account, and are not remotely the same business. One of them is buying a subscriber and the other is buying an afternoon.

Judged over thirty days, the membership advert loses and loses badly. Its first month's revenue is a single installment against a full treatment fee from the one-off booking, so on any monthly report it appears to be the weaker buy. Judged over a year, with every installment tracing back to the client who signed up, the ranking inverts and usually by a wide margin. This is the most common reversal in aesthetic reporting and it is structurally invisible to any tool that closes its books monthly, which is all of the ones inside the advertising platforms.

Running it properly is a matter of date range rather than setup. Export twelve months of takings with the client's phone or email on every row, and each recurring charge joins to the same person and therefore to the same original inquiry. Mapping a column that marks membership rows as Product / service lets the report separate recurring revenue from one-off treatment, which answers the question behind the question: is the membership push recruiting new clients, or is it a discount being handed to regulars who were already coming in every eight weeks and paying full price?

05

The till holds three businesses and the report should say so

Injectables, devices and retail skincare arrive through the same card terminal and behave nothing alike. Tox is priced by unit, repeats on a twelve-week rhythm and is the habit that keeps somebody attached to a clinic. Device treatments are seasonal, expensive, often bought once and heavily influenced by whatever the clinic has just financed. Skincare is small, high-margin and driven almost entirely by whoever is standing at the desk when a client leaves. One revenue total across all three tells a clinic very little about what its advertising actually bought.

The correction is the money rather than a column. Ranking on collected revenue, with the sale count beside it, already shows whether a channel's total is carried by a handful of large device sales or by many repeat injectable visits, because the average value per sale gives it away. A service-line or treatment column would make the split explicit, but what treatment somebody bought is health information, and it does not belong in a file sent to CloseRev, which signs no business associate agreements. Where there is more than one clinic, a location column mapped as Location is the breakdown to use. Nobody could have seen any of this while everything sat inside one number at the top of a dashboard.

Retail deserves to be in the file even though it feels like it belongs to the front desk rather than to marketing. It is genuine money from a client an advert produced, it is usually the most profitable line in the building, and leaving it out understates exactly the channels that bring people back rather than through once. The match does not read what was sold — only that an amount was paid on a date by somebody the inquiry file also knows — so a product name in the export is ignored rather than treated as an error.

Why it matters

What changes when you can prove it.

You stop defending the budget and start growing it

"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.

You can cut the wrong channel without a fight

Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgment, you are reading the same ledger they are.

Your reporting survives the finance review

Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.

You answer in an afternoon, not a quarter

Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.

Honest answers

The pushback we hear from Med Spas & Dermatology.

They say

We cannot run extra scripts on our booking pages.

We say

You do not need to. Nothing is installed anywhere — this reconciles two exports after the fact, which is exactly why it suits clinics with restrictions on their site.

They say

Our bookings and payments are in different systems.

We say

That is the normal case, and the reason this works as two files rather than an integration. They never have to talk to each other.

They say

A lot of our clients come from Instagram organically.

We say

Organic social lands in Direct / Unknown unless it appears in a lead export. That is honest, and quantifying it is useful — it is often larger than people expect.

Pricing

Flat monthly pricing. No per-call fees.

The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Growth usually fits aesthetic clinics and dermatology practices — thirteen months of history to compare a month to the same month last year, and a PDF you can put in front of whoever holds the budget.

Questions

Questions we get about Med Spas & Dermatology.

Anything else? Talk to us — a person answers, usually the same day.

Completed, paid treatments: client phone or email, the amount, and the date. Nothing clinical.

Where your sales already are

What to export, by system.

All systems

CallTrackingMetrics

CallTrackingMetrics attributes the contact. Match those contacts against your sales export and rank channels on the money rather than on the volume.

What to export

Boulevard

Export completed appointments from Boulevard, upload the leads that produced them, and rank marketing on what clients actually spent.

What to export

ezyVet

Export invoiced visits from ezyVet, upload the inquiries beside them, and rank marketing on what clients billed rather than on appointments booked.

What to export

Square

Export your Square transactions, upload the inquiries beside them, and find out which marketing produced the people who walked in.

What to export

Mindbody

Export your Mindbody sales, upload the leads that produced them, and rank marketing on what members spent rather than on trials booked.

What to export

Curve Dental

Export collected production from Curve, upload the inquiries beside them, and rank marketing on what patients actually paid for.

What to export

Mangomint

Export your tickets from Mangomint, upload the leads that produced them, and rank marketing on client value rather than on bookings.

What to export

Phorest

Export your sales, upload the leads that produced them, and find out which channels produce clients who stay rather than clients who visit.

What to export

Vagaro

Export your sales from Vagaro, upload the leads that produced them, and stop paying to acquire clients who were already coming.

What to export

Birdeye

Export Birdeye conversations as your lead file, match them against closed revenue, and find out what the widget and the listings are worth.

What to export

Meta Ads

Export your lead ads, match them against closed sales, and find out which campaigns produced customers rather than contact details.

What to export

Pinterest Ads

Export your Pinterest leads, match them against closed sales, and measure the channel across the length of the project rather than the length of a report.

What to export

ChiroTouch

Export collections from ChiroTouch, upload the leads behind them, and rank marketing on the plan rather than the first appointment.

What to export

Zenoti

Export sales from Zenoti, upload the leads behind them, and get guest value per source per location.

What to export

PatientNow

Export inquiries and treatment revenue from PatientNow, join them, and rank channels on treatments rather than on consultations booked.

What to export

Fresha

Export sales from Fresha, upload your lead sources, and stop paying to acquire clients who were already arriving.

What to export

WellnessLiving

Export sales from WellnessLiving, upload the leads behind them, and rank channels on members rather than on intro passes.

What to export

Acuity Scheduling

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

What to export

Yelp

Capture Yelp calls and requests as leads, match them against closed sales, and separate what the ads added from what the listing would have brought anyway.

What to export

Start today

Stop guessing which ads pay off.

Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.