Skip to main content

Cross-funnel

Attribution built to the system where your revenue is recorded.

Every platform grades its own homework. We build the layer that connects what you spent to what your business actually booked, in your CRM, your EMR, or your PMS, so budget moves toward outcomes, not clicks.

Every ad platform reports its own conversions, and every one of them is grading its own homework. A platform counts a conversion when its own pixel or API sees a signal it recognizes — a form submit, a call button tap, a landing page view within an attribution window it defines. None of that is the same as a booked appointment, a signed agreement, or a completed sale. The gap between what a platform reports and what the business actually recorded is where budget gets misallocated, month after month, without anyone noticing until the pattern is a year old.

This is not a small distortion. A channel that generates fewer, more qualified inquiries will look worse in platform-reported cost per lead than a channel flooding the funnel with unqualified volume, and the flood gets more budget the following quarter. Run that comparison for a year against the wrong number, and the compounding effect is a marketing budget that has been optimized, carefully and consistently, toward the wrong outcome.

We build the layer that closes that gap: the tracking, call scoring, and matching required to connect every dollar spent to the outcome your business actually recorded, in the system where that outcome lives — your CRM, your EMR, or your property management system, not a marketing dashboard.

  1. Budget committed

    Google Ads, Meta, LSA, print, direct mail

  2. Click or impression

    Platform-reported, ungrounded in revenue

  3. Call, form, or chat

    Call tracking, form capture, session stitching

    Most agency reporting stops above this line. Everything below it is where the money is decided.

  4. Qualified inquiry

    Call scored, spam and vendor calls removed

  5. Booked appointment or signed agreement

    CRM, EMR, or PMS record matched back to source

  6. Revenue recorded

    Cost per booked outcome, by channel and location

The six-step chain above is where that connection actually happens. Steps one through three are what every platform already reports: money spent, an impression or click, and a form, call, or chat. Step four is where most agency reporting quietly stops — a raw inquiry is not the same as a qualified one, and a lot of what platforms call a conversion is a wrong number, a vendor cold call, or someone who had already decided not to buy. Everything from step four onward — a scored inquiry, a booked outcome, revenue actually recorded — is what we build, and what most vendors never measure.

What we build

Tracking architecture
A single event taxonomy across GA4, Google Tag Manager, Meta, and any other ad platform in use, so a lead means the same trigger and the same fields everywhere it fires, not five slightly different definitions across five tools.
Call scoring
Every inbound call recorded and scored against a fixed rubric — booking intent, existing customer, wrong number, vendor or spam — so a call center transfer or a robocall never counts as a qualified inquiry.
Offline conversion import
Booked outcomes recorded in your CRM, EMR, or PMS pushed back to the ad platforms on a schedule, using the platform's own offline conversion API, so bidding algorithms optimize toward outcomes instead of clicks.
Identity matching
Match keys — phone number, email, session ID, or a hashed identifier where privacy rules require it — used to connect a click to the record it produced, deterministically where the data supports it and probabilistically where it does not.
Location-level reporting
Every metric broken out by the site or region that produced it, so a strong national average cannot hide three underperforming locations.
Decision log
A dated record of what changed each month and the data that prompted it, so a budget shift can be traced back to a specific number rather than an impression.

How it is measured

The conversion we optimize toward is a booked outcome recorded in your own system: an appointment attended, a signed agreement, a completed sale — not a form submission or a call answered. A form submission is an input to the process; it becomes a conversion only once your team confirms it produced the outcome your business actually wanted.

For a call-driven business, the conversion definition is a call scored above the booking-intent threshold, not a call answered — a robocall or a wrong number that consumes thirty seconds of hold time is not the same event as a genuine inquiry, and treating them the same inflates every channel that happens to generate more incidental call volume. For a form-driven business, the definition is a form submission the sales team subsequently marks as a real opportunity, not the raw submission count, which is inflated by the same bot traffic and duplicate entries every marketer already knows to distrust.

Attribution can establish which channel, campaign, and location a booked outcome traces back to, within the limits of the match quality documented for that connection. It cannot establish causation in a strict sense — no attribution model can prove a customer would not have converted anyway through a different channel — and we do not present it as if it can. What it can do is give you a consistent, auditable standard for comparing channels against the same outcome, instead of comparing a platform's self-reported clicks against a competitor's self-reported form fills.

