“We are too small for marketing analytics.”
Small firms have the most to lose from one wrong channel, because it is a larger share of the budget. Two exports is the whole exercise.
For PracticePanther
Export collected fees, upload the enquiries beside them, and rank marketing on what clients paid rather than on consultations booked.
No API key Nothing to install in PracticePantherNothing to install No card requiredNo card
CloseRev reads a PracticePanther export of collected fees — the client's phone or email, the amount received and the date — and matches it against the calls and forms that produced the consultation. For a small firm billing hourly the value of a client is not the consultation fee but everything billed over the life of the matter, which no advertising report can see. Matters with no traceable enquiry are reported as Direct / Unknown.
Last checked against PracticePanther's own documentation on September 24, 2026.
The gap
You know what you spent on advertising last quarter and what you collected last quarter. Connecting the two is a conversation, not a number.
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 client the matter belongs to. Most enquiries to a small firm arrive by phone, so the number carries more of the matching than the email does.
What was received rather than what was invoiced. In a firm with any write-down or ageing receivable those differ, and only one of them funded the marketing.
When the money arrived, or when the matter opened. Hourly work bills over months, so payment date spreads one client across several rows unless you sum by client.
The split that stops a family matter and a commercial dispute being averaged into a number describing neither.
Step by step
Written for somebody with PracticePanther open in the next tab. Report names vary by edition, so each step says what to look for.
One row per matter or per payment, with a client contact detail, the amount and a date. Either shape works; summing by client is what makes hourly billing readable.
Billed fees make a practice area with collection problems look like your best performing marketing, which is the opposite of useful.
Call tracking, website forms, the intake log, directories and any lead vendor. Contact detail plus where it came from.
Hourly matters bill over their life. A one-month window measures retainers rather than clients.
The join is the phone and the email, normalised, with weak links flagged for a person rather than counted.
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 Law Firms page — not from a PracticePanther account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 18 | $312,000 | |
| Meta Ads | 6 | $54,000 | |
| Email marketing | 3 | $30,000 | |
| Direct / Unknown | 14 | $204,000 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
A matter opened in February might bill in March, May, June and September. Each of those is a payment and none of them is a new client.
Attributing per payment makes long matters look like many small wins and makes the channels producing them look like high-volume sources. Attributing per client is what the marketing question actually asks: how much did this channel's clients pay us in total.
The report sums by client so both readings are available, and the difference between them tells you whether a channel brings a lot of small work or a little large work. Those need different budgets and different expectations.
Most small firms price the initial consultation low or free, deliberately, because the point of it is to win the matter. That makes it the worst possible unit on which to judge a channel.
Two sources delivering identical numbers of consultations can differ by a factor of ten in fees collected, because one delivers people with a real problem and a budget and the other delivers people shopping for free advice.
Only a file that follows the client past the consultation can see that, and for most small firms this is the first time they have had one.
A family firm doing some estate work and the occasional commercial dispute has three different cost structures, three different cycles and three different kinds of client.
Search terms, lead prices and conversion rates differ across all of them, and so does what a matter is worth. One blended cost per client is an arithmetic fact and a poor basis for a decision.
Splitting collected fees by practice area and by source is the report a small firm can act on: it says where to spend more, and it frequently says to stop spending on a practice area entirely.
A contact detail, an amount and a date, plus a practice area if you include one. No matter descriptions, no documents, no notes, no time entries, nothing touching privilege — and none of it would help the match if it were there.
For a firm, that constraint is the reason this is possible at all. A tool that needed to read matters could not be used; one that needs three columns can.
Fair questions
Small firms have the most to lose from one wrong channel, because it is a larger share of the budget. Two exports is the whole exercise.
That is why the report sums by client as well as by payment. One long matter is one client, not six wins.
Then start with call tracking on one number. Even a partial lead file gives a real answer for the part it covers, and the report is honest about the rest.
No. It reads a file you exported; no credential to your account is held.
Collected fees with a client contact detail, the amount and a date.
Collected. Invoiced fees flatter whichever practice area has the worst receivables.
No. The report sums by client as well as by payment, so one long matter reads as one client.
Yes, and for a mixed firm it is the split that makes the report actionable.
Several months at minimum, and further if your matters run long.
They are the denominator, not the revenue. A source producing many free consultations and few paying clients ranks accordingly.
Yes, on the same axis as everything else rather than on their own reporting.
Record them as a source and they rank beside paid channels. For most small firms that comparison is overdue.
They stay in Direct / Unknown. The report would rather say it does not know than credit a channel on a guess.
A contact detail, an amount and a date, plus a practice area if you include one. No matter descriptions, no documents, no time entries, nothing under privilege. Encrypted in transit and at rest and deleted with the import.
Collected fees by source and by practice area, per client as well as per payment, 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.
PracticePanther 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 PracticePanther, no API key, and no need to have been tracking anything until now. Last year works as well as this month.