Triangulated Attribution

Marketing happens in places classic attribution will never see

We build one view of the journey, from first touch to closed revenue, so the channels creating demand stop showing up as traffic you cannot explain.

Book a diagnostic call
Where our founders built their expertise
AshbydbtDentsuHomerunInsifyMicrosoftMollieVeedWeTransferAirfocusAmazonAmplitude
AudibleCricutDelivery HeroDeutsche TelekomFlowableHomebaseIndeed FlexKiwi.comMixpanelNeuroflashNordnetOmaze
PointMePostHogShimanoSnowplowSociaaalSumUpSuperbetTomorrowTrust & WillWealthsimpleZeffy
What it is

Triangulated attribution means more than one source of truth, cross-checked

Click data sees part of the journey. Surveys see a different part. A holdout test answers a different question again. Each one is blind somewhere.

Running more than one means you find out when they disagree, which a single model can never tell you.

Which methods make sense depends on your channel mix. Nobody needs all of them.

ObservedClicks, sessions, CRM
StatedSurvey answers
StatisticalGeo patterns, holdouts
One modelRules you setMethods compared
Click, session and CRM dataAlways. This is the spine of the model.
Self-reported, the how did you hear about us answerYou spend on channels that rarely produce a click.
Geo traffic patternsYou run linear TV or radio, where impressions leave no click but show up as regional lifts.
Incrementality testsYou can hold a channel out in part of the market and read what changes.
Voucher codes and vanity URLsPlacements where the only record is the code or URL someone was given.

We do not sell you a model. We build one you own.

What a triangulated model enables

Top of funnel

Turn direct traffic into channels you can act on

Podcasts, events, communities and brand campaigns rarely end in a click. The credit does not vanish. It collects in direct.

Other inputs give those channels something to be counted on. None of them is precise, and we will say which parts stay uncertain.

Survey responses
→

Podcasts, word of mouth, people who typed your name

LinkedIn engagement
→

Engagement that happened before any site visit

Geo traffic patterns
→

Regional lifts from linear TV and radio impressions

Incrementality tests
→

Whether the channel caused anything at all

Unified journey

One journey per person, not one per platform

The CRM has the deal, the ad platforms have the spend, web analytics has the session, the app has the activation, billing has the revenue. Stitched together, one person's journey reads as a single ordered list of events, whichever system each one came from.

Data sourceEvent nameTimestampChannelInitiative
Google Analyticspage_view02/03/2026 09:14Newsletter Sponsorship021 Newsletter
LinkedInpost_engagement11/03/2026 20:41LinkedInOrganic Thought Leadership
Google Analyticspage_view30/03/2026 12:06Unknown
Amplitudesign_up03/04/2026 08:02
Intercomhdyhau_completed03/04/2026 08:04Newsletter Sponsorship021 Newsletter
Amplitudeworkspace_created05/04/2026 11:20
Google Analyticspage_view19/05/2026 14:58GoogleOrganic Brand
HubSpotdemo_requested19/05/2026 15:07
HubSpotemail_clicked19/05/2026 15:12WebinarReplacing Direct in Attribution
Lumawebinar_registered19/05/2026 15:14WebinarReplacing Direct in Attribution
HubSpotopportunity_won24/06/2026 16:30
Stripepurchase25/06/2026 09:00
Stages and teams

Different stages get different models

In a sales-led company there are at least two questions, owned by different teams and answered by different data. One model stretched across both makes both of them wrong.

First touch
Lead captured
Won opportunity
Model 1Web and ad platformsOwned by demand gen
Model 2CRM, weeks or months laterOwned by sales-aligned marketing
Your rules

You set the rules, and they are written down

Every model runs on rules. Out of the box they are hidden, and somebody else picked them. Here you decide them with us, and they stay documented.

They live in an interface we built, so your marketers can read any rule in plain language and see what it does to the numbers, without asking a data team.

  • Landed on /open-source → open-source touchpoint
  • LinkedIn engagement in the 30 days before first session → influenced touchpoint
  • Survey answer "heard a podcast" → podcast touchpoint, no click
  • Direct with no prior session → unattributed, not direct
Decisions

The numbers get used, because your team can defend them

A number nobody can explain does not survive a budget meeting. When the logic is documented, the argument moves to the decision itself: shift the budget, keep funding the channel, or change the rule that produced the number.

