Tracking & attribution
Know what a patient costs you, not what a lead costs you.
Most practices know their spend and their lead count. Those are the two easy numbers. The hard one sits between them: how many of those leads became patients, and which marketing produced them.
That number is what this page is about. Everything below is how we get you close enough to it to act on it.
Close enough, not exact. No setup traces every patient. Somebody will always walk in because they drove past the sign, and the honest version of this work names that gap rather than quietly assigning it to whichever channel is easiest to credit.
What you are actually buying is the ability to decide.
Attribution connects money spent to patients gained. People expect the output to be a report. The output that earns its cost is a decision: where next month’s dollar goes, and which of last month’s you would not spend again.
A model you can act on this week beats a perfect one you would finish next year.
Four numbers get sold as the answer and none of them is. Sessions count visits. Form fills count intentions. Cost per lead counts media efficiency, which is a real thing and not the thing you asked. Last-click credit goes to whatever the patient touched most recently, which is often a search for your own name, months after the marketing that taught them the name.
This is also the page that adjudicates between the others. Paid search can only be priced against an appointment if something is counting appointments. Organic search takes quarters to arrive and gets under-credited by every default report. Ranking in the map near a location produces calls and driving directions, two events a website analytics tool never sees at all. Getting quoted inside an assistant’s answer leaves less trace still. The services overview shows how the four fit together.
What we do
What we connect, in the order we connect it.
The money event gets agreed before anything gets installed
The appointment, the consultation, the admission: whatever your practice counts as revenue is the event we make every account chase, and we settle it in writing before touching a tag. Skip this step and the tools below will optimise toward form fills, because a form fill is the thing they can see. An ad account chases whatever it is told to count, and it does that job well whether the instruction was right or not.
Calls, because that is how most of this demand still arrives
A tracked number per campaign and per location, so a call resolves to the thing that produced it instead of to a monthly total. In the accounts we run, calls are where healthcare attribution breaks most often. The patient searches, taps the number, books, and never touches a form. An untracked call is an invisible patient, and a channel that produces mostly calls will look like a failure beside one that produces mostly forms.
The gap between the lead and the chair, which we cannot close alone
Most agencies stop before this step, because it needs something from you. The lead has to be findable in whatever system your front desk uses, and somebody has to record what happened to it. Where the client opens that system to us, we can report a cost per patient. Where it stays closed, we report a cost per lead and say plainly that is what it is. We do not install your practice system and we do not touch patient records.
One report, readable by somebody who did not build it
Monthly, in plain language, counting the same events the same way each time. The test we use is whether your practice manager can find the bad news in it without calling us first. A dashboard with forty tiles fails that test. So does any report that quietly redefines a metric in the month the metric goes the wrong way.
The order is the opinion. Only the first step is free, and it is the one most often skipped, because it is a conversation about what your practice counts as a win rather than a piece of software to switch on.
Two accounts, and what each one can and cannot tell us.
Both are accounts we run. Neither gets named, here or anywhere else on the site, so the descriptions are the whole identification. Every figure is dated, and each one arrives with the caveat it came with.
628 leads → ?
- Spend across the period
- $6,495
- Blended cost per lead
- $10.34
- Leads traceable to a patient
- None
By the measure available, the account did well: 628 leads on $6,495 of spend, at $10.34 apiece blended across the period. What we saw underneath that number was a blind spot.
What it cannot say is how many of those 628 sat in a chair. Nothing connects the form to the practice’s own system, so no lead record leads anywhere after the enquiry. The report says so in its own appendix. That makes $10.34 a measure of media efficiency and nothing more.
It is not a cost per patient. If one lead in four becomes a patient, the real figure is four times higher, and we do not know that rate. Not knowing it is the entire problem. Connecting the two systems is the defined next step for that account.
We would rather print the gap than the better-looking number. An agency that quotes $10.34 as a cost per patient is not exactly lying. It is declining to check, and the practice pays the difference.
And a network where the number reached the admission
For a 17-location behavioral health network we did the same work with one difference. The admissions data was open to us. That changes the whole conversation, because the event being counted becomes the one the business actually runs on.
- Admissions, May 2026
- 227
- Change on April
- +4, second straight gain
- Lead-to-admit rate
- 6%, the year's best
Across January to May we measured that funnel at the admission rather than at the inquiry, and the trailing months matter more than May does on its own. Admissions ran 261 in January, fell to 206 by March, then recovered through 223 to 227. May was also the year’s best month for turning an inquiry into an admission, at 6%.
Set those two facts beside each other — admissions still under January, conversion at its best of the year — and it reads as fewer inquiries, better qualified. A reading, not a figure. We have the admissions and we have the rate.
The inquiry counts behind the other four months are not something we can put on a page, and we are not going to derive them and print the result as though we had. What makes even the reading available is that somebody connected the admissions data to the marketing. Without it, May is just a smaller number than January.
One number is deliberately absent. That network’s organic traffic is down year over year after a site migration, and no traffic figure from it belongs anywhere near an efficiency argument. The honest frame is that conversion improved while traffic reset. We keep those two facts in the same sentence, because separating them is how a report starts flattering itself.
Both accounts are told in full, caveats included, on the results page.
Who it's for
Practices where the thing worth counting happens off the website.
- Urgent care
A great deal of this demand never touches a form. It rings a phone or walks through a door, and analytics sees neither.
- Behavioral health
The truth sits in the CRM, at the admission. Everything upstream of it is a guess with a good-looking chart.
- Med spas
The booking system is usually a separate product from the website, and the two rarely speak to each other.
- Cosmetic dentists
Few cases and large ones, so monthly averages are unreliable and one traced case is worth a page of tiles.
- Dermatology
Medical and cosmetic share one form and one phone line. They are not the same purchase and should not share a number.
- Plastic surgeons
Months pass between the first visit and the consultation, which is longer than most attribution windows are set to.
Two of those six are accounts we run: the dermatology practice, where the measurement stops early, and the behavioral health network, where it does not. The remaining four get the method without a case of ours behind it. Saying so here is cheaper than saying it for the first time on a call.
The boundary
What attribution doesn’t do.
- It never sees all of it
- The patient who drove past your sign. The one a friend sent. The one who found you in March, forgot, and searched your name in July. None of that reaches a report, and a system claiming a complete picture is quietly handing those patients to whichever channel touched them last. We would rather measure the untraceable share and leave it labelled as untraceable.
- It cannot cross into a system we are not given
- A cost per patient needs your own record of what happened after the call. Where the client keeps that system closed, or nobody updates it, the ceiling is cost per lead and no amount of tagging raises it. We also keep patient information out of marketing analytics tools entirely. What we connect is lead records and outcomes. Nothing clinical goes near it.
- It does not settle the argument about credit, it narrows it
- Two channels will both claim the same patient, and no model resolves that cleanly, because the patient genuinely used both. What good tracking does is shrink the disputed share until the decision is obvious anyway. If you are waiting for a system that assigns every patient to exactly one source, you are waiting for something nobody sells.
- It does not make the decision for you
- The report will tell you which channel costs the most per patient. It will not tell you that the expensive one fills your most profitable service line, or that the cheap one is cheap because a competitor just left the auction. Those are still judgement calls. Better numbers make them shorter arguments, not automatic ones.
Attribution is never finished. The target is good enough to decide, and a practice that understands where its numbers stop is in a stronger position than one holding a report that pretends there is no edge. One warning worth carrying away: a site rebuild breaks tracking as reliably as it breaks rankings, and it is rarely on anybody’s launch checklist.
Questions
What practices ask before they hand over the analytics.
- How long until we can see what a patient costs?
- Calls and forms can be traced inside the first month. Cost per patient waits on your own system, because that is where the outcome of a lead gets recorded. Where a practice can give us that access, a first honest figure usually lands in month two or three. Where it cannot, we report cost per lead and label it as exactly that.
- Isn't Google Analytics enough?
- GA4 measures what happens on your website well and what happens afterwards badly. It does not hear the phone call your front desk answers, and it has no idea which lead became a patient. Treat it as one input of three. The other two are call tracking and whatever your practice already uses to record outcomes.
- What if we can't connect our practice management system?
- Then we build what we can and we say what is missing. Call tracking, forms, cost per lead by campaign, and a written note of the share nobody can trace. That is still worth having. We run an account in exactly that position, and it is described further up this page with the figure and the reason.
- Our agency already sends a monthly report. Why isn't that enough?
- It may be. The test is whether it names one event you would pay to get more of, counts that event the same way every month, and shows what each channel paid for it. In the accounts we run, the report we replaced was usually sessions, impressions and leads. All three are inputs. None of them tells you where next month's budget should go.
- Does call tracking change the number patients see?
- A tracked number shows in place of your own on the pages and ads it is assigned to, and it forwards to the same line. The thing to protect is your Google profile and your directory listings, where the number has to match everywhere it appears. We keep tracked numbers out of those listings for that reason.
- How far back should we look when crediting a channel?
- Further back than the default. Thirty days is reasonable for urgent care, where the search and the visit happen the same afternoon. It is far too short for a practice whose patients research for a season before booking. We set the window against how long your patients actually take, then hold it still, because moving it changes the answer.
Start with the analysis.
Send us the analytics property, the ad accounts and last month’s report. You get back which conversions are actually being counted, which of them are the same event counted twice, what your reporting cannot see at all, and the shortest route from where you are to a cost per patient. Written up and handed over before anyone talks about scope.
If your question is arithmetic rather than diagnosis, the ROI calculator runs it the other way round. A patient target goes in, the spend it implies comes out.