Healthy DTC sits 20-40% email-attributed. Below = leaving money on the table; above = dangerous list dependency.
At a glance
The percentage of BigCommerce revenue (intotal_inc_tax) attributed to Klaviyo email / SMS flows in the period. Cross-connector view: BC orders matched to Klaviyoplaced_orderevents that carry a$flowor$campaignUTM. Healthy DTC sits 20-40% email-attributed; below 15% means email is under-leveraged; above 55% means dangerous list dependency.
| What it counts | SUM(BC.total_inc_tax) WHERE order matched to Klaviyo flow/campaign attribution ÷ SUM(BC.total_inc_tax) total × 100. Match key is the lowercased billingAddress.email joined to Klaviyo’s placed_order event email, within Klaviyo’s standard 3-day click attribution / 1-day open attribution windows. |
| VAT / tax treatment | Tax-inclusive on both sides. BC’s total_inc_tax is always tax-inclusive; Klaviyo’s value ingested from BC orders inherits the same. |
| Shipping | Included (BC total_inc_tax semantics). |
| Discounts | Already deducted (post-discount totals attributed). |
| Refunds | Not deducted. The card uses gross revenue at attribution time; refunds happen post-fact and don’t retroactively reverse the attribution. |
Incomplete / Declined orders | Excluded. Klaviyo’s placed_order event fires only on successful checkout. The denominator is also restricted to paymentStatus IN ('captured', 'paid') to make both sides comparable, this card excludes phantom revenue that other BC cards include. |
| Cancelled orders | Excluded. |
| Currency | Per-store-total without FX. Most stores have one Klaviyo account per store. |
| Channels / sources | Web only by default. Klaviyo doesn’t track marketplace orders (Amazon, eBay) because those orders don’t pass through your storefront’s checkout. The card reports email-attributed share of the channel_id = 1 revenue base by default; configurable to include all channels with the marketplace baseline knowingly diluted. |
| Attribution windows | Klaviyo defaults: 3-day click, 1-day open. This card inherits Klaviyo’s attribution model rather than recomputing from raw events. Customers who opened an email 5 days ago and bought today are NOT counted; this is intentional to match how Klaviyo reports. |
| Time window | 30D (the BC revenue window; Klaviyo attribution computed per-order at order time) |
| Alert trigger | <15% (email under-leveraged) OR >55% (email over-dependent). The two-sided alert reflects that both extremes are problems: under-leveraged means missing easy revenue, over-dependent means a single email-deliverability incident takes down most of the business. |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your BigCommerce 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 US homewares brand on BigCommerce Enterprise with Klaviyo connected for email and SMS flows. The 30-day window covers 14 Mar 26 to 12 Apr 26.| Component | Revenue | Share | Notes |
|---|---|---|---|
| Total BC web revenue (channel_id = 1, captured only) | $325,180 | 100.0% | Excludes phantom + marketplace |
| Klaviyo flows attributed (welcome, abandonment, post-purchase, browse) | $61,820 | 19.0% | The flow-side attribution |
| Klaviyo campaigns attributed (one-off broadcasts) | $26,140 | 8.0% | Campaign-side attribution |
| Email-attributed total (this card) | $87,960 | 27.0% | Healthy band |
| Other (paid social, paid search, organic, direct) | $237,220 | 73.0% | Non-email |
- 27.0% sits in the healthy 20-40% band. The store is using email well, neither under-leveraged (<15%) nor dangerously dependent (>55%). Trend matters more than single-period level.
- Flow revenue (19.0%) is double campaign revenue (8.0%), healthy. Flows are the always-on revenue (welcome series, abandonment, browse-abandon, post-purchase, win-back); campaigns are episodic. Stores where campaigns dominate flows usually have under-built flow infrastructure.
- Welcome series probably contributes most to flow revenue. Industry pattern: welcome flow (35-50% of flow revenue), abandoned cart (20-30%), browse-abandon (10-15%), post-purchase / win-back (10-20%). Wildly different distributions suggest broken flows or under-segmentation.
- The non-email 73% is the diversification you want. A store at 60%+ email-attributed has a fragile growth model, an email-deliverability hit (Gmail spam folder, Apple Mail Privacy Protection update, unsubscribe-list mishap) takes 60% of revenue offline overnight.
- Compare against the two-sided thresholds, <15% means invest in email; 20-40% is healthy; 40-55% is leaning dependent; >55% is risky.
- Watch the flow-vs-campaign ratio, flows should usually exceed campaigns by 2-3x.
- Pair with BC XC Paid Traffic Waste to see whether non-email mix is healthy diversification or over-paid acquisition.
- Track quarterly, the right number drifts as the business grows; aim for stable share, not a fixed target.
Sibling cards merchants should reference together
| Card | Why pair it with Email-Attributed Revenue Share |
|---|---|
| Total Revenue | The denominator. Email share matters in context of overall revenue. |
| BC XC Paid Traffic Waste | The non-email side. Email share + paid share + organic should sum to ~100%. |
| BC Channel Revenue Mix | Channel diversification view, complements source diversification. |
| Repeat Rate | Email is the single biggest lever on repeat-customer rate; co-track. |
| BC XC Catalogue Drift | Email programs depend on a clean catalogue; drift erodes flow performance. |
| Customer Segments | Email’s effectiveness depends on how well your customer segmentation is set up in Klaviyo. |
| BC Repeat Failure Customers | Klaviyo abandonment flows are the primary remediation tool for this list. |
klaviyo.klaviyo_flow_performance | The Klaviyo-side attribution view; cross-checks the BC-side attribution computed here. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: BigCommerce does not surface email attribution natively. This is a cross-connector card; the data lives in Klaviyo’s dashboard and BC supplies the order base. To partially verify:- Analytics → Sales gives you the BC revenue denominator.
- Klaviyo → Analytics → Attribution gives you the Klaviyo-attributed revenue numerator.
- Divide one by the other. Should approximate this card to within ±3 percentage points (attribution-window edge cases account for the gap).
| Reason | Direction |
|---|---|
Channel filter. By default we report on web (channel_id = 1) revenue only; Klaviyo’s attribution may include all BC channels. | Vortex IQ HIGHER share than naive Klaviyo report |
Captured-only filter. We restrict the BC denominator to paymentStatus = captured; Klaviyo’s placed_order event fires on order creation regardless of capture state. | Vortex IQ HIGHER share (smaller denominator) |
| Attribution windows. Klaviyo defaults: 3-day click, 1-day open. Some merchants customise. We use the active configuration on the merchant’s Klaviyo account. | Match if config matches; differ otherwise |
Currency. We sum BC total_inc_tax without FX; Klaviyo applies its own currency conversion. | Material for multi-currency stores |
| Time-zone. UTC vs Klaviyo account timezone (which is store-configured, often store-local). | Boundary effects |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
klaviyo.klaviyo_attributed_revenue | The Klaviyo-side total, the numerator of this card | Should match within ±3% modulo currency / timezone |
klaviyo.klaviyo_flow_performance | The flow-by-flow split that sums to 70-80% of this card | Includes per-flow conversion math |
google_analytics.ga_revenue_by_channel | GA4’s email-channel attributed revenue should approximate Klaviyo within tracking gaps | GA4 uses last-non-direct-click by default; Klaviyo uses email-engagement-based attribution. Different models, expect 20-40% gap. |
stripe.stripe_total_revenue | The captured-only revenue base for stores with Stripe as the web processor | Same captured-only filter applied here. |
Known limitations / merchant FAQs
My share is 8%, what’s wrong? Almost always one of: (1) Welcome flow not built or under-segmented, the welcome series captures 35-50% of email-attributed revenue on healthy stores; if it’s broken, the headline crashes. (2) Abandonment flow not configured, abandoned-cart and browse-abandon together typically add another 25-35%. (3) List size genuinely small (<5,000 subscribers); this is fine for new stores, just means the absolute revenue is small even at healthy share. (4) Klaviyo not capturing pop-up signups, list growth has stalled. My share is 62%, is that good? No, it’s risky. A single email-deliverability incident (Gmail flagging, Apple Mail Privacy update, ISP throttle) takes 60% of revenue offline overnight. Healthy DTC stores diversify revenue sources: 25-35% email, 25-35% paid, 20-30% organic, 10-15% other. A 62%-email mix means you don’t have a real growth strategy outside of your list. Invest in paid acquisition, SEO, or marketplaces. Why does my share differ from Klaviyo’s dashboard? Most commonly because we filter to web (channel_id = 1) and captured-only revenue, while Klaviyo’s report may include marketplace orders or all-status orders. Also: Klaviyo computes attribution at order time, our card computes it at sync time. The two should match within 3 percentage points; larger gaps usually mean a configuration change in Klaviyo (attribution-window edit, list re-segmentation).
Should I also be tracking SMS attribution separately?
Yes; Klaviyo’s SMS revenue is a subset of this card’s numerator. SMS typically converts at higher rates than email but on smaller list sizes; healthy SMS share within Klaviyo is 15-30% of total Klaviyo revenue. The Vortex Mind email-program-health report breaks out the SMS sub-share.
Why exclude marketplace orders from the denominator?
Because Klaviyo doesn’t see marketplace orders (they don’t pass through your storefront’s checkout where Klaviyo’s tracking pixel lives). Including them in the denominator makes the headline share look artificially low. Some merchants want to include marketplaces with the asterisk that the share is structurally diluted; the card configuration supports this.
The card flagged me as “email under-leveraged” but I run weekly campaigns, what gives?
Campaigns alone rarely produce >15% revenue share; you need flows to hit healthy email contribution. Flows are always-on (welcome, abandonment, post-purchase) and capture revenue from every subscriber who triggers the flow’s events. Audit your Klaviyo flow library: do you have welcome (3-7 emails), abandoned cart (3-5 emails), browse-abandon (2-3 emails), and a post-purchase / win-back flow? If any of these is missing, you have a flow gap, not a campaign gap.
Multi-currency stores: how does the attribution work?
Klaviyo applies its own currency conversion using daily FX rates; we apply none. For multi-currency stores there’s a structural mismatch in absolute revenue numbers but the share percentage is similar across both views. For multi-currency, prefer per-currency Klaviyo views rather than the consolidated attribution.
My new acquisition campaign tanked my email share, is that bad?
Probably not. A successful acquisition campaign brings in lots of new visitors who haven’t yet entered the email funnel; they buy directly without an email touch. Email share drops mechanically because the denominator grew faster than the numerator. Watch absolute Klaviyo revenue, not share, during acquisition pushes. If absolute Klaviyo revenue is flat or growing, your email program is fine; the share dilution is the cost of growth.
Why exclude refunded orders from the share computation?
We don’t, the card uses gross revenue at attribution time. A refunded order keeps its email-attribution. The reasoning: the email did its job (drove the purchase); the refund is a downstream operational issue, not an email-program issue. Penalising email attribution for refunds would discourage merchants from running flows on returnable categories.
Does this card include push notifications?
If your push provider routes through Klaviyo (some merchants run Klaviyo push as part of their omni-channel setup), yes. If you use a separate push tool (OneSignal, Iterable, Braze), those revenues are NOT in this card’s numerator. Cross-track via per-tool attribution dashboards.