Model nobody can see intoModel your team owns
"Why is this number wrong?""Do we move budget out of this channel?"
Nobody can say where it came fromAnyone can trace it to a rule and challenge the rule
Decision gets made on instinctDecision gets made on the number, or the rule changes

What this looks like for different businesses

Sales-led B2B

Long cycles, revenue closing in the CRM months after the first click.

ROAS stays wrong until closed revenue connects back to paid.

Click data to the lead, CRM data from lead to won, survey responses for the touches with no click.

Web-to-app

The journey starts on the web, the conversion happens in the app.

Identity breaks at the join and one person gets counted as two.

Web and MMP data stitched into one journey before any model runs.

Subscription

The money arrives over months, not at the conversion.

Early revenue looks like all the revenue there is, so channels get judged on a fraction of what they returned.

Billing data joined to the journey, so channels get judged on realised revenue.

Brand-heavy consumer

Real money in linear TV, radio, out of home and podcast sponsorships.

Branded search and direct absorb the credit, so the channels creating demand look like the ones to cut.

Geo traffic patterns, survey responses, voucher codes and vanity URLs, cross-checked against the click model.

All models are wrong, but some are useful this one is ours.

Where out-of-the-box attribution breaks

One model out of the boxTriangulated
InputsClicks and sessions the tool can seeObserved, stated and statistical, chosen to fit your mix
Channels with no clickCounted as directCounted from surveys, geo patterns, holdouts, codes and vanity URLs
Funnel stagesOne model for everythingA model per stage, matched to the team
Default modelLast click, and nobody on your team decided thatChosen for your channel mix, and stated
Lookback windowA setting most marketers have never seenA decision you made, written down
CRM revenueNever makes it back into the numberConnected to the paid touchpoints that preceded it
RulesSet by the vendor, not visibleSet with you, documented, editable
Numbers look wrongNo way to checkTrace the rule, then decide whether to keep it
DisagreementHidden, there is only one methodSurfaced on purpose
OwnershipLocked to the toolYours, models included

You do not need a marketing data warehouse to start

That is the first thing we build. It is phase one of this project rather than a condition for it.

We run it as a retainer. We build the foundation, build the models, then own and run the pipelines. If you ever want to take it in-house, everything transfers to you.

See how we build the foundation

60%30%0
51%
8%
Before
After

Share of traffic reporting as direct

Case study · Zeffy

Direct-reported traffic from 51% to 8%

When most of a brand's traffic reports as direct, the channels actually creating demand look like the ones to cut. Rebuilding Zeffy's attribution brought direct down from 51% to 8%, and surfaced where the traffic was really coming from.

Read the Zeffy case study

How we get from your sources to a model your team owns

Retainers start with a 12-month period. The foundation goes in during the first two to three months, because first we have to know what to build.

01

Marketing workshop

What marketing is trying to achieve, which budget decisions are waiting, and which teams work to which stage.

02

Foundation phase

Sources land in the warehouse and get stitched into one journey per person. This is also what shows you what is broken upstream.

03

Agree the rules

We work through the rules with you in plain language, one at a time, and write each one down with its reasoning.

04

Build the models, per stage

First models get built in dbt, one per stage, using the rules you agreed.

05

Add the other inputs

Survey responses, geo patterns and holdout results, compared against the click model.

06

Keep refining

Mixes change and goals change. Models get revised against real decisions rather than declared finished.

What you can have at the end of it

In most of our projects, we first build the foundation and afterwards we build the model.

One place where your marketing data lives

A marketing data warehouse of your own, hosted and run by us, with access for your team.

Every relevant source in it

Your CRM, ad platforms, web analytics, app data, survey answers and billing, landing in one place and staying up to date.

Attribution numbers your reporting can read

The modelled tables sit in the warehouse, so the dashboards and tools you already use can pull from them.

An interface for the rules

Built by us. Your marketers can read every rule in plain language, see what it changes, and ask for a different one.

A model for each stage of the funnel

So the team working on leads and the team working on closed revenue each get numbers built for their question.

Incrementality results built in as rules

When a holdout test shows a channel is worth more or less than the clicks suggest, that finding becomes a rule in the model rather than a slide nobody reopens.

A marketing analyst you can talk to

Ask questions of your marketing data in plain language, from Claude or ChatGPT, instead of waiting on a dashboard.

Our marketing analytics application

Built by us and set up around your business model and your marketing strategy, rather than a generic reporting layer.

Under the hood it is all built in dbt and version controlled, so anyone on your side can trace exactly how a number was produced. Nobody on your team inherits maintenance they did not ask for.

