Med spa marketing ROI by location: count booked treatments, not DMs

Med spa marketing ROI by location: count treatments from Zenoti, Boulevard or Mindbody, net out promo pull-forward, and fund the locations that grow.

By The Countlift team · · 10 min read

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.

From engagement to completed treatments at one locationIllustrative. One month of an Instagram campaign produced 2,400 saves, DMs and comments, 180 consult requests, 120 booked consults, 92 attended consults and 61 completed treatments, 34 of them first-visit clients. The green row, completed treatments, is the one to count.ONE LOCATION · ONE MONTHILLUSTRATIVE · LOG SCALEAD PLATFORM SEESBOOKING SYSTEM SEESSaves, DMs and comments2,400Consult requests180Consults booked120Consults attended92Completed treatments61of which first-visit clients34Count the green row. 2,400 engagements became 61 completed treatments, and some of those would have booked anyway.
Illustrative. One month of an Instagram campaign at one location. Engagement is easy to count and far from revenue. Completed treatments are what the booking system records for every client.

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.

What to pull from the booking system, and the traps in each field
FieldWhy it mattersWatch out for
Location and service dateTies each treatment to a location and a weekUse the date the treatment happened, not the date it was booked
Status: completed, no-show, cancelledOnly completed treatments earn anythingLate cancels that kept a deposit still count as $0 treatments
First visit flagSeparates new clients from returning onesClients who moved between your locations aren’t new
Service categoryToxin, filler, laser and body have very different marginsPackages sold up front but redeemed over months
Ticket after discountFeeds contribution per treatmentMembership 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.

Weekly treatments at promo locations and their twinIllustrative. During the four promo weeks the promo locations run about 90 treatments a week above their twin, 360 in total, shown in green. In the four weeks after, they run about 35 a week below it, 140 in total, shown in amber. Net extra: 220 treatments.WEEKLY COMPLETED TREATMENTS · 4 PROMO LOCATIONSILLUSTRATIVE550600650700750$50-OFF PROMO+360 during the promo−140 borrowed from laterNet extra = 220WK 1WK 5WK 9WK 12Promo locationsTwin (steady-spend locations)AddedBorrowed
Illustrative. Weekly treatments at four promo locations and their twin. The promo adds a green bump, then the next four weeks run below the twin (amber): bookings that were borrowed, not added.

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.

Illustrative. Extra completed treatments vs the twin, eight-week read, $8,000 of media per location
LocationPromo weeks 1–4Weeks 5–8Net extraCost per net extraMedia ROI
Location A+120−3090$89170%
Location B+100−3565$12395%
Location C+90−3555$14565%
Location D+50−4010$800−70%
All four+360−140220$14565%
  1. 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.
  2. Eight-week read. In weeks 5–8 they did 140 fewer than the twin. Net extra = 360 − 140 = 220 treatments.
  3. Media ROI. 220 × $240 = $52,800. ($52,800 − $32,000) ÷ $32,000 = 65%. Positive, but less than half the naive figure.
  4. 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.
  5. 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.

Sample Countlift scoreboard for a med spa promoSample screen. Across four promo locations: 220 net extra treatments, 145 dollars per net extra treatment and a 65 percent media return. Location A adds 11.3 treatments per 1,000 dollars, B 8.1 and C 6.9, all in green; Location D adds 1.3 with a range that crosses zero, in amber, because its injectors were 92 percent booked.CountliftLocation scoreboard · Spring tox promo · 8-week readSAMPLENet extra treatments220range 120 to 320Cost per net extra treatment$145media onlyLocations not adding1 of 4capacity-limitedNET EXTRA TREATMENTS PER $1K · 95% RANGELocation A11.3Location B8.1Location C6.9Location D1.3Injectors 92% bookedMove Location D’s spend to A and B until D adds an injector day.
Illustrative sample screen. Locations ranked by net extra treatments per $1,000, with 95% ranges. Location D is flagged because its injector schedule ran above 90% booked before the promo began.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Keep reading

IndustriesRestaurant marketing attribution by location: count covers, not clicksRestaurant marketing attribution by location, done with covers from Toast or Square: separate ad lift from LTOs, delivery and weather at every store you run.11 min read · Read guide →IndustriesRetail store marketing attribution: how to measure in-store sales lift by storeRetail store marketing attribution that holds up: measure in-store sales lift by store from POS data so retail media, CTV and circulars stop double-counting.10 min read · Read guide →IndustriesUrgent care marketing ROI per clinic: visits, flu season and wait timesUrgent care marketing ROI per clinic: count daily visits, separate flu season from the ads, and stop paying for patients your busiest clinics can’t see.10 min read · Read guide →MethodologyHow MarketTwin™ worksThe method behind every Countlift read: comparable locations, twin markets, intervals and placebo checks.Read the method →

See which of your markets your ads actually move.

Your first location report is free at any size. No card, no customer records.