Playbook: goods left at zero cost — and every number after it is wrong
The situation
A product went live before anyone entered its cost price. The warehouse shipped it correctly — eight units here, twenty there. Each shipment was recorded in the books at zero cost.
Nothing failed, so nobody noticed. But every one of those movements did three things wrong at once:
- Cost of goods sold came out too low — the units left, their cost didn't.
- Gross margin came out too high — revenue with no cost behind it.
- Inventory value no longer matched the shelf — the books and the warehouse drifted apart.
The screenshots come from the Otiox demo workspace. To follow along, choose Switch to demo in the sidebar — changes there never touch your live data.
Step 1 — See the warnings
Go to Finance → Transaction Ledger.

The summary counts warnings and missing values at the top. In the demo, dozens of events are missing a value — and every one of them is a number in your reports that is wrong.
Step 2 — Open the Missing Value view
Choose Missing Value.

Every event booked without a cost, in one list: stock out, positive adjustments, receipts. Each carries the status Needs cost data.
Step 3 — Open one entry
Open a stock-out of the trending product.

Eight units left the warehouse. Unit cost $0.00, total $0.00. The suggested journal entry — loss against inventory — has no amount. Under Exceptions / Warnings, Otiox says exactly what it looked for: a cost price on the product, purchase or receipt data, or lot cost.
Step 4 — Rebuild its economics
Set the product's cost price (or record the priced receipt), then choose Rebuild Event Economics on the entry.

The entry is recomputed from the real cost: $30 per unit, $240 cost of goods, status Completed. The suggested journal now carries the amounts — $240 expense against $240 inventory. The entry records its cost source, its confidence and when it was recomputed, and the change is written to the ledger's audit log.
Work the Missing Value view down to zero before every close. Each line you leave there is a margin that looks better than it is.
What you have at the end
- Every movement booked without a cost, in one list.
- The reason, and where to fix it.
- Each entry recomputed from the real cost, with a journal entry that matches.
Related
- Use case: Missing Cost — /use-cases/missing-cost
- Use case: Unposted Builds — /use-cases/unposted-builds