Where matching is probabilistic

Not every click can be deterministically matched to a booked outcome. When a phone number or email is captured at the point of conversion, the match is deterministic — the same identifier appears on both sides, and there is no ambiguity. That covers most call and form conversions.

It breaks down in two common cases: a customer researches on one device and calls or visits from another with no shared identifier, or your intake system does not capture the contact details your ad platform can match against. In both cases, we fall back to probabilistic matching — timing, geography, and session behavior used to estimate the most likely source, expressed as a confidence score rather than a certainty.

We document that confidence score alongside every probabilistically matched outcome, and we report the deterministic and probabilistic shares of your attributed revenue separately rather than blending them into one number. If a quarter's attributed revenue is 70 percent deterministic and 30 percent probabilistic, that is what the report says — not a single blended figure that hides which part of it you can fully trust. Any vendor who tells you their attribution is 100 percent accurate is either not being honest about how identity resolution works, or has not looked closely enough to find where it fails.

What we need from you

Administrative access to your ad accounts, call tracking platform, and analytics — not view-only, since offline conversion import requires write access to push data back. Read access or a scheduled export from the system that records booked outcomes: your CRM, EMR, or property management system, whichever holds the record of what your business actually closed. And one person on your team who can answer how intake actually works in practice — which forms route where, what a received call sounds like before it is scored, and where the process breaks down — rather than how it is supposed to work on paper. That person does not need to be senior. They need to be the one who would notice if a step silently stopped happening.

Who this is for

This is built for operators managing marketing across more than one location or a long, high-consideration sales cycle, where a single blended report cannot show which site or channel is actually producing outcomes. Multi-location healthcare groups are a common example: a dozen sites, a dozen different intake processes, and a national conversion number that hides which three locations are actually underperforming.

If your team already has clean, deterministic tracking in place and a straightforward single-location funnel, you may not need this layer yet — see how an engagement runs to judge for yourself, or look at our case studies to see what the finished layer looks like in practice.

We work with a scheduled export instead — most EMR and PMS systems support a nightly or weekly export even without a public API. It arrives a day or two behind real time rather than instantly, which is a genuine tradeoff, but it still lets us match booked outcomes back to source reliably. If your system supports neither an API nor a scheduled export, we will tell you before signing anything, because that specific gap changes what we can build.

Most accounts reach a reliable baseline within the first two full reporting cycles once call scoring and the offline conversion import are both live and running on the same schedule. The first cycle is mostly plumbing — confirming the match rate and catching any intake step nobody mentioned in the kickoff call. By the second cycle, we have enough matched outcomes to separate deterministic from probabilistic share with confidence, and that is when the reporting becomes something you should act on rather than just watch.

Not necessarily. We can run the measurement layer underneath an existing agency's execution, reporting on their campaigns the same way we would our own, without touching their creative or media buys. Some clients keep their agency relationships exactly as they are and add this layer on top; others use what the layer shows to have a more informed conversation with that agency about where budget should move. Which one happens is a decision for you to make with better information, not something we decide for you.

We do not retroactively rebuild attribution for spend that already happened — the tracking and matching this requires has to be live at the time of the click or call to work. What we can do is establish a clean baseline from the day the layer goes live, and use whatever historical platform-reported numbers exist as context for how much the picture changes once real matching is in place. Most clients find that gap itself is informative, even without a rebuilt history.

GA4's attribution models compare channels using its own event data and its own definition of a conversion, which for most accounts is still a form fill or a page view, not a booked outcome. It cannot see into your CRM, EMR, or PMS, so it has no way to know whether that form fill became revenue. What we build sits on top of GA4 rather than replacing it — GA4 stays useful for on-site behavior, while the outcome-level matching happens against your actual revenue system.

You do. The tracking architecture, the tagging, and the documentation for how matching works are built in your own accounts and your own tag manager container, not a black box we control. If the engagement ends, everything stays live and instrumented exactly as it was; you would lose the ongoing call scoring and reporting service, not the underlying tracking itself. We document the setup specifically so a future team, whether internal or another vendor, can pick it up without starting over.

See where your attribution gap actually is.

Two weeks, fixed scope: we map your current tracking against what your revenue system records, and show you exactly where the gap is.

Book a call