Insights · measurement

Flow revenue vs campaign revenue: which one to fix first

One half is a machine that runs while nobody watches it. The other is a decision somebody makes every week. They fail differently.

Four Wilsons cold pressed dog food sample packs in teal, pink, blue and orange on a coral ground
Theo Tziapouras, founder and strategy at Engage Commerce
Theo TziapourasFounder and strategy
11 August 2026 1,247 words6 minute read
In short · six parts

Every Klaviyo account splits its revenue two ways, and almost everybody reads the total instead. The split is the more useful number. It tells you whether the next month of work belongs in building something, or in sending something.

A Klaviyo growth overview on the message type breakdown tab, campaigns and flows listed as separate rows beside a stacked monthly bar chart

What the two halves are actually measuring

A flow fires because somebody did something. A campaign goes out because somebody picked a Tuesday. Klaviyo reports the two separately, and the ratio between them is the fastest read on an account you'll get.

Flow revenue is the return on things you built. Campaign revenue is the return on things you sent. They break differently, they recover differently, and adding them together hides both.

Where the split lives, and the tab nobody opens

Analytics, then the growth overview, then the message type breakdown. It puts campaigns and flows side by side for a period, and against the same period last year. In a business with a season, that's the only comparison worth making.

Read the chart before you read the totals. A month where the flow band grows while the campaign band holds steady is an account building an asset. A month where the campaign band carries everything is an account heading for a quiet January.

Flows first, in almost every account we take over

Flows are the half that keeps working while nobody's looking. A welcome sequence built in March is still earning in November, and it earns more as traffic grows. Not true of a newsletter you never got round to sending.

So the default order is flows, then campaigns. The reason is compounding, not performance. A campaign is worth what it earned that week; a flow is worth what it'll earn every week you leave it switched on.

One honest exception. A shop with a big list and modest traffic has more people to talk to than to trigger on, so the calendar is the only lever that moves this quarter. Build the flows anyway. Just don't expect them to carry the month.

  • The trigger fires on the right event, and fires once
  • The timing suits the product, not the template default
  • There is a split for people who have bought before
  • Smart sending isn't quietly holding half the audience out
  • Somebody has actually read the emails this year

The number that stops campaigns flattering themselves

Totals aren't a fair fight. A campaign goes to the whole engaged list; a flow goes to the few hundred people who did the thing that week. So campaigns win on total and lose on almost anything measured per person.

A column of placed order revenue from a Klaviyo flows table with a revenue per recipient line under each row and a percent change pill beside it

Revenue per recipient is the column that makes the two comparable, and the gap it exposes is usually the argument for building the flow stack out. It's also the number a campaign calendar can't fix. Sending more doesn't make each send worth more.

The trap runs the other way too. A flow that reaches almost nobody can post a per recipient number that looks miraculous and still earn less in a year than one decent campaign, so read the volume next to it. Both halves flatter themselves. They just use different mirrors.

Two things the split can't tell you, and one it fudges

Both halves get counted inside the same attribution window, so they're consistent with each other even when they're generous with themselves. That makes the ratio trustworthy and the totals worth a raised eyebrow.

The questionDoes the split answer itWhat you need instead
Which half earns moreYesNothing, this is the job it exists for
Which half to build nextMostlyTraffic and list size, because flows need people arriving
Whether the revenue is incrementalNoA holdout group, or at least an honest conversation
Who earned the credit for one orderNoThe window, and whatever the buyer last opened

One thing to check before you trust the ratio at all. If the account sends text messages too, set the channel filter to email. Otherwise the split you're reading is a different question wearing the same shape.

The last row is the one that matters when a budget moves on it. Somebody opened a campaign on Monday and bought out of a flow on Thursday? One of the two took the credit, and the other may well have done the work.

What to do on the Monday after you look

  1. Pull the split for the last quarter and for the same quarter a year ago
  2. If flows are the smaller half and traffic is healthy, build flows before you send anything else
  3. If flows are the bigger half and campaigns have flatlined, the list is tired, not the flows being clever
  4. Check revenue per recipient before you conclude either of those
  5. Then leave it for a quarter, because one month of this is noise

The account that reads well is the one where both halves grow and the flow half grows faster. The flow library is what we build to make that happen, and the Shadow Foam write-up is what it looked like when the campaigns kept up.

Theo Tziapouras, founder and strategy at Engage Commerce

Theo Tziapouras

Founder and strategy at Engage Commerce, the ecommerce agency for 7 and 8 figure DTC brands.

Should flows be a fixed share of email revenue?

No, and the rules of thumb doing the rounds are invented. The share depends on how much traffic reaches the site, how big the list is and how often you send to it. A shop with heavy traffic and a small list will always look flow heavy, and that isn't a fault to correct.

Why did flow revenue drop when I changed nothing?

Usually traffic, sometimes suppression. Flows fire on behaviour, so fewer visitors means fewer triggers even though the flow is untouched. Check how many people entered the flow before you start rewriting the emails, and check whether a new filter or smart sending is holding people out.

Do campaigns cannibalise flow revenue?

They overlap. Somebody who gets a campaign on Tuesday and buys through a cart reminder on Wednesday can be credited either way, depending on what they last engaged with inside the attribution window. Over a quarter it evens out enough to be useful, which is why we read the split quarterly and not weekly.

Can I compare my split with another brand's?

Not usefully. Two accounts count revenue over different attribution windows, sell at different prices and get their traffic from different places, so the ratio between their halves isn't a like for like comparison. Your own split last quarter is the only benchmark with your traffic in it.

Which half should a new store build first?

A welcome sequence and a checkout reminder, then campaigns, because those two flows earn from traffic the shop already has. Anything beyond that needs enough people arriving to be worth the build, and a new store usually has more to gain from list growth than from a fifth flow.

Not got your answer?Chat to us
End matter

The split is a decision, not a scorecard

Nobody should be proud of a ratio. You look at it because it tells you where the next fortnight of work belongs, and it's one of the few numbers in email that doesn't need three caveats before it's useful. Read it quarterly, act on it once, then go and build the thing it pointed at.

Theo TziapourasFounder and strategy · Engage Commerce

Would you rather this was just handled?

Bring your Klaviyo account and the thing annoying you most. We will tell you what we would fix first, on the call, before you spend anything.

Engage CommerceTheo Tziapouras, founder of Engage Commerce

Book a call with our founder.

We're all about relationships built on trust, mutual respect and a shared vision for success. If that sounds like your vibe, let's make some waves together 🌊