Importing Historical Data

The plugin does not query your orders live every time you open a report. Instead it keeps a precomputed daily aggregation table, which is what makes the reports fast on stores with tens of thousands of subscriptions. The importer is what fills that table in from your existing data.

Where to find it

Go to WooCommerce → Settings → Subscription Analytics, in the Import Historical Subscription Data card.

The same importer is also reachable from the Import button in the header of the Subscription Report screen.

Running an import

  • Pick a Date range: All, Last 365 days, Last 90 days, Last 30 days, Last 7 days, Last 24 hours, or Custom.
  • If you chose Custom, set the From and To dates.
  • Click Start Import.
  • Watch the progress bar. The import runs in the background in batches, and the status line updates as it goes.
On stores with more than 50,000 subscriptions or orders the import can take several minutes. Keep the page open while it runs.

What gets imported

A full import rebuilds every dataset the reports rely on:

  • Daily subscription activity — signups, renewals, switches, resubscribes, cancellations and the revenue attached to each, per day.
  • Customer totals — subscriber counts, subscription counts and lifetime value per customer.
  • Revenue recognition schedule — the month-by-month amortization behind the Revenue Recognition tab.
  • Acquisition attribution — the UTM source, campaign and referrer recorded against each subscription.

Staying up to date afterwards

After the first import you should not need to run it again. The table is kept current in two ways:

  • In real time — subscription and order events (a new signup, a renewal payment, a status change) update the affected day immediately.
  • Nightly — a scheduled job recomputes the last 30 days from the source data, so the reports self-heal from drift caused by a missed hook, a third-party plugin writing orders directly, or plugin downtime. The window is filterable with zorem_subscription_daily_snapshot_window_days.
If a recent day looks wrong and you do not want to wait for the nightly job, run an import for Last 30 days. It recomputes those days from your orders rather than adjusting the existing totals.

Re-importing and deleting

Running an import over a range that has already been imported replaces those days rather than adding to them, so re-importing never double-counts.

Delete Previously Imported Data clears the aggregation tables entirely. A confirmation dialog appears first. This only removes the analytics tables the plugin built — your subscriptions and orders are never touched — but the reports will show zeros until you import again.

Troubleshooting

SymptomWhat to do
Reports show zeros after activationThe historical import has not been run yet. Run it with the range set to All.
Recent days look wrongImport the Last 30 days to recompute them from source data.
Revenue Recognition tab is emptyThe recognition schedule is built by the same importer. Run a full import once.
Import appears stuckReload the settings page — the status is read from the server, so progress is preserved. If it is genuinely stalled, start the import again.