Directory / plugin

Merchgain – Gross Margin & Profit Reports for WooCommerce

v0.2.8 · by baltano

A free WooCommerce profit report on the native Cost of Goods Sold field: gross margin and gross profit per product, category and period.

About this plugin

WooCommerce tells you what you sold. It does not tell you what you earned.

Merchgain adds a profit report to your admin: revenue, cost of goods, gross profit, and margin for
any period, per product and per category. Sort by margin, lowest first, and the products you sell
at a loss come to the top. Products that still have no cost are listed by name, with links
straight to them.

Only starting to enter costs? Orders placed before then have no cost recorded, so Merchgain
estimates them from today’s product costs. The estimate has a panel and columns of its own and is
never added to the recorded figures. Enter your costs today and see an estimate for last year
straight away.

It only reads. No product, price, order, or cost value is ever written back to your store, and
nothing leaves your server.

See it before you install. Live Preview
opens a demo store in your browser, with a year of orders, a product sold at a loss, and products
with no cost.

Requirements

  • WooCommerce 10.3 or newer.
  • Cost of Goods Sold switched on in WooCommerce > Settings > Advanced > Features. Until it
    is, the report screen shows you the steps.
  • A cost on your products, in the Cost of goods field of the General tab of the product editor.
    You do not need every product at once: start with the ones that sell, and the report shows how
    much of your revenue has a cost.
  • Costs kept only by another cost plugin are not used. The missing cost warning counts them and
    names the plugin, and the FAQ explains how to move them into WooCommerce.

What you get

  • Gross profit for any period—with revenue, cost of goods, and margin beside it, and a bar that
    splits revenue into cost, profit, and the part with no cost recorded.
  • Profit per product—sortable and searchable, with a bar beside every margin.
  • Profit per category—the same sales grouped by product category. A product that sits in
    several categories counts in each of them, and the screen says so.
  • Missing cost warning—how many products have no cost recorded, with links straight to the
    products, and how much of your revenue that leaves uncovered. If another plugin keeps the cost,
    the warning says so and names it, so an empty report stops being a mystery.
  • Estimate for older orders—items sold before their cost was recorded are estimated from
    today’s product costs, in a panel and columns of their own, marked as an estimate and never added
    to the recorded figures.
  • CSV export—the current view, exactly as you see it on screen. Very large reports are capped
    at 20,000 rows, and the file says so on its last line.
  • 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 for a period, products sold at a loss, and products without a cost. An AI assistant you
    connect to your store yourself, for example through an MCP plugin, gets the same numbers as the
    screen.

What makes it different

  • CSV export in the free version. Not behind an upgrade.
  • The missing cost warning is a feature, not an upsell. You see coverage next to every
    number, so you always know how much of the report rests on real data.
  • Works without WooCommerce Analytics. Merchgain runs its own queries against the order
    tables, so it does not require the Analytics module to be enabled.
  • Nothing leaves your server. No account, no external service, no telemetry, no calls home.
    The report is calculated on your hosting and stays there. An AI assistant sees the figures only
    if you connect one to your store yourself.

How the numbers are calculated

Since WooCommerce 10.3 the cost of goods sold lives in the core product editor, and every order
records the cost at the moment of sale. WooCommerce Analytics does not report on it. Merchgain
reads that field and answers the question the sales report cannot: how much of this revenue is
actually yours. It is a WooCommerce profit report built on data your store already has—no
import, no second place to keep costs.

This is a cost of goods sold report, so profit and margin rest on the cost recorded at the moment
of sale, not on a current price list. The one exception is the estimate for items sold without a
recorded cost: it uses today’s product cost, says so wherever it appears, and is never added to the
recorded figures.

Revenue is the net line total of sold items after discounts, excluding tax and shipping. Refunds
count as negative amounts in the period they were issued, not in the period of the original sale.
Orders counted by default: completed, processing, and refunded.

Margin is profit divided by revenue, not markup on cost. A product bought for 60 and sold for
100 has a 40% margin here. That single distinction is what separates a profit margin report from
a sales report.

Profit and margin are calculated only on items whose cost is known. An item with no cost recorded
still counts towards revenue, but it is never treated as if it had cost zero. The report says so
instead of quietly inflating your margin.

More on merchgain.com

From the makers of Merchlint, a free catalog audit for
WooCommerce.

Plugin tags