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:
| Code | Account | Type | GST |
|---|---|---|---|
| 310 | Cost of goods sold | Direct costs | GST on expenses |
| 311 | Freight & delivery inwards | Direct costs | GST on expenses |
| 312 | Packaging & materials | Direct costs | GST on expenses |
| 313 | Direct labour | Direct costs | BAS excluded |
| 630 | Freight outwards (to customer) | Expense | GST 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:
| Code | Account | Type | Tax |
|---|---|---|---|
| 5-1000 | Cost of Sales | Cost of sales | GST |
| 5-1100 | Freight paid on purchases | Cost of sales | GST |
| 5-1200 | Packaging supplies | Cost of sales | GST |
| 5-1300 | Direct labour | Cost of sales | N-T |
| 6-3000 | Freight paid on sales | Expense | GST |
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-*:
| Item | Amount |
|---|---|
| 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
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.

