Revalue COGS (single, bulk & the COGS report)
A revaluation changes the unit cost recorded on a single FIFO layer — the cost the product was received at — and propagates that new cost down to every sale that has already consumed the layer. Use it to fix one layer that was costed wrong (a keying error, or a cost SKU.io itself got wrong) without disturbing the rest of the product's history. Each revaluation writes one dated row to the Cost History ledger, so your books stay reconcilable.
You don't need to revalue for the everyday cost changes. SKU.io re-costs the layers itself, and records the change in Cost History with its own reason, when:
- a landed cost (freight, duty, handling or another charge) is billed against goods already received (Landed Cost Allocation),
- a supplier's invoice prices the goods differently from the purchase order (Purchase Price Variance),
- someone edits a received purchase order's price, quantity or discount (Purchase Order Cost Edited), or its currency or exchange rate (Currency Revaluation).
See Add landed costs after receipt and Correct a cost on a received purchase order.
This guide covers revaluing one layer, revaluing many at once, the per-product Revaluation Tool that finds outliers, the Cost History ledger, and the drill-down tabs behind View Details.
- Revalue (this guide) — you set a specific layer to a specific cost, on a date, with a reason. It's a deliberate, audited edit.
- Rebuild — SKU.io re-derives every layer's cost from its original source documents. See Rebuild COGS & the SKU COGS Health dashboard.
- Recalculate — a lighter refresh of a single product's layers.
Which one to reach for is explained in Correcting COGS: revalue vs rebuild vs recalculate.
Before you begin
| Requirement | Why it's needed |
|---|---|
| Inventory read/write access | Every revaluation action is gated by the inventory scope. |
| At least one FIFO layer | You revalue a layer, so the product must have received stock. Browse layers in Browse & manage FIFO layers. |
| A reason | A revaluation you record by hand carries one of two reasons: Manual Recost (you decided the cost) or System Error (correcting a defect) (you're repairing a cost SKU.io got wrong). Explain the decision in Notes. |
The per-product report and its median exclude consigned (supplier-owned) layers — that stock isn't your inventory to revalue. Owned layers are all that appear.
Revalue a single FIFO layer
You reach the single-layer editor from a layer's detail page (Inventory → FIFO Layers, open a layer, then the Revalue tab) or by clicking Revalue on a row in the Revaluation Tool below.
- Open the layer's Revalue COGS screen. The left panel, FIFO Layer Details, shows the layer ID, its Source (the receipt, adjustment, transfer, or stock take that created it), warehouse, original and remaining quantity, Current COGS, and Median COGS for the product.
- In Suggested COGS Values, pick the cost you want:
- A document-backed source — for example Purchase Order Value or Assembly Line Value — sets the cost from the original document. You can't type over it.
- Manual COGS Value lets you enter any figure in New COGS Value. Use it when you've decided the cost yourself.
- Product Median COGS sets the layer to the product's median layer cost.
- For layers created by an adjustment or stock take, a Best Available COGS option offers the top of the cost hierarchy, with the runner-up sources listed beneath it.
- Review the Impact Summary: Current Valuation, New Valuation, and the Adjustment Amount (green when the value goes up, red when it goes down).
- Set the Revaluation Reason: Manual Recost (the default) or System Error (correcting a defect). If you need to, set an Effective date, and add Notes that explain the change.
- Click Apply Revaluation.
What you'll see: the layer's cost updates, the new cost flows through to any sales that already consumed the layer, and a row is written to the Cost History ledger. The New COGS Value and Revaluation Reason fields enable or disable themselves based on the source you chose — a document-backed source fixes both, while Manual unlocks them.
Each positive inventory event permits only certain COGS sources. Manual is always allowed.
| Layer created by | Allowed COGS sources |
|---|---|
| Purchase order receipt | Purchase Order Value, Manual |
| Warehouse transfer receipt | Transfer shipment weighted-average cost, Manual |
| Assembly | Assembly Line Value, Manual |
| Return receipt | Any source |
| Adjustment | Any source (best-available hierarchy) |
| Stock take | Any source (best-available hierarchy) |
Choosing a source the layer doesn't allow is rejected with a COGS sourcing error naming the layer. SKU.io only offers valid sources, so you rarely see this.
- No change is a no-op. If the cost you apply is the cost the layer already has, nothing is recorded and no ledger row is written — the action still reports success.
- Locked periods are protected. If your effective date falls in a locked accounting period, the revaluation lands on the first open day after the lock date instead — locked books are never rewritten. See Correcting COGS.
Bulk revalue many layers
When you've loaded a product's layers in the Revaluation Tool, select several with their checkboxes to open the Bulk COGS Revaluation bar.
- In the layers table, tick the layers you want to revalue. The bulk bar shows the Selected Layers count and the running Total Impact ($).
- Each selected layer gets its own cogs source and new unit cost (defaulting to its suggested value); the Will Change count tells you how many will actually move.
- Set a shared Revaluation Reason (Manual Recost or System Error (correcting a defect)), Notes, and Effective date for the whole batch.
- Apply the batch.
What you'll see: each layer is revalued exactly as if you'd done it one at a time — the same source validation, no-op skipping, and locked-period handling apply per layer, and one ledger row is written per changed layer. The shared reason, notes, and effective date carry to every item unless an individual layer overrides the effective date. If any layer fails a check, the batch stops and names the problem.
Find and revalue outliers (the Revaluation Tool)
The per-product Revaluation Tool — the Revaluation tab on a product's COGS page (Products → open a product → COGS → Revaluation) — analyses one product's layers so you can spot and fix costs that drift from the median.
- Optionally filter by Warehouse and a Date Range.
- Expand Outlier Detection Settings and set the COGS Outlier Threshold slider — any layer whose cost differs from the median by more than this percentage (above or below) is flagged. The slider runs from ±5% to ±50% in 5-point steps.
- Click Load COGS Layers.
What you'll see:
- A summary of On Hand, Total Value, Median COGS, active vs total layer counts, and the outlier count and percentage.
- A COGS Distribution histogram of how many layers sit at each cost, with the median and threshold band marked.
- A layers table where outliers are flagged. Each row shows its accounting impact — the first date it touched your books, whether that period is locked, and whether the layer is fully consumed.
From here, click Revalue on a single row to open the single-layer editor, or select rows to bulk revalue.
If the product (in the chosen warehouse and date range) has no layers, the tool shows No COGS layers found rather than an empty grid. Widen the filters or confirm the product has received stock.
Product COGS detail tabs (View Details)
The View Details link on the SKU COGS Health table opens a product's COGS page at Products → (product) → COGS, with five tabs:
| Tab | What it shows |
|---|---|
| Dashboard | Headline cost metrics for the product — cost statistics, variation, on-hand value, and active layer count. |
| Value Sources | The cost basis behind each layer — which document or source set the cost. |
| Layer Overview | The product's FIFO layers grouped by warehouse, with received/available quantities and values. |
| Revaluation | The Revaluation Tool described above. |
| Inventory Timeline | The layers as a time-ordered feed, each expandable to its per-layer consumptions (the sales and movements that drew the layer down). |
For a product held in Amazon FBA, warehouse and Amazon costs are tracked on separate ledgers — Amazon stock appears as a clearly labelled secondary card rather than blended into the warehouse metrics.
Browse the revaluation ledger
Every dated cost change lands in the Cost History ledger at Inventory → Cost History: the ones you record by hand, and the ones SKU.io records itself for landed costs, invoice price variances and purchase order edits. It's the audit trail that backs GL reconciliation.
Each row records:
| Column | Meaning |
|---|---|
| ID | The cost change's number. |
| Effective | The date the change takes effect (in an open period). |
| Applies | Retroactive when the change was booked back onto the stock's own receipt date, so that month's valuation and COGS moved; Forward when it was booked on the date of the document that caused it, leaving earlier months as they were. Older changes show no value. |
| Layer Date | When the stock this change re-costs arrived. |
| FIFO Layer | The layer that was revalued. Opens its detail page. |
| Source | The document that created the layer, such as a purchase order, receipt, assembly or stock take. |
| Product / Warehouse | The product and warehouse the layer belongs to. |
| Old Cost → New Cost | The unit cost before and after. |
| Δ | The per-unit change, coloured green (up) or red (down). |
| Reason | Why the cost changed (see the reasons below). |
| Cost Source | Where the new unit cost came from: Manual, Purchase Order Line, Assembly Line, Oldest Open Layer, Newest Closed Layer, Default Cost, or None. |
| Ledger | The journal entries the change posted. None means it moved no ledger balance. |
| Sync | Whether those entries reached your accounting provider. Cost changes sync as a monthly batch. |
| Notes | Free-text notes recorded with the change. |
| Recorded By | The user who made the change, when a person made it. |
| Posted / Recorded | When the row was posted to the books and when it was created. |
The Reason says what caused the change:
| Reason | Recorded when |
|---|---|
| Landed Cost Allocation | Freight, duty, handling or another charge billed against goods already received is spread across their layers. |
| Purchase Price Variance | A supplier's invoice prices the goods differently from the purchase order. |
| Purchase Order Cost Edited | A received purchase order's own price, quantity or discount is edited. |
| Currency Revaluation | A purchase order's currency or exchange rate changes. |
| Cost Rolled Down From Components | Stock this layer was built or transferred from changed cost, and the change rolled down to it. |
| Manual Recost | Someone set the cost by hand: a revaluation, or a stock take that re-costed the stock. |
| COGS Rebuild | Rebuild COGS re-derived the cost from the best available source. |
| System Recost | SKU.io re-derived the cost from source documents that didn't change. |
| System Error | Someone corrected a cost a defect in SKU.io put on the layer. |
| Market Value Adjustment (Historical), Other (Historical) | Older changes only. Nothing records these reasons any more: what used to be a market value adjustment is now a Manual Recost. |
Only Manual Recost and System Error can be chosen by a person. Every other reason is set by the part of SKU.io that made the change, so a cost typed by hand can't be labelled as, say, a landed cost.
Search by ID, FIFO layer, SKU, product name, warehouse, or notes. Filter by Reason, Cost Source, Warehouse, Ledger Entries, Applies and Cost change (whether the row is linked to a cost change). Reverted changes, and the inverse rows that cancelled them, are hidden by default: turn on Show reverted to list them. The ledger is chained — each row's old cost equals the previous row's new cost for that layer — which is what makes the point-in-time valuation and per-period reconciliation reliable.
To record a revaluation from here, click Record Cost Change, pick the Product and the FIFO Layer, enter the New Unit Cost, choose the Reason and add Notes.
The variation-by-product report
A companion aggregate report lists products whose layer costs are spread too widely — where the gap between a product's cheapest and most-expensive layer exceeds a threshold (default 5%). For each product it returns the variation percentage, the min, max, average, and median layer cost, and the active-vs-total layer counts, capped at the top 500 products by variation. Only products with more than one layer qualify, and archived layers are excluded.
You see the same per-product variation % on the SKU COGS Health table, where the Min Variation % / Max Variation % filters isolate the products worth investigating. A high variation is the cue to open the product's Revaluation Tool and reconcile its outliers.
Next steps
- Rebuild COGS & the SKU COGS Health dashboard — re-derive costs from source documents across many products.
- Correcting COGS: revalue vs rebuild vs recalculate — choose the right tool and understand locked periods.
- Browse & manage FIFO layers — find the layer you need to revalue.
- FIFO layers & how COGS is realized — the model behind layers and cost.
- FIFO layer fields, statuses & enums — every field and enum, including COGS sources and revaluation reasons.
- View & filter the inventory movement ledger — the movement audit trail that sits alongside revaluations.