WooCommerce Analytics Hosting

Analytics hosting where the reports match the orders.

WooCommerce Analytics does not read your orders directly. It reads its own lookup tables, and when those fall behind the reports are confidently wrong.

Lookup tables rebuilt fullyImports that finishFigures that reconcile
Full importsReconciliationReport indexingDaily backupsFree SSL24/7 support
Built for store reporting

A second copy of your sales.

Analytics maintains derived tables so reports do not query orders directly. Everything that goes wrong is those tables disagreeing with the source.

Historical imports that reach the first order

Enabling analytics on an existing store means importing years of orders into the lookup tables. That runs as a resumable batch, or the reports start mid-history and look like a collapse in sales.

Resumable

Figures reconciled against the order list

A report total that does not match the orders screen is the symptom of a stalled import. Those are compared so the gap is found rather than presented in a board meeting.

Compared

New orders recorded as they arrive

Lookup rows are written alongside each order. When that write fails the order exists and the report does not count it, which is invisible from either screen.

Report queries that are indexed

A date-range report over years of orders is a large aggregate. Those queries are indexed rather than left to scan the lookup tables.

Rebuild without touching orders

Lookup tables can be regenerated from the orders at any time, so a corrupted report is recoverable without restoring anything.

Derived data

Reports that quietly disagree.

Nobody notices a slow report. They notice a report saying revenue halved in March, which is usually the month an import stopped rather than the month sales did.

  • Historical import run as a resumable batch
  • Report totals reconciled against orders
  • Lookup writes verified for new orders
  • Date-range aggregates indexed
Orders imported
Into lookups
412,000
Reconciliation
vs order list
matching
Report queries
Indexed
yes
Rebuild
After upgrade
running
Report time

A year of orders, aggregated.

The measurement is a twelve-month revenue report on a store with real history, because that is the query staff run and then wait for.

Resumable
historical imports
Reconciled
against the order list
Indexed
date-range aggregates
MagicWP150 ms
Typical shared host1720 ms
Unindexed lookup tables2600 ms

Illustrative comparison of a twelve-month revenue report. Your numbers depend on order volume and report range.

Configuration

What we change for WooCommerce Analytics

The reports read derived tables, so every row here is about keeping those in step with the orders they came from.

SettingWhat we doWhy
Historical importResumable batches covering the full order historyEnabling analytics on an established store imports years of orders, and a run that stops leaves reports beginning mid-history and reading as a sales collapse.
ReconciliationReport totals compared against the order listA stalled import produces figures that are internally consistent and wrong, which is worse than an obvious error because nobody questions them.
Lookup writesVerified for newly placed ordersA failed lookup write leaves the order present and uncounted, which is invisible from both the order screen and the report.
Aggregate indexingDate-range report queries indexedA twelve-month revenue report is a large aggregate over the lookup tables, and unindexed it becomes the slowest screen staff use daily.
Rebuild pathLookup tables regenerable from orders on demandBecause they are derived, a corrupted report can be fixed by rebuilding rather than by restoring a backup over live orders.
Plans

Simple, transparent pricing.

Every plan includes free migration, daily backups, SSL and 24/7 support.

MonthlyYearly 2 months free
Starter
For personal sites, blogs, and portfolios.
$20/mo
  • 1 WordPress site
  • 10 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Support tickets
Start free trial
Pro★ Most popular
For growing businesses and busy stores.
$80/mo
  • 5 WordPress sites
  • 50 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Priority support tickets
Start free trial
Enterprise
For agencies and high-traffic platforms.
$250/mo
  • 20 WordPress sites
  • 200 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Dedicated support
Start free trial
FAQ

Questions, answered.

Why do my analytics figures not match my order list?
Because analytics reads its own lookup tables rather than the orders. When an import stalls the two disagree, and the report stays internally consistent while being wrong.
I enabled analytics and older sales are missing. Why?
The historical import did not finish. It has to walk years of orders into the lookup tables, and stopping part way makes the reports begin mid-history.
Can I rebuild the reports without restoring a backup?
Yes. The lookup tables are derived from the orders, so they can be regenerated at any time — a corrupted report is not a data-loss event.
Why is my revenue report slow?
It is a large aggregate over the lookup tables. Indexed for date-range queries it stays quick; unindexed it becomes the slowest screen your staff open every day.

Report the numbers you actually took.

Move the store across — migration is free, lookup tables rebuilt.