BACK TO BLOG
USE CASESNovember 11, 20268 min read

Amplitude With Causality Engine: Test the Data Driven Model

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-11-11

The short answer: if your store runs Amplitude beside GA4, you already own two attribution engines and they will not agree. Amplitude, the event-based analytics platform, credits a purchase to channels by whichever of its built-in models you pick in a Data Table, from First Touch to a Data Driven model built on first-order Markov chains, each over a lookback window you set (attribution guide). Its Free plan covers 2 million events a month (pricing, checked on 11 November 2026). Causality Engine, a causal attribution tool, reads one file only: GA4's Attribution paths export. Amplitude's events cannot be uploaded to it, so the read starts from the GA4 side, on the free start page.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

Rules of thumb before two engines go into one meeting:

  1. Check the column total first. For example, a Participation column that sums to 6,027 purchases over an Overall row of 2,470 is 6,027 ÷ 2,470 = 2.44 credits per purchase. Amplitude says that column is built to exceed the total; it is not a revenue figure.
  2. Use the GA4 property you already run. The read needs nothing from Amplitude. If GA4 records purchases as a key event, the file exists today.
  3. Name the channel you will test. Pick the one where Amplitude's Data Driven column, GA4 last-click and the read disagree most, then test it in one region.

Amplitude next to the read

TopicAmplitudeCausality EngineSource
What it isEvent-based product and web analytics with session replay and experimentsA causal read of a GA4 exportAmplitude entry, CE entry
Its own dataEvents from its SDK; the default autocapture set includes marketing attributionNo collection; reads the exportBrowser SDK, how it works
Credit ruleNine built-in models plus custom ones, per metric column, over a chosen lookbackEach channel's caused share beside a last-click rebuild, with a 0 to 100 data-health scoreAttribution guide, how it works
ChannelsA GA4-aligned default classifier over UTM and referrer values, editableGA4's own default channel group, as exportedChannels, Google
ConnectionNoneNoneIntegrations
PriceFree to 2 million events a month; Plus billed per event above thatFree first finding; €99 a read, excluding VATAmplitude pricing, CE pricing, both checked on 11 November 2026

How Amplitude hands out credit

Multi-touch attribution lives in Data Tables, on every plan. On a metric column you open the menu, choose Attribution, pick a model and set a lookback window. The attribution guide lists the models and is unusually candid about their arithmetic:

  • First Touch, Last Touch and Last Non-Direct Touch are the only built-in models whose event totals add up to the Overall row.
  • Participation gives every touch point full credit, so its rows sum to more than the total.
  • Linear, U-Shaped, J-Shaped and Inverse J-Shaped split credit by position; the guide's weighting table shows a J-Shaped 30%/70% split for two touch points.
  • Data Driven treats each journey as a chain, removes channels one at a time and credits each in proportion to its removal effect. The guide recommends it for properties with 50 or fewer values and says it does not count nulls.
  • Custom models take a first, middle and last weight and need an Admin or Manager.

Two limits matter for a store. The support table marks the Markov model as available for uniques and event totals, not for revenue totals, so a revenue column cannot use Data Driven. And Last Non-Direct Touch decides what is direct through your channel classifier, falling back to the classifier's catch-all channel when no Direct channel is defined.

The traffic both tools see, counted twice

Amplitude sends nothing to GA4, and GA4 sends nothing to Amplitude. Each reads the same UTM tags and referrers on arrival and files them by its own rules. Amplitude's channels page says its default classifier is aligned with GA4's channels and warns that inconsistent handling of UTM properties can push tagged traffic into Other. Google's default channel group files traffic that matches no rule as Unassigned.

So one mis-tagged campaign shows up as Other in one tool and Unassigned in the other. Fix the tag once, in the ad or email link, and both columns improve.

Worked example: one quarter, three answers

For example, with figures chosen to show the arithmetic and no store behind them: Shopify books 2,580 orders in a quarter. GA4 records 2,391 purchases, and Amplitude 2,470 Purchase events. A Data Table groups Purchase event totals by the default channel classifier with a 30-day lookback:

ChannelLast Non-Direct TouchParticipationData Driven
Paid Social8121,388734
Paid Search6551,102618
Organic Search517980563
Email3941,046471
Direct921,51166
Sum of rows2,4706,0272,452

Last Non-Direct sums to the Overall row, as the guide promises: 812 + 655 + 517 + 394 + 92 = 2,470. Participation reaches 6,027, because one purchase is credited once to every channel it touched. Data Driven moves 812 - 734 = 78 purchases away from Paid Social and gives Email 471 - 394 = 77 more; its rows need not meet the Overall row, since the guide names only three models that do.

Meanwhile Meta Ads Manager claims 1,090 purchases for the quarter, 1,090 - 812 = 278 above even Amplitude's most generous single-credit view of Paid Social.

Amplitude's Data Driven column is already a removal estimate on Amplitude's own events. The read is a separate estimate on GA4's paths. Per its how-it-works page, it splits GA4's Direct back to the channels behind it, sets each caused share next to a last-click rebuild, scores data health from 0 to 100 and names a next step tested in one region. Two observational estimates that agree on Email's direction are worth more than either alone. If they disagree, neither settles it; a test does.

The free check: compare, then hold back

Start inside Amplitude, at no cost. Put First Touch, Last Non-Direct Touch and Data Driven on three copies of the same column and note which channels move. Then run a regional holdout by hand: pause Paid Social in one country for four weeks and compare Shopify orders there with the rest. Amplitude's experiment tooling is built for product changes, and its Feature Experiment page lists holdout groups as an add-on on Growth and Enterprise, so a channel pause is a manual job on Free or Plus.

If the comparison still leaves the budget open, Causality Engine, which I founded, reads the GA4 export on the start page. The first finding is free and computed in your browser; the full read costs €99 once, refundable within 30 days (pricing, checked on 11 November 2026).

What one tool does that the other does not

  • GA4 is required. A store that runs Amplitude alone has no file for the read. The start page asks for GA4's Attribution paths export, a purchase key event and 12 months or more.
  • Channel level only. Amplitude credits any property you group by: campaigns, content, internal promotions. The read reports channels.
  • Thin channels. Below 1% of credit on both of its methods, a channel is called too small to act on (agents page).
  • Everything after the purchase. Repeat buying, cohorts and replays stay Amplitude's job.

Every model in that Data Table runs on touch points the SDK recorded as events, and Amplitude bills Plus per event above the first 2 million a month (pricing). Capturing more of each journey to feed a model is also the shortest road to the next bill.

See also

FAQ

Can Causality Engine read Amplitude data?

No. There is no connector and no import. The read takes GA4's Attribution paths CSV and nothing else, per its integrations page, so Amplitude's events stay in Amplitude.

Is Amplitude's Data Driven model the same thing as a causal read?

Both estimate what happens when a channel is taken away, from observed journeys. Amplitude's guide describes a first-order Markov removal effect on its own events; the read works from GA4's paths. Neither replaces a holdout.

Why do Amplitude and GA4 count different purchase totals?

Each counts the events its own script recorded and files them by its own channel rules, and Amplitude's channels page notes that inconsistent UTM handling can push traffic into Other. Compare both with Shopify's orders.

TAGS
Causality EngineAmplitudeMulti-Touch AttributionGA4Worked Example

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Agentic marketing, built for your team

The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.

With Joris van Huët, interim and fractional CMO in Utrecht. From EUR 5,000 a month, monthly cycles, a 30-day exit.