BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
Merchgain – Gross Margin & Profit Reports for WooCommerce icon
Actively maintained Tested with WP 7.1 #11 in COGS

Merchgain – Gross Margin & Profit Reports for WooCommerce

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

Active installs<10New
Downloads · 30d266• 0% vs prev. 30d
Rating—0 reviews
Health score64/100Good
All-time downloads260Since Sep 2026
Support resolved—No recent threads
RequiresWP 6.7PHP 7.4+
Downloads · 7d79▼ -29.5% week over week
Our verdict

Solid choice

Merchgain is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 1 week ago, and scores 64/100 on our health check.

  • Actively developed — last update 1 week ago
  • Tested with the latest WordPress (7.1)
  • Small user base (<10 active installs)
  • Very few reviews so far

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

91929Sep 8Sep 19Oct 1
Yesterday3
Daily average (1y)11
Peak day39Sep 23, 2026
Last 12 months266

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where Merchgain stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
COGS #57 113 Best COGS plugins →
cost of goods sold #36 132 Best cost of goods sold plugins →
gross margin #5 50 Best gross margin plugins →
gross profit #11 49 Best gross profit plugins →
profit report #59 266 Best profit report plugins →

About Merchgain

From the official readme · v0.2.4

Description

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

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. 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.

It only reads. No product, no price, no order, no cost value is ever written back to your store.

What you get

  • Summary cards – revenue, cost of goods, gross profit and margin for the period you pick.
  • Profit per product – sortable, searchable, paginated.
  • Profit per category – the same sales grouped by product category. A product that sits
    in several categories counts in each of them, so category totals can add up to more than
    the summary – the screen and the CSV file both say 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 the cost is kept by
    another plugin instead, it says so and names it, so an empty report stops being a mystery.
  • 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, so a short file is never a
    silent one – and a category export that adds up to more than the summary says why.
  • 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.

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.

How the numbers are calculated

This is a cost of goods sold report, so every number below rests on the cost recorded at the
moment of sale – not on a current price list.

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.

Documentation and answers: https://merchgain.com/

From the makers of Merchlint.

Installation

  1. Install and activate the plugin. WooCommerce 10.3 or newer is required.
  2. Go to WooCommerce -> Settings -> Advanced -> Features and switch on “Cost of Goods Sold”.
  3. Fill in the cost on your products – the field is in the General tab of the product editor.
  4. Open “Profit & margin” in the admin menu – its own item, just below the WooCommerce block.

New orders record the product cost at the moment of sale, so the report starts filling up from
the point where costs are in place.

Frequently asked questions

How is margin calculated?

Profit divided by revenue. A product bought for 60 and sold for 100 gives 40 profit and a 40% margin. This is not markup on cost, which for the same product would be 66.7%. The two get mixed up often, so the definition is printed under the report as well. Longer answer: https://merchgain.com/r/MARGIN/

Where do the costs come from?

From the Cost of Goods Sold field built into WooCommerce 10.3 and newer. Merchgain does not store costs of its own and does not add a second cost field to your products. Longer answer: https://merchgain.com/r/COGS/

Does any data leave my server?

No. Merchgain makes no outgoing connections at all – no analytics, no licence check, no update ping of its own. Everything is calculated by your own database and displayed in your own admin.

What about orders placed before I filled in the costs?

They have no cost recorded, and Merchgain reports them as “no cost data” rather than as a cost of zero. Their revenue still counts; they are simply left out of profit and margin, and the coverage line tells you how much of your revenue that is. Longer answer: https://merchgain.com/r/FILL/

My product genuinely costs zero and it shows up as missing a cost. Why?

Because WooCommerce cannot tell the two apart. Saving a cost of zero – on the product or on an order item – makes the core store nothing at all rather than a zero, so “cost of zero” and “no cost entered” end up identical in the database. Rather than guess, Merchgain always says “no cost data” and never “cost 0”. Free samples, giveaways and downloadable extras will therefore appear on the missing cost list. Longer answer: https://merchgain.com/r/ZERO/

