At a glance
The distribution of time-to-purchase from Klaviyo email send to commerce-platform order placement. Computed by joining Klaviyo’ssend_timefor top campaigns against the commerce platform’sorder.created_atoncustomer_email, filtered to orders within 7 days of the send. Visualised as a scatter plot showing campaign performance against purchase lag. The shape tells the merchant whether their list responds fast (immediate impulse buys) or slow (considered purchases) and informs send-cadence strategy.
| What it counts | The lag (in milliseconds, displayed as hours/days) between a Klaviyo campaign send and the recipient’s subsequent order on the commerce platform. Joined on customer email. Filtered to lags <7 days. |
| API endpoint + statistics field | Klaviyo send_time from GET /api/campaigns?fields[campaign]=send_time; commerce platform’s order data from Shopify Order.createdAt, BigCommerce date_created, or Adobe Commerce created_at. Joined locally in Vortex IQ. |
| Attribution model | This card uses Vortex IQ’s own simple time-window attribution (any order within 7 days of send by the same email). It does NOT use Klaviyo’s PLACED_ORDER 5-day click + 1-day view model. As a result, this card may include orders Klaviyo would NOT credit (e.g., the customer didn’t open the email but bought via a different channel) and may exclude orders Klaviyo WOULD credit (e.g., view-through conversions where the customer didn’t click). Treat it as a behavioural shape signal, not a revenue-attribution metric. |
| Single-touch shape | Not single-touch. The same order may show up in multiple campaign-to-purchase joins if the customer received multiple sends within 7 days. The visualisation is a distribution; double-counting is an inherent characteristic of the chart, not a bug. |
| Cross-channel attribution | Klaviyo only sees its own touches. The join uses email address as the key, so a customer who received a Klaviyo email then later bought via a Google Ad on the same address shows up here as “email-attributed”, overstating email’s role. Same shape as klv_total_revenue. |
| Email vs SMS | Email-only. SMS sends have different timing characteristics (read within minutes typically) and merit a separate card. |
| MPP impact | None. Lag is measured from send to order; opens don’t matter to the calculation. |
| Refunds / cancellations | NOT excluded. A customer who placed and then refunded an order still appears in the join. Refund signal isn’t available cross-platform in the join window. |
| Page cap | The card pulls top 50 campaigns and joins each against orders. Mature accounts running >50 campaigns in 90 days see truncation; the chart is still directionally useful. |
| Currency | Not applicable, this card surfaces lag (duration), not revenue. |
| Time window | 90D (long window so the scatter plot has enough data to show shape) |
| Alert trigger | None, this is a diagnostic card. |
| Roles | marketing |
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 skincare brand on Shopify reads the chart on 12 Apr 26 for the trailing 90 days. The scatter shows time-from-send to time-of-purchase aggregated across the merchant’s 14 top campaigns and 850 orders that fell within 7 days of any campaign send. Distribution shape:| Lag bucket | Orders | % of total | Implied behaviour |
|---|---|---|---|
| 0-1 hour | 142 | 16.7% | Impulse buy, recipient was already shopping. |
| 1-6 hours | 268 | 31.5% | Same-session purchase, recipient checked email then went to site. |
| 6-24 hours | 187 | 22.0% | Considered same-day buy. |
| 1-3 days | 178 | 20.9% | Considered purchase, multiple visits before buying. |
| 3-7 days | 75 | 8.8% | Long consideration, possibly multiple touches. |
| Total within 7 days | 850 | 100% |
- 48% of campaign-attributed orders happen within 6 hours. This brand has a fast-responding list: nearly half of post-send orders complete the same evening. This pattern argues for tighter cadence and morning sends, sending in the morning lets the same-day decision compound, sending late evening cuts the buying window in half.
- 8.8% sit in the 3-7 day tail. This is the “considered purchase” cohort. They opened, clicked, bookmarked, came back later. For these, the 5-day click attribution window matters most, Klaviyo’s standard window claims them; Vortex IQ’s 7-day window also catches them. If Klaviyo’s window is shortened to 1-day click (some accounts override), these recoveries disappear from Klaviyo’s revenue figure even though the customer was clearly influenced by email.
- Different campaign types show different shapes. Promotional sends (Spring sale, flash discount) skew heavily to the 0-6h band (impulse-friendly). Newsletter and educational sends skew to the 1-7 day band (slow consideration). The merchant should design campaigns with the desired shape in mind: time-limited offers should expire within 48h to match the impulse curve.
- The 3-7 day tail correlates with discount-led campaigns. Customers wait for the next discount; the email is the trigger to come back, not the trigger to buy. This is corrosive to margin. If the 3-7 day tail is more than 15% of orders, the merchant has trained the list to expect discounts. Reduce discount frequency.
- The chart is most useful for tuning send TIME of day, not send count per week. A merchant with a 1-6 hour heavy distribution should send between 8-11am local; a merchant with a 1-3 day heavy distribution can send any time and the lag absorbs the time-of-day effect. Use this card to inform Klaviyo’s “Smart Send Time” setting.
Sibling cards merchants should reference together
Top Sends → Purchase Lag is a behavioural shape card. Pair it with these:| Card | Why pair it with Top Sends → Purchase Lag |
|---|---|
| Klaviyo Smart Send Time Lift | The downstream optimisation lever. If lag distribution is heavily weighted to the 0-6 hour band, time-of-day matters and Smart Send Time should pay off. If distribution is spread across 1-7 days, time-of-day doesn’t matter much. |
| Klaviyo Top Campaigns by Revenue | The campaign list this card uses as input. Helps identify which specific campaigns drive the fast-purchase tail vs the slow-purchase tail. |
| Klaviyo Campaign Send Cadence | The cadence implication. Fast-lag lists tolerate higher cadence (the audience consumes and acts quickly); slow-lag lists need lower cadence (the audience needs time to think between sends). |
| Klaviyo Email-Attributed Revenue | Total revenue figure. The lag distribution doesn’t change the total but informs how to grow it. |
| Klaviyo Conversion Rate | Fast-lag lists usually have higher campaign conversion rates because the buying window is short and decisions are made quickly. |
| Shopify Average Order Value | Slow-lag lists often have higher AOV because the customer is doing more research before buying. Cross-reference to confirm. |
| Klaviyo Click-to-Open Rate | The engagement-quality view. Fast-lag distributions correlate with high click-to-open rates (the email triggered immediate action). |
| GA4 Email Channel Time-to-Purchase | GA4 has its own session-based time-to-purchase view. If GA4’s lag distribution differs significantly from this card’s, UTM hygiene is the likely cause. |
Reconciling against the vendor’s own dashboard
Where to look in Klaviyo: Klaviyo doesn’t expose a send-to-purchase lag distribution natively. The closest views:- Klaviyo → Analytics → Performance, shows total attributed revenue but not the time-to-conversion shape.
- Reports → Custom Reports, can be configured to show conversion lag if the merchant builds a custom report. Default reports don’t surface this.
- Per-campaign Performance view, shows campaign-attributed revenue at a campaign level but not the time-distribution.
| Reason | Direction of divergence |
|---|---|
| Time-zone. Send timestamps in Klaviyo are in account timezone; commerce-platform order timestamps may be in store timezone. Vortex IQ normalises to UTC for the join. Boundary effects on lag are usually small (<1 hour) but can shift the 0-1h bucket meaningfully. | Either direction. |
| Email-address join. The join key is customer email. Customers who use different emails for Klaviyo vs the commerce platform (e.g., personal email for newsletter, work email for orders) are missed entirely. | Reported volume runs lower than reality. |
| 7-day filter. Vortex IQ filters to lags <7 days. Klaviyo’s 5-day attribution window is shorter; customers who clicked but bought on day 6-7 show up here but not in Klaviyo’s revenue. | Vortex IQ may include orders Klaviyo wouldn’t. |
| Page cap (campaigns). Top 50 campaigns. Mature accounts with >50 campaigns in 90 days see truncation. | Distribution still directionally meaningful. |
| Order data scope. Vortex IQ uses commerce-platform online-store orders only. POS, marketplace, and B2B orders are excluded from the join (different fulfilment paths and email matching is unreliable). | Reported volume runs lower for multi-channel stores. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
klv_total_revenue | The orders shown here generate part (but not all) of Klaviyo’s claimed revenue. The volume shown should track Klaviyo’s placed_orders_total figure within ±15%. | Email-mismatch joins; 7-day vs 5-day window; POS exclusions. |
shopify.total_revenue | The orders shown are a subset of Shopify total. Useful for “what fraction of Shopify orders had Klaviyo touches in the prior 7 days”. | All non-Klaviyo orders are excluded. |
bigcommerce.total_revenue | Same shape on BC. | Same. |
adobe_commerce.total_revenue | Same shape on Adobe. | Same. |
ga4.ga_revenue_trend (Email channel) | GA4 has its own session-based time-to-purchase. If GA4 shows a much shorter average lag than this card, GA4 is missing the deep tail (cookie expiry, ad-blocker dropouts). | Different attribution and tracking infrastructure. |
Known limitations / merchant FAQs
Why does this card show MORE orders than Klaviyo’s revenue report? Vortex IQ uses a simple time-window join (any order within 7 days of send by same email). Klaviyo uses click-or-view attribution (5-day click + 1-day view). Some orders here weren’t from people who clicked or viewed; they were from people who happened to receive an email and bought independently. So this card overstates email’s role; treat it as a behavioural shape view, not a revenue-attribution figure. My distribution is heavy in the 0-1 hour bucket, what does that mean? A fast-responding list. Customers were already in buying mode when they checked email. Common patterns: (a) newsletter subscribers who actively check email at peak hours, (b) loyalty members with strong brand affinity, (c) flash-sale campaigns with countdown timers that compress decision-making. Action: time sends to peak email-checking hours (typically 8-11am local), and cap each campaign’s “active window” to 24 hours so the offer feels time-bound. My distribution is heavy in the 3-7 day tail, what does that mean? A considered-purchase list, OR a discount-trained list. Customers see the email, bookmark, come back later. Common patterns: (a) high-AOV considered purchases (luxury, B2B, multi-thousand-dollar items), (b) customers waiting for the next discount cycle. If your AOV is high, the tail is healthy; if your AOV is low and the tail is wide, you’ve trained the list to wait for discounts. Action: reduce discount frequency, run more full-price launches, and make time-bound offers actually expire (don’t extend “last chance” beyond 24 hours). Does this card include flow-driven orders or only campaign-driven? Top campaigns only. Flow-driven orders are excluded because flows fire on different triggers (cart abandon, product view) and the lag distribution would be dominated by the flow timing, not customer behaviour. To see flow lag, look atklv_flow_step_drop_off.
My customer pays with a different email than they receive emails on, are they counted?
No. The join key is email address. If a customer subscribes with personal@gmail.com and pays with personal@icloud.com, the two records don’t match and the order isn’t counted. This is the most common reason for “I see fewer orders here than I expected”. On average 5-15% of orders are excluded for email-mismatch reasons.
Does this card change with refunds?
No, refunds are not subtracted. The order appears here at order time and stays even if it was refunded later. Use this card for behavioural shape, not revenue accuracy.
Why do some orders fall outside the 7-day window? Where do they go?
The card filters to lags <7 days. Orders placed 8+ days after the most recent campaign send are not joined. Those orders likely came from a different channel (organic, paid, direct, retargeting) and shouldn’t be credited to email anyway. Klaviyo’s PLACED_ORDER attribution uses a 5-day window for the same reason.
Can I export this distribution for use in my own analysis?
Yes, the underlying data is available via the Vortex IQ API. The chart on the dashboard is a visualisation of the join; the API returns the raw send-to-purchase pairs filtered to top campaigns.
Does the chart change for SMS sends?
This card is email-only. SMS sends have very different lag characteristics (read within minutes, decision within an hour) and would dominate the 0-1h bucket if mixed in. A separate SMS-only version of this card is on the roadmap.