Merchgain
EN
Available now
Next, in this order
  • DeutschDE
  • EspañolES
  • FrançaisFR
  • ItalianoIT
  • PortuguêsPT
  • NederlandsNL

A language shows up here once its pages are actually written. Nothing on this site is machine-translated.

Install freeInstall
← All answers

How far back does the report reach?

As far back as your orders go — no window, no cap. What ends the history is the cost data, which starts the day the feature went on and is never back-filled.

Group
Running it in your shop
Source
M — decision made by Merchgain
Code
HIST
Updated

The short answer

As far back as your orders go. There is no window and no cap: the dates you pick are the dates that get counted, and a range starting on the first day of 2019 is a report like any other.

The range picker opens on Last 30 days and lists 7 days, 90 days and 12 months as well, but that list is a set of shortcuts, not a boundary — Custom range takes any two dates.

What ends the history is the other half of the report. Revenue reaches back to your oldest order; profit and margin reach back only to the day costs started being recorded. For the time before that, version 0.2.5 and later shows a separate estimate from today’s costs.

What WooCommerce actually does

Orders are not pruned. They stay in the database for as long as you keep them, under High-Performance Order Storage or classic post storage, and the report reads both.

The cost side is much younger than most shops. The core field arrived in WooCommerce 10.3, on 22 October 2025, and it works by copying the product’s cost onto the order line at the moment of sale. That is what makes it a historical record rather than a lookup against today’s price, and it is also why there is no back-fill: orders placed before you switched the feature on carry no cost, and nothing can reconstruct what the goods cost you back then.

So a shop that has been selling since 2019 and entered its costs last March holds six years of revenue and a few months of profit, in the same database.

What to do about it

  • Start the range where the data starts. If costs went in on 1 March, a custom range from 1 March onwards is the first report worth reading.
  • Compare like with like. Year on year means something only when both years have their costs recorded. Otherwise the older one looks more profitable, because part of its goods look free — and they are not free, they are unknown.
  • Export each month as it closes. A refund reaches back into the order it belongs to and rewrites the cost recorded on every line of it, so a month is only really closed once it is out of the database and in a file.

How Merchgain reports it

The two date fields always show the exact days being counted, including when the range came from one of the shortcuts. Nothing is clamped between the picker and the query, so a range on screen cannot differ from the range in the numbers.

Where the costs run out, the report says so rather than showing a zero. The coverage line under the cards names the revenue with no cost behind it, in money, and that gap grows the further back you look. A zero and an unknown are different answers — see orders with no cost data.

A long range is a heavier query, not a forbidden one. Results are cached for an hour, so a five-year report pays for its query once an hour rather than once a click — see cached results and Recalculate.

See this on a real report

Disagrees with what you see in your shop? Write to us — every message is read. contact@merchgain.com