Skip to main content
Card class: HeroCategory: Email Marketing
Healthy DTC accounts run >40% of email revenue through flows. Below means under-automated.

At a glance

The proportion of Klaviyo-attributed revenue that comes from automated flows (welcome, abandoned cart, post-purchase, browse abandonment, win-back) versus broadcast campaigns (newsletters, promotions, product drops). Computed as flow_revenue ÷ (flow_revenue + campaign_revenue) × 100 over the trailing 90 days. Healthy DTC accounts run 40-60% of email revenue through flows; below 40% means the account is under-automated and over-relying on broadcasts.
What it countsSUM(revenue) from flow-values-reports divided by SUM(revenue) from both flow-values-reports + campaign-values-reports, expressed as a percentage.
API endpoints + statistics fieldPOST /api/flow-values-reports and POST /api/campaign-values-reports, both with statistics: ["revenue"]. The card aggregates server-side per endpoint then computes the share locally.
Attribution modelKlaviyo default: 5-day click + 1-day view. Both numerator and denominator use the same attribution window, so the share is internally consistent regardless of how the merchant has configured the window.
Single-touch (last-touch) attributionSame caveat as klv_total_revenue. If a customer received a campaign AND was in a flow, only the most recent touch gets credit. The flow share moves around as send patterns change.
Email vs SMS aggregationCombined. Both flow-values-reports and campaign-values-reports aggregate email and SMS; this card mixes them. SMS-heavy accounts will see a slightly different shape because SMS flows often outperform SMS campaigns by a wider margin than email.
MPP impactNone. MPP inflates open rates but not revenue; this card uses revenue.
Refund / cancellation handlingNOT deducted. Same shape as klv_total_revenue.
Page cap50 campaigns + 50 flows per call. Mature accounts running >50 active campaigns AND >50 active flows will see slight truncation. The share itself stays directionally correct.
CurrencyKlaviyo’s account base currency. Both numerator and denominator are in the same currency, no FX issues.
Time window90D (longer window than most cards because flow performance accumulates and seasonal campaign spikes need to be smoothed)
Alert triggerflow share <40% (meaning campaigns are doing >60% of the work)
Rolesowner, marketing, finance

Calculation

Calculated automatically from your Klaviyo data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A B2B subscription brand selling office supplies through Shopify with Klaviyo for email + SMS. The 90-day window covers 12 Jan 26 to 12 Apr 26. Campaigns:
CampaignSendsRecipientsRevenue
Monthly newsletter (sent x3)396,000£14,200
Quarterly catalogue drop138,000£18,600
Spring stationery promo8248,000£32,400
Easter card sale136,000£8,800
Mother’s Day push142,000£21,400
Campaign total460,000£95,400
Flows:
FlowTriggerEntries (rolling)Revenue
Welcome series (5-step)New subscriber8,400£18,200
Abandoned cart (3-step)Started checkout, no purchase12,200£42,800
Browse abandonmentViewed product, no add-to-cart6,800£6,200
Post-purchase upsellOrder placed9,400£14,400
Replenishment reminderOrder date + N days3,200£11,400
Win-backNo purchase 90+ days2,800£4,200
Flow total42,800£97,200
Total Klaviyo revenue       = £95,400 + £97,200 = £192,600
Flow share                  = £97,200 ÷ £192,600 × 100 = 50.5%
Five observations:
  1. Flow share at 50.5% is healthy for a B2B subscription brand. Above the 40% alert threshold, in the sweet spot of the 40-60% band. This account doesn’t need urgent flow expansion; the existing flows are pulling their weight relative to the broadcast volume.
  2. Per-recipient, flows are 5-10× more efficient. Flows generated £97,200 from 42,800 entries (£2.27 per entry); campaigns generated £95,400 from 460,000 sends (£0.21 per send). This is the universal pattern. Flows are triggered by behaviour (new sign-up, cart abandon, product view), so they reach customers at moments of intent. Campaigns are blasted to a list and most recipients aren’t ready to buy.
  3. Abandoned cart alone is 22% of total Klaviyo revenue. £42,800 from a single 3-step flow. Audit any account where the abandoned-cart flow is in draft state, switching it on typically adds 10-15% to total Klaviyo revenue within 30 days.
  4. The Spring promo at £32,400 from 248,000 sends is a campaign red flag. £0.13 per send is below average. The newsletter at £14,200 from 96,000 sends (£0.15) is similar. The merchant is leaning on volume rather than relevance, lower send frequency to better-segmented audiences would lift per-recipient revenue and reduce unsub risk.
  5. The flow share doesn’t tell you flows improved, it tells you flows kept up with campaigns. This number can rise either because flows got better OR because campaigns got worse. Always read alongside klv_total_revenue and the absolute flow revenue figure. A rising share with falling absolute flow revenue means broadcasts collapsed faster than flows, not that flows grew.

