Batch sellers have always known which stock expired — the ledger names the lot, the date, the quantity. What it could not tell you until now is what that stock cost. TraceLot now lets every batch receipt carry a unit cost plus landed cost lines, and turns the same ledger that runs your traceability into your costing spine: weighted average cost per SKU, an inventory valuation report as of any date, and a COGS report that shows expired-stock losses separately from cost of goods sold.
Same ledger, now priced
TraceLot already records every receipt, every order deduction, every write-off, and every transfer per lot — that is what makes it audit-ready. Costing does not add a second system to reconcile against the first. It prices the events the ledger already has: the receipt that brought stock in carries its cost, and every outflow that draws from that stock carries a share of it. One set of records answers both “where did lot 2412 go?” and “what did it cost us?”
What a costed receipt looks like
- Unit cost — what you paid the supplier per unit for that specific receipt.
- Landed cost lines — freight, duty, and any other line you need, each with its own description, so the full cost of getting stock to your shelf is on the record.
- Priced per receipt — top up an existing batch and the new receipt keeps its own costs. Two deliveries of the same lot at different prices stay two priced receipts, not one averaged guess.
- One account currency — a single currency setting keeps every cost line consistent, so totals add up without silent conversion surprises.
Adding costs takes seconds: enter them when you create a batch, or open Edit Financials on any existing batch to price receipts you recorded before — including historical ones, so last quarter’s stock can be valued too.
Weighted average cost, worked through
When a SKU has receipts at different prices, TraceLot derives a weighted average cost (WAC) across them. Say you receive the same product twice:
| Receipt | Units | Unit cost | Freight + duty | Total | Landed per unit |
|---|---|---|---|---|---|
| Initial receipt | 100 | $4.20 | $60 + $20 | $500.00 | $5.00 |
| Top-up (same batch) | 50 | $5.40 | $30 + $0 | $300.00 | $6.00 |
| Blended | 150 | — | — | $800.00 | WAC $5.33 |
Every unit that leaves — sold, expired, transferred — is costed at that blended $5.33, and the reports show the unit costs alongside the totals so the figures reconcile on sight instead of asking you to trust a black box.
See your batches priced in a live demo
Bring one real product and its last two purchase invoices — we’ll show you its weighted average cost, its month-end valuation, and what your expired stock actually cost.
Book a demoTwo reports your accountant will actually use
The inventory valuation report values on-hand stock as of any date you choose — run it for the last day of the month and you have your closing stock figure, built from receipts minus outflows to that date, priced at WAC. The COGS report covers a period and splits outflows by type: sales, write-offs, and transfers each get their own figures. That split is the point — the cost of stock that expired on the shelf appears as its own line instead of hiding inside cost of goods sold, so the waste problem is visible on the P&L rather than quietly inflating your product costs. The companion guide on inventory valuation when stock expires walks through the accounting side.
Details that respect month-end
- Exports use readable filenames — warehouse name and period — so nobody archaeologizes a downloads folder full of export(7).csv.
- Every report includes SKU columns and human-readable expiry dates, ready to hand over without a lookup table.
- Rows with negative quantities are flagged, not silently clamped — if your data has a problem, the report says so instead of hiding it.
- Receipts without costs show blank totals rather than fake zeros, so an unpriced batch reads as “not yet costed,” never as “free stock.”
BLANK BEATS WRONG
A valuation that quietly zeroes uncosted stock or clamps a negative row looks tidy and is wrong. TraceLot surfaces both cases explicitly — the report your accountant signs off on should have no silent edits in it.
Getting started
- Set your account currency once in settings.
- Add costs on your next batch receipt — unit cost plus any freight, duty, or other landed lines.
- Backfill key existing batches with Edit Financials so current stock values correctly.
- At month-end, run the valuation report as of the closing date and the COGS report for the period — whether your orders flow in from Veeqo or Shopify, the ledger has already done the work.
Can I add costs to batches I received before this feature shipped?
Yes. Open Edit Financials on any existing batch and add a unit cost and landed cost lines to its receipts. Once priced, those receipts flow into weighted average cost, valuation, and COGS like any new receipt.
What happens if some of my receipts have no costs yet?
Reports show blank totals for uncosted receipts instead of fake zeros, so unpriced stock is clearly marked as not yet costed rather than being valued at nothing.
Which costing method does TraceLot use?
Weighted average cost. Each receipt keeps its own unit cost and landed cost lines, and TraceLot blends them across receipts — total cost divided by total units — so every outflow is priced at the current weighted average.
Does the COGS report treat expired stock as cost of goods sold?
No — that separation is the point. The COGS report splits outflows by type: sales, write-offs, and transfers each appear separately, so the cost of expired or written-off stock is visible on its own line instead of inflating your cost of goods sold.
Never ship expired stock again.
TraceLot adds batch tracking, FEFO allocation, and audit-ready records to Veeqo and Shopify. First month free.