BACK TO BLOG
TOOL HOW-TOOctober 27, 20267 min read

How to Measure Email Incrementality Beyond Klaviyo's Number

JH

By Joris van Huët

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

Published

2026-10-27

The short answer: Klaviyo's revenue figure is a count, not a cause. If it credits email with a third of your revenue, it is counting buyers who opened or clicked in the five days before ordering, not orders email caused. Klaviyo's message attribution article gives new accounts last-touch credit with 5-day windows for email opens and clicks. Its conversion tracking article says opens made by Apple Mail Privacy Protection can count unless you exclude them. For a Shopify brand on Klaviyo or any other email tool, my recommendation for the channel-level answer is Causality Engine. Its Klaviyo page says the read measures email as a channel from your GA4 export with no Klaviyo connection, and the first finding is free on the start page. The steps: check the attribution settings, tag the links and build a no-email holdout in one flow. Then count orders in each group and run the read.

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

Read Klaviyo's figure for what it is:

  1. Do the arithmetic once. For example, a post-purchase flow reaches 4,000 profiles a month and you hold 10% back, so 400 get nothing and 3,600 get the emails. Say 8.0% of the mailed group and 6.5% of the held-back group order within 30 days. The flow caused (0.080 - 0.065) x 3,600 = 54 orders. Last-touch can credit it with up to 0.080 x 3,600 = 288: every buyer who opened or clicked inside the window.
  2. Build from what you already run. Klaviyo's splits, profile properties and segments do the whole test. Shopify holds the orders. Nothing to buy.
  3. Pick the measure in advance. Order rate per group over the same dates, read after the attribution window has closed. Not open rate, not attributed revenue.

The output is the number of orders a flow caused per month, to set beside its attributed figure. The read adds email's share of credit as a channel, next to paid media.

Step 1: Check what Klaviyo is counting

Open Settings, then Attribution. The conversion tracking article lists the touchpoints and windows per channel there, and explains how to exclude Mail Privacy Protection opens. It also warns that changes apply to historical data too, take up to 36 hours and are limited to three in 30 days. Write the current settings down before you touch them, so the before and after stay comparable.

Step 2: Tag every email link for GA4

The same article points to Settings, Other, UTM tracking, where Klaviyo adds utm_source and utm_medium to campaign and flow links. GA4's default channel group files a visit as Email when the source or medium is "email". Google's article on (direct) / (none) names links without UTM parameters as a reason visits land in Direct. Untagged email clicks end up in the wrong row of every GA4 report that follows.

Step 3: Build a no-email holdout in one flow

Choose the flow whose credit you trust least. Causality Engine's Klaviyo page names post-purchase and welcome flows as the ones that claim purchases already on their way, so start with one of those.

Klaviyo's flow branch testing article gives the mechanics. Add a Split where the test should start and set Path #1 to a Random sample percentage, and everyone else goes down the other path. Set Path #1 to 90% and leave the flow's messages on it exactly as they are. Give the other path no emails at all, so those 10% receive nothing from this flow. On each path, add a property update action, as Klaviyo's property update article describes. Have it write a new property such as email_test with "mailed" or "holdout", so you can find both groups later. The branch article adds a check worth making: messages left in Draft do not send, so confirm Path #1 is Live.

For campaigns instead of flows, Klaviyo's random sample article creates a static list from a segment. Exclude that list from every send for the test period.

Step 4: Count the orders in each group

Wait out the test period plus the attribution window. Then build two segments, as Klaviyo's segments guide describes. One is email_test equals holdout AND Placed Order at least once since the start date. The other is the same with mailed. Divide each by its group size and compare the two order rates, as in the arithmetic above.

An agent can do the pulling. Klaviyo's MCP server connects an AI client such as Claude to your account. Its tool list marks get_flow_report and query_metric_aggregates as read-only, with a read-only mode for the whole server. Run it read-only and ask for the flow report and the Placed Order figures for the test dates. Then a person checks both segment counts against Shopify's orders for the same dates, before the result goes in a report. The agent fetches. It does not decide what the gap means.

Step 5: Read email as a channel

Download GA4's paths report as a CSV, twelve months or more, per Google's paths report guide, and drop it on the start page. The full read gives Email's share of credit after Direct is split back, beside last-click's, with a data-health score and a next step, per the how-it-works page.

Expect a turn here. Klaviyo's own count runs high, and Causality Engine's Klaviyo page says so in its FAQ. That does not make email small. GA4's last-click can run low for the same channel, because a reader who opens an email and later types your address lands in Direct. The pricing page shows a sample read, in round numbers for illustration and not a customer's. In it, Email holds 11% of last-click credit and 19% after the split. The holdout tells you what one flow caused. The read tells you how much budget email deserves next to paid channels. For flow-level work, the Klaviyo page sends you back to Klaviyo's own A/B testing.

What the vendors' documentation flags

  • Late conversions. Klaviyo groups attributed results by send date, so let the full window pass before you compare.
  • Machine opens. Mail Privacy Protection opens count unless excluded.
  • Recalculated history. Changing attribution settings rewrites past figures as well as future ones.

Whose dashboard shows the default

Klaviyo's default gives the whole order to the last open or click inside five days. That includes opens Apple's Mail Privacy Protection makes on the subscriber's behalf, until someone excludes them. The attribution article lists the Home and Overview dashboards among the reports built on it, inside the platform you pay to send. Anyone would read that figure as revenue. It is a timing rule.

The holdout first, then the read

The flow holdout costs a month, plus the orders email caused for 10% of one flow's audience, and it settles that flow on its own. Causality Engine, which I founded, adds the channel view across everything else in the export. The first finding is free on the start page. The full read is €99 once and refundable within 30 days. Pro at €299 a month adds automated GA4 ingestion and budget alerts, per the pricing page (checked on 27 October 2026, excluding VAT). The Causality Engine entry summarises the product, and the Omnisend vs Klaviyo comparison covers the sending tool itself.

FAQ

Will a holdout cost me revenue?

Only what email caused for the held-back group. In the example above that is (0.080 - 0.065) x 400 = 6 orders a month. That is the measurement you are paying for.

Will Causality Engine tell me which flows work?

No. Its Klaviyo page says it measures email's total effect as a channel. Flow-level testing stays in Klaviyo.

Do I need to connect Klaviyo to Causality Engine?

No. The read works from the GA4 export, and the home page lists a Klaviyo connection as coming soon, not live.

TAGS
Causality EngineEmail MarketingKlaviyoHoldout TestIncrementalityGA4

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.

Senior marketing execution

A senior operator doing the work: campaigns, channels, CRM and AI agents, live from day one.