Skip to main content
Card class: Cross-ChannelCategory: Ecommerce Platform
Healthy DTC email programmes drive 15-25% of revenue. Below 8% means either bad list health or broken attribution, both recoverable.

At a glance

Email-attributed revenue (Klaviyo / Dotdigital / Mailchimp) divided by Adobe Commerce Total Revenue, expressed as a percentage. Tells you what share of your top-line came from your owned email channel. Healthy DTC programmes sit at 15-25%; below 8% indicates either a list-health problem (low engagement, deliverability slipping) or a broken attribution pipeline (UTMs missing, click-tracking off).
What it countsNumerator: revenue attributed to email campaigns or flows in the connected ESP (Klaviyo, Dotdigital, etc.) over the 30-day window. Denominator: Adobe Commerce SUM(grand_total) over the same window. Returned as a percentage.
API fieldNumerator from the ESP connector (e.g. Klaviyo attributed_revenue on Campaign and Flow objects). Denominator from Adobe Commerce orders index grand_total, REST endpoint GET /rest/V1/orders.
VAT / tax treatmentTax-inclusive on both sides. grand_total includes tax; Klaviyo’s attributed_revenue reflects what the customer paid (the order total at attribution event time). Apples-to-apples by default. UK VAT-inclusive merchants should not see a tax-induced bias.
Shipping inclusionIncluded on both sides. grand_total includes shipping; ESP attribution captures the order total which already includes shipping.
DiscountsAlready deducted, both sides. A heavy discount campaign attributed to an email flow shows up at the post-promo value here.
Credit Memo refund treatmentNOT subtracted on either side. Adobe Commerce grand_total doesn’t change after a Credit Memo (refund lives on a separate document). Klaviyo’s attributed_revenue similarly doesn’t retroactively reduce attribution after a refund. Both sides are gross of refunds, so the ratio is honest. To see net-of-refund email share, divide Net Email Revenue by Net Adobe Revenue manually using Credit Memo Total.
state machine inclusionAll states included on the Adobe denominator. That covers new, processing, complete, closed, canceled, holded, pending_payment, payment_review. Klaviyo only attributes orders that fired a Placed Order event, which typically means the order reached at least processing. So the numerator excludes most pending_payment while the denominator includes them, this can suppress the ratio by 2-5% for stores with significant gateway-callback failures.
pending_payment quirkThe asymmetric treatment described above is the single biggest reason this card under-reads versus a “pure” Klaviyo > Dashboard percentage. If your store has high pending_payment volume, expect this card to read 2-5% lower than Klaviyo’s own attribution figure.
Multi-currency grand_total vs base_grand_totalNumerator and denominator both use display currency (grand_total here, Klaviyo’s order_total). For multi-region stores, the ratio is approximately FX-neutral as long as email-driven revenue and total revenue share the same currency mix. If your email programme is heavily UK-focused but US is your biggest market, the ratio is biased.
Store View scope (store_id)All Store Views summed on the denominator. Klaviyo numerators depend on which Klaviyo accounts are connected, most merchants run one Klaviyo per store-region, so a UK Klaviyo connected against a global Adobe denominator will under-report. Best practice: connect the same scope on both sides (per-region Klaviyo + per-Store-View Adobe filter).
Time window30D (rolling 30-day)
Alert trigger<8% (email programme under-performing)
Rolesowner, marketing, finance

Calculation

SUM(grand_total)
  WHERE date BETWEEN [period_start, period_end]

Worked example

A homewares brand on Adobe Commerce 2.4.6 with US, UK, and B2B Store Views, connected to Klaviyo for the consumer programme. The 30-day window covers 14 Mar 26 to 12 Apr 26.
SourceValue
Adobe grand_total (US Store View, USD)$272,320
Adobe grand_total (UK Store View, GBP)£80,784 (≈ $101,000 indicative)
Adobe grand_total (B2B portal, USD)$58,220
Adobe pending_payment value (across views)$12,168
Adobe Total Revenue (denominator)~$443,708 indicative
Klaviyo email-attributed revenue (US programme, USD)$46,200
Klaviyo email-attributed revenue (UK programme, GBP)£14,400 (≈ $18,000 indicative)
Total email-attributed (numerator)~$64,200 indicative
This card~14.5%
What this is telling the merchant:
  1. 14.5% sits comfortably in the 15-25% healthy band (just below). The email programme is working but has room to grow. The alert threshold is 8% so no fire.
  2. The B2B portal contributes $58,220 to the denominator but zero to the numerator because B2B accounts don’t get the consumer email campaigns. This drags the ratio down by ~2 percentage points. For a fair “DTC email share” view, exclude store_id = 3 from the Adobe denominator. With B2B excluded the ratio jumps to 16.7%.
  3. pending_payment orders ($12,168) are in the denominator but typically not in Klaviyo’s numerator (Klaviyo fires on Placed Order which usually requires the gateway to have completed). This costs the ratio another ~0.4 percentage points. Real, comparable email share is closer to 17.1%.
  4. The UK programme is under-indexed. UK email revenue ÷ UK Adobe revenue = 17.8% but US is 17.0%, the UK programme is performing slightly better despite a smaller list. Investigate why (probably better segmentation; maybe steal the playbook for US).
  5. vs prior 30 days the share dropped from 16.0% to 14.5%. Investigate: did Adobe Total Revenue rise on a non-email channel (paid social, organic, retail)? Did Klaviyo open rates fall (deliverability issue)? Did UTM tagging change recently? See the FAQ for the diagnostic order.

