WooCommerce fixes / Analytics showing zero

WooCommerce Analytics Showing Zero Revenue? Causes & Fix

Orders are arriving, the money's in your gateway, and Analytics → Revenue insists on zero. Analytics doesn't read your orders directly — it reads a set of lookup tables that something has to fill in. Here's how to find out why they're empty.

Last updated: 16 Jul 2026 · ~6 min read

Quick answer

The most common cause is that the analytics lookup tables were never populated because the import jobs are stuck — sitting Pending or Failed in Action Scheduler. Go to WooCommerce → Status → Scheduled Actions and filter to Pending and Failed. If there's a past-due pile there, fix the queue first, then re-run the historical import from Analytics → Settings.

Why Analytics can read zero while orders exist

WooCommerce Analytics doesn't query your orders. For speed, it reads pre-computed lookup tables — wc_order_stats and friends — that get written as orders come in, and backfilled in batches by scheduled import jobs. Your orders can be perfectly healthy while those tables sit empty.

That's why this looks so alarming and usually isn't. Nothing has been lost: the orders are all in WooCommerce → Orders, the money is in your gateway, and the reports can be rebuilt from them. What's broken is the pipeline between the two — almost always the queue that runs it.

The most common causes (most likely first)

  1. The analytics import jobs are stuck Pending or FailedOpen WooCommerce → Status → Scheduled Actions and search for wc-admin. Past-due Pending actions, or a row of Failed ones, means the backfill never ran and wc_order_stats was never filled. This is the usual answer.
  2. Action Scheduler isn't running at all, so nothing can processThe whole Scheduled Actions list is backlogged — not just the analytics jobs. Usually WP-Cron is disabled (DISABLE_WP_CRON set true) with no real server cron replacing it, or the site gets too little traffic to trigger it. Fix this first, or a rebuild just queues up behind everything else.
  3. HPOS is on with synchronisation off, or the store is mid-migrationOrders appear normally in WooCommerce → Orders but never show up in Analytics, and only recent orders are affected. Check WooCommerce → Settings → Advanced → Features for the order-storage and compatibility-mode settings.
  4. Your revenue is sitting in a status Analytics excludesAnalytics → Settings has an excluded-statuses list — pending, cancelled and failed are excluded by default. If your paid orders live in a custom status, or you never move them past a status on that list, Analytics correctly reports nothing. Nothing is broken; the rules are.
  5. The date range or the site timezoneWiden the range to Year to date and see if revenue appears. A store timezone that's hours out from where you are can push today's orders into a bucket you're not looking at. Check this before you rebuild anything — it costs ten seconds.
  6. The lookup tables don't existA failed or interrupted database update can leave the tables missing entirely. WooCommerce → Status flags missing database tables in its report — check there before assuming the queue is at fault.

Where to look first

Not sure whether it's the queue or the data?

That's the awkward bit: an empty report and a stalled Action Scheduler look identical from the Analytics screen, and you can spend an afternoon rebuilding data that was never the problem. DiagnosticIQ's free dashboard reads the Action Scheduler queue and the HPOS storage state directly and tells you which one is broken — a scheduler that isn't running, or orders stranded between storage tables. It keeps watching too, so a queue that silently stalls again shows up before month-end does.

Get the free plugin

Made by Prima Digital — the team behind this guide. Free forever; no card to install.

How to know you fixed it

Verify

WooCommerce → Status → Scheduled Actions shows no past-due Pending or Failed wc-admin actions, and Analytics → Revenue for a date range you know has orders now matches what you see in WooCommerce → Orders.

Frequently asked

Have I lost my sales data?

No. Analytics reads a rebuildable cache of your orders. The orders themselves are intact in WooCommerce → Orders and in your gateway — the reports can be regenerated from them.

Is rebuilding the reports safe on a live store?

It doesn't touch orders — only the lookup tables Analytics reads. But it's database-heavy on large stores, so run it outside peak hours and expect it to take time.

Why does Analytics disagree with my gateway's totals?

Partly the excluded-statuses rules, partly refunds and taxes being counted differently. Some gap is normal. A gap of everything-to-zero is this bug.

Will new orders start counting once I fix the queue?

Yes — new orders are written to the lookup tables as they come in once the scheduler is running. The historical import is only needed to backfill the ones you missed.

>_
John O'Keane — Founder, Prima Digital · LinkedIn
Contributions by David Zhang · LinkedIn
I build DiagnosticIQ, the WooCommerce diagnostic plugin, and I've walked store owners through this exact analytics-import backlog more times than I'd like.