Revenue, not calls
Rank channels by the jobs they actually closed, so one large job outweighs twenty enquiries.
For Pool Builders
Match signed contracts and their value to the campaigns and shows that produced the buyer, across a decision that takes a season.
No card required · Nothing to install · Cancel anytime
The blind spot
A pool is a $70,000 decision made over six months. Lead forms fire in January, contracts are signed in May, and no window connects them.
Rank channels by the jobs they actually closed, so one large job outweighs twenty enquiries.
A quote given in spring and accepted in summer still credits the campaign behind it.
Only exact matches count automatically; anything weaker is flagged rather than assumed.
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 | 5 | $364,000 | |
| Meta Ads | 4 | $252,000 | |
| Home shows | 3 | $196,000 | |
| Direct / Unknown | 8 | $588,000 |
Homeowners research pools across a whole off-season, on several devices, and often visit a show before ever calling. The first click is expired long before the contract exists.
Matching on the customer removes the window entirely, and in this category it typically moves several hundred thousand dollars of contract value onto the campaigns that actually produced it.
A show stand is a substantial line item justified largely by badge counts, while paid search is scrutinised weekly. The two have never been compared on the same basis.
The badge-scan list is a source file. Uploaded, the show ranks on signed contract value alongside every paid channel, and the comparison is usually decisive either way.
"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 judgement, 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.
Which is why there is no attribution window. A May contract still credits a January campaign.
Which is why contract value is the measure. Unconverted leads appear as unmatched and cost nothing against your allowance.
Upload the badge-scan list as a source file and the show ranks on signed contracts like anything else.
Flat monthly pricing with no per-call, per-minute or per-form fees. The number here is the number on the invoice. Most pool builders land on Growth.
A single business getting started
$49/mo
billed monthly
A business scaling ad spend
$199/mo
billed monthly
One business closing at volume
$499/mo
billed monthly
Reporting on many clients at once
$799/mo
billed monthly
Signed contracts: a customer email or phone, the contract value, and a date.
Upload two exports and see your real revenue by channel in minutes. Three days free, no card.
Start free