Data Discrepancies in Klaviyo

If you use Klaviyo for your email and SMS marketing, you may notice that the numbers reported in Klaviyo do not always match the data in other tools you use to track sales and performance. For example, a Klaviyo campaign might show $10,000 in revenue, while your Shopify dashboard reports only $8,500. These kinds of discrepancies can be confusing, and even lead to misguided decisions.

The key is context. Klaviyo tracks and reports data differently depending on how it is accessed. The user interface typically shows processed and attributed data (like data tied to specific messages or flows), while API exports provide raw event data that requires proper interpretation and aggregation on your end.

Discrepancies do not necessarily mean something is broken, they usually reflect differences in how data is collected, attributed, or displayed. To interpret your results accurately and troubleshoot differences, it is important to understand a few core concepts about how Klaviyo handles data.

Attribution Logic

An attribution window is the period of time after a customer interacts with a marketing message, like clicking on an email, during which any resulting purchase is credited back to that interaction. For example, in Klaviyo, the attribution window for emails is 5 days. This means that if you send an email on Monday, and the customer clicks it on Tuesday, then returns to your website on Friday (without interacting with any other messages) and makes a purchase, that purchase will be attributed to the original email. Since the purchase occurred within 5 days after the click, Klaviyo credits the email for the sale.

If a customer interacts with a message days after it was sent, Klaviyo can still attribute a purchase, as long as the conversion happens within 5 days of the interaction (like a click or open). However, if a customer clicks a message but waits more than 5 days to make a purchase, that purchase will not be attributed to the message. It will still be tracked and appear in the customer’s profile, but not in the performance metrics for the campaign or flow that sent the message.

In that case, the purchase will show up in general reporting (like total placed orders or overall revenue), but not under “Attributed Revenue” for that specific campaign or flow. So, even though the order is recorded, it won’t be credited to any email, and will not contribute to performance metrics like open rates or revenue per message.

Klaviyo attribution Logic

Lookback windows

There are different types of interactions a customer can have with a message, and each interaction has its own attribution window:

  • 5 days for email clicks
  • 5 days for email opens
  • 5 days for text messages clicks
  • 1 day for text message opens
  • 12 hours for text message deliveries
  • 24 hours for push opens
  • 5 days for Whatsapp clicks
  • 12 hours for Whatsapp opens
  • 1 day Active on Site (Advanced KDP and Marketing Analytics customers only)

“Last-touch” model

Klaviyo uses a last-touch attribution model by default. This means that credit for a purchase goes to the most recent relevant interaction a customer had before buying, as long as it happened within the attribution window. For example, imagine you send two promotional emails in one week: the customer clicks Email A on Monday but does not purchase. Then on Thursday, they click Email B and make a purchase on Friday. Even though both emails were clicked, Klaviyo attributes the sale to Email B, because it was the last interaction before the purchase and fell within the 5-day attribution window.

Time zone differences in attribution

Dashboard

Message Attribution looks at when the message was sent in your account's time zone, and assigns the attributed interactions to that message send date even if the recipient receives and interacts with it on a different day due to time zone differences. For example, if you send a message at your local time, and someone in the other part of the world receives it the next day, Klaviyo still attributes their open or click to the message send date in your account’s timezone.

API

From the API's perspective, you are seeing the event as it actually happened, in real-world, local, or UTC time. API data will not necessarily account for these time zone differences when you pull events, potentially causing a mismatch in reporting times compared to what is shown in the dashboard.

Klaviyo time zone differences in attribution

Impact of Attribution Rules

Klaviyo collects detailed data on each customer, such as clicks, opens, and purchases. While this raw data is stored in their system, the attributed revenue you see in reports is not just a simple total of all purchases. Instead, Klaviyo processes the data by matching each purchase to previous interactions that happened within a specific time frame. It then applies certain rules to determine which interactions should be credited with a sale, and filters out purchases that fall outside the attribution window. This process gives you attributed revenue metrics, which show a refined view of how each marketing message contributed to sales.

Note that some Klaviyo UI reports use message attribution (like Campaign Performance, Flow Performance, Overview dashboards), while other group by event timestamps (like Single Metric and Multi-Metric reports). This can cause differences even within Klaviyo’s own interface.

However, when you pull data via an ELT tool, you are typically accessing Klaviyo’s raw or semi-processed API data. This untreated data:

  • May not have the same attribution logic as the dashboard;
  • Often uses different time aggregation methods (for example event time vs. message send time);
  • Can include all events, not just those that meet Klaviyo’s attribution criteria;
  • Calculates unique metrics differently. A customer counted as a "unique" open on multiple days can inflate totals when data is pulled in daily intervals and summed. Klaviyo's dashboard calculates uniqueness across the entire reporting period, providing a more accurate total.

The result is that the data you can pull from the API will show a different, often higher, number than the Klaviyo dashboard, especially for flows where attribution logic is more complex.

The Key Takeaway

A discrepancy between Klaviyo’s dashboard and your data warehouse isn’t a data error, it’s a difference in perspective and processing. The Klaviyo dashboard gives you a marketer’s view: it shows which campaigns and flows are performing, with the relevant attribution logic applied. Your warehouse gives you a much broader, engineer’s view: the raw, comprehensive dataset, unfiltered by last-touch rules or message attribution windows. Understanding these differences is essential for building reliable reports and making accurate business decisions.


Sources

Klaviyo Help center - Understanding Klaviyo message attribution

Klaviyo Community - "Placed order" for flows via api not matching klv dashboard

Klaviyo Community - Flow Reporting API and UI discrepancy

Klaviyo Community - Data mismatch between API and Klaviyo dashboard