WooCommerce tells you what you sold. Merchgain tells you what you earned.
A free profit and margin report built on the Cost of Goods Sold field that WooCommerce records on every order since 10.3. Gross profit per product, per category and per period — with the share of revenue your cost data actually covers printed next to every number.
Profit & margin
5 September 2025 – 4 September 2026Cost is known for 74% of revenue. Profit and margin above are calculated on that part only; zł1,119,760.42 of revenue has no cost recorded.
Your sales report and your profit report are two different numbers.
What the sales report shows
Turnover for the period. True, and not the number you take home.
- Top category by revenue — 4,622 items sold
- Nothing about what those items cost you
- Nothing about which category carries the shop
A shop can grow its revenue every month and earn less each time.
What Merchgain shows
Gross profit for the same period, from the cost recorded at the moment of sale.
- Margin per product and per category
- Cost known for 74% of revenue — said out loud
- The products with no cost, listed and linked
Same orders, same database, one column further: what was left after the goods.
A report is only worth as much as its weakest number.
So every figure on the screen says what it rests on: which field it was read from, how much of your revenue it covers, and what it deliberately leaves out.
Built on the field WooCommerce already records
Merchgain adds no cost field of its own. It reads the native Cost of Goods Sold value that the core writes into every order line at the moment of sale.
No cost data is never cost zero
An item with no cost recorded still counts towards revenue, but it is never treated as if the goods had been free. The coverage line says how much of the report rests on real data.
It only reads
No product, no price, no order and no cost value is ever written back. There is no "fix it" button and no outgoing connection — the report is calculated by your own database and stays there.
One screen, six answers — and the same numbers for an AI assistant.
All of it in the free version, on every order in the window, with no cap and no trial.
Summary panel
Gross profit, revenue, cost of goods and margin for the period you pick — with the coverage of your cost data underneath.
Profit per product
Sortable, searchable, paginated. A row marks itself when some of its items have no cost recorded.
Profit per category
The same numbers grouped by product category — the view that shows which part of the shop pays for the rest.
Missing cost warning
How many products have no cost, linked straight to the product editor, and how much revenue that leaves uncovered.
CSV export
Every row of the current view, with the same range, search and sorting as on screen. In the free version, not behind an upgrade.
Foreign currency warning
Orders in a currency other than your store currency are named and left out, instead of being quietly added into one wrong total.
Answers for AI assistants
On WordPress 6.9 or later, three read-only abilities: profit summary, products sold at a loss and products without a cost. An assistant you connect yourself gets the same figures as the screen.
Switch on Cost of Goods Sold first.
WooCommerce keeps the feature off by default, and a report with no costs has nothing to show. Three steps — and from then on every new order records its own cost.
- 1
Turn the feature on
Nothing is recorded until this switch is on. It is a WooCommerce setting, not a Merchgain one.
WooCommerce → Settings → Advanced → Features - 2
Fill in the cost
The field sits in the General tab of the product editor, next to the price. Net of tax, for one item.
Products → edit → General → Cost of goods - 3
Let the orders come in
Each new order stores the cost as it was at the moment of sale. Orders placed before this point have no cost recorded; from version 0.2.5 the report estimates them from today's costs, separately from the recorded figures.
no back-fill — the cost is recorded at the sale
Worth knowing before you leave it switched off: while the feature is disabled, new orders record no cost at all, and that gap cannot be filled in later.
Built by one person, in the open, with the numbers checkable.
The reasonable worry about a new plugin is that it quietly dies, or that it is a funnel for something else. Here is what there is to check.
- status
- Version 0.2.6, free in the WordPress.org plugin directory since 8 September 2026
- licence
- GPL-2.0-or-later, in full
- data
- No account, no sign-up, no licence check, no telemetry — the plugin makes no outbound connections at all; an AI assistant sees the figures only if you connect one yourself
- requires
- WooCommerce 10.3 or newer, which is where the cost field arrived; WordPress 6.7 (6.9 for the AI assistant answers); PHP 7.4
- storage
- Works with High-Performance Order Storage and with classic post storage, and adds no tables of its own
- family
- From the makers of Merchlint, a read-only catalogue audit for WooCommerce
Three ways in.
Shop owners
You know your turnover by heart. Fill in the costs once and you find out which bestseller carries the shop and which one is busy work.
See a sample report →Bookkeepers
Gross profit and margin for a closed month, exported to CSV, with the share of revenue that has no cost data stated on the same screen.
How the numbers are calculated →Agencies
A margin report for a client shop with no subscription, no data processor and not a single figure leaving their hosting.
What it never writes →Find out what your revenue actually leaves you.
The report reads your own database, in your own admin, and changes nothing in it.
There is nothing for sale here. The one question this site asks is what a profit report should show that this one does not — the answers shape what gets built next.