I issued a refund and my historical profit changed. Why?

That is WooCommerce, not Merchgain. Creating a refund makes the core recalculate the cost of every item on the parent order using the product’s cost as it is today. If the product cost changed in the meantime, the stored history changes with it. Merchgain reports what is in the database; it does not silently keep a second copy. Longer answer: https://merchgain.com/r/REWRITE/

Which month does a refund belong to?

The month the refund was issued, not the month of the original sale. A September sale refunded in November leaves September untouched and shows as a negative amount in November. Reports of closed months do not change behind your back. Longer answer: https://merchgain.com/r/REFUND/

I have orders in euros and dollars. What happens to them?

They are left out of the report and named in a warning above the numbers. Merchgain does not convert exchange rates, and adding several currencies into one total would produce a number that looks right and is not. Longer answer: https://merchgain.com/r/CURR/

I keep my costs in another plugin. Why does Merchgain show them as missing?

Because those costs live in that plugin’s own storage – a field of its own or, for ATUM, a table of its own – not in the WooCommerce core field. Merchgain tells you so instead of leaving you guessing: the missing cost warning counts how many of those products have a cost kept by another plugin and names it. Recognised: Cost of Goods: Product Cost & Profit Calculator for WooCommerce, WooCommerce Cost of Goods, ATUM Inventory Management for WooCommerce, Booster for WooCommerce, BjornTech PayPal POS integration for WooCommerce, Ni Cost of Goods for WooCommerce and Cost Of Goods For WooCommerce…

Does it work with High-Performance Order Storage?

Yes, and with the classic post-based storage as well. Cost values live in the order items table, which is the same in both layouts. Longer answer: https://merchgain.com/r/HPOS/

Which orders are counted?

Completed, processing and refunded. Refunded is in the list on purpose: a full refund flips the parent order to that status, and leaving it out would make a fully refunded order count as minus its own value instead of zero. WooCommerce Analytics excludes only pending, failed and cancelled by default, so this set is one status narrower – it skips on-hold. Longer answer: https://merchgain.com/r/STAT/

My category totals add up to more than the summary card. Why?

Because a product that sits in several categories is counted in each of them. A mug in both “Kitchen” and “Gifts” adds its sales to both rows, so the rows add up to more than the store actually sold. The alternative – picking one category and dropping the sale from the other – would quietly understate every shared category, which is worse. The summary cards are counted from the order items themselves, so they are never double counted. The screen says this under the table, and a CSV export of the category view says it on the last line, with both numbers. Longer answer…

How much history does the report cover?

All of it. There is no date limit. Any range can be selected, including a single month from years back; profit and margin appear wherever a cost was recorded on the sold item.

Does it slow my store down?

The report runs in the admin only, never on the storefront, and results are cached for an hour. Entering a cost in the product editor clears that cache immediately, so the numbers never wait for a timer. For anything else that changes the figures – an order status, a refund issued elsewhere, an import – there is a “Recalculate” button next to the export.

Who can see the report?

Anyone with the “view WooCommerce reports” capability, which is the same permission WooCommerce uses for its own sales reports. A shop manager has it, and so does a bookkeeper account limited to reports only. The report has its own item in the admin menu, “Profit & margin”, sitting just below the WooCommerce block – not inside the WooCommerce submenu, where an account limited to reports would never see it: that submenu needs a permission such an account does not have. Longer answer: https://merchgain.com/r/PERM/

Changelog

The missing cost warning now finds ATUM purchase prices and recognises Booster and BjornTech PayPal POS.