Who this is for, and what happens on a call

The first call is a diagnostic, not a pitch.

Is at least one channel already working?

If nothing has proved itself yet, that is an incrementality question, not an attribution one, and a test answers it faster. Attribution earns its money on the next question: several things work, so where does the budget go.

Is your mix genuinely hard to measure?

Single-channel Google with an in-session conversion is not, and we will say so. What makes a mix hard is what the money is buying: channels stacking, long sales cycles, an app mid-journey, revenue closing in the CRM, spend with no click.

One of two things happens after the call. If we do not think you need this, you get an email saying so. If we do, we book a presentation within 7 working days on what you need, why, and what it would cost.

Book a diagnostic call

FAQs

How is this different from GA4, or from an attribution tool?

Both ship a model and let you configure it, using rules you cannot inspect and inputs they can see. Neither knows what closed in your CRM, and neither can take a survey answer or a geo pattern. We build a model on your data, with rules you set and can read. The trade-off is honest: a tool is faster to switch on, and if your journey is simple enough for one, we will say so.

Does this replace MMM, or include it?

Neither exactly. MMM is one of the methods we can triangulate against, and it is worth running when you have enough channels and enough spend history to justify it. Plenty of teams get what they need without it. It is an option, not a prerequisite.

What can this not do?

It cannot tell you the true cause of a single sale. Nobody can. It cannot recover a journey you never recorded anything about, and it will not make two methods agree. What it does is give you numbers that add up, with the reasoning visible, so you can see how much of each answer is measured and how much is inferred.

How accurate is it?

Accurate is the wrong frame, because there is no true number to check against. Some parts are close to counted, like a click that led to a purchase in the same session. Others are estimates with real uncertainty, like the share of direct traffic your podcast created. We label which is which rather than presenting both at the same confidence.

Will the numbers match what the ad platforms report?

No, and nothing will. Every platform counts conversions it had a hand in, so the totals across platforms add up to more than you actually got. The model gives you one set of numbers that adds up, which means each platform will show you a larger figure than the model does. That gap is the point, not a bug.

What does it cost?

We give you a number in the presentation, within 7 working days of the call. It depends on how many sources have to be ingested, how many models your funnel needs, and which of the extras you want in scope: sending conversions back to the ad platforms, designing incrementality tests, measurement strategy for new initiatives. Quoting before we have seen your setup would be guessing.

Do we have to commit to a 12-month retainer?

Twelve months is the default because of how the work is shaped. The foundation goes in during the first two to three months, and most of the value comes after that, when the models get refined against real decisions. It is not the only way to work with us, so raise it on the call if you want a different structure.

What do you need from us?

Access to the systems, and the marketing questions. Practically that means permissions from your data team and from whoever owns each source, two workshops at the start, and someone available to agree the model rules with us. Most of the load is at the beginning. We do not need your engineers.

Can you work with the warehouse we already have?

Usually we build a separate marketing warehouse, because it keeps the marketing models clean and easy to hand back later. If you would rather we build inside the one you run, we look at that case by case and tell you honestly whether it is the better call.

We have no data engineer. Can we still do this?

Yes, and that is the usual case. We build and run the whole thing. You bring the marketing questions and access to your systems, we bring the engineering.

Can our team change the logic later?

Yes, and most teams do. Every rule is readable in plain language in the interface, so your marketers can disagree with one and ask for it to change, without going through a data team.

Can you help us work out how to measure a new initiative?

Yes, and it is often the more useful half of the work. Before a new channel, sponsorship or campaign type launches, there is a decision to make about how you will know whether it worked: a code, a landing page, a survey option, a holdout, or accepting that you will only see it at a regional level. We work that out with you and build it in, rather than being asked to attribute something retrospectively that left no trace.

Who owns the models?

You do. The data, the dbt models and the documented rules are all yours, and we use the final month as a handover if you want to take them in-house.

The first call is for us to work out whether Propel is the right fit.

If we think it is, we book a second call. If we don’t, we’ll tell you.

01

First call: is it a fit?

A 30-minute diagnostic. We ask about your channels, budget, how you measure today and what’s changed.

02

If we think it’s a fit, we do the homework

The team goes through what you shared, works out where your measurement is likely falling short, and puts together our recommendations.

03

Second call: our insights and our take

A few days later, we walk you through what we found, what we’d do next and why, the scope and the price. It should be useful even if you don’t work with us.

Propel