Last Updated: October 29, 2026
Quick Summary
Marketing ROI for healthcare services is calculated by comparing the profit a campaign produces against what it cost, but the calculation must follow patients past the booking. Count every marketing cost, including staff time and software, and measure kept appointments rather than bookings. Then run the math twice, once on gross charges and once on collected, contribution-margin-adjusted revenue.
Marketing return on investment is the profit a campaign produces, divided by what the campaign cost. In healthcare, that simple formula breaks down fast. A retail sale closes at the register. A new patient may see an ad, call a clinic, wait two weeks for an appointment, and return months later for a visit that is billed to insurance. (Source: HIPAA's Privacy Rule)
Healthcare has longer decision cycles, insurance-based revenue, and strict privacy rules. Each one makes ROI harder to pin down. A lead count alone tells you very little about what the clinic actually earned.
Clinic marketing teams often run into these same gaps. The fix starts with measuring what happens after the click, not before it.
Most clinics underestimate their marketing cost because they only count media spend. A true cost figure includes every expense tied to getting a patient through the door. Clinic-specific ROI formulas and benchmarks to compare your numbers against are covered in How to Calculate Marketing ROI for Clinics.
Include these costs in your total:
Including software fees, agency costs, and staff time when calculating campaign cost gives a more accurate picture. Leaving these out makes your ROI look better than it is.
Patient acquisition cost (PAC) is the total marketing cost divided by the number of new patients acquired in the same period. The formula is simple:
PAC = Total marketing cost ÷ New patients acquired
Use a consistent period, such as one calendar month or one quarter. Count only new patients who completed a first visit, not every inquiry or form fill.
Compare PAC with the value of a new patient. Calculating average lifetime value for a new patient is essential, and that value varies by service type. A PrEP patient on a recurring cadence has a very different lifetime value than a one-time urgent care visit.
Watch for this pattern: a PAC that looks low can still lose money if the patients acquired rarely return. Always pair PAC with lifetime value.
A booked appointment is not revenue. A kept appointment is. You can see how to connect marketing spend to patient appointment volume with HIPAA-compliant attribution. Tracking kept visits is the step that separates a useful ROI number from a vanity metric.

Here is how to connect campaigns to kept appointments:
Healthcare marketing return should be framed around care actually delivered, separating scheduled visits from completed care. That distinction matters. A campaign that fills the schedule but produces a high no-show rate is worth far less than its booking count suggests.
Keep this data inside your CRM and EHR. Never send patient-level details into ad platforms or analytics tools. The full HIPAA compliant marketing guide for FQHCs covers BAAs, PHI-safe tracking, and vendor vetting.
A worked example shows how the pieces fit together. The numbers below are illustrative, not benchmarks. Replace them with your own figures.
Assumptions (illustrative):
Calculation, gross basis:
Calculation, realized basis (the number that matters): (Source: HIPAA-compliant CRM solutions)
That swing from +89% to −65% is not a rounding error. It is the difference between a campaign that looks profitable on a dashboard and one that actually funds the clinic.
Sensitivity: change one variable at a time.
Key Takeaway
Report both the gross ROI and the realized ROI to leadership. The gross number tells you whether the campaign generated demand. The realized number tells you whether the demand was worth having. A campaign with strong gross ROI and negative realized ROI is a payer-mix or coding problem, not a marketing problem.
Add repeat visits and lifetime value without overstating them. A PrEP patient on a quarterly cadence, an OB patient through a pregnancy, and a 340B-covered entity patient filling specialty prescriptions all have different multi-year value. Pull actual visit counts from the EHR for cohorts acquired 12, 24, and 36 months ago rather than assuming a lifetime value. Clinics that guess at LTV tend to guess high, which inflates every downstream ROI number.
Separate service lines before you average. A blended ROI across all service lines hides the losers. Run the calculation per line: PrEP, STD testing, primary care, women's health, urgent care.
Document every input. Whatever tool you use, record the assumptions, the source of each number, and the date pulled.
HIPAA compliance is not a checkbox at the end of the ROI process. It is the architecture that determines what you can measure at all.
A workable pattern is to keep patient-level data inside systems covered by a Business Associate Agreement (BAA) and send only aggregated, non-identifying signals outward.
The compliant measurement stack:
Watch Out
Do not put PHI in ad platform conversion pixels, custom audiences, or UTM parameters. A patient's name, date of birth, diagnosis, or appointment reason must never appear in a URL, a pixel payload, or an audience upload. Placing PHI in these tools is a common compliance failure in clinic marketing stacks.
Attribution windows and multi-touch journeys. A patient may see a Google ad, read a blog post, ask a friend, call the clinic, and book three weeks later. Crediting the last click overstates paid search and understates content and local SEO. Pick a window (30, 60, or 90 days depending on the service line), document it, and apply it consistently. For PrEP and sexual-health programs with longer consideration cycles, a 90-day window is often more honest than 30. Report first-touch, last-touch, and a simple linear split side by side so leadership can see how sensitive the answer is to the model.
Measurement windows for delayed visits and repeat care. A campaign that books appointments weeks out may look weak in the first month and stronger later once bookings convert.
Benchmarks are context, not targets. A universal healthcare marketing ROI benchmark does not exist. ROI varies by specialty, service line, payer mix, geography, and channel.
Key Takeaway
Compliant ROI measurement is a data-architecture decision, not a legal review at the end. Keep PHI inside the BAA perimeter, send only aggregated counts to ad platforms, document your attribution window, and report acquisition and retention separately. Do that and the ROI number is both defensible and useful.
Start with one campaign, one service line, and one clean measurement period. Trying to measure everything at once usually produces numbers nobody trusts.
Before you commit to a review, prepare:
The Marketing Lab offers a free 30-minute strategy call where we review your current numbers and identify measurement gaps. Book at https://thelab.marketing/schedule.
Start with total marketing cost for the period, including ad spend, software, agency fees and staff time. Multiply new patients who kept their first visit by the expected net revenue per patient, then subtract marketing cost and divide by marketing cost. Use gross margin per patient rather than gross collections, because billing, staffing and supply costs change what a new patient is worth. Run the same calculation for each service line so a high-volume campaign does not hide a weak one.
There is no single benchmark that fits every practice, because patient value differs by service line, payer mix and visit cadence. The more useful question is whether the cost per kept visit stays below the expected margin from that patient across their first year of care. Compare results against your own prior periods and against a test market where you paused spend, rather than against published averages that may use different definitions.
Keep patient identifiers inside the EHR or a BAA-covered CRM, and send only aggregate counts and campaign codes to ad platforms and analytics tools. Do not pass appointment details, diagnosis names or phone numbers into tracking pixels. Match bookings back to campaigns through UTM codes captured at intake, then compare totals against EHR visit records each month to confirm the numbers reconcile.
Assign a unique source code to each campaign, landing page and phone line, and record it on the scheduling record when the patient books. Count a visit as marketing-attributed only when the appointment is marked attended in the EHR. Divide total spend for the campaign by kept visits to get cost per kept visit, and track no-show rates separately so you can see where marketing volume is lost after booking.
Book a Free Strategy Call
Add thelab.marketing as a preferred source on Google →
Bring us your patient acquisition, 340B program, or compliance bottleneck. We will show you what a 30-day launch looks like for your clinic — in English or Spanish, month to month, no long contract.