0.2.4

  • Fixed: the missing cost warning did not see the purchase prices kept by ATUM Inventory
    Management. Since its version 1.5.0 ATUM keeps them in a table of its own, while Merchgain was
    reading an old product field that ATUM no longer writes to. It reads the table now. The old
    field is no longer counted at all: in a shop that ran ATUM before 1.5.0 it holds a frozen copy,
    and other plugins use a field of the same name, so no single plugin could honestly be named
    for it.
  • Fixed: costs kept by WooCommerce Cost of Goods were credited to the WPFactory cost plugin, which
    only imports them. The warning now names the right plugin.
  • Fixed: a variation with no cost of its own in Cost of Goods: Product Cost & Profit Calculator for
    WooCommerce takes its parent’s cost there, and is now counted, so a shop that keeps those costs
    on variable products no longer sees a zero.
  • The warning now also recognises Booster for WooCommerce and BjornTech PayPal POS integration
    for WooCommerce, and it names each plugin by the name the plugin gives itself.
  • When Booster for WooCommerce is set to “Treat Variable Products as Simple Products”, a variation
    takes its parent’s purchase price there, and the warning counts it as a cost kept in Booster.
  • Negative amounts are no longer counted either – only amounts above zero.

0.2.3

  • Fixed: on MariaDB the product and category tables – and their CSV export – came out empty when
    sorted by profit or by margin, and profit is the default sort. The database rejected the sort
    expression, and the screen showed no rows and no error. MySQL was not affected. No figure was ever
    wrong: the summary cards and the other sorts worked.
  • Below a report with at least one costed sale, a one-time request to review the plugin on
    WordPress.org, whatever your verdict. It shows only on the report screen, never on the dashboard,
    and stays closed for good once you follow it or choose “Don’t ask again”. The choice is kept per
    user and removed on uninstall.
  • New screenshots, taken on an English demo store, with captions that say what each screen shows.

0.2.2

  • The missing cost warning now says when a cost is kept by another plugin. It counts those
    products and names the plugin: Cost of Goods for WooCommerce (both of its fields), ATUM
    Inventory Management, NI WooCommerce Cost of Goods and Cost of Goods. A cost of zero in such a
    field is not counted, because moving a zero changes nothing.
  • Those values are counted, never used. Profit and margin still come only from the cost field
    WooCommerce itself provides – a figure taken from a field nobody can verify would be worse than
    the gap it fills.

0.2.1

  • The plugin is now listed as “Merchgain – Gross Margin & Profit Reports for WooCommerce”. Only the
    displayed name changed: same plugin, same directory slug, same settings, same data.
  • Faster category view when an extension adds order-level costs to the report: the grouping used
    to run two queries per product. On a store with 11,000 sold items that was 6,978 queries and
    2.6 seconds; it is now 18 queries and 0.8 seconds. The figures are unchanged.
  • Uninstalling no longer removes cached data belonging to Merchgain extensions. Each extension
    cleans up after itself.

0.2.0

  • First public release. Versions 0.1.0 and 0.1.1 were review builds submitted to the plugin
    directory and were never published, so this is the first version anyone can install. The code
    is the one that passed review; only the version number changed.

0.1.1

  • The report no longer limits how far back it reaches. The 365-day window is gone from the
    code entirely, along with the notice that explained it.

Full changelog on WordPress.org →

Screenshots

The report for the period you pick: revenue, cost of goods, gross profit and margin. The line
under the cards says how much of that revenue has a cost recorded at all, and the products that
have none are listed by name, with links straight to them.
The report for the period you pick: revenue, cost of goods, gross profit and margin. The…
Profit product by product - items sold, revenue, cost, profit and margin, sorted by whichever
column you pick.
Profit product by product - items sold, revenue, cost, profit and margin, sorted by…
The same sales grouped by product category. A product that sits in several categories is counted
in each of them, so the totals can add up to more than the summary - and the screen says so
instead of hiding it.
The same sales grouped by product category. A product that sits in several categories is…
What you see before the Cost of Goods Sold feature is switched on: the three steps to turn it
on, and the warning that orders placed while it is off record no cost at all - a gap that cannot
be filled in later.
What you see before the Cost of Goods Sold feature is switched on: the three steps to…

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best Merchgain alternatives

