← Back to Guides

WooCommerce COGS Tracking — How to See Your Real Profit Margins

Neil Berrow·Published ·8 min read
woocommerce cogs pluginwoocommerce cost of goodswoocommerce profit margin by productwoocommerce cogs tracking

WooCommerce shows you revenue. It doesn't show you profit. You can have a record month in sales and still be losing money — because the cost of the goods you sold was never subtracted from the number you're celebrating. Cost of Goods Sold (COGS) tracking is the bridge between the revenue figure on your dashboard and the actual financial health of your store.

Without COGS data, every pricing decision you make is based on incomplete information. You don't know which products are actually profitable, which are barely breaking even, and which are quietly losing you money at scale. Revenue is vanity. Profit is what keeps the business alive.

0

COGS fields in WooCommerce by default

15-25%

Average margin lost to untracked costs

3 min

Time to set COGS per product with Profit Tracker

What COGS means for WooCommerce stores

COGS is the direct cost of producing or acquiring the goods you sell. It's not your total business expenses — it's specifically the costs that exist because you made a sale.

What COGS typically includes for a WooCommerce store:

  • Product cost: What you paid your supplier or manufacturer for the item. The most obvious component, but rarely the only one.
  • Inbound freight: The shipping cost to get the product from your supplier to your warehouse or fulfilment centre. This is frequently forgotten and adds 5–15% to true product cost.
  • Packaging: Boxes, tissue paper, labels, tape, inserts. These add up faster than expected, especially at volume.
  • Direct labour: If your team handles picking, packing, or assembly, the labour time attributable to each unit sold is part of COGS.

What COGS does not include:

  • Marketing and advertising spend
  • SaaS tools and software subscriptions
  • Rent, utilities, or general overhead
  • Your own time spent on strategy or management

Those are operating expenses, tracked separately. COGS is purely the cost of the goods themselves, from supplier to shipped order.

Your analytics are showing you the wrong number

WooCommerce revenue figures are pre-COGS. Every “revenue” report in your dashboard, your GA4 ecommerce data, and your Stripe payout summary shows you gross sales — not profit. If you're making decisions based on those numbers alone, you're optimising for the wrong metric.

Why tracking COGS manually doesn't scale

Most store owners start with a spreadsheet. Product cost goes in one column, selling price in another, and the margin calculation looks fine in isolation. The problem is that this approach breaks down fast.

A spreadsheet can't automatically deduct COGS per order as sales come in. You'd need to export your WooCommerce orders, match each line item to the correct cost, account for which variation was sold, and then manually calculate profit per order. For ten orders a day, that's a part-time job. For a hundred, it's impossible.

Manual COGS tracking also misses variable costs across product variations. A t-shirt in a large size might cost $2 more to produce than a small. If you're applying a single COGS figure to the parent product, your margin calculations for every variation are wrong. The error compounds with every sale.

And when your supplier changes their price — which happens constantly — a spreadsheet requires a manual audit of every affected product. Stores that don't update promptly end up running products at margins they've never actually calculated.

How to track COGS in WooCommerce automatically

The right approach is to record COGS at the product level inside WooCommerce, and let the system do the subtraction automatically on every order. That's exactly what WPBundle's Profit Tracker does.

Here's how it works:

  1. Install Profit Tracker from the WPBundle dashboard. It adds a “Cost & Profit” panel to your WooCommerce product editor.
  2. Set cost per product. Enter your COGS for each product — or per variation if your costs differ by size, colour, or configuration. Takes about 3 minutes per product.
  3. Your dashboard shows real profit. Every order is automatically annotated with revenue, COGS, payment fees, and net profit. You see actual margin in real time, not a revenue figure you have to manually reverse-engineer.

One detail that matters: Profit Tracker also deducts payment processing fees automatically. Stripe charges 2.9% + $0.30 per transaction. That fee is a direct cost of the sale and belongs in your profit calculation — but most stores never subtract it from their margin figures. Outbound shipping costs are deducted too, so your net profit number reflects what actually landed in your account.

COGS per product vs per variation

For stores selling simple products, a single COGS figure per product is sufficient. But if you sell variable products — clothing in multiple sizes, hardware in different specifications, bundles with different component counts — you need cost tracking at the variation level.

A size Small hoodie might cost $14 to produce. A size 3XL costs $18 because the fabric requirement is higher. If you track COGS at the parent product level using an average, you're overstating margin on large sizes and understating it on small ones. Scale that error across your best-selling variations and the distortion is significant.

The same logic applies to products with different materials, components, or production runs. Profit Tracker lets you set cost at the variation level, so every sale is costed accurately regardless of which option the customer chose.

Common COGS mistakes WooCommerce stores make

Even stores that do track COGS tend to make the same errors. These are the ones that cause the biggest margin distortions:

  • Forgetting inbound freight. The shipping cost to receive your products is part of what those products cost you. A $10 product that costs $1.50 to ship in actually costs $11.50. Inbound freight adds 5–15% to true product cost for most physical goods sellers and is almost universally excluded from COGS spreadsheets.
  • Not tracking payment fees separately. Lumping payment fees into “other expenses” instead of deducting them per order means your per-product profit figures are always slightly optimistic. On a $50 order, Stripe takes $1.75. That's 3.5% of revenue gone before you've counted anything else.
  • Using the same COGS across product variations. As covered above, variation-level cost differences are real. An averaged parent-product COGS is wrong for every individual variation.
  • Not updating COGS when supplier prices change.Supplier price increases happen regularly. Every month you run on outdated COGS figures, your margin calculations are wrong in the direction that hurts you most: you think you're making more than you are.
Every pricing decision you make is wrong until your COGS is right. Fix COGS first, then optimise everything else.

Start knowing your actual margin

Revenue tells you how much customers spent. Profit tells you whether running the business makes sense. The gap between those two numbers is COGS — and until you're tracking it automatically, per order, at the variation level, you're flying blind on every pricing and product decision you make.

WPBundle's Profit Tracker adds proper COGS tracking to WooCommerce without a spreadsheet, without manual exports, and without guesswork. Set your costs once per product, and every order automatically shows you real profit — after COGS, payment fees, and shipping.

See the numbers that actually matter.

WPBundle's profit tracker shows real profit after fees, COGS, and shipping — not just revenue. Included in the $149 bundle.

Join the Waitlist

Track real profit, not just revenue — included in WPBundle