Blog · Finance metrics and formulas · Supply chain
Inventory write off analysis explains posted stock losses by product, location, cause, and accounting period. Use the adjustment register and ledger to separate reversals, reserve use, and current expense before assigning corrective actions.
Inventory write off analysis groups approved, posted stock losses by SKU, site, cause, and period, then ties those groups to the inventory ledger. Keep reversals and reserve use visible: the amount removed from inventory can differ from the expense recognized this month. Start with accounting entries, rather than treating every old or damaged item as a completed write-off.
Use the inventory adjustment register for the reporting period, supported by the related journal lines. Required fields are adjustment ID, original adjustment ID for a reversal, posting date, fiscal period, SKU, site, reason code, approval status, posting status, inventory carrying amount removed, expense debit, and allowance debit.
The write-off definition explains the basic accounting event. This report answers a narrower question: which posted adjustments reduced inventory, where did they happen, and what caused them? Keep an approval queue outside the posted total until its entries reach the ledger.
Do not substitute an aging report for these records. Inventory aging by site identifies stock that needs attention, while excess and obsolete inventory analysis evaluates supported future use. Either review can lead to an accounting decision, but neither proves an adjustment was posted.
Document whether your amounts are gross inventory costs or carrying amounts after prior valuation adjustments. Use the same basis throughout. Finance owns that choice and the approval of entries; the analyst owns the completeness and reconciliation of this report.
A US distributor reviews October 2026. These are its approved, posted inventory adjustment lines. Positive amounts represent inventory removed; the negative amount reverses part of an earlier adjustment. Each amount is a signed inventory credit from the journal, rather than a new valuation estimate.
| ID | Posting date | SKU | Site | Cause | Inventory removed (USD) | Allowance used (USD) | Direct expense (USD) |
|---|---|---|---|---|---|---|---|
| W101 | October 2, 2026 | V1 | Ohio | Damage | 480 | 0 | 480 |
| W102 | October 5, 2026 | S2 | Texas | Obsolete | 600 | 600 | 0 |
| W103 | October 9, 2026 | R3 | Ohio | Expiration | 300 | 0 | 300 |
| W104 | October 12, 2026 | V1 | Texas | Damage | 200 | 0 | 200 |
| W105 | October 18, 2026 | S2 | Ohio | Obsolete | 150 | 0 | 150 |
| R101, reverses W101 | October 20, 2026 | V1 | Ohio | Damage | -80 | 0 | -80 |
| Total | 1,650 | 600 | 1,050 |
Place these columns in A:H, with the transactions in rows 2:7. Verify the entry-level relationship in I2 and fill down:
=F2-G2-H2
Every result should be zero for this simplified set of entries. An actual journal with other offset accounts needs an expanded check, rather than forcing unexplained amounts into expense.
List the approved causes in K2:K4. Calculate each signed inventory total in L2 and fill down:
=SUMIFS($F$2:$F$7,$E$2:$E$7,K2)
Microsoft documents SUMIFS as adding cells that meet multiple criteria. Add site and posting-period criteria in the full export, using the same signed amounts. Covirage is not affiliated with Microsoft.
| Cause | Calculation from the adjustment table (USD) | Net inventory removed (USD) |
|---|---|---|
| Damage | 480 + 200 - 80 | 600 |
| Obsolete | 600 + 150 | 750 |
| Expiration | 300 | 300 |
| Total | 600 + 750 + 300 | 1,650 |
Obsolete stock accounts for 750 / 1,650 = 45.5% of the net amount, rounded to one decimal place. That identifies the largest cause, but its direct expense is only $150 because the other $600 uses an existing allowance. An expense-only report would miss the size of the physical disposition.
Keep gross and net views together. Gross positive adjustments are 480 + 600 + 300 + 200 + 150 = $1,730. The linked reversal is $80, leaving $1,650 net. In Excel:
=SUMIF(F2:F7,">0",F2:F7)
=-SUMIF(F2:F7,"<0",F2:F7)
=SUM(F2:F7)
Use a reconciliation sheet with the exact ledger accounts and posting periods covered. This example has a net inventory credit of $1,650, an allowance debit of $600, and a direct expense debit of $1,050. The check is 1,650 - 600 - 1,050 = zero.
An independent site roll-up must also agree. Ohio contributes 480 + 300 + 150 - 80 = $850; Texas contributes 600 + 200 = $800. Their $1,650 total must equal the cause table and the inventory adjustment account activity.
Do not call that total additional cost of goods sold without checking the account mapping. Ledger presentation and reserve accounting determine which expense lines are affected. For US tax inventory, the IRS's Publication 538 separately discusses goods that cannot sell at normal prices or be used normally, including damage and similar causes. Its valuation rules do not make an operational reason code an approved book entry.
Give warehouse management the damage rows and their receiving or handling evidence. Give planning and product management the obsolete rows, with the purchase decision and supported demand history. Give quality or operations the expiration rows and the shelf-life controls in force when the goods arrived.
Retain the SKU and adjustment IDs behind every group. A monthly total can conceal a recurring problem that moves between locations or reason codes. Compare consistent cause definitions across periods before reading an increase as a change in operating performance.
Bring an inventory adjustment export and its ledger support to Covirage; it maps the columns, and its tools compute cause, SKU, site, and period totals and check their reconciliation. The external AI model explains the results with every figure traced to its rows, while finance retains accounting approval. Create a free Covirage account and bring a sample of your own export.
See Covirage for supply chain teams for the supporting business context.
No. A reserve or allowance reflects an estimated loss before final disposition. A write-off removes the affected carrying amount when the approved entry is posted. If an allowance already covers the stock, the write-off may use that allowance rather than create another expense.
Use the ledger posting period for the financial report and retain the incident and approval dates as separate fields. An incident discovered earlier can post later, so using only the incident date can prevent the report from reconciling to the ledger.
Show gross write-offs and linked reversals separately, then calculate the net amount. Identify proceeds from selling scrap separately under finance's accounting policy. A cash recovery and a reversal of the original inventory adjustment are different events and should not be combined automatically.