> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Campaign vs Flow Revenue, Klaviyo

> Campaign vs Flow Revenue: the split of Klaviyo-attributed revenue between one-off campaigns and always-on flows. Healthy DTC accounts run >40% of email revenue through flows. Below means under-automated. How to read it, why it matters, and how to act on it.

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Email Marketing](/nerve-centre/connectors#connectors-by-type)

> 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 counts**                        | `SUM(revenue)` from `flow-values-reports` divided by `SUM(revenue)` from both `flow-values-reports` + `campaign-values-reports`, expressed as a percentage.                                                                                             |
| **API endpoints + statistics field**      | `POST /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 model**                     | **Klaviyo 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) attribution** | Same 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 aggregation**              | Combined. 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 impact**                            | None. MPP inflates open rates but not revenue; this card uses revenue.                                                                                                                                                                                  |
| **Refund / cancellation handling**        | NOT deducted. Same shape as `klv_total_revenue`.                                                                                                                                                                                                        |
| **Page cap**                              | 50 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.                                                                           |
| **Currency**                              | Klaviyo's account base currency. Both numerator and denominator are in the same currency, no FX issues.                                                                                                                                                 |
| **Time window**                           | `90D` (longer window than most cards because flow performance accumulates and seasonal campaign spikes need to be smoothed)                                                                                                                             |
| **Alert trigger**                         | `flow share <40%` (meaning campaigns are doing >60% of the work)                                                                                                                                                                                        |
| **Roles**                                 | owner, 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:**

| Campaign                     | Sends | Recipients  | Revenue     |
| ---------------------------- | ----- | ----------- | ----------- |
| Monthly newsletter (sent x3) | 3     | 96,000      | £14,200     |
| Quarterly catalogue drop     | 1     | 38,000      | £18,600     |
| Spring stationery promo      | 8     | 248,000     | £32,400     |
| Easter card sale             | 1     | 36,000      | £8,800      |
| Mother's Day push            | 1     | 42,000      | £21,400     |
| **Campaign total**           |       | **460,000** | **£95,400** |

**Flows:**

| Flow                    | Trigger                        | Entries (rolling) | Revenue     |
| ----------------------- | ------------------------------ | ----------------- | ----------- |
| Welcome series (5-step) | New subscriber                 | 8,400             | £18,200     |
| Abandoned cart (3-step) | Started checkout, no purchase  | 12,200            | £42,800     |
| Browse abandonment      | Viewed product, no add-to-cart | 6,800             | £6,200      |
| Post-purchase upsell    | Order placed                   | 9,400             | £14,400     |
| Replenishment reminder  | Order date + N days            | 3,200             | £11,400     |
| Win-back                | No purchase 90+ days           | 2,800             | £4,200      |
| **Flow total**          |                                | **42,800**        | **£97,200** |

```text theme={null}
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:

| Card                                                                                             | Why pair it with Flow vs Campaign Revenue Mix                                                                                                                               |
| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Klaviyo Email-Attributed Revenue](/nerve-centre/kpi-cards/klaviyo/email-attributed-revenue)     | The denominator. The mix percentage is meaningless without knowing whether absolute revenue is rising or falling.                                                           |
| [Klaviyo Top 10 Flows by Revenue](/nerve-centre/kpi-cards/klaviyo/top-10-flows-by-revenue)       | The 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 Revenue](/nerve-centre/kpi-cards/klaviyo/top-campaigns-by-revenue)     | The campaign-side detail. If campaign revenue is dominated by 1-2 tentpole sends, the merchant is fragile.                                                                  |
| [Klaviyo Flow Status Breakdown](/nerve-centre/kpi-cards/klaviyo/flow-status-breakdown)           | If 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 Status](/nerve-centre/kpi-cards/klaviyo/abandoned-cart-flow-status) | The single most common cause of low flow share. Abandoned cart in draft = 10-15% of revenue left on the table.                                                              |
| [Klaviyo Welcome Flow Status](/nerve-centre/kpi-cards/klaviyo/welcome-flow-status)               | The second most common cause. Welcome flow drives lifetime customer behaviour; missing it means new subscribers don't form a Klaviyo habit.                                 |
| [Klaviyo Revenue per Recipient](/nerve-centre/kpi-cards/klaviyo/revenue-per-recipient)           | The 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 Cadence](/nerve-centre/kpi-cards/klaviyo/send-cadence)                    | Over-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](https://www.klaviyo.com/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:**

| Reason                                                                                                                                                                                                                                   | Direction 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.

| Card                                                                             | Expected relationship                                                                                                                                                                                  | What causes legitimate divergence |
| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------- |
| [`shopify.total_revenue`](/nerve-centre/kpi-cards/shopify/total-revenue)         | No 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_trend`](/nerve-centre/kpi-cards/google-analytics/revenue-trend) | GA4'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                               |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multiple email platforms)</em></summary>

  The flow-vs-campaign mix concept exists on every other email platform (Klaviyo flows = Mailchimp customer journeys = Sendgrid automations). The numbers won't reconcile across platforms because the merchant typically uses only one ESP at a time, but the concept is portable.
</details>

## 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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
