A short paper on how Vero decides which booked jobs you actually pay for, and why we make the audit trail public.
Marketing budgets for small service businesses land in three places: agency fees, ad spend, and reporting tools. The reporting tools count impressions, clicks, page views, and form fills. None of those events guarantee a booked job that the tech actually showed up to and completed. The agencies grading their own homework benefit from that gap; their fee scales with ad spend, not with the outcome the spend is supposed to produce.
An owner who spent $4,000 last month on Google and Meta cannot say with confidence how many of that month's booked jobs were caused by the spend. The agency dashboard will report one number. The CRM log will report another. Neither will reconcile.
Vero exists to close that gap by changing what the owner pays for. You pay per verified booked job, not per click. This paper documents how verification works.
A verified outcome is a real person who saw your ad, showed up (or called), and is recorded in your operations software as a real booked appointment. To attribute that outcome to paid marketing, three independent signals matter.
A served impression whose hashed identity (email or phone normalized per Meta and Google Custom Audience spec, then SHA-256) matches the customer, within the preceding 30 days. Raw PII never lands in Vero's database. Match happens on hashes only.
For walk-ins: a device observation at the location within ±4 hours of the recorded booking time. For phone-in jobs: a caller-ID match against the ad exposure list. Deterministic when the device or number links to a matched impression; probabilistic, discounted 30%, when observed but unlinked.
The completed job ticket itself, sourced from your operations software (ServiceTitan, Housecall Pro, Jobber, Boulevard, Clio, HoneyBook, Tekmetric, whatever you run) or a CSV upload. Your own record that the work happened.
These three signals are weighted. A weight: 0.4. G weight: 0.4. P weight: 0.5. An outcome requires a composite score of at least 0.7 to be eligible for billing, and the A signal must be present. P alone is never billed. G alone is never billed. The methodology is conservative by design.
Every potential outcome closes into one of four states.
| Outcome | Required signals | Billed? |
|---|---|---|
| Billable | A and (G or P), score ≥ 0.7 | Yes |
| Ghost | A and G but no P | No (surfaced publicly) |
| Unmatched | P without A | No |
| Excluded | Customer is a current or recurring client | No (ever) |
A 48-hour grace period applies before P-only events close as unmatched, to allow slow signals to arrive. Ghost outcomes are the cleanest signal that the front office or dispatch is missing pipeline. We surface them because owners deserve to see them, not because anyone is being billed.
Any billable or verified outcome can be disputed within 7 days of the recorded booking time. Valid dispute reasons are documented and fixed: existing customer match, vendor or staff visit, no ad exposure, duplicate booking, other. A disputed outcome freezes pending review. Resolution either credits, with a negative billing event automatically applied to the next invoice, or upholds.
The dispute window exists because no attribution system is perfect, and the cost of a wrong charge to the owner is higher than the cost to Vero of investigating.
This methodology does not solve walk-in attribution that lacks any identifying signal. A person who sees a billboard, drives by, walks in, and gives no email or phone at the desk is never billed to paid media. That is the right answer.
This methodology does not attempt cross-device deterministic match in V1. A user who clicks an ad on their phone and books on a different device contributes only the G signal toward attribution unless their hashed identity reconciles via the booking form. The 30% discount on unlinked geofence presence accounts for this.
This methodology does not include impressions-driven first-touch attribution. First and last touch share credit only when both are genuine ad exposures within the lookback window. Impressions that do not produce a verified outcome are not billed.
Every read, every write, every decision the engine makes is logged. Retention is 7 years. The owner can pull the full chain of evidence for any billed outcome at any time. The same audit trail powers the dispute resolution UI.
The Compliance Watcher, a separate agent, runs a programmatic ad-compliance audit on every campaign at creation time. The audit checks for banned phrases, protected-class targeting, and industry-specific regulatory requirements (legal advertising rules per state, healthcare HIPAA, financial FINRA where applicable). The audit log captures pass or fail with the specific findings.
The fastest way to lose an owner's trust is to overbill. The second fastest is to underreport ghost outcomes so the front office never has to answer for them. The third fastest is to make attribution unfalsifiable.
This methodology is conservative on billable, aggressive on ghost, and transparent on dispute. The math is documented. The audit trail is permanent. If we are wrong, the owner can prove it. If we are right, the owner can prove that too.
Ninety days at $35 per verified booked job with no platform fee. Cancel anytime. You keep the SEO library on your subdomain.
Start a pilot See what's in the box