Fees and retainers, not inquiries
Rank channels by the revenue they produced rather than the forms they filled.
Marketing attribution for Accounting Firms
Match engaged clients and the fees they pay, year after year, to the campaigns that produced them.
$392,000 56% of $700,000 paid
The blind spot
An accounting client is a multi-year annuity. Measuring acquisition against a single tax-season fee undervalues every channel by a factor of five.
What you get
Rank channels by the revenue they produced rather than the forms they filled.
An inquiry that becomes a client months later still credits the campaign that produced it.
Nothing is redistributed. If an engagement cannot be traced to a channel, the report says so instead of improving the attributed share.
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 | 71 | $182,000 | 26% | |
| Email marketing | 26 | $63,000 | 9% | |
| Referral partners | 58 | $147,000 | 21% | |
| Direct / Unknown | 121 | $308,000 | 44% |
A small-business client engaged this January will file again next January, and probably add bookkeeping and advisory along the way. Judging the campaign that won them on the first invoice alone is a systematic undercount.
Because the match is on the client rather than a session, every later fee credits the channel that produced them. Measured that way, the channel with the highest cost per lead can turn out to have the lowest cost per retained client.
A $400 return and a $30,000 advisory engagement arrive from different places and are usually reported as one lead count.
A service-type column mapped as Product / service splits them, showing fees by service line with how much of each traces to a channel, so the firm can see whether marketing is reaching the practice it wants to grow or only the one that fills January.
A tax practice takes on most of its new clients inside a narrow window, and the conversations that produced them started months earlier. A small business owner who decides in September that the bookkeeping has become a mess engages in January. Somebody who fell out with their previous accountant in May comes on board in time for an extended return in August. The inquiry and the fee sit in different quarters almost by definition, and in a monthly report they sit in different stories altogether, with nothing connecting them.
Comparing consecutive months in a practice with that shape measures the calendar rather than the marketing. The report is built to compare a period against the same period a year earlier, which is the only comparison that means much here, and because the match on the client carries no window, an October inquiry that becomes a January engagement is a single match rather than two disconnected records in two systems. The gap between them costs nothing and needs no explanation in the file.
It also answers the question firms ask every autumn, which is whether the off-season advertising is doing anything at all. Ranked on fees collected in the following season rather than on inquiries received at the time, the quiet months frequently look considerably better than a monthly report suggests. That is the argument for keeping a budget running when the phones are slow, and it is an argument most practices have never been able to make with a number attached to it.
Realization is the number that governs whether an engagement was worth taking at all. Fees get written down, scope gets absorbed, a client argues about an invoice or pays it eleven months late, and a practice's billed figure and its collected figure end up describing two different businesses. Attribution built on billed amounts will rank a channel highly for work that was never fully paid for, which is a particularly unhelpful error when the report is being used to decide next year's spending.
Exporting collected fees instead, dated when the money arrived, produces a ranking on what the firm actually received. This can move the referral-led sources upward and price-led search traffic downward, because a client who came through a professional introduction tends to accept a scope and pay for it, while a client who arrived comparing prices tends to argue about both. The difference is rarely small and it is almost never visible in the systems a firm already runs. Most practice management systems will produce a receipts report as readily as a billing one.
Write-offs and disputes do not have to be categorized for any of this to work. The revenue file contains what was collected, so unrecovered work is simply absent from it. That keeps the report free of judgment calls about whether a particular write-down was the client's fault or the firm's, and it anchors the ranking to the only figure the partners reliably agree on, which is the money that reached the bank account in a given month. The partners never have to agree on whose fault a write-down was for the ranking to hold.
Most practices are built on a handful of professional relationships: a commercial banker who introduces borrowers needing accounts prepared, an attorney who sends business owners through at a transaction, a bookkeeper who passes the compliance work upward, a software partner directory producing a steady trickle of inquiries. Each of those is described internally as word of mouth, each is maintained with real partner time, and none of them is measured against anything the firm spends money on. The result is a pipeline the firm depends on and cannot describe in numbers to anybody.
A list naming each referrer alongside the clients they introduced can go into the lead file, with each client tagged by referrer. Each referrer then ranks on collected fees, which converts an impression into an amount. The finding may be uneven in a way that is immediately useful: one or two relationships producing most of the referred value, and several others producing almost nothing while consuming a similar amount of lunches, updates and reciprocal attention across the year. Partner time is the scarcest thing a practice spends, and this is the only report that prices it.
What the report will not do is invent the connection. Where nobody recorded who introduced a client, the fees stay in Direct / Unknown rather than being distributed across the referrers on a guess. Capturing that detail after a first report can be the highest-return change a firm makes to its marketing data, and it amounts to one extra field on an intake form and a habit of filling it in. One field, filled in consistently, is worth more here than any amount of additional advertising data.
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
Then upload the referral list — the point is to rank it honestly against everything else, not to overstate advertising.
Which is why later fees must credit the original channel. The report ranks on revenue earned, not on a first invoice.
None of it is needed. A contact detail, a fee amount and a date, nothing else.
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. Growth usually fits CPA firms and accounting practices — thirteen months of history to compare a month to the same month last year, and a PDF you can put in front of whoever holds the budget.
A business scaling ad spend
$49/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Client fees or invoices: a client email or phone, the amount, and a date.
Yes — later fees credit the channel that produced the client.
Yes, with a service-type column.
Yes — and where a partner is named in the file, the report ranks each one separately rather than lumping them together.
Yes: an office column mapped as Location, or a partner column mapped as Product / service (one extra breakdown per import). Either shows fees with the attributed share for each; channels are not ranked within each.
It is encrypted in transit and at rest and isolated per workspace, so no other account can reach your clients. Deletion is immediate and a DPA is available.
Yes, and for this practice that is the right unit.
Fee or invoice rows analyzed in a calendar month. Inquiry rows do not count.
Collected, if the system will produce them. Billed amounts include work that was written down or never paid, and that shortfall is not spread evenly across the channels that produced the clients.
Against the same season a year earlier rather than against the months around it. In a practice with this shape, a month-on-month comparison mostly measures the filing calendar rather than the marketing.
Yes. Inquiries from a quiet month are matched to fees collected in the following season, so the spend is judged on what it eventually earned rather than on the inquiries it produced at the time.
One field on your intake form, exported alongside the client contact detail. Those rows then go into the lead file with the referrer as their source, and each named referrer ranks on collected fees like any other channel.
Yes, with an office column mapped as Location or a partner column mapped as Product / service. It shows how much of each office's fees traces to a channel at all, which a firm-wide total conceals; it does not rank channels within each office.
No. A client contact detail, a fee amount and a date is the entire requirement. No returns, no ledgers, no balances and nothing that sits under your confidentiality obligations to the client.
Nearby
Match funded relationships and the fees they generate to the inquiries that produced them, across a decision measured in months and built on trust.
See how it worksMatch retained cases and the fees they earn to the calls and campaigns that produced them, in a market where most callers never engage.
See how it worksMatch signed engagements and their fees to the content, events and campaigns that produced the client.
See how it worksWhere your sales already are
Export invoices from QuickBooks Online, upload your call and lead records beside them, and see revenue by channel — from the ledger rather than from a guess.
What to exportExport sales invoices, upload your lead and call records beside them, and rank channels on the revenue you actually billed.
What to exportExport your clients and their fees, upload the inquiries beside them, and rank marketing on assets and revenue rather than on inquiries.
What to exportExport won opportunities and leads from Copper, join them on the contact detail, and recover how the relationship actually started.
What to exportExport prospects from Redtail, match them against new households and fees, and rank sources on the assets and revenue they actually produced.
What to exportFrom the blog
Before you can argue about attribution you have to agree what a sale is, when it happened, and how much it was worth. Most businesses have never had that conversation, which is why the marketing number and the finance number never match and everyone assumes somebody is wrong.
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 articleA channel judged on its first invoice is judged on the wrong customer. For a business that sees the same households again, the channel that sends loyal customers can look expensive and the one that sends deal hunters can look brilliant. Here is how to compute revenue per customer by acquisition channel at 12 and 24 months from a sales export, read cohorts honestly, switch to margin, and set what you can afford to pay for a customer.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.