Sibling cards merchants should reference together

Flow vs Campaign Revenue Mix is a portfolio metric. Pair it with these:
CardWhy pair it with Flow vs Campaign Revenue Mix
Klaviyo Email-Attributed RevenueThe denominator. The mix percentage is meaningless without knowing whether absolute revenue is rising or falling.
Klaviyo Top 10 Flows by RevenueThe detail view. Mix tells you flows are 50% of revenue; this card tells you which flows specifically. Usually one flow (abandoned cart) drives 30-50% of all flow revenue.
Klaviyo Top Campaigns by RevenueThe campaign-side detail. If campaign revenue is dominated by 1-2 tentpole sends, the merchant is fragile.
Klaviyo Flow Status BreakdownIf flow share is below 40%, check here first. Most under-automated accounts have 3+ flows in draft state that should be live.
Klaviyo Abandoned-Cart Flow StatusThe single most common cause of low flow share. Abandoned cart in draft = 10-15% of revenue left on the table.
Klaviyo Welcome Flow StatusThe second most common cause. Welcome flow drives lifetime customer behaviour; missing it means new subscribers don’t form a Klaviyo habit.
Klaviyo Revenue per RecipientThe efficiency view. Healthy accounts have flows running 5-10× higher revenue-per-recipient than campaigns; this card surfaces whether that pattern holds.
Klaviyo Campaign Send CadenceOver-cadenced campaigns suppress flow share mathematically (more campaign revenue raises the denominator). Check both.

Reconciling against the vendor’s own dashboard

Where to look in Klaviyo: Klaviyo → Analytics → Performance shows campaign and flow revenue side-by-side. Klaviyo doesn’t expose a single “flow vs campaign mix” tile by default, but the two figures sit next to each other and the share can be eyeballed. This card precomputes it. Other Klaviyo views that look like the same number but aren’t:
  • Reports → Flow Performance: shows per-flow revenue but not the mix vs campaigns.
  • Reports → Campaign Performance: shows per-campaign revenue but not the mix vs flows.
  • Reports → Custom Reports: configurable to surface this exact metric, default reports don’t.
  • Klaviyo’s “Email Performance” overview tile: shows total email revenue without splitting flows vs campaigns.