Sibling cards merchants should reference together

This is a cross-channel ratio; pair with both halves to investigate movement:
CardWhy pair it with Email Revenue Share
Total RevenueThe denominator. If revenue rose on paid ads while email stayed flat, the share drops without the email programme actually weakening.
Order State DistributionA pending_payment spike inflates the denominator but not the numerator, suppressing this card. Cross-check before declaring email “broken”.
Revenue by Store ViewIf your B2B Store View grew this period, the ratio drops (B2B doesn’t get consumer email). Filter B2B out for a fair DTC-only view.
Credit Memo TotalBoth sides are gross of refunds. A refund-heavy month leaves the headline unchanged but cash flow worse, this card doesn’t capture that.
klaviyo.email_attributed_revenueThe numerator card on its own. Movement here without movement on the share card means the denominator (Adobe) moved equally, the email programme is keeping pace.
klaviyo.email_open_rateFalling open rates precede falling email revenue by 4-6 weeks (deliverability decay). Watch this for the early signal.
klaviyo.email_unsubscribe_rateSudden unsubscribe spikes shrink the addressable list.
google_analytics.ga_revenue_by_channelGA4’s email channel attribution as a sanity check. Should sit within 20% of this card; bigger gaps suggest UTM/tagging mismatch.

Reconciling against the vendor’s own dashboard

Where to look in Adobe Commerce Admin: Adobe Commerce doesn’t natively track email-attribution. The closest cross-checks for the denominator of this ratio:
Reports > Sales > Orders (or Reports > Sales in 2.4.6+). Set the same 30-day window, scope to All Store Views, Status filter “All Orders”. The Total Revenue column is the denominator. Cross-check this against Total Revenue.
Other Adobe Commerce Admin views that look like email-attribution but aren’t:
  • Marketing > Newsletter Subscribers: Adobe Commerce’s built-in newsletter list, doesn’t track campaign-level revenue attribution.
  • Marketing > Email Reminder Rules: cart-abandonment email rules, not the same as ESP campaign attribution.
  • Reports > Marketing > Newsletter Problem Reports: deliverability errors, not revenue.
  • Reports > Sales > Coupons: revenue from orders that used a coupon code; partially overlaps email but not equivalent (paid-ads emails also use codes).
  • Customers > Now Online: irrelevant.
Why our number may legitimately differ from Klaviyo’s own dashboard email-share:
ReasonDirection of divergence
Time-zone. Adobe Commerce stores created_at in server local time (configurable per Store View). Klaviyo attributes in UTC. The 30-day window endpoints will sit at different real-world cutoffs.±1 day’s data at the boundary
Currency. Klaviyo’s dashboard typically shows attributed revenue in the connected store’s reporting currency (FX-converted). This card sums grand_total without FX. Material for international merchants with multi-currency stores.Material for multi-currency stores
Store View scope. Klaviyo connects per-store; Adobe denominator sums all Store Views. A US-Klaviyo on a multi-Store-View Adobe merchant will under-report this card by the share that non-US Store Views contribute.Vortex IQ ratio lower than Klaviyo’s per-store view
pending_payment asymmetry. Adobe denominator includes pending_payment orders; Klaviyo numerator typically doesn’t (no Placed Order event for orders that never completed).Vortex IQ ratio 2-5% lower than Klaviyo’s
canceled asymmetry. Adobe denominator includes canceled; Klaviyo’s Placed Order fires before cancellation, so most canceled orders are in both numerator and denominator. Cancellation-heavy stores see this balance out.Usually no divergence
Attribution window. Klaviyo’s default attribution window is 5 days (click) or 1 day (open). Orders within that window of an email engagement are credited. Different ESPs use different windows; Dotdigital is 30 days for clicks.Material if window setting differs
List exclusions. If Klaviyo’s data feed is filtered (e.g. only campaign-attributed, not flow-attributed) the numerator under-reports. Always include both campaigns and flows for a true email-share read.Vortex IQ ratio lower if flows excluded
API rate-limit gaps during sync. Adobe REST has request quotas; if the indexer throttled during the recent run, the latest day’s denominator may be incomplete.Self-resolves at next sync
Cross-connector reconciliation (when these connectors are connected for this merchant): This card is a cross-connector reconciliation. The honest read is:
PairExpected relationshipWhat divergence tells you
Klaviyo attributed_revenue ÷ Adobe grand_total (this card) vs Klaviyo Dashboard’s “Revenue from Email” %Should match within 2-5 percentage pointsBigger gaps mean: (1) different attribution-window settings, (2) one side is filtering Store View, (3) pending_payment asymmetry on a high-fail store.
GA4 channel report Email % vs this cardShould sit within 10-20% of each otherGA4 attribution uses click-tracked sessions; Klaviyo uses email-engagement events. Different lenses on the same purchases. Use both, neither is the single truth.
stripe.stripe_total_revenueDoesn’t reconcile directlyStripe doesn’t see channel; useful only for sanity-checking the denominator.

