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
Email
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

What a front desk typed, and where it lands
What was typedChannel
“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

Cost per customer = Ad spend + offline spend new customers that month

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.