Bookkeeping

Setting up COGS in Xero vs MYOB — a side-by-side.

Both systems can do COGS well. Neither does it out of the box. Here's what to change in each, with the same worked example, so your P&L reads honestly.

Two-thirds of the small businesses we work with are on Xero. Most of the rest are on MYOB Business. Both are perfectly capable of doing cost-of-goods-sold accounting correctly — but neither of them lands there without a bit of setup. This is the same setup advice a good registered BAS agent would give you, distilled: the chart of accounts, the tax codes (GST, N-T, BAS Excluded), and where perpetual inventory ends and stocktake begins.

What we mean by "COGS", specifically

Cost of goods sold is the direct cost of the stuff you sold in a period. It's an expense account, and it's what turns revenue into gross profit:

Gross profit = Revenue − COGS

It does not include: rent, wages that aren't direct-labour-on-product, marketing, subscription software, or your bookkeeper's fee. Those live below the gross profit line, in operating expenses.

It does include: materials consumed, packaging, freight-in (the cost of bringing stock in, not out), and the direct labour that produced the product if you're a maker.

Chart of accounts — Xero

Xero ships with a "Cost of Sales" account (typically 310) but doesn't force you to use it. The setup we recommend:

CodeAccountTypeGST
310Cost of goods soldDirect costsGST on expenses
311Freight & delivery inwardsDirect costsGST on expenses
312Packaging & materialsDirect costsGST on expenses
313Direct labourDirect costsBAS excluded
630Freight outwards (to customer)ExpenseGST on expenses

Note the last row: freight out (delivering to the customer) is not COGS. It's a selling expense. The distinction matters when you're comparing gross margin across periods where one had heavy postage and the other didn't.

Chart of accounts — MYOB Business

MYOB uses a slightly different tree. The equivalents:

CodeAccountTypeTax
5-1000Cost of SalesCost of salesGST
5-1100Freight paid on purchasesCost of salesGST
5-1200Packaging suppliesCost of salesGST
5-1300Direct labourCost of salesN-T
6-3000Freight paid on salesExpenseGST

Perpetual vs periodic

The bigger fork in the road isn't chart-of-accounts — it's when your COGS journal is written.

Perpetual (recommended for retail, hospitality, e-commerce)

Every sale writes a COGS journal at the moment it happens: debit COGS, credit inventory, in the amount of the item's cost. Your P&L updates in real time. Xero does this natively when you use tracked inventory. MYOB Business does it when you use Item cards with inventory tracking on. If you're on Shopify, feed the daily payout summary through the connector to Xero as a Sales Invoice, and the tracked-inventory items handle the COGS journal for you — don't reconcile line-by-line from the Shopify order feed unless you enjoy pain.

Periodic (recommended for makers, low-SKU businesses)

You don't journal per-sale. Instead, at end of month (or quarter), you do a stocktake and write a single adjustment:

COGS for period = Opening stock + Purchases − Closing stock

This is the classic small-business formula. It's easier to run and matches how most makers actually work — you know what glaze you bought, you know what's left, and you don't need the system to journal on every sale.

Worked example — a small ceramics studio

Let's use a concrete quarter. A cone 6 stoneware studio in Enmore has these numbers for July–September — the sort of figures you'd read straight off the studio's Xero "Account Transactions" report, filtered by 5-*:

ItemAmount
Opening stock at 1 July$4,820
Purchases of clay, glaze, stains (ex-GST)$3,412
Packaging & kraft paper$488
Freight in from suppliers$212
Direct labour on product (owner, 260 hrs @ $45)$11,700
Closing stock at 30 September$5,140

Periodic COGS = 4,820 + (3,412 + 488 + 212 + 11,700) − 5,140 = $15,492.

In Xero, that's a manual journal at 30 September:

  • DR 310 Cost of goods sold · $15,492
  • CR 630 Inventory · $320 (the change in stock)
  • CR (bank/creditors) · via source purchase invoices for the rest

In MYOB Business the equivalent runs through 5-1000 with the same net effect.

The single biggest mistake we see

Watch for this Direct labour left in Wages & salaries, above the gross profit line. This flatters your gross margin (because production wages haven't been subtracted from revenue) and makes your operating expenses look bloated. Same total, wrong shape — and it will mislead every pricing decision you make from that P&L.

Reconciling to COG

COG doesn't replace Xero or MYOB — it feeds them. The two-way sync writes purchase invoices into the right cost-of-sales account, and reads the sale price back so your margin math uses the actual charged figure (including any discount you applied). Result: the gross profit line on your accounting P&L matches the gross profit line COG shows, penny for penny.

If they don't match, we assume the accounting system is right and flag the difference for you to investigate. In our first year of shipping, that check has caught more misfiled expense codes than anything else in the product.