Known limitations / merchant FAQs

My Klaviyo dashboard says 22% but this card says 14.5%, why the gap? Most common cause is denominator scope mismatch. Klaviyo’s ”% of revenue from email” uses the orders Klaviyo sees as the denominator, which is whatever’s flowing into Klaviyo via the Adobe Commerce > Klaviyo integration. That’s typically only the consumer Store Views, not B2B portals or marketplace channels. This card uses Adobe Commerce Total Revenue across every Store View. To match Klaviyo’s view, exclude the B2B store_id from the Adobe denominator. Second-most-common cause: the pending_payment asymmetry described in the TLDR. My finance team says email revenue is lower than this card shows, why? Both sides are gross of Credit Memos. A refund-heavy month (returns season for apparel, electronics returns after Christmas) leaves email attributed revenue unchanged but cash flow worse. Pair with Credit Memo Total for the net view. Finance is correct, accounting-wise; this card is correct, attribution-wise. Both are valid for different jobs. What’s the difference between state and status and does it affect this card? state is the system-level lifecycle (8 fixed values: new, pending_payment, processing, complete, closed, canceled, holded, payment_review). status is a configurable, user-facing label. The denominator (Adobe grand_total) is summed across all states, so renamed statuses are irrelevant. The numerator (Klaviyo’s attribution) typically only fires on Placed Order events, which usually means state >= processing. This asymmetry is the chief cause of the card under-reading vs Klaviyo’s own dashboard. Why does the alert fire below 8% rather than below 15%? The 15-25% band is the “healthy DTC” target, but real merchants take time to get there. The alert at <8% is the broken threshold, either email is genuinely under-performing (list health, deliverability) or attribution is broken (UTMs missing, Klaviyo connection broken, click-tracking off). 8% to 15% is a coaching range, not an alarm range; we surface the gap on the card without firing. My multi-store Adobe Commerce, can I see per-Store-View email share? Not on this card directly. The denominator sums all Store Views; the numerator depends on which Klaviyo accounts are connected. Most stable read: connect one Klaviyo per region, filter the Adobe denominator by the matching store_id, and read each region separately. A per-region card variant is on the roadmap. Why doesn’t Adobe Commerce dashboard show email share? Adobe Commerce’s native marketing reporting is limited to its own newsletter feature and coupon-code reports, neither of which is real campaign-level attribution. For email-share you need Klaviyo, Dotdigital, Mailchimp, or another ESP with click tracking. This is a category Adobe Commerce expects you to solve via integration, not native. My Stripe revenue and email-attributed revenue don’t match, expected? Yes, completely expected. Stripe sees successful charges, not channel attribution. Stripe doesn’t know whether an order came from email, paid social, or organic search. Stripe is the right source for “did the money clear?”, Klaviyo is the right source for “what channel brought them?”. Don’t try to reconcile these directly. Why doesn’t Google Analytics email channel match this card? GA4’s email channel attribution depends on UTM tags on email links and last-non-direct-click attribution. Klaviyo’s attribution depends on email-engagement events tracked in its own pixel. Different lenses, different rules. Both miss different things, GA4 misses ad-blocked sessions, Klaviyo misses customers who don’t open emails but still buy after seeing them. Use both as triangulation, not as a single truth. My multi-currency Adobe Commerce, does this card work? Approximately. Both sides use display currency, so the ratio is FX-neutral as long as the email numerator and the total denominator share the same currency mix. If your email programme is heavily UK-focused but US is your biggest revenue market, the ratio will lag the actual UK email performance. Best practice: filter both sides to the same Store View for region-specific reads.

Tracked live in Vortex IQ Nerve Centre

Email-Attributed Revenue Share is one of hundreds of KPI pulses Vortex IQ tracks across Adobe Commerce 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.