How cost of goods sold is worked out
Where each cost price comes from, what is left out, and when a month stops changing.
Cost of goods sold in Smartworks is the cost of the work on your jobs: every labour, material and purchase order line, multiplied by the cost price saved on that line, plus your stock adjustments. Stock you buy for the shelf is not a cost until it is used on a job. Each month locks a set number of days after it ends, so its figures stop changing once your books are closed.
Where the cost price comes from
Smartworks saves a cost price on each line when the line is created. It does not average your purchase costs or work through them first in, first out.
| Line | Cost price saved on it |
|---|---|
| Material added with Add Parts or + Add line | The product’s purchase price in Xero at that moment. |
| Material from a quote turned into a job | The quote line’s cost price. |
| Purchase order line on a job | The order’s cost, replaced by the Cost you enter when you receive it. |
| Labour | The labour code’s cost. |
| Adjust Stock adjustment | The product’s purchase price in Xero when you saved it. |
You can change a line’s Cost Price in Invoicing until it is invoiced. The cost is not on the invoice, so changing it changes only cost of goods sold.
Adjustments with no cost
Adjustments made before Smartworks saved their cost are filled in overnight: first from the nearest job or purchase order line for the same product, then from the product’s current purchase price in Xero. An adjustment still without a cost, often because the product was deleted from Xero, shows Cost unknown and counts at $0. An admin can click Set cost beside it to enter the Unit cost ($) in Set unit cost.
What is left out
- Lines with no product. Always left out, and listed under Not included in COGS as No product.
- Products that are not tracked. Left out unless you tick Include Non-Tracked.
- Products set to Excluded from COGS. Left out unless you tick Include Non-Tracked. Their adjustments are never counted.
- Stock bought with no job. Receiving a purchase order for stock is not a cost. The cost arrives when the stock is used on a job.
- Credit notes and imports. Sales credit notes, bill credit notes and Import Stock change stock on hand but not cost of goods sold.
Date Basis chooses the month a line counts in. Invoiced uses the date it was invoiced, and keeps lines not yet invoiced in a separate Unprocessed month. Recorded on Job Date uses the date it was added to the job.
Month locking
Each night Smartworks locks every month that ended more than Lock COGS After (Days) days ago. A locked month keeps a saved copy of its figures. After that, a change that would alter its cost of goods sold is refused with COGS for the month is locked, so this change can’t be saved. That covers job lines and stock adjustments dated in the month.
A month cannot lock while it is Waiting on a purchase order with job lines that has not been received or deleted. An admin can Lock now a month that has ended, or Reopen a locked month to correct it. A reopened month locks again a day later.
Cost of goods sold in the Settings guide covers the report screen and the steps for locking and reopening.
Product issues

View Product Issues, on the Cost of Goods Sold page, opens Stock Product Issues. It lists stock records whose product no longer matches Xero. Hover over the information icon to see the cause.
| Reason | What happened |
|---|---|
| Product code mismatch | The product’s code was changed in Xero after stock was recorded. |
| Product not found in source system, but product code … exists in stock. | The product was deleted in Xero and created again with the same code, so it is a new product. |
| Product not found in source system. | The product was deleted in Xero. |
Use the Tracked? switch on a row to stop counting a product you no longer stock.
See also
- Cost of goods sold - the report screen, filters, locking and Set unit cost.
- Adjust and import stock - the adjustments in the Adjustments column.
- Receive stock from a purchase order - receive the orders a month is waiting on.
- Xero and stock - why Xero’s own cost of sales can differ.