Costing troubleshooting
Where to start when a cost looks wrong: a $0.00 unit cost, zero COGS, a recipe that disagrees with its batch, a cost that jumped, or stock below zero.
The short answer
- Costs move only through purchases, completed batches, adjustments with a cost basis and vendor credits. You can't type a unit cost, so nothing on this page is fixed by typing one.
- A fulfilled order keeps the COGS it got when you fulfilled it. Fixing the cause changes what comes after, never a sale already recorded.
Start here: which number looks wrong?
- A material's Unit cost reads $0.00: A material shows $0.00 unit cost.
- An order's COGS reads $0.00: COGS is zero on a fulfilled order.
- A recipe's Unit cost (incl. labor) differs from a batch's Unit cost: The recipe cost and the batch cost differ.
- A material's Unit cost moved a lot after a purchase: The unit cost jumped after a purchase.
- An on-hand count is below zero: Stock went negative.
- A batch or a sale landed on the wrong day: I logged a batch or sale on the wrong date.
- A product's stock rose after a return: Stock went up after a return on an order I never shipped.
- Unit cost on Products and Full cost on Pricing disagree: The two cost columns on Products and Pricing differ.
- The Profit dashboard and Profit & Loss disagree after a return: The Profit dashboard and the P&L disagree after a no-restock return.
- Labor on Schedule C (COGS) looks small: Schedule C's Labor line looks too low.
A material shows $0.00 unit cost
A material's Unit cost on Materials (Unit cost (WAC) on the material's own page) is the weighted average of what you paid for the stock you hold. $0.00 means no cost has reached it yet. Either you haven't recorded a purchase or opening stock for it, or the only one you recorded had a total of $0.00.
A tool is the other case. A material added with Track as inventory (uncheck for tools / equipment) unchecked is a tool. Its purchases are booked as overhead instead of stock value, so they never change its unit cost. A tool added without opening stock stays at $0.00. Whether a material is a tool can't be changed after it is created.
To fix it, open the material and use Record purchase with what you paid. If a purchase went in with the wrong total, reverse it the way The unit cost jumped after a purchase describes. A tool needs no fix. Why did my unit cost change after a purchase? lists every way a cost ends up at $0.00.
COGS is zero on a fulfilled order
When you fulfill an order, Trackost sets each line's COGS to the quantity times the variation's weighted-average cost at that moment, and freezes it. $0.00 means that cost was $0.00 when you fulfilled. Either no batch of that variation had been completed and it had no other cost basis, or the batch itself cost $0.00 because its materials had no purchase cost (see A material shows $0.00 unit cost).
A line that isn't matched to a product has no COGS at all, and it keeps the order Open. Selling more than you have does not cause a $0.00 COGS, because that sale is costed at the current weighted-average cost (see Stock went negative).
The $0.00 already recorded stays, because Trackost never re-costs a fulfilled order (About COGS snapshots and true profit explains the snapshot). To fix the cause, record the missing material purchases, then log the missing batch. Batches made after that use the materials' new costs.
Two things carry the old $0.00 forward. If you sold the product before any batch or cost basis gave it a cost, its count went below zero, and the batch or cost basis that fills the gap also settles that cost (see Stock went negative). If a batch used material you never recorded buying, that material went below zero too. The purchase you record afterwards fills its gap and charges its whole cost to what's left, so the material and the next batches read above what you paid until that stock is used, and they blend with any $0.00 units still in stock. The first sales are costed too low and the later ones too high, but across them the product's cost adds up to what you spent. Don't also correct the product with Adjust, or the material cost counts twice.
To find the sales that went out at $0.00, open Reports › Orders Margin, choose All time, and look for fulfilled orders whose COGS is $0.00. An order showing '—' there has not shipped yet. An order that also sold costed products adds their COGS to its row, so also search Orders for the product, open each fulfilled order and read the COGS column of its lines. Why is COGS zero on a sale? walks through each check and fix.
The recipe cost and the batch cost differ
They measure two different moments. The recipe's Unit cost (incl. labor) is what one unit costs to make today: its materials at their current weighted-average cost, waste included, plus labor, divided by the yield. A batch's Unit cost is the same sum, frozen when the batch started. A purchase since then moves the recipe, never the batch. Editing the recipe or changing your labor rate doesn't change a batch either.
Overhead is the other difference. On the recipe, the flat overhead appears only on the With overhead: line of its live cost, and no batch includes it.
A product used inside another recipe is costed at its own weighted-average cost while it has stock, not at the cost of its recipe.
Usually there is nothing to fix. The batch shows what the stock you made cost you. The recipe shows what the next batch would cost at today's prices. Why does my recipe cost differ from my batch cost? covers every cause.
The unit cost jumped after a purchase
A material's Unit cost is a moving weighted average, so every purchase pulls it toward the price of the new stock. A big move usually comes from the purchase itself:
- the total was typed wrong, for example a price per unit entered as the total, or the reverse;
- the quantity went in with the wrong unit, kilograms as grams or the reverse;
- shipping and tax on a purchase order were spread into the cost of its lines. That case is correct, because it is what the material cost you to get.
To find the purchase that moved it, open the material and read the WAC after column in its Purchase history. The row where the cost jumps is the purchase that moved it. Why did my unit cost change after a purchase? walks through each cause, with pictures.
A purchase can't be edited or deleted once it has added stock. To reverse one, open the material and use Record vendor credit with the same amount, then record the purchase again with the right figures.
Enter the credit's quantity in the unit the material's stock is counted in, which is not always the unit you buy in. Quantity received and Purchase history use the unit you buy in. Quantity returned uses the counting unit, the one in the line under it that ends 'on hand — returning more is rejected with no change.' To convert, multiply the purchase quantity by the material's Tracking units per purchase unit from its edit form. A wax bought as 2 kg and counted in grams is a credit of 2000.
If nothing has been used from this material, or adjusted out of it, since that purchase, the credit takes out exactly what the purchase put in. The cost becomes what it would have been without that purchase. If you had none of the material before it, the cost reads $0.00 until you record the purchase again, which then sets it right.
If some of the material has been used since, a credit for the full amount no longer reverses the purchase cleanly. What was used left at the averaged cost, which already included part of the wrong purchase, so the credit leaves the unit cost wrong: too high if the purchase was entered below its real price, too low if it was entered above it, and possibly below zero. A credit for more than you have left is refused with 'You can't return more than is on hand.' Correct the stock that is left on Inventory instead. Use Adjust with the reason Correction to take all of it out, then Adjust again to add the same quantity back with a Cost basis of what that stock really cost.
Past batches and sales keep the costs they were given. The corrected cost applies from now on.
Stock went negative
Trackost never stops a batch or a sale because stock is short. The count goes below zero and Trackost tells you:
- A batch that uses more of a material than you have takes that material below zero. Starting the batch shows 'Stock went negative'; Make it now shows 'Completed with warnings'.
- Selling more of a product than you made takes that product below zero. The order shows 'Untracked production', and its line carries a Negative stock badge.
Running short doesn't make anything cost $0.00. The batch used each material at its current weighted-average cost, which is $0.00 only for a material that never had a cost. The sale was costed at the product's current weighted-average cost.
To fix it, bring the count back above zero. For a material, record a purchase of more than the shortfall. For a product, log a batch that makes more than the shortfall. Trackost refuses a purchase or a batch that would leave the count at zero or below. A batch refused this way shows 'A component is missing cost data — check the recipe before producing.', even when the recipe is fine.
The purchase or batch that fills the gap also settles the cost. The units that went below zero were already used or sold at the old weighted-average cost, so the difference between that cost and the new one is charged to the units left over. For example, 5 candles sold when none were in stock, at a cost of $0.00, followed by a batch of 10 at $3.00 each, leaves 5 candles at $6.00 each. When those sell, their COGS is $30.00 for candles that cost $15.00. The total is right across the two sales, but the missing cost lands in the later sale's period. The COGS already recorded on the first sale stays as it was.
If the count doesn't match your shelf, count the shelf and correct the number with Adjust on Inventory. Negative stock troubleshooting covers each warning and each fix.
I logged a batch or sale on the wrong date
Only some records take a date you choose: a purchase, a purchase order's Received date, a vendor credit's Credit date, an order's Order date, and the ship date you pick beside Fulfill & mark shipped. Make it now, starting or completing a batch, and every adjustment are dated the moment you do them.
Nothing can be moved to another day afterwards. A completed batch can't be canceled or re-dated, and an order can't be edited, canceled or deleted once it is recorded.
For a sale with the wrong ship date, record a return of every unit with restock on and the full refund, then record the order again with the right dates and fulfill it on the right day. The return is dated the day you record it, so the report for the wrong period still shows the original sale, and the current period shows the return. The new sale is costed at the weighted-average cost at the moment you fulfill it again, not at the first sale's cost. A restocked return adds the units back to stock without changing that average.
A batch dated the wrong day can't be fixed afterwards, so record batches on the day you make them.
Stock went up after a return on an order I never shipped
Record return is offered on an order even if you never fulfilled it. On an unfulfilled order it reverses $0.00 of COGS, because nothing was costed yet, and with restock on it adds back units that were never taken out.
Fulfill an order before you record a return on it. Record a customer return walks through a return on a fulfilled order. If it already happened, open Inventory and use Adjust on that product to take the extra units back out.
The two cost columns on Products and Pricing differ
Unit cost on Products and Full cost on Pricing are two different numbers by design.
- Unit cost on Products is what the stock you hold cost you: its weighted-average cost, set by your completed batches and by adjustments with a cost basis.
- Full cost on Pricing is what one unit costs to make now, for a product with a recipe: its materials at today's costs, plus labor, plus the recipe's flat overhead. For a product without a recipe, it is the weighted-average cost.
Pricing compares your price with Full cost, because that is what the next one will cost you. About full cost vs unit cost works through both on the sample candle.
The Profit dashboard and the P&L disagree after a no-restock return
When you record a return with restock off, the returned units' cost is written off as a loss. The two reports count that cost differently.
- The Profit dashboard counts it once. Its COGS holds the original sale's cost, and its Write-off column shows the loss for reference.
- The Profit & Loss report adds the write-off on top of the original sale's cost in its Cost of goods sold, so the same units are counted twice.
The Profit dashboard always covers all time. Set the P&L to All time too, and its Cost of goods sold is higher than the Profit dashboard's COGS by exactly its own Write-offs (inside COGS) line. For any period with such a return, take Write-offs (inside COGS) off the P&L's Cost of goods sold. The Cost of goods sold line on Schedule C (COGS) is built the same way as the P&L's, so check it the same way.
Their bottom lines differ even without a return: the Profit dashboard takes off fees, and the P&L leaves fees out and takes off operating expenses instead. Compare the cost lines, not the totals. About the Profit & Loss report explains each of its lines.
Schedule C's Labor line looks too low
On Schedule C (COGS), the Labor line adds one recipe's worth of labor for each batch completed in the year: the recipe's labor minutes at your labor rate, once per batch, whatever the batch's size. A batch of 10 from a recipe that makes 1 books one unit's labor there.
Your batches themselves are costed correctly. Each one adds labor for every unit it makes, and that labor is in your product costs and your COGS.
Before you copy the Labor line to a tax return, check it against Manufacture Summary. For each batch, Unit cost × Quantity − Total cost is that batch's labor, give or take rounding.