“PatientNow already reports by lead source.”
It does, using a field somebody typed. Joining enquiries to revenue gives a second view and shows where the two disagree.
For PatientNow
Export enquiries and treatment revenue from PatientNow, join them, and rank channels on treatments rather than on consultations booked.
No API key Nothing to install in PatientNowNothing to install No card requiredNo card
PatientNow holds both halves of the match — the enquiry with its source and the treatment revenue that followed — which makes it one of the few systems here where a single vendor can supply the whole file. CloseRev joins those exports on the patient's phone or email and reports revenue by source, including the consultations that never converted. Revenue with no traceable enquiry is reported as Direct / Unknown.
Last checked against PatientNow's own documentation on September 24, 2026.
The gap
The consultation diary is full and the treatment schedule is not, and no report connects the two to a channel.
What was sold, to whom, and for how much.
The click, the keyword, the call, and what each one cost.
The file
Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.
Captured at enquiry. It is the key that joins the lead export to the revenue export.
What was collected, including packages and retail. Quoted treatment plans are not revenue.
Both. The interval between them differs sharply by channel and by procedure.
Injectables, devices, surgical. Their values differ by an order of magnitude and so do their sources.
Step by step
Written for somebody with PatientNow open in the next tab. Report names vary by edition, so each step says what to look for.
One row per enquiry with a contact detail, the source and the date, including the ones that never booked.
Collected amounts with a patient contact detail and a date.
Each one consumed clinical or advisor time, and a channel that produces many is expensive in a way cost per lead never shows.
Considered aesthetic procedures are researched for months, and packages are consumed over more.
The join runs on the phone and the email, normalised, with consultation-to-treatment conversion reported per source.
What comes back
Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the Med Spas & Dermatology page — not from a PatientNow account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Meta Ads | 96 | $78,200 | |
| Google Ads | 61 | $55,200 | |
| Email marketing | 44 | $32,200 | |
| Direct / Unknown | 79 | $64,400 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
In aesthetics the consultation is often free, takes forty minutes, and occupies a provider or a trained advisor whose time is the practice's scarcest resource.
Cost per consultation therefore understates the true cost of a channel by exactly the amount of time it wastes, and the waste is not evenly distributed.
A source producing ten consultations for one treatment is consuming a working day per patient acquired, which is invisible in every advertising report.
Because both halves are in one system here, conversion from consultation to treatment can be reported per source without any additional tracking.
That number is usually more actionable than the revenue ranking, because it points at the offer and the consultation script rather than at the channel.
A course of injectables, a device package and a surgical procedure differ enormously in value, in consideration time and in who is looking for them.
A channel weighted towards one is ranked as though it produced the mix, which is how a good source of high-value work gets cut for producing few patients.
Where the export carries a procedure category, the report splits on it and each category gets its own ranking and its own sensible window.
Most practices find the sources feeding injectables and the sources feeding surgical enquiries barely overlap, which argues for separate budgets rather than one.
It also stops a single large case from deciding a channel's ranking, because the median is shown beside the total.
Treatment packages and membership plans are bought once and consumed over months, which breaks any match that attributes on the treatment date.
Attributing on purchase keeps the decision with the campaign that produced it, and the report sums by patient so a package is one outcome rather than six.
It also prevents a maintenance visit a year later being credited to whatever campaign happened to be running that week.
Where the export flags the package, this is automatic; where it does not, the amounts and dates usually make it obvious.
The distinction matters most for the channels that sell on price, because a discounted package looks like strong revenue on the day it is bought.
Holding the enquiry and the revenue in the same place removes most of the joining problems this catalogue exists to solve, and it is a genuine advantage.
What it does not do is verify the source field, which is still filled in by whoever took the enquiry and is subject to the usual drift.
Where you also run call tracking or have a separate lead file from an advertising platform, bringing it in gives a second, independent view.
Where the two disagree, the report shows the gap rather than preferring one, which is how a source field gets corrected rather than trusted.
Fair questions
It does, using a field somebody typed. Joining enquiries to revenue gives a second view and shows where the two disagree.
They cost forty minutes of the practice's scarcest time. That is the largest hidden cost in the category.
It understates channels that waste clinical hours. Conversion to treatment is the number that fixes it.
No. It reads exported files, so your charts, photographs and consent records stay where they are.
Enquiries with a contact detail, source and date, plus collected treatment revenue with amounts and dates.
Each consumed clinical or advisor time. A channel producing many is expensive in a currency cost per lead does not measure.
Yes, consultation to treatment, and it is usually more actionable than the revenue ranking itself.
A year. Considered procedures are researched for months and packages are consumed over more.
Attributed on the purchase date and summed by patient, so one decision is not spread across six visits.
Yes, where the export carries a category, and it usually explains most of the difference between sources.
To check the source field against an independent join, and to bring in call tracking or platform lead files the system never saw.
The median is shown beside the total so one case cannot silently rank a source.
Any revenue with no traceable enquiry. Its size is stated rather than distributed.
A contact detail, an amount and a date, plus a procedure category if you include one. No photographs, no clinical notes, no consent forms, no card data. Encrypted in transit and at rest and deleted with the import.
Revenue per source with consultation-to-treatment conversion beside it, split by procedure where available, and everything unmatched kept visible.
By trade
What the report looks like once the export is in, written for each one.
Other systems
Running more than one system, or comparing? The method is the same and the columns are not.
PatientNow and the other product names and logos on this page belong to their owners and are shown to identify the software a file comes from. CloseRev is not affiliated with or endorsed by them, and connects to none of them: it reads a file you export.
Start today
Nothing to install in PatientNow, no API key, and no need to have been tracking anything until now. Last year works as well as this month.