Med spa marketing ROI by location is the extra treatments each location booked because of the ads, valued at what a treatment actually earns you, minus what the ads cost, divided by what they cost. The hard part is “extra”. You get it by comparing each location with a weighted blend of your other locations where spend didn’t change over the same weeks.
Two habits make most med spa ROI reports wrong. The first is counting engagement and consult requests instead of treatments. The second is judging a promotion on the month it ran, when a good part of what it “added” was borrowed from the month after. This guide fixes both, with a worked example you can copy.
What med spa marketing ROI by location actually means
You need three numbers per location. Each is easy to get roughly right and easy to get badly wrong.
- Extra treatments. Completed treatments at the location above what it would have done without the spend. Not total treatments, and not leads.
- Contribution per treatment. Average ticket after discounts, minus product cost (units, syringes, consumables) and provider pay. A $480 neurotoxin ticket might leave $240 once units and injector commission are paid.
- Spend that reached the location. Paid social, search and creator fees aimed at the location’s market, plus the cost of any discount you funded. More on that below.
ROI is (extra treatments × contribution − spend) ÷ spend. Run it on contribution, not revenue. Product and provider costs swing a lot between a laser package and a tox touch-up, and revenue ROI hides that.
Most med spas measure this badly because most are small. AmSpa counted 10,488 med spas in the US in 2023, 81% of them single-location, with multi-location groups running nine locations on average (Source: American Med Spa Association, 2024). Nine locations is enough to compare locations with each other. One isn’t, and single-location measurement is a different problem.
What to count: DMs, consults, treatments or new clients?
Pick the count that sits closest to money and that your booking system records for every client, however they arrived. For most groups that’s completed treatments, with first-visit clients reported as a second line.
Consult requests are tempting because they move fast and the ad platform can see them. But a free consult is a booking, not a sale. Some no-show. Some decide against filler at the chair. Some book a treatment that would have happened anyway because they were already a client.
| Field | Why it matters | Watch out for |
|---|---|---|
| Location and service date | Ties each treatment to a location and a week | Use the date the treatment happened, not the date it was booked |
| Status: completed, no-show, cancelled | Only completed treatments earn anything | Late cancels that kept a deposit still count as $0 treatments |
| First visit flag | Separates new clients from returning ones | Clients who moved between your locations aren’t new |
| Service category | Toxin, filler, laser and body have very different margins | Packages sold up front but redeemed over months |
| Ticket after discount | Feeds contribution per treatment | Membership credits and gift cards redeemed at $0 |
Zenoti, Boulevard, Mindbody and Vagaro can all export appointments or sales by location to CSV. You want one row per location per day: completed treatments, first visits and revenue. No names, no phone numbers, no treatment notes. Agree the definitions before anyone sees results, or someone will redefine “treatment” after a disappointing read. (Our med spa page shows what a location-level read looks like.)
Why med spa promotions pull bookings forward
Med spa revenue runs on returning clients. AmSpa reports that 73% of med spa patients are repeat patients, spending an average of $527 a visit (Source: American Med Spa Association, 2024). That’s great for the business and awkward for measurement.
A regular who gets tox every 12 weeks doesn’t need to be told you exist. If you run “$50 off neurotoxin this month”, she books week 10 instead of week 12. Your promo month looks busy. The month after looks oddly quiet. Nobody new walked in.
The fix is simple and non-negotiable: read every promotion over a window at least twice as long as the promo itself. Four-week offer, eight-week read. If the after-period dips below the twin, subtract it. What’s left is the net effect. For more on timing short offers, see how to measure a limited-time offer.
Worked example: a spring neurotoxin promo across four locations (illustrative)
A 12-location med spa group runs a four-week spring offer: $50 off any neurotoxin treatment. Four locations get $2,000 a week each of Meta, Google and two local creator posts, $8,000 per location and $32,000 in all. The other eight locations keep normal spend and show the offer only in-house. Contribution per completed treatment, after units and injector pay, averages $240.
| Location | Promo weeks 1–4 | Weeks 5–8 | Net extra | Cost per net extra | Media ROI |
|---|---|---|---|---|---|
| Location A | +120 | −30 | 90 | $89 | 170% |
| Location B | +100 | −35 | 65 | $123 | 95% |
| Location C | +90 | −35 | 55 | $145 | 65% |
| Location D | +50 | −40 | 10 | $800 | −70% |
| All four | +360 | −140 | 220 | $145 | 65% |
- Naive read. The four locations did 360 more treatments than the twin during the promo. 360 × $240 = $86,400 on $32,000 of media: a 170% return.
- Eight-week read. In weeks 5–8 they did 140 fewer than the twin. Net extra = 360 − 140 = 220 treatments.
- Media ROI. 220 × $240 = $52,800. ($52,800 − $32,000) ÷ $32,000 = 65%. Positive, but less than half the naive figure.
- Discount cost. 1,000 clients redeemed the $50 offer at the four locations. Only 220 were net extra, so 780 × $50 = $39,000 went to clients who would have booked anyway.
- Full return. $52,800 − $32,000 − $39,000 = −$18,200. Media plus offer lost money, even though the ads themselves worked.
That last line is the one owners never see, because the discount sits in a different report from the ad spend. The lesson isn’t “never discount”. It’s that next spring this group should test the ads without the offer at two locations and with it at two others. Then it knows whether it’s paying for advertising, for a discount, or for both.
Location D is the other story. It did 50 extra treatments during the promo and gave back 40 of them. In practice that pattern usually means the location was already close to full: its injector books were tight, so the promo reshuffled appointments instead of adding new ones.
Reading ROI location by location
A group-level number hides the decision you actually have to make, which is where the next dollar goes. Line every location up on the same three measures: net extra treatments, cost per net extra treatment, and the share of extra treatments that were first visits.
Before you cut a weak location, check provider capacity. Med spa capacity is injector hours, not rooms. If a location’s nurse injectors were already 90% booked, more ads can only move appointments around. Add an injector day first, or point the money at a location with open chairs.
Creators, memberships and other med spa specifics
Creator and influencer posts
A local creator post is a burst of media in one market on one day. Log the fee, the post date and the market, then measure it like any other spend: treatments at that location against the twin over the next four to six weeks. Promo-code redemptions undercount it (people forget codes) and overcount it (regulars find codes). Our guide to measuring influencer marketing by store goes deeper.
Membership drives
A membership push is a pull-forward machine by design. Most sign-ups in month one are existing clients converting. Count new members who were not clients in the prior 12 months as the result, and treat converting regulars as a pricing decision, not a marketing win.
Seasonality
Pre-summer body treatments, holiday-party toxin and January laser all move bookings across every location at once. A twin built from your own steady-spend locations lives through the same calendar, so the season cancels out. Comparing this April with March doesn’t.
How to set up a location test for your next campaign
- Pair your locations. Group locations whose weekly treatments tracked each other over the past year. Within each pair, flip a coin for which one gets the spend.
- Separate the offer from the media. If you can, run ads without a discount in some locations and with one in others. Otherwise you can’t tell which one did the work.
- Check capacity first. Leave out locations whose injector schedules are already above about 85% booked. They’ll tell you nothing except that they’re full.
- Run at least six weeks, read for twice the promo. A three-week flight with a three-week read can’t separate a few dozen treatments from ordinary week-to-week noise. See how long a geo test should run.
- Size the spend. If a location does 150 treatments a week and your test can detect a 10% lift, you need 15 extra a week. At $145 each, that’s about $2,200 a week per location. Spend less and you’re buying a shrug.
Countlift’s location test designer runs the same arithmetic from your own history and shows the smallest lift each pairing could detect, before you spend anything.
Common mistakes in med spa marketing ROI
- Counting consult requests. A booked consult isn’t revenue. Some don’t show and some never buy.
- Reading the promo month alone. The dip that follows is part of the result. Leave it out and you overstate ROI, often by half.
- Ignoring the discount. Dollars off for regulars are a real cost and can wipe out a working campaign.
- Revenue ROI on mixed services. Laser, filler and tox carry very different margins. Use contribution.
- Comparing with last month. Seasons and paydays move every location. Compare with steady-spend locations over the same weeks.
- Funding full locations. If the injectors are booked out, the ads are paying to reshuffle the calendar.
Questions people ask about med spa marketing ROI
What is a good marketing ROI for a med spa?
There’s no honest universal benchmark, because contribution per treatment varies widely by service mix and provider pay. Set your own floor instead: if you want every media dollar back twice in contribution and a treatment leaves $240, you can pay up to $120 per net extra treatment. Locations above that should lose budget to locations below it.
How much should a med spa spend on marketing per location?
Start from what a location can absorb. A location with open injector hours can turn spend into treatments; a full one can’t. Size spend so a test can detect the lift you care about, then move budget toward locations whose measured cost per extra treatment is lowest. Spending evenly across locations is the most common way to waste it.
How do I export bookings from Zenoti or Boulevard?
Run an appointments or sales report by location for the date range, filtered to completed services, and export it to CSV. Include service date, location, first-visit flag, service category and ticket after discount. Countlift takes that file as a daily or weekly upload, and you map the columns once.
How do I know if a promotion just pulled bookings forward?
Compare the promo locations with steady locations for the promo weeks and for the same number of weeks afterwards. If the promo locations run below their comparison after the offer ends, those are borrowed bookings. Subtract them from the promo-period gain to get the net effect.
Do I need client names or treatment records to measure this?
No. Location-level ROI needs daily counts of completed treatments and first visits by location, plus revenue if you want it. Names, contact details, photos and treatment notes never need to leave your booking system.
Measured on treatments over a long enough window, most med spa groups find the same split: a few locations where ads bring new clients in, and a few where they mostly move regulars’ appointments around. Fund the first group. Fix capacity at the second before you spend another dollar there.
Next step
Put your own locations through the comparison.
Your first location report is free at any size. Bring a CSV of weekly sales and spend, or connect your POS and ad accounts.
Written by The Countlift team at First Byte in The Woodlands, Texas. Questions or corrections? Email hello@countlift.com.