Settings → Data health shows what EcomDrama Analytics can see and how up to date it is. Look here first when a number surprises you.
WooCommerce order attribution
WooCommerce records where each order came from — search, social, email, a campaign link, or direct — when its Order attribution feature is on (WooCommerce → Settings → Advanced → Features). Sources, Journeys and the order flow read it. Orders without it appear as Unknown but still count in every total.
Orders with source data
The share of the last 30 days’ orders that arrived with source data, leaving out orders you created yourself in the admin. Below 70% you will see a warning. Common causes:
- a cookie banner that blocks WooCommerce’s attribution script until the visitor accepts;
- full-page caching on the checkout page;
- orders created by an app, a marketplace or the API.
Sources are read, not configured
There is no list of sources to maintain. A new campaign source such as utm_source=partnerx appears in Sources on its own. Variants of the same site are merged — l.facebook.com, lm.facebook.com and facebook are one row — and every source belongs to a group: organic search, direct, social, email, referral, campaign, paid, admin / manual, other, or unknown.
The order index
Reports read a summary table instead of your orders, which keeps them fast on large stores. It is built once from past orders and then kept in sync: a new, edited, refunded or deleted order is reflected within about a minute, and a nightly check catches anything a hook missed. The panel shows how many orders are indexed.
Rebuild index builds it again from scratch in the background. You should rarely need it — after importing many orders directly into the database, for instance. Reports keep working while it runs, with a banner saying they are partial; the button stays greyed out until it finishes.
The index paused or left orders out?
The index is built by background tasks. If one is interrupted — a server restart or a timed-out cron run, for instance — the index picks up where it stopped by itself on the next page load, in your admin or on your store, and the nightly check does the same. Meanwhile the panel shows the index as paused, and the first-indexing screen says Resuming…. You don’t need to do anything; if you’d rather not wait, Rebuild index stays available while the index is paused and starts it again at once.
An order that can’t be read — odd data left by an old plugin, for example — is skipped instead of stopping the index. The panel then says how many orders were left out; the details are in WooCommerce → Status → Logs (source ecomdrama-analytics).
Numbers differ from WooCommerce Analytics?
Check three things: that both use the same order statuses (Settings → Order statuses mirrors WooCommerce Analytics), that WooCommerce Analytics has imported your historical orders (Import historical data in its settings — the Order index panel links to it when some orders are missing there), and that you are comparing the same dates in the same timezone.