COGS calculator. Australia

COGS calculator: cost of goods sold, margin and markup

Cost of goods sold (COGS) is what it cost you to make or buy the products you actually sold in a period, before any advertising, rent, software or salaries. The formula is opening inventory plus purchases minus closing inventory, or for a single product, unit cost plus inbound freight plus duties plus packaging.

Enter your numbers below to get COGS, gross profit, gross margin, markup and the break-even ROAS your ads have to clear. Free, in Australian dollars, no signup.

What cost of goods sold actually means

Cost of goods sold is the direct cost of the products you sold in a period. It is the money that left your business to make or buy stock, and nothing else. Advertising, rent, software, salaries and outbound shipping are all real costs, but they are costs of running and selling, not costs of goods, so they sit below the gross profit line.

There are two ways to calculate it, and you need both for different jobs.

Period COGS, for your accounts

COGS = opening inventory + purchases during the period - closing inventory

This is the version your accountant and your profit and loss statement use. It answers the question of what the stock you actually sold this quarter cost you, and it self-corrects for stock you bought but have not shifted yet.

Unit COGS, for pricing and ad buying

COGS per unit = supplier or manufacturing cost + inbound freight + duties and import charges + product packaging

This is the landed cost of one item on your shelf. It is the version you need when you are setting a price, working out whether a discount still makes money, or deciding what you can afford to pay for a customer. Most brands underestimate it because they remember the supplier invoice and forget the freight.

If you are registered for GST, the usual approach is to run these numbers GST exclusive, because the GST you collect on a sale is not money you keep and the GST you pay on stock is generally claimable. This page is general information, not tax advice. Confirm your own treatment with your accountant or the ATO.

Worked example: how the numbers fit together

Every figure below is invented for the sake of the example. These are round numbers chosen to make the arithmetic easy to follow. They are not Hey Sage client data, they are not an industry benchmark, and they are not a target you should aim at. Put your own numbers into the calculator above.

Step one: unit COGS and gross margin

Illustrative example only. A made-up product priced at 100 dollars excluding GST.
LineAmount (AUD, ex GST)Counts as COGS?
Selling price$100.00Revenue
Supplier cost per unit$22.00Yes
Inbound freight and duty$4.00Yes
Product packaging$2.00Yes
COGS per unit$28.00
Gross profit per unit$72.00
Gross margin72.0%
Markup on cost257%

Gross margin is 72 dollars divided by the 100 dollar price. Markup is the same 72 dollars divided by the 28 dollar cost, which is why it looks so much bigger. Same product, same profit, two very different percentages.

Step two: what is left after the cost of selling

Illustrative example only. The same made-up product, continued.
LineAmount (AUD, ex GST)
Gross profit per unit$72.00
Outbound shipping$9.00
Payment processing$2.30
Pick and pack$1.50
Contribution per order$59.20
Contribution margin59.2%
Break-even ROAS on ex GST revenue1.69x
Break-even ROAS on platform-reported (GST inclusive) revenue1.86x

Gross margin said 72 per cent. The number that actually governs your ad budget is 59.2 per cent, and it produces a break-even ROAS of 1.69. That gap between the two is where a lot of paid media goes quietly wrong.

There is one more step before that 1.69 goes anywhere near an ad account. It is measured on GST exclusive revenue, and if you are registered for GST the purchase value Meta and Google report back to you is what the customer paid, GST included. Multiply by 1.1 and the figure to compare against platform-reported ROAS is 1.86.

Step three: the period version, for your accounts

Illustrative example only. A made-up quarter for the same made-up brand.
LineAmount (AUD, ex GST)
Opening inventory$80,000
Plus purchases, landed$145,000
Less closing inventory$62,000
COGS for the quarter$163,000
Revenue for the quarter$410,000
Gross profit$247,000
Gross margin60.2%

Notice that the period margin, 60.2 per cent, comes out below the 72 per cent the single product suggested. In a real business that gap is normal and it is informative: discounts, freight that came in above quote, damaged stock, and a sales mix weighted towards your lower margin lines all live in the difference. If your period margin is a long way under your product margin, the period number is the one telling the truth.

