“Weave already reports our call volume.”
It does, and it has no view of what was collected, because it never sees the ledger.
For Weave
Export call records from Weave, match them against collected production, and find out what the phone was actually worth.
No API key Nothing to install in WeaveNothing to install No card requiredNo card
Weave sits on the lead side in CloseRev: because it is the practice's phone system rather than a tracking layer bolted onto it, its call records cover every call including the ones nobody answered. Exported with the caller's number and the date, they become a lead file that can be matched against collected production. Revenue with no traceable call or lead is reported as Direct / Unknown.
Last checked against Weave's own documentation on September 24, 2026.
The gap
You know how many calls came in. You do not know which of them became patients, or what the missed ones cost.
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 call record — the number the person actually dialled from, which is the strongest key available.
Inbound, outbound, answered, missed, voicemail. The missed ones are the finding most practices have never quantified.
When it happened. The time of day is what turns missed calls into a staffing decision.
Where distinct numbers are in use, this is what turns a call file into a source file.
Step by step
Written for somebody with Weave open in the next tab. Report names vary by edition, so each step says what to look for.
One row per call with the caller's number, the outcome and the date.
They are the point. A file of answered calls only cannot show what the phone cost you.
Without them the file says a call happened, not where it came from. One number per listing or campaign fixes that.
From the practice management system: patient contact detail, amount collected, date.
The join runs on the phone number, normalised, with answered and missed calls reported apart.
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 Dentists page — not from a Weave account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 38 | $124,800 | |
| Meta Ads | 31 | $54,800 | |
| Email marketing | 14 | $27,400 | |
| Direct / Unknown | 46 | $97,400 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
A call tracking product sees the calls routed through its numbers. A practice phone system sees every call to the practice, however the caller found the number.
That includes the ones that rang out at lunchtime, the ones that went to voicemail after hours and the ones abandoned in a queue.
Those calls are invisible to almost every marketing report in existence, and they are the clearest cost in the file.
Matching the answered ones to collections and reporting the missed ones beside them gives both numbers: what the phone produced, and what it lost.
The second is frequently larger than the amount being argued about in the marketing budget.
Practices treat missed calls as a staffing metric because that is how the phone system reports them, which understates the case considerably.
Where a caller who rang once and never rang again would have been worth an examination and a course of treatment, the loss is measurable.
The report estimates it the only honest way available: by showing the collected value of callers who did get through, beside the count of those who did not.
It does not claim a specific missed caller would have produced a specific amount, because nothing can know that.
What it does is convert a count into a range a practice owner can act on, which is usually enough to change how the phones are covered at lunchtime.
A single practice number tells you somebody rang; it cannot tell you whether they came from a map listing, a directory, a mailer or a neighbour.
Distinct numbers on each listing and campaign turn the same file into a source file, and the cost of that is trivial against what is being measured.
Until they exist, the report is honest about the limitation: it will rank answered against missed and it will not invent a channel breakdown.
That is a better outcome than a report that quietly attributes every call to whatever the website said, which is the common alternative.
A practice using its phone system for recall makes a great many outbound calls to patients it already has.
Counted as a source, those would take credit for most of the practice's revenue and make every acquisition channel look ineffective.
Filtering to inbound calls, and reporting outbound recall separately as retention, keeps the two questions apart.
The recall number is worth having on its own terms — it is a real programme with a real return — but it is not marketing acquisition and should never be ranked as though it were. Mixing the two is how a practice concludes its advertising works when what actually happened is that somebody called four hundred existing patients.
Fair questions
It does, and it has no view of what was collected, because it never sees the ledger.
They are, and putting a revenue figure beside them is what gets the staffing changed.
Then the file can rank answered against missed honestly and cannot break down sources. The report says so rather than guessing.
No. It reads an exported file, so your phone system, messages and recordings stay where they are.
The lead side. Collected production from the practice management system is the other half.
Inbound call records with the caller's number, the outcome and the date.
They are the clearest cost in the file and almost no marketing report contains them.
Not for a specific caller, because nothing can know that. The report shows the collected value of callers who got through beside the count of those who did not.
For a source breakdown, yes. Without them the report ranks answered against missed and declines to invent channels.
No. They go to existing patients and are reported separately as retention.
No, and they should not be exported. The number, the outcome and the date are the whole requirement.
Yes, where the export carries one.
Any collection with no matching call or lead, usually online bookings and walk-ins.
A phone number, an outcome and a date on one side; a contact detail, an amount and a date on the other. No recordings, no transcripts, no message content, no clinical records. Encrypted in transit and at rest and deleted with the import.
Collected production per source where distinct numbers exist, answered and missed calls reported apart, recall separated, 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.
Weave 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 Weave, no API key, and no need to have been tracking anything until now. Last year works as well as this month.