Skip to main content

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 is one of three ways to correct cost
  • 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​

RequirementWhy it's needed
Inventory read/write accessEvery revaluation action is gated by the inventory scope.
At least one FIFO layerYou revalue a layer, so the product must have received stock. Browse layers in Browse & manage FIFO layers.
A reasonA 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.
Consigned stock is out of scope

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.

  1. 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.
  2. 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.
  3. Review the Impact Summary: Current Valuation, New Valuation, and the Adjustment Amount (green when the value goes up, red when it goes down).
  4. 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.
  5. 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.

Which sources a layer allows depends on how it was created

Each positive inventory event permits only certain COGS sources. Manual is always allowed.

Layer created byAllowed COGS sources
Purchase order receiptPurchase Order Value, Manual
Warehouse transfer receiptTransfer shipment weighted-average cost, Manual
AssemblyAssembly Line Value, Manual
Return receiptAny source
AdjustmentAny source (best-available hierarchy)
Stock takeAny 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.

Two edge cases to expect
  • 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.

  1. In the layers table, tick the layers you want to revalue. The bulk bar shows the Selected Layers count and the running Total Impact ($).
  2. 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.
  3. Set a shared Revaluation Reason (Manual Recost or System Error (correcting a defect)), Notes, and Effective date for the whole batch.
  4. 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.

  1. Optionally filter by Warehouse and a Date Range.
  2. 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.
  3. 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.

An empty result is expected sometimes

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:

TabWhat it shows
DashboardHeadline cost metrics for the product — cost statistics, variation, on-hand value, and active layer count.
Value SourcesThe cost basis behind each layer — which document or source set the cost.
Layer OverviewThe product's FIFO layers grouped by warehouse, with received/available quantities and values.
RevaluationThe Revaluation Tool described above.
Inventory TimelineThe 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:

ColumnMeaning
IDThe cost change's number.
EffectiveThe date the change takes effect (in an open period).
AppliesRetroactive 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 DateWhen the stock this change re-costs arrived.
FIFO LayerThe layer that was revalued. Opens its detail page.
SourceThe document that created the layer, such as a purchase order, receipt, assembly or stock take.
Product / WarehouseThe product and warehouse the layer belongs to.
Old Cost → New CostThe unit cost before and after.
ΔThe per-unit change, coloured green (up) or red (down).
ReasonWhy the cost changed (see the reasons below).
Cost SourceWhere the new unit cost came from: Manual, Purchase Order Line, Assembly Line, Oldest Open Layer, Newest Closed Layer, Default Cost, or None.
LedgerThe journal entries the change posted. None means it moved no ledger balance.
SyncWhether those entries reached your accounting provider. Cost changes sync as a monthly batch.
NotesFree-text notes recorded with the change.
Recorded ByThe user who made the change, when a person made it.
Posted / RecordedWhen the row was posted to the books and when it was created.

The Reason says what caused the change:

ReasonRecorded when
Landed Cost AllocationFreight, duty, handling or another charge billed against goods already received is spread across their layers.
Purchase Price VarianceA supplier's invoice prices the goods differently from the purchase order.
Purchase Order Cost EditedA received purchase order's own price, quantity or discount is edited.
Currency RevaluationA purchase order's currency or exchange rate changes.
Cost Rolled Down From ComponentsStock this layer was built or transferred from changed cost, and the change rolled down to it.
Manual RecostSomeone set the cost by hand: a revaluation, or a stock take that re-costed the stock.
COGS RebuildRebuild COGS re-derived the cost from the best available source.
System RecostSKU.io re-derived the cost from source documents that didn't change.
System ErrorSomeone 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​

Last verified: