Med Spa, Aesthetics & Wellness · project showcase · measurement
A first-party consultation ledger, because the aesthetics industry doesn't publish one
There's no credible published figure for what a med spa consultation costs to generate, and none for how many consultations become treatments. This is the ledger we build instead: a non-clinical record that produces both numbers from the practice's own funnel inside a single quarter.
At a glance
The engagement in brief
Services
- Reporting
- CRM
- Booking Intake
- Landing Pages
Stack
- Booking platform
- CRM
- call tracking
- paid media platforms
- reconciliation workbook
The situation
What we walked into
Med spa marketing plans are full of targets for consultation cost and consultation-to-treatment conversion. Ask where the targets came from and the trail ends: the industry publishes revenue, location counts and market size, and it publishes nothing about the funnel. Practices end up benchmarking against numbers that were invented by someone else's agency and repeated until they sounded official. The practice then reports against that target every month, treats the variance as performance, and makes budget decisions on the difference between its real funnel and somebody's guess.
Every med spa marketing plan we have reviewed contains a consultation-to-treatment conversion target, and not one of them could say where the number came from.
What we found
The diagnosis
01
The absence is real, not a search failure
Revenue per location, industry size and practice counts are all published and consistent across sources. Cost per consultation and consultation-to-treatment conversion are not published by any source that discloses its sample or its method. A ledger is the only honest way to get them.
02
The ledger has to be non-clinical by design or it cannot exist
Consultation outcomes recorded as treatment names turn a marketing spreadsheet into a clinical record. Outcomes are coded, treatment is stored as a broad non-clinical category, and anything specific stays in the practice system where it belongs.
03
Three outcome codes, not two, and the third is the one that matters
Booked and declined miss the largest group: deferred. A consultation that ends 'not right now' is neither a loss nor a win, it is a follow-up with a date on it, and a two-code ledger deletes that group from the numbers entirely.
04
Reconciliation is monthly and manual on purpose
The booking platform, the CRM and the practice system will disagree. Reconciling them once a month by hand surfaces the disagreements while they are still small, and it is how the definitions get fixed. Automating this before the definitions are stable automates the error.
The number behind it
What this is built around
The aesthetics industry **publishes its size in detail and its funnel not at all** — average practice revenue **~$1.4M** and a top-of-funnel lead cost of **~$39** are known (AmSpa 2024; WordStream 2026), but consult economics aren't, so they have to be instrumented. Treatment mix supports the model: neuromodulators are the #1 minimally-invasive procedure (~35% of volume), fillers #2 (~19%) (ASPS 2024), both with natural retreatment intervals.
What we built
The system
Every enquiry is tagged with its acquisition source at the moment of creation, not attributed later. The consultation record carries four fields and no more: source, outcome code, broad treatment category, and whether a deposit was taken. Outcomes are booked, declined or deferred, with a follow-up date required on deferred. Once a month the ledger is reconciled against the practice system's own count of consultations held, and the difference is investigated rather than smoothed. After one quarter the practice has its own cost per consultation and its own consultation-to-treatment rate, which is one quarter more than the published literature offers.
The sequence
How it was delivered
Week 1
Definitions
What counts as a consultation, agreed in writing before anything is counted
Owner: OmniFlow + practice
Weeks 1–2
Field build
Four fields in the CRM, outcome codes constrained to a list, follow-up date required on deferred
Owner: OmniFlow
Weeks 2–3
Source tagging
Acquisition source written at enquiry creation across every route including phone
Owner: OmniFlow
Week 6
First reconciliation
Ledger compared to the practice system count, definitions corrected
Owner: OmniFlow + practice
Outcome
What shipped
This entry makes no performance claim. It documents a measurement artefact and the reason it has to exist: two of the numbers every med spa plans against are not published anywhere credible, so the practice either measures them or borrows someone's guess. The build is deliberately small — four fields, three outcome codes and a monthly reconciliation — because the failure mode here is not an incomplete ledger, it is an elaborate one that nobody keeps up after the first quarter. Everything in it is a field somebody already had to fill in for another reason.
Reporting
What you would actually see
These are the surfaces this engagement is run and measured from, shown with representative figures built around the benchmarks cited on this page. Every account we run reports into views like these, and you keep ownership of all of them.
These are demo dashboards. They show the reporting surfaces this engagement is run and measured from, with representative figures generated around the published benchmarks cited on this page — not a client account and not a client result. Live reporting for your own account replaces every number here.
Google Analytics 4
Med Spa, Aesthetics & Wellness · all web data
Sessions
3,713
+85.2%
Key events
152
+106.6%
Session key event rate
4.1%
+1.1%
Engagement rate
56.1%
+6.1%
Sessions by month
Dashed line marks the month the engagement started.
| Session default channel group | Sessions | Key events | Rate |
|---|---|---|---|
| Organic Search | 1,538 | 82 | 5.3% |
| Paid Search | 892 | 37 | 4.1% |
| Direct | 578 | 30 | 5.2% |
| Referral | 419 | 21 | 5.0% |
| Organic Social | 287 | 15 | 5.2% |
CRM pipeline
Med Spa, Aesthetics & Wellness · inbound and outbound
Leads created
157
+80.1%
Qualified
79
+92.1%
Meetings booked
49
+96.1%
Answered on first attempt
60.7%
+8.9%
Leads created by month
Dashed line marks the month the engagement started.
| First-touch source | Leads | Qualified | Meetings |
|---|---|---|---|
| Google Ads — high intent | 49 | 25 | 11 |
| Organic search | 42 | 21 | 9 |
| Business Profile — call | 30 | 15 | 7 |
| LinkedIn outbound | 22 | 11 | 5 |
| Referral | 14 | 7 | 3 |
Honestly
What we would do differently
The first version of the ledger had two outcome codes, booked and not booked, which collapsed the deferred group into the losses and made the funnel look worse than it was while hiding the follow-up work entirely. Adding the third code meant re-coding a quarter of records by hand. The outcome taxonomy should be argued about before the first record is written, not after the first report.
Next
Start the same conversation
Start the same conversation
Tell us what you are working on and we will say plainly whether this is the right shape of engagement for it.