Documentation

Klaviyo - Troubleshooting

Updated on

Apr 15, 2026

While working with your Klaviyo connection, you may encounter data discrepancies between Improvado and Klaviyo UI. Understanding these common causes can help identify and resolve differences.

Conversion & Revenue Metrics

Conversion metrics discrepancies (Placed Order, Placed Order Value)

Symptom

  • Placed Order or Placed Order Value shows 0 values, but Klaviyo UI shows data
  • Conversion metrics don't match Klaviyo UI totals
  • Revenue values differ from values in Klaviyo

What This Means

Cause 1: Multiple integrations creating duplicate metric names

Some accounts have multiple integrations (e.g., Shopify, Magento, API) that create separate metrics with the same name. By default, the extraction may pull data from the wrong integration.

Solution

Specify ```klaviyo_metric_integration``` setting to define which integration's metrics to use. Contact the Improvado team to configure this for your account.

Cause 2: Comparing different metrics

Klaviyo has separate metrics for different order stages. If you're comparing ```placed_order_value``` in Improvado against ```fulfilled_order_value``` in Klaviyo UI, values will differ.

Solution

Verify you're comparing the same metric in both systems. If you need a different metric in your dashboard, contact the Improvado team to update the configuration.

Orders not attributed to Klaviyo

Symptom

Order data includes all orders, not just those attributed to Klaviyo emails.

What This Means

By default, the API returns all orders regardless of attribution.

Solution

To return only Klaviyo-attributed orders, split the query by Campaign ID or Flow ID.

Date Attribution

Campaign Stats vs. Campaign Values (date attribution differences)

Symptom

Metrics like opens, clicks, or revenue don't match Klaviyo UI reports when filtered by date.

What This Means

Klaviyo has two different date attribution models:

Report Type Date Represents Example
Campaign Stats When the event occurred (e.g., email opened) A click on Feb 5 from a Jan 30 email counts in February
Campaign Values When the campaign was sent A click on Feb 5 from a Jan 30 email counts in January

Klaviyo UI typically uses the send-date model, while the API's Query Metric Aggregates endpoint uses the event-date model.

Solution

If you need to match Klaviyo UI numbers exactly, use the Campaign Values report type instead of Campaign Stats.

Data appears on incorrect dates (timezone shift)

Symptom

Revenue or events appear on dates when no campaigns were sent. For example:

  • Dashboard shows sales on November 8th-9th, but no campaign was deployed during this period
  • Daily totals don't match Klaviyo UI for specific dates

What This Means

Data can be shifted by several hours due to timezone handling, which in some cases results in events appearing on a different calendar day than expected.

Solution

If you notice date-level discrepancies where data appears to be shifted by hours or landing on wrong dates, contact the Improvado team to verify the timezone configuration for your extraction.

{%docs-informer info%} This is separate from the "event date vs. send date" attribution issue. Even with correct attribution settings, timezone misalignment can cause daily totals to differ. {%docs-informer-end%}

Unique and Non-Unique Metrics

Unique metrics differ from Klaviyo UI

Symptom

Unique opens, unique clicks, or unique open/click rates don't match the UI. Rates may exceed 100%.

What This Means

Klaviyo calculates unique metrics based on the requested date granularity. The campaign_stats report contains daily data, so unique metrics are calculated per day. Additionally, open/click rates can exceed 100% when the receive and open events occur on different calendar days.

Solution

Use the ```unique_metrics_by_campaign_month``` report type if you don't need daily breakdown, or JOIN unique metrics from this report to campaign_stats.

Non-unique metrics differ slightly from Klaviyo UI

Symptom

Values of non-unique metrics (e.g., Total Opens) differ slightly from Klaviyo UI.

What This Means

This is due to how Klaviyo's attribution model works. The UI attributes revenue to the date of the last email sent, while the API attributes Placed Order / Placed Order Value to the date the order was actually made.