All COGS plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 Ni Cost of Goods for WooCommerce Ni Cost of Goods for WooCommerce Add cost of goods (COGS) to WooCommerce products and see real profit, profit margin and… by Anzar Ahmed 200+ ★★★★★★★★★★ 3.5 (4) 3 weeks ago 60
2 Profitblue – Financial reporting for WooCommerce Profitblue – Financial reporting for WooCommerce Profitblue is an advanced financial reporting tool for WooCommerce. With this tool, even… by Profitblue 10+ ★★★★★★★★★★ No reviews 8 months ago 38
3 NIT Sales Analytics for WooCommerce NIT Sales Analytics for WooCommerce Profit-aware WooCommerce analytics, a custom report builder, and a storefront assistant… by Sunny Chauhan <10 ★★★★★★★★★★ No reviews 6 days ago 64
4 BigBad Store Toolkit for WooCommerce BigBad Store Toolkit for WooCommerce Modular WooCommerce toolkit with COGS tracking, shared variation inventory, and extensible… by Jordan Alexander <10 ★★★★★★★★★★ No reviews 2 days ago 59
5 Profitly — Profit Analytics for WooCommerce Profitly — Profit Analytics for WooCommerce See your WooCommerce store's real profit. Track cost of goods (COGS), gateway fees, and… by StandaloneTech <10 ★★★★★★★★★★ 5 (1) 2 weeks ago 71
6 Tendforge Margin Lens for WooCommerce — Profit & COGS Reports Tendforge Margin Lens for WooCommerce See your real profit, not just revenue. Gross profit dashboard, per-order profit and… by tendforge <10 ★★★★★★★★★★ No reviews 2 months ago 55
7 Profit Margin Reports for WooCommerce Profit Margin Reports for WooCommerce Gross profit and margin reports built from the Cost of Goods Sold data WooCommerce already… by Emtiaz Zahid <10 ★★★★★★★★★★ No reviews 1 month ago 60
8 PurchaseDesk – Purchase Orders, Cost of Goods (COGS) & Suppliers for WooCommerce PurchaseDesk PurchaseDesk for WooCommerce: purchase orders, supplier records, goods receipt and cost of… by erenlabs <10 ★★★★★★★★★★ No reviews 2 weeks ago 64
9 Profitrics – Profit, COGS and Expense Tracker for WooCommerce Profitrics See your store's real profit, not just revenue: product COGS, gateway and shipping costs… by camerce <10 ★★★★★★★★★★ No reviews 1 month ago 64
10 Profit Lens — Profit Analytics for WooCommerce Profit Lens — Profit Analytics for WooCommerce See your store's real profit, not just sales — right inside WooCommerce. by arc7dev <10 ★★★★★★★★★★ No reviews 1 week ago 64

FAQ

Merchgain: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Oct 2, 2026

Is Merchgain free?

Yes. Merchgain is free to download and use from the official WordPress.org plugin directory.

Is Merchgain safe to use in 2026?

Merchgain is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 1 week ago, and scores 64/100 on our health check.

How many websites use Merchgain?

Merchgain is active on <10 WordPress websites and has been downloaded 260 times since it launched in September 2026. It was downloaded 266 times in the last 30 days.

Does Merchgain work with WordPress 7.1?

Yes. The developer has tested Merchgain up to WordPress 7.1.2, the latest release. It requires WordPress 6.7 or newer.

What PHP version does Merchgain need?

Merchgain requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was Merchgain last updated?

The latest version, 0.2.4, was released on September 25, 2026 (1 week ago).

Who makes Merchgain?

Merchgain is developed and maintained by baltano.

What are the best alternatives to Merchgain?

The most popular alternatives to Merchgain are Ni Cost of Goods for WooCom… (200+ installs), Profitblue (10+ installs) and NIT Sales Analytics for Woo… (<10 installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.