Why our number may legitimately differ from Klaviyo’s dashboard:
ReasonDirection of divergence
Time-zone. Klaviyo runs on the merchant’s account timezone; Vortex IQ runs on UTC by default. Boundary days differ.Both numerator and denominator shift together; the share is largely unaffected.
Page caps: 50 campaigns + 50 flows per call. Mature accounts running >50 actives in either bucket see truncation.The truncation usually hits campaigns more (high cadence) than flows; reported flow share runs slightly higher than reality for very large senders.
Attribution-window setting. If the merchant changed the window mid-period, both numerator and denominator shift, but cross-period comparisons drift.Small drift on changed-window accounts.
Currency. Both numerator and denominator are in account base currency, no FX issue.None.
Mid-period flow changes. If a flow was activated mid-period, only post-activation revenue contributes to the numerator, but the trailing 90D window may include pre-activation campaign revenue, depressing the apparent flow share.Reported flow share lower than steady-state. Recompute after 90 days of stable flow operation.
Cross-connector reconciliation: Flow vs Campaign Revenue Mix is a Klaviyo-internal portfolio metric. There is no direct equivalent on other platforms.
CardExpected relationshipWhat causes legitimate divergence
shopify.total_revenueNo direct relationship. The mix tells you about Klaviyo internal balance, not about the relationship to total store revenue. Pair this with klv_xc_email_revenue_share for the cross-connector view.n/a
ga4.ga_revenue_trendGA4’s email channel revenue includes both flows and campaigns, GA4 cannot distinguish them. So this card is the only place the merchant can read the split.n/a

Known limitations / merchant FAQs

My flow share is 25%, what should I fix first? Three checks in order: (a) confirm the abandoned-cart flow is live, this single flow typically drives 25-40% of all flow revenue; (b) confirm the welcome flow is live and includes 4-6 messages, not just one; (c) confirm a post-purchase upsell or replenishment flow exists. Most accounts under 40% flow share are missing one of these three. Open klv_flow_status_breakdown to see what’s drafted. My flow share jumped from 45% to 70% but absolute revenue dropped, what happened? Campaign revenue collapsed faster than flow revenue. This is a worse signal than a falling flow share, it means broadcasts stopped working (audience fatigue, list degradation, or send cadence problem) but flows are still doing their baseline job. Investigate klv_top_campaigns_revenue for the campaign drop and klv_bounce_rate / klv_spam_rate for deliverability problems that disproportionately hurt campaigns (which send to bigger, less engaged audiences). Are SMS flows counted in this card? Yes. Both flow-values-reports and campaign-values-reports aggregate email and SMS by default. SMS flows often have a higher revenue-per-entry than email flows because SMS is read more reliably, so SMS-heavy accounts will see slightly inflated flow share. To split email vs SMS, use the channel filter in Klaviyo’s dashboard. What’s the right benchmark for my industry? Mature DTC brands run 50-65% flow share. Newer brands (under 12 months of list-building) typically sit at 30-45% because the campaign volume is doing the acquisition work and the flows are still small. B2B and high-AOV considered-purchase brands skew lower (30-45%) because the buying cycle is too long for short-window cart-abandon flows to dominate. Subscription and replenishment brands skew highest (60-70%) because the post-purchase flow is doing the renewal work. Why is the alert at 40% specifically? Below 40%, the merchant is meaningfully under-automated and leaving 10-20% of total Klaviyo revenue on the table. Above 80% the merchant has the opposite problem, broadcasts are too thin and the flows are running flat-out without supplementary campaigns to introduce new products. The 40-70% band is healthy for most archetypes; 40% is the early-warning floor. Does refunds change the mix? No, because refunds are NOT deducted from either numerator or denominator. Both sides of the calculation use Klaviyo’s Placed Order event revenue at order time. If a flow-attributed order is refunded but a campaign-attributed order is not, the mix doesn’t move. What if I run a flow as a one-off rather than triggered? Klaviyo supports “manual” flows (sent by triggering them on demand from a segment). These are categorised as flows in the API even though they behave like campaigns. The card counts them as flow revenue. If you run lots of manual flows, the flow share figure drifts upward and isn’t reflecting true automation; check klv_flow_trigger_types to see what fraction is automated vs manual. My multi-currency Shopify store, how does this affect the mix? No effect. Klaviyo stores all revenue in the account’s base currency, so both numerator and denominator are in the same currency. The share is internally consistent regardless of how many currencies the underlying Shopify store transacts in.

Tracked live in Vortex IQ Nerve Centre

Flow vs Campaign Revenue Mix is one of hundreds of KPI pulses Vortex IQ tracks across Klaviyo and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.