{%docs-informer info%} This is a known limitation. Our Engineering team is working on improving alignment. {%docs-informer-end%}

Non-unique event counts higher in exported reports

Symptom

Total Opens or other non-unique metrics are higher in Klaviyo's exported CSV than in the API.

What This Means

If the exported report includes additional columns like "Group ID" or "List/Segment," profiles that belong to multiple segments are counted multiple times in the export.

Solution

Compare against segment-agnostic totals, or be aware that segment breakdowns will inflate counts for profiles in multiple segments.

Profile & List Data

Profile consent counts don't match UI

Symptom

The number of subscribed/unsubscribed profiles doesn't match the Klaviyo UI.

What This Means

Klaviyo's UI applies different processing to consent data that is not available via the API.

Profile list/segment membership counts are inflated

Symptom

The number of records in list or segment tables exceeds the actual profile count in Klaviyo.

What This Means

When profiles are added to a list or segment, the corresponding records in the ```LIST_PERSON``` and ```SEGMENT_PERSON``` tables are updated during the next incremental sync. However, when profiles are removed, records are soft deleted only during the next weekly re-sync.

As a result, the number of records in these tables may temporarily exceed the number of profiles in the source until the next full re-sync occurs.

API Limitations & Known Issues

Campaign ID mismatch in events data

Symptom

Campaign ID joins fail or under-count records. The ```campaign_id``` column contains unexpected values.

What This Means

The ```$message``` field from Klaviyo's ```/events``` API endpoint is used to sync the ```campaign_id``` column of the EVENT table. According to Klaviyo, what the ```$message``` field contains depends on the ```$flow```field:

If $flow field is... $message contains...
Absent Campaign object ID
Present Flow message object ID

The ```campaign_id``` column should contain the ID of a campaign object or flow object. However, in some cases the ```$message``` field returns a campaign-message object ID instead of the parent campaign ID, causing joins to fail or under-count.

Extraction failures during historical sync

Symptom

Large initial syncs or historical re-syncs are slow or fail due to rate limits.

What This Means

Klaviyo enforces rate limits on the Reporting API. Large backfills can exceed these limits, causing extraction failures or partial data.

Solution

Configure the Historical sync time frame when setting up your connector to speed up both the initial sync and subsequent re-syncs.

  • The Historical sync time frame limits the amount of data synced for the ```EVENT``` table, as this table contains data you are less likely to reference much later.
  • You can modify this setting at any time.
  • If you change it to an earlier date, a full historical sync is performed back to that new date.
  • If you set it to a later date, existing data is not deleted — the new time frame applies only to subsequent re-syncs.

Klaviyo Metrics UI shows different totals

Symptom

API totals don't match the Klaviyo Metrics view or other analytics views in the UI.

What This Means

Klaviyo attributes revenue differently across its analytics views. In most views, Klaviyo attributes revenue to the date of the last email sent. However, the API returns Placed Order and Placed Order Value attributed to the date the order was actually made.

The API data corresponds to Klaviyo's Metrics view (under Analytics), which is where comparisons should be made — not against other Klaviyo reports.

As an additional limitation, The Klaviyo Metrics view does not always display all data if the data volume is too large, which can create apparent discrepancies that don't actually exist.

Solution

  1. Compare API totals against Klaviyo's Metrics view, not against campaign/flow performance reports.
  2. If the Metrics view appears incomplete due to large data volume, create a Custom report in Klaviyo and export the data for a full comparison.

Both the Metrics view and Custom report are available under Analytics in Klaviyo.

Setup guide

Schema information

Settings

No items found.

Troubleshooting

Troubleshooting guides

Check out troubleshooting guides for
Klaviyo - Troubleshooting
here:

Limits

Frequently asked questions

No items found.
☶ On this page
Description
Related articles
No items found.
No items found.

Questions?

Improvado team is always happy to help with any other questions you might have! Send us an email.

Contact your Customer Success Manager or raise a request in Improvado Service Desk.