Run the COGS report
Read your period COGS per SKU, switch between cost-at-sale and cost-at-fulfilment, match a payout window, and export.
Updated 4 August 2026
The COGS report shows your cost of goods sold for a period, per SKU, with a full audit trail of how each number was reached. It's calculated fresh every time by replaying your cost layers against your Shopify movements. Nothing is stored, so it's always correct.
Open the report
Go to Dashboard → COGS. Pick a month or a custom date range at the top.

Choose the basis: Cost at Sale vs Cost at Fulfilment
There are two valid ways to look at the same COGS. Pick one. Never add them together.
| Basis | What it means | Use it when |
|---|---|---|
| Cost at Sale (default) | Costs the order when the sale happens, blended across locations | You report COGS against revenue/sales |
| Cost at Fulfilment | Costs the movement when it ships, accurate to each location | You need location-accurate COGS |
An order has no committed location at sale time, so Cost at Sale blends locations by SKU. Cost at Fulfilment knows the shipping location, so it draws from that location's layers.

Match a Shopify payout window
If you reconcile COGS to payouts, use the payout-window match to line the report period up with a Shopify payout instead of a calendar month.
Read the results
Each row shows a SKU, the quantity sold/fulfilled, and its COGS for the period. Expand a row to see the depletion audit: exactly which cost layers were drawn, in what order, at what unit cost.
If stock moved that Landara has no cost for, it's costed at the last-known unit cost and flagged uncosted. That's a signal to seed a cost layer or reconcile.
Export and post
- Click Export CSV for your records or to share with your accountant.
- When you're ready to put COGS in your books, post a COGS journal to Xero or QuickBooks.