“eClinicalWorks already reports new patients.”
It counts them. It has no record of what produced each one, and it cannot follow their value back to that source.
For eClinicalWorks
Export collections from eClinicalWorks, upload the sources behind first visits, and rank channels on the patients who stay.
No API key Nothing to install in eClinicalWorksNothing to install No card requiredNo card
CloseRev reads an eClinicalWorks export of collected payments — the patient's phone or email, the amount and the date — and matches it against the searches, calls and bookings that produced the first visit. For primary care and other ongoing care, a patient's value is years of visits rather than the first appointment, so the report measures what each source added to the practice's panel over time. Collections with no traceable source are reported as Direct / Unknown.
Last checked against eClinicalWorks's own documentation on September 25, 2026.
The gap
New-patient appointments are counted every week. Which of those patients are still coming three years later, and where they came from, is not.
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.
On the patient record. It joins every later visit to the first one.
Payments received from payers and patients together.
When the patient was first seen, and whether it was an office visit, urgent visit or virtual visit.
Which site, for practices with several. Local search behaves very differently between them.
Step by step
Written for somebody with eClinicalWorks open in the next tab. Report names vary by edition, so each step says what to look for.
One row per payment with a contact detail, the amount and the date.
Everything is grouped under the first visit, so the patient is credited to the source that first produced them.
Call tracking, online booking, local search, payer directories and referrals from other practices.
Primary care value shows over years. A short window measures the first visit only.
The join runs on the phone and the email, normalised, with results by visit type and location.
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 Medical Clinics page — not from a eClinicalWorks account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 41 | $148,200 | |
| Meta Ads | 33 | $81,900 | |
| Email marketing | 16 | $39,000 | |
| Direct / Unknown | 44 | $120,900 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
A patient who chooses a primary care practice may come back several times a year for many years: annual checks, chronic care, the occasional acute visit.
Judged on the first appointment, every source looks similar, because a first visit is a first visit. Judged on the following two years, they separate.
Grouping collections under each patient's first visit and following them over a long window gives the number that matters: what each source added to the panel.
It also shows which sources produce patients who stay, which is a better guide to where to spend than cost per new-patient appointment.
The report shows the count of patients each figure rests on, because a small practice's two-year cohort can be small enough to mislead on its own.
Urgent and same-day visits are usually driven by proximity: somebody searches for care near them now and goes to the nearest option with a good rating.
Most of those patients call or walk in, so without a tracked number on the map listing they arrive with no source at all.
A distinct number on each location's listing turns that channel into a lead file, and a year later the practice knows what the listing produced.
It also shows how many urgent-visit patients became regular patients, which is often the most valuable thing an urgent-care line does for a practice.
A practice offering virtual visits can see patients who would never travel to its offices, and those patients arrive through different searches and different sources.
They often behave differently too: more one-off visits, fewer long relationships, sometimes a different payer mix.
Where the export marks the visit type, the report splits virtual-first patients from office-first patients, so each gets its own ranking.
Pooled together, a virtual channel that produces many single visits can look better or worse than it is, depending on which side of the average it sits.
Where a practice takes part in value-based arrangements, some of the revenue a patient produces arrives as programme payments rather than as a fee per visit.
A report built only on visit collections undercounts the patients those programmes reward, and the undercount is not spread evenly across sources.
The report ranks on the collections in the file and says so. Where programme revenue can be attributed to a patient, adding it to the export makes the ranking complete.
Stating the basis matters here more than most places, because the same patient can be worth very different amounts depending on which revenue is counted.
It also changes what a source is worth. A channel that brings in patients with ongoing care needs can look ordinary on visit fees and very good once programme revenue is included, and the practice should know which view its budget is being set on.
Fair questions
It counts them. It has no record of what produced each one, and it cannot follow their value back to that source.
They measure first visits. In primary care, the years after the first visit are where the value is.
Then a tracked number on each location's listing is the first change to make.
No. It reads a file you exported, so your records, schedules and billing stay where they are.
Collected payments with a patient contact detail, the amount and the date.
So every later visit is credited to the source that first produced the patient.
Two years at least. Primary care value shows over years, not weeks.
Yes, with a tracked number on each location's map listing.
Yes, where the export marks the visit type.
The report ranks on the collections in the file and says so. Add programme revenue where it can be tied to a patient.
Yes, where the export carries one, and local search makes it worth doing.
They stay in the file. A source's value includes the patients who did not return.
Any collection with no traceable source, usually walk-ins without a tracked number.
A contact detail, an amount and a date, plus a visit type or location if you include them. No clinical notes, no diagnoses, no procedure codes, no insurance identifiers. Encrypted in transit and at rest and deleted with the import.
Collections per acquired patient by source over the window, split by visit type and location, with patient counts shown 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.
eClinicalWorks 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 eClinicalWorks, no API key, and no need to have been tracking anything until now. Last year works as well as this month.