Program revenue, not signups
Rank channels by revenue billed across the program rather than by first payments.
Marketing attribution for Weight Loss Clinics
Match program revenue and repeat prescriptions to the inquiries and ads that produced the patient — because month one is not the business.
$194,400 72% of $270,000 paid
The blind spot
Inquiry volume in this category is enormous and cheap. Program revenue depends entirely on how long patients stay, and inquiry counts say nothing about that.
What you get
Rank channels by revenue billed across the program rather than by first payments.
Run over a longer range and every month a patient stays traces to the acquiring channel.
No scripts, no tracking numbers. Two exports.
A worked example
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.
| Channel | Sales | Revenue | Share | % |
|---|---|---|---|---|
| Meta Ads | 214 | $97,200 | 36% | |
| Google Ads | 138 | $62,100 | 23% | |
| Email marketing | 96 | $35,100 | 13% | |
| Direct / Unknown | 171 | $75,600 | 28% |
A weight-management program earns over months. A patient who signs up and stops after four weeks is worth a fraction of one who stays a year, and channels differ enormously on that measure.
Ranking by program revenue over a longer range rather than by signups shows which channel produces patients who continue. It is common for the cheapest signup source to have the worst retention by a wide margin.
GLP-1 demand made inquiries abundant and cheap, which made cost per lead look excellent everywhere and stopped distinguishing between channels at all.
Revenue per acquired patient still distinguishes them sharply. That is the number that survives a demand spike.
In a medication-led program a substantial portion of what the patient pays leaves again to cover supply. Two campaigns can therefore produce identical revenue and quite different contributions, because one recruited patients onto a program tier with a high drug cost and the other filled a coaching and monitoring tier where almost everything stays in the clinic. Revenue alone ranks them as equals. The clinic's own bank balance does not, and the gap widens every month the wrong campaign is funded.
This is not an argument against ranking on revenue, which remains the right first instrument, but it is an argument for reading revenue per sale beside it. The channel ranking shows each source's sale count and revenue, so a book built on large numbers of low-value enrollments is visible as such rather than hiding inside a total. A program-tier column would make it explicit, but the program somebody is on is health information, and it stays out of a file sent to a vendor that signs no business associate agreements. Read on its own, revenue will eventually persuade a clinic to double down on the work it makes least money from, which is a hard mistake to reverse once the diary is full of it.
What the breakdown cannot show is which campaign feeds which tier, because it does not rank channels within a tier. If tiers turn out to be unevenly reached by marketing — the premium program mostly attributed, the entry tier mostly unexplained, or the reverse — that is already a decision about which tier the clinic wants more of, made on figures rather than on whichever advert produced the most telephone calls last week.
The commercial model here is a subscription wearing a clinic's clothes. A patient enrolling at $299 a month is worth $299 or $3,600 depending entirely on how long they stay, and the difference is settled somewhere around the third or fourth month, when the initial results have arrived and the novelty has not. Sources differ substantially in how many of their patients reach that point, and the differences do not correlate with what the enrollments cost to acquire. Enrollment counts treat the two patients as equal on the day they sign, which is the one day on which that is true.
Nothing available on the day of enrollment predicts it, which is why cost per enrollment has become the default metric and why it keeps producing disappointing quarters. A campaign that fills the diary in January and empties it by May looks excellent for four months and is then blamed on retention, the coaching team or the season. The pattern is only legible when each month's charge is credited back to the inquiry that produced the patient in the first place.
That is a matter of exporting twelve months of charges with the patient's contact detail on every row and running the report across the whole period. Recurring charges join to the same person and therefore to the same original source, so the ranking becomes revenue per enrollment rather than enrollments per dollar. It is common for the order to reverse outright, and for the source everyone had written off to be the one producing patients who are still paying in the autumn.
A local clinic with a scale, a phlebotomist and a physician in the building is competing for search terms against remote programs that operate at national scale and price accordingly. Those competitors can afford a cost per inquiry that would be ruinous locally, because their delivery costs almost nothing per additional patient. A clinic benchmarking its own cost per lead against what it assumes the market pays is comparing itself to a business with a different cost structure and drawing conclusions that do not apply to it.
The local advantage is real but it shows up later in the relationship rather than at the click: patients who come in, get measured, are seen by someone who remembers them, and stay longer as a result. That is a retention advantage and retention is exactly what cost per lead cannot see. So the local clinic looks expensive on the metric it can measure and is stronger on the metric that decides the year, and it usually cuts spend on the strength of the first.
Measuring on collected revenue per inquiry rather than cost per inquiry is what corrects the comparison, and it can be done for a period that has already closed because the billing records were kept anyway. A clinic that runs the last twelve months this way gets a defensible figure for what a patient from each source is genuinely worth, which is the only number that makes bidding against a national operator a decision rather than a nerve test. It also gives the clinic something to say internally when the cost per lead rises again, which it will, and the answer stops being an argument about whether the market has got worse.
Why it matters
"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.
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.
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.
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
Then the question is not volume but which channel produces patients who stay — which is exactly what ranking on program revenue answers.
Run the report over a longer range and their whole history traces back to the acquiring channel.
The match needs a contact detail, an amount and a date. Keep prescriptions and clinical notes out of the export.
Pricing
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 medical weight management and GLP-1 providers — 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.
A business scaling ad spend
$49/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Billed program revenue: a patient contact email or phone, the amount, and the date.
Yes — run the report over several months and compare revenue per acquired patient.
Not with a column: the program tier somebody is on is health information, and it stays out of a file sent to a vendor that signs no business associate agreements. The channel ranking shows each channel's sale count beside its revenue, so a difference in value per patient still shows.
A phone number or an email, an amount and a date. Program and prescription detail are not read by the match, so leave them out of the export.
No. Nothing beyond the three matching fields is required or read.
Yes, with a location column.
Yes. Those cases were recorded because you billed for them rather than because anybody was tracking, so a finished year matches exactly as well as the current one.
Billed rows analyzed in a calendar month. Inquiry rows do not count.
Yes. Every charge carrying the patient's contact detail joins to the inquiry that produced them, so the report shows revenue per enrollment across the whole period rather than just the first payment.
Not with a column: the program tier somebody is on is health information, and it stays out of a file sent to a vendor that signs no business associate agreements. Running the report over several years credits recurring payments to the inquiry that produced the patient.
Export what the patient paid; the report ranks on revenue. Read it with the sale count beside it and your own margin in mind, so a high-revenue, low-contribution part of the book is not mistaken for the best one. A column marking medication or tier is not one to add, because it is health information.
Include them if the patient paid for them. They join to the same person, credit the same source, and leaving them out understates the in-clinic model against anything sold purely as a monthly subscription.
Export the reduced charges as ordinary rows. A source producing patients who stay into maintenance at a lower rate can still outperform one producing short enrollments at the full price, and the report will show it.
Not with a column: how somebody receives care is health information, and it stays out of a file sent to a vendor that signs no business associate agreements. A location column mapped as Location is the breakdown to use.
CloseRev does not sign HIPAA Business Associate Agreements and is not built for protected health information. Upload only program payments — a phone number or email, the amount and the date — never weights, prescriptions, lab results or consultation notes. If your patients' phone numbers and emails count as PHI under your obligations, talk to your compliance lead before using CloseRev.
Nearby
Match completed cases to the campaigns that produced the inquiry, a seminar and months of program earlier.
See how it worksMatch completed, paid treatments to the inquiries and ads that produced them — including the packages bought months after the first consultation.
See how it worksMatch your billing export to your call and ad data, and see which channels produced procedures that were paid for rather than inquiries that were not.
See how it worksWhere your sales already are
Export completed appointments from Boulevard, upload the leads that produced them, and rank marketing on what clients actually spent.
What to exportExport your Mindbody sales, upload the leads that produced them, and rank marketing on what members spent rather than on trials booked.
What to exportExport your tickets from Mangomint, upload the leads that produced them, and rank marketing on client value rather than on bookings.
What to exportExport your sales from Vagaro, upload the leads that produced them, and stop paying to acquire clients who were already coming.
What to exportExport your lead ads, match them against closed sales, and find out which campaigns produced customers rather than contact details.
What to exportExport collections from ChiroTouch, upload the leads behind them, and rank marketing on the plan rather than the first appointment.
What to exportExport inquiries and treatment revenue from PatientNow, join them, and rank channels on treatments rather than on consultations booked.
What to exportExport sales from Fresha, upload your lead sources, and stop paying to acquire clients who were already arriving.
What to exportExport sales from WellnessLiving, upload the leads behind them, and rank channels on members rather than on intro passes.
What to exportFrom the blog
Multi-site healthcare groups usually conclude that attribution is off limits because the data is clinical. It is not, because attribution does not need clinical data. What it needs is a phone number, an amount and a date, and there is a way to handle even those properly.
Read the articleCall tracking answers one question well: which campaign produced the ring. It has no view of what happened after the call ended, which is where the money is decided. This is what the gap costs, and how to close it without replacing the call tracker you already have.
Read the articleThe cheapest leads you buy can turn into your most expensive customers. Customer acquisition cost by channel divides what a channel cost by the new customers it actually produced, and for a business that closes by phone or in person those customers live in the sales records, not the ad dashboard. Here is the formula, which customers to count, fully loaded against paid-media CAC, blended against per-channel, untraced customers, payback and time lag, with a worked example where cost per lead and CAC rank four channels in different orders.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.