What to include and exclude in COGS for an ecommerce brand

The test is simple. If the cost exists because that unit exists, it is COGS. If the cost exists because you are running a business and trying to sell things, it is not.

Where each common ecommerce cost belongs.
CostIn COGS?Why
Supplier or manufacturing costYesThe core cost of the unit itself.
Inbound freight to your warehouseYesPart of getting the stock onto your shelf, so it belongs in landed cost.
Customs duty and import chargesYesSame reason. Easy to forget and often the difference between a good margin and a thin one.
Primary product packagingYesThe box or bottle the product is sold in is part of the product.
Assembly or kitting labourYesDirect labour that turns components into the sellable unit.
Outbound shipping to the customerNoA cost of fulfilling a sale. Put it in contribution margin instead.
Pick, pack and 3PL feesNoAlso fulfilment. Variable per order, but not a cost of the goods.
Payment processing feesNoA cost of taking money, not of making product.
Advertising and agency feesNoCost of acquiring the customer. This is what your contribution margin has to pay for.
Platform subscriptions and appsNoMostly fixed overhead. It does not change your break-even ROAS.
Warehouse rent, salaries, insuranceNoOperating overhead, paid out of gross profit.
Returns and refundsHandle separatelyModel it as a returns rate against contribution rather than burying it in unit cost.

Two habits are worth building. First, use landed cost, not the invoice price, because freight and duty are where margin quietly disappears. Second, keep fulfilment out of COGS but never out of your thinking: it does not change your gross margin, and it absolutely changes what you can pay for a customer.

Margin and markup are not the same number

This one costs brands real money, because the two are easy to mix up in the direction that flatters you.

Gross margin % = (price - COGS) / price
Markup % = (price - COGS) / COGS

Margin is measured against the price. Markup is measured against the cost. Using the illustrative product above, a 28 dollar cost sold at 100 dollars is a 72 per cent margin and a 257 per cent markup.

Run it the other way and the trap becomes obvious. Apply a 50 per cent markup to that 28 dollar cost and you get a 42 dollar price, which is only a 33 per cent margin. If you had assumed 50 per cent markup meant 50 per cent margin, you have just priced a product with 17 points less room than you thought, and every ad budget you build on top of it is wrong.

The calculator above shows both figures side by side for exactly this reason.

How COGS drives your break-even ROAS

If you buy paid traffic, COGS is not an accounting chore. It is the input that sets the floor on every campaign you run.

Contribution margin % = (price - COGS - other variable costs) / price
Break-even ROAS = 1 / contribution margin %
Break-even ROAS on GST inclusive reported revenue = break-even ROAS x 1.1

Break-even ROAS is the return on ad spend at which a campaign has paid for the product, the shipping, the fees and the media, and returned exactly nothing. Below it you are buying revenue at a loss. Above it you are making money on the first order.

In the illustrative example, a 59.2 per cent contribution margin gives a break-even ROAS of 1.69. Take five points off that margin, say because freight rose or you ran a bigger discount than planned, and the ROAS you need climbs. Nothing changed in your ad account, but the bar moved.

Make sure you compare like with like. The formula gives you break-even on GST exclusive revenue, but Meta and Google report purchase value at the price the customer paid, which includes GST if you are registered. A 1.69 break-even on ex GST revenue is a 1.86 target against platform-reported revenue. Set the ex GST number as your in-platform target and you will run roughly ten per cent under water while the dashboard tells you that you are breaking even.

Three things follow from this, and they are the reason we ask every brand for their COGS before we touch a budget.

  • A wrong COGS number does not look like a wrong COGS number. It looks like a channel that will not scale, or an agency that cannot hit target. If your break-even is really 2.4 and you have been told it is 1.8, the campaigns were never going to work.
  • Break-even ROAS is a first-order number. If customers come back, you can afford to acquire below first-order break-even, but only if you know your repeat rate rather than hoping for one. Model that on the Shopify ecommerce profit calculator, which extends this same maths into LTV, MER and a 12 month forecast.
  • Discounts are margin decisions, not marketing decisions. A 20 per cent off code on a 59 per cent contribution margin does not cost you 20 per cent of profit. It costs you a third of your contribution, and it lifts the ROAS you need at exactly the moment you are trying to sell more.

