How it works
Last updated October 10, 2026
What each channel cost, where each inquiry came from and what happened next are stored in three different systems. This page explains how we bring them together in one database you own, and the rules every number follows. It’s written for whoever gets asked “where did that number come from?”
1 What we join
We read from the systems you already pay for, every night. Each one holds part of the answer.
- Spend
- Your ad accounts, every night, plus a monthly sheet for what no platform reports: TV, radio, mailers, signs, directories
- Website and search
- Web analytics, search performance and your business listings
- Phones
- Your call tracking: every call, how long it lasted, whether anyone answered, and its source
- Your email platform, where you send newsletters or follow-ups
- Customers
- Your CRM, case management system or practice management system: each inquiry, what became of it, and what it was worth
If you don’t use one of these, that part of the report is left out. It isn’t estimated. If you use a system we haven’t connected before, connecting it is part of the setup, and we quote it on the call.
2 Where it lives
In a database of your own, not shared with any other client. It fills every night from the systems above, and every report is built from it, so the numbers in one report agree with the numbers in the next.
It’s yours. If you stop working with us, it’s handed over with its full history, and we don’t keep copies of your data unless you ask us to. The software that fills it stays ours.
If one system fails, the others still update. If the nightly update doesn’t run at all, a separate check notices and alerts us. Security in detail
3 How an inquiry gets its channel
Whoever takes the call records where the customer heard of you, usually as free text. We match that text to a fixed list of channels, online and offline. Referrals stay split by type, because the kind of referral is usually what matters.
Example
Type above to see its channel.
| What was typed | Channel |
|---|---|
| “google ppc” | Paid search |
| “LSA” | Paid search |
| “billboard on I‑95” | Out of home |
| “saw you on TV” | TV |
| “postcard in the mail” | Direct mail |
| “past client” | Client referral |
| “my accountant referred us” | Referral |
| (left empty) | Unknown |
| “Bob’s list” | Unassigned, and listed for you |
Paid terms are checked before organic ones, since “google ads” also contains “google”. An empty field is Unknown: nothing was recorded, and no mapping can fix that. Text that matches nothing is Unassigned and shows up in your report, because that one can be fixed.
Each business gets the channel list its customers actually use. An accountancy firm’s splits partner and client referrals; a roofer’s has yard signs and truck wraps; a med spa’s has influencer codes. The rules are the same.
After the tracking fix, the field is a picklist that uses these same channel names, and web and phone inquiries also carry the click ID and campaign that brought them in. The mapping then has much less to guess at.
4 How cost per customer is worked out
A customer is whatever your business counts as won: a signed client, a sold job, a paid treatment. We use your word for it in every report.
We work it out by channel and by month. Paid search spend is split by campaign type, so search campaigns count as Paid search and video gets its own row. Offline spend comes from the sheet you fill in. Both are shown next to the total, so when someone asks what makes up a cost per customer, the answer is on the same row.
Conversion rate is counted differently, on purpose. It’s the share of a month’s inquiries that went on to become customers, so it can never go above 100%.
5 What we leave blank
A channel with no recorded spend has no cost per customer. We leave it blank. Showing $0 would make it look like your cheapest source of customers, when really it’s the one you haven’t measured.
6 Recent months
Some of last month’s inquiries haven’t become customers yet: a case not yet signed, an estimate not yet decided, a treatment plan still being thought over. We mark recent months as incomplete, so nobody mistakes an unfinished month for a bad one. Reports only ever cover complete months.
7 Estimated values
Some systems record the outcome but not what it was worth: a settled case without its fee, a sold job without its invoice. When that happens we estimate the value from your usual figures, and every number that includes an estimate is labelled as one.
8 When something is off
Problems are written in plain English, in terms you can act on:
“Four records are in a status we don’t recognise, so they’re missing from the count and from every cost per customer.”
Not a failed test name, and not a silent gap in the chart.
9 How reports are written
AI doesn’t write your numbers. Every figure is calculated from your data first, and the report text is built from those figures. A sentence can’t contain a number your data didn’t produce, and your figures are never sent to a third party to be written up.
Reports describe what changed and by how much, never why. The data can’t separate the market, the season and the marketing, and we won’t claim it can. The one recommendation at the end of each report is written by a person.
10 When we raise a flag
Each night, the latest complete day is checked against the 28 days before it. A metric is flagged only if it moved at least 35% and is at least 2.5 standard deviations from normal. It has to meet both. A new account needs 14 days of history before anything can be flagged.
Cost per customer is judged over a rolling 30 days instead, because at most businesses’ volume a single day tells you nothing.
Start with a call
We’ll talk through how your inquiries come in and where their source gets lost. If it makes sense, the next step is an audit of your tracking and data, before anything is changed or built.
If an audit wouldn’t be worth it for you, we’ll tell you on the call.