Started cycles, not inquiries
Rank channels by treatment actually started and billed.
Marketing attribution for Fertility Clinics
Match started treatment cycles and their value to the inquiries and campaigns that produced them, across a decision measured in months.
$513,000 57% of $900,000 paid
The blind spot
Fertility inquiries are emotional, heavily researched and slow. Most never start treatment, and the ones that do are worth twenty thousand dollars or more.
What you get
Rank channels by treatment actually started and billed.
An inquiry in January that starts in June still traces to the campaign behind it.
A contact detail, an amount and a date. Nothing clinical, ever.
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 | % |
|---|---|---|---|---|
| Google Ads | 17 | $306,000 | 34% | |
| Meta Ads | 9 | $144,000 | 16% | |
| Email marketing | 4 | $63,000 | 7% | |
| Direct / Unknown | 21 | $387,000 | 43% |
Fertility patients research for months, consult more than one clinic, and often wait for funding or a life event. Almost none of that is visible to click attribution, and the campaign that produced the patient looks like it produced nothing.
Matching on the patient rather than the session credits the started cycle to the original inquiry whenever it arrives. For a segment with this cycle length, that is the difference between measuring marketing and guessing.
This is among the most sensitive data any clinic holds, which is exactly why the match takes only a contact detail, an amount and a date. No diagnosis, no protocol, no outcome.
Nothing is installed on the site either, so there is no script on a page where a patient is reading about their own fertility. That property matters more here than almost anywhere else.
Fertility pricing rarely resolves into one clean figure. A patient may buy a single stimulated cycle, a two- or three-cycle package at a discount, or a program with a refund attached if no birth results. Medication is frequently billed by a separate pharmacy and never touches the clinic's ledger at all. Anesthesia, genetic testing and storage may each arrive as their own line. So the question of what a channel produced has an answer that depends entirely on which of those files somebody exported, and the difference between the narrowest and broadest reading can be a factor of two.
The defensible figure is what the clinic itself collected, on the date it was collected. Money that passes through to a pharmacy or a laboratory is not the clinic's revenue and including it inflates every source, unevenly, as soon as two campaigns produce different treatment mixes. A package bought up front should be exported on the day it was paid, not spread across the cycles it funds, because the payment date is the one that sits near the decision an advert influenced.
Packages complicate the counts more than the revenue. One patient buying three cycles is one decision and three episodes of care, and every row in the sales file is counted as a sale, so a package exported as one row per cycle makes a channel look like it produced three patients. Exporting one row per package payment keeps the count honest, which matters here because clinics are usually comparing sources on cost per new patient rather than cost per procedure, and a threefold error in the denominator is not survivable.
A growing share of fertility demand is routed by an employer's benefit administrator. Somebody is told their plan covers treatment, given a network of clinics, and arrives having already chosen from a list. In the clinic's own data that patient appears as a direct inquiry or a branded search, because that is literally how they got to the website, and every advertising report will therefore credit whichever campaign happened to be running on the clinic's own name. The clinic's marketing lead sees a rising line on a branded campaign and reads it as demand it created, when it is demand a human resources department created on its behalf.
The consequence is a budget that drifts toward branded search on the strength of patients who were never available to any other channel. It is a self-confirming error: the more of the routed demand branded campaigns intercept, the more efficient they appear, and the more they are funded. Clinics can spend years bidding against themselves this way without anything in the data suggesting they should stop, because nothing in the click record distinguishes a patient who was sent from one who was persuaded.
Asking at intake and carrying the answer into the file is the only reliable fix. Record the benefit program or employer as a source, list it alongside Google, Meta and physician referral, and the report ranks it on the revenue actually collected. The routed share may turn out to be the largest single source in the practice, which would be genuinely good news about the contract and rather bad news about the advertising budget that had been taking credit for it.
Elective freezing behaves nothing like treatment cycles. The patient is usually younger, the decision is made without a diagnosis in the room, and the money arrives in two very different shapes: a retrieval paid for once, and a storage fee paid every year afterwards, sometimes for eight or ten years. Beyond that sits the possibility of a thaw and a transfer at some undetermined point, which may be the largest revenue event of the whole relationship and may never happen at all.
No advertising measurement ever built survives that timeline, and clinics know it, which is why freezing campaigns tend to be judged on retrieval revenue alone and quietly compared against treatment campaigns that resolve within months. That comparison is not close to fair. It ignores a decade of storage fees and the eventual cycle, and it systematically undervalues the campaign that recruited a patient who will be in the practice's system longer than most staff members. It also means the two campaign types are being funded from one budget on the strength of a comparison that was never valid, and the imbalance grows each year the freezing cohort ages.
Because every storage invoice carries the same patient's contact details, exporting them as ordinary revenue rows credits them to the inquiry that produced the retrieval, however long ago that was. Running the report across several completed years is the honest way to compare freezing against treatment, and the records to do it already exist — they were kept to bill the storage. Export them as plain rows with a contact detail, an amount and a date, and nothing marking what they were for: what a payment bought is health information, and CloseRev signs no business associate agreements.
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
You do not need to. Nothing is installed anywhere — two exports, reconciled afterwards.
The match needs a contact detail, an amount and a date. Clinical information is neither needed nor wanted.
That belongs in Direct / Unknown unless referred patients are in the lead file, tagged with their referrer, in which case referral becomes a measurable channel like any other.
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. Enterprise usually fits IVF and reproductive medicine practices — ten seats for the team and the highest monthly record allowance, since a year of closed deals is a lot of rows.
One business closing at volume
$499/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Started cycles: a patient contact email or phone, the treatment value, and the start date. Nothing clinical.
Not with a column: the treatment somebody received 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.
As long as it turns out to be. There is no window to fall outside of: however much time passes between the inquiry and the cycle, it matches if the patient is in both files.
A contact detail, an amount and a date. Treatment detail and outcomes are not read and should stay out of the export. Data is encrypted in transit and at rest, isolated per workspace and deletable in one click.
No. A contact detail, an amount and a date is enough.
Yes — add referred patients to the lead file with the referring physician as their source.
Yes. Nothing needed to be installed when those cases happened, which is the whole reason this works on history.
Started cycle rows analyzed in a calendar month. Inquiry rows do not count.
One row on the date it was paid. Every row is counted as a sale, so splitting a package into one row per cycle makes one patient look like three and distorts every cost-per-patient figure; if you want cycles counted, the sale count will then be counting cycles rather than patients.
Leave it out. It is not money the clinic collected, and including pass-through amounts inflates every channel unevenly as soon as two campaigns produce different treatment mixes. Export what your own ledger received.
Yes, if you export them as plain revenue rows. Each invoice carries the same patient's contact details, so it credits the inquiry that produced the original retrieval. Do not mark them with a column: what a payment was for is health information and stays out of the file.
Capture that at intake and list it as a source. Those patients arrive as branded or direct traffic, so without the intake answer your own-name campaigns will take credit for demand that was routed to you.
It credits the inquiry that produced her, because the join is on the person rather than a session that expired. There is no setting to count the second cycle as a new acquisition; it is revenue from a patient the original channel produced.
Not with a column: the program somebody is in 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.
CloseRev does not sign HIPAA Business Associate Agreements and is not built for protected health information. Upload only payment data — a phone number or email, the amount and the date — never diagnoses, cycle outcomes, lab results or clinical notes. If your patients' phone numbers and emails count as PHI under your obligations, talk to your compliance lead before using CloseRev.
Nearby
Match 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 worksMatch completed, paid procedures to the inquiries and ads that produced them — including the ones booked six months after the first consultation.
See how it worksMatch completed, billed episodes to the inquiries and campaigns that produced them — by site.
See how it worksFrom 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 articleAttribution needs history and privacy law needs forgetting, and those two facts are in direct tension. A practical retention policy for marketing data: what to keep, what to aggregate, what to delete, and how to prove you did.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.