Keep your COGS current. Supplier prices move, freight moves, and a landed cost you calculated eighteen months ago is a number you are now guessing at.

How to use the COGS calculator

  1. Choose per unit or per period. Use per unit when you are pricing a product or setting an ad target. Use per period when you are reconciling to your profit and loss.
  2. Enter your landed cost, not your invoice price. Supplier cost, inbound freight, duties and product packaging. If freight is billed per shipment, divide it across the units in that shipment.
  3. Add your selling price excluding GST. If you sell at 110 dollars including GST and you are registered, that is 100 dollars ex GST. The calculator will show you gross profit, gross margin and markup from there.
  4. Add your other variable costs. Outbound shipping, payment fees and pick and pack. These are not COGS, but they are what stands between gross margin and the money you can actually spend on ads.
  5. Read the break-even ROAS, then match it to the way your platform reports. The formula gives you break-even on GST exclusive revenue. If you are registered for GST, multiply it by 1.1 before you set anything in Meta or Google, because those platforms report the GST inclusive value the customer paid. That GST inclusive figure is the number to take into your ad account, and any target you set should sit above it with enough headroom to cover your overheads.

Nothing you type is stored or sent anywhere. The tool runs in your browser.

Where to go next

Once you know your COGS, the next questions are what to charge, what to spend and how to tell whether it worked. These are all free, and they all use the same maths.

And two guides that pick up where the numbers stop:

If you would rather have people who work from your real margins run your Meta and Google ads, get started.

COGS calculator FAQ

What is the cost of goods sold formula?

For a period, COGS equals opening inventory plus purchases minus closing inventory. For a single product, COGS is the landed cost of one unit: what you paid your supplier, plus inbound freight, plus duties and import charges, plus the packaging that ships with the product. Anything you spend to sell the product, rather than to make or buy it, sits outside COGS.

Is this COGS calculator free?

Yes. It is completely free, with no account, no email capture and no usage limits. It runs in your browser and nothing you type is stored or sent anywhere. We built it because we buy ads for a living and we cannot set a sensible budget for a brand until we know its real cost of goods.

What should be included in COGS for an ecommerce brand?

Include the landed cost of the product: supplier or manufacturing cost, inbound freight, customs duties and import charges, and the primary packaging the product is sold in. Leave out the costs of selling and running the business: advertising, outbound shipping, payment processing fees, pick and pack, software, rent and salaries. Those belong in your contribution margin, not in COGS.

Should COGS include GST?

If you are registered for GST, the usual approach is to run COGS and revenue GST exclusive, because the GST you collect on a sale is not money you keep and the GST you pay on stock is generally claimable as an input tax credit. If you are not registered, GST paid on stock is a real cost to you and stays in the number. This is general information, not tax advice, so confirm your own treatment with your accountant or the ATO.

What is the difference between gross margin and markup?

Margin is measured against your selling price and markup is measured against your cost, so the same product produces two very different percentages. A product that costs 28 dollars and sells for 100 dollars carries a 72 per cent gross margin and a 257 per cent markup. Applying a 50 per cent markup to that same 28 dollar cost gives a 42 dollar price and only a 33 per cent margin, which is why the two are so easy to confuse in your own favour.

How does COGS affect break-even ROAS?

Break-even ROAS is one divided by your contribution margin, and for most product businesses COGS is the largest single input into that margin. If your contribution margin after COGS, shipping, payment fees and pick and pack is 59 per cent, you break even at roughly 1.7 times return on ad spend measured on GST exclusive revenue. If you are registered for GST, the revenue Meta and Google report back to you includes the GST, so the target to set in the ad account is about 1.9 times. Take a few points off that margin and the ROAS you need climbs, which is why a cost of goods number that is quietly out of date tends to show up later as a paid channel that never seems to work.