How much OpenCart revenue a connected email platform can claim versus your total. The honest read on what email is actually driving, and how much sits unattributed.
At a glance
A cross-connector view that joins your OpenCart orders and revenue with a connected email platform’s attributed revenue. It shows how much of total revenue email can claim, and, just as usefully, how much is unattributed. A healthy email programme attributes a meaningful share; a large unattributed slice despite active sending usually means tracking is broken, not that email is failing. OpenCart has no native email attribution, so this card only populates when an email connector (for example Klaviyo or Dotdigital) is linked, and revenue is matched on order.
| What it counts | OpenCart total revenue over the window split into email-attributed revenue (claimed by the connected email platform) and unattributed revenue (everything else). |
| VAT / tax treatment | Inherits OpenCart’s stored order total, which is tax-inclusive by default. The email platform’s attribution typically uses the same order value. |
| Shipping | Included, the order total used for attribution carries shipping by default, matching Total Revenue (30d). |
| Refunds | Not deducted from the OpenCart total; the email platform may or may not net refunds depending on its own configuration, a common source of small divergence. |
| Currency | Revenue is read from oc_order in the order’s stored currency; multi-currency stores mix currencies without FX. Treat the split as directional for international stores. |
| Channels / sources | OpenCart orders and revenue joined with a separately connected email platform’s attribution. OpenCart has no native email attribution. |
| Why this matters | It tells you what email is genuinely worth, and flags when tracking has broken (high unattributed despite active sending) so you do not under-credit a working channel or over-trust a broken one. |
| Time window | 30D (rolling 30 days) |
| Alert trigger | >30% unattributed despite active email |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your OpenCart data joined with the connected channel. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A Spanish homeware brand on OpenCart 4.x with Klaviyo connected and sending weekly campaigns plus automated flows. The 30-day window covers 14 Mar 26 to 12 Apr 26.| Source | Revenue | Share of total |
|---|---|---|
| Email-attributed (Klaviyo, campaigns + flows) | EUR 38,400 | 24% |
| Direct / organic / other | EUR 96,200 | 60% |
| Unattributed (no matched source) | EUR 25,600 | 16% |
| Total revenue (this card) | EUR 160,200 | 100% |
- Email is claiming 24% of revenue, and the card is healthy. Unattributed sits at 16%, comfortably below the
>30% unattributed despite active emailalert. For a store sending weekly plus flows, a 24% email share is a solid, believable contribution. The card stays green. - The unattributed slice is the real signal, not the email share. If unattributed climbed past 30% while Klaviyo was still sending, that would point to broken tracking, click parameters stripped, the integration mis-wired, or order events not firing, rather than email suddenly failing. The alert is built around that failure mode, not around the email percentage itself.
- Flows usually out-earn campaigns inside that 24%. Automated flows (welcome, abandoned cart, post-purchase) typically punch above broadcast campaigns per send. The detail view splits the attributed revenue so you can see whether your EUR 38,400 is coming from flows you set up once or campaigns you grind out weekly.
- OpenCart cannot produce this number alone. OpenCart knows the EUR 160,200 total (from
oc_order), but it has no idea which orders email drove. The attribution half comes entirely from Klaviyo. Disconnect Klaviyo and this card collapses to “100% unattributed”, which is the absence of data, not a real result. - Refund treatment can nudge the split. OpenCart does not deduct refunds from the stored total, but Klaviyo may net them from attributed revenue depending on its setup. That asymmetry explains small gaps between the two halves and is worth knowing before you reconcile to the cent.
- If unattributed is above 30% with active sending, fix tracking first. Verify the email platform’s click parameters survive to checkout and that order events are firing. Do not conclude email is weak until tracking is proven sound.
- Split attributed revenue into flows vs campaigns and double down on whichever earns more per send, usually flows.
- Reconcile refund treatment between OpenCart and the email platform so finance is comparing like for like.
- Watch the share over time, not the single reading. A steadily falling email share with stable sending is a deliverability or list-health problem worth chasing.
Sibling cards merchants should reference together
| Card | Why pair it with Orders to Email Attribution |
|---|---|
| Total Revenue (30d) | The denominator. This card splits that total into attributed and unattributed. |
| Newsletter Opt-In Rate | Reachability upstream. A bigger opted-in base feeds bigger email-attributed revenue. |
| New Customers (30d) | New opted-in customers are the input to email-driven revenue. |
| High-Value Customers Unengaged on Email | If your best customers disengage, attributed revenue from them leaks first. |
| Repeat Customer Rate | Email mostly drives repeat purchases; the two move together. |
| Average Order Value | Email-driven orders often carry a different basket profile; compare AOV by source. |
Reconciling against OpenCart
Where to look in OpenCart admin: OpenCart gives you the total but not the attribution. Reports → Sales → Orders is the revenue denominator for the window. OpenCart’s own Marketing → Marketing section can track basic campaign codes if you tag links manually, but it has no per-order email attribution comparable to a dedicated email platform. The underlying data is the order total and date columns onoc_order; the email-attributed half lives entirely in the connected email platform.
Other OpenCart views that look relevant but cannot answer this:
- Marketing → Marketing tracking codes: count clicks on tagged links, not attributed order revenue, and only if you tagged the links yourself.
- Reports → Sales → Orders: gives total revenue with no source breakdown.
- The Dashboard sales chart: revenue over time, no channel attribution.
| Reason | Direction of divergence |
|---|---|
| Attribution model. Email platforms use a click-to-conversion window (often 5 days for clicks, 1 day for opens); a different window in your manual check reclassifies revenue. | Either direction |
| Refund treatment. OpenCart does not deduct refunds from the stored total; the email platform may net them from attributed revenue. | Email half can read lower |
| Currency. Multi-currency totals are summed without FX here; a converted figure in the email platform will differ. | Material for international stores |
| Last-click vs multi-touch. The email platform usually credits last-click email; revenue email influenced but did not close is unattributed here. | Email half understates true influence |
| Sync lag. Recent orders or attribution events appear on the next sync. | Self-resolves at next sync |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
klaviyo.attributed_revenue | Should match the email-attributed half of this card. | Attribution window and refund netting differ between Klaviyo and OpenCart’s stored totals. |
dotdigital.campaign_revenue | Should match the email-attributed half when Dotdigital is the connected platform. | Dotdigital may attribute on a different model or window. |
| Total Revenue (30d) | Attributed + unattributed equals this card’s denominator. | The two should reconcile to the cent within timezone and refund treatment. |