Inventory & Finance15 September 2026·15 min read

Inventory Journal Entries: From Receipt to COGS and Write-Offs

Inventory journal entries record how stock enters, moves through and leaves the business: receipt, invoice, landed cost, issue, adjustment and write-off. This guide walks one purchase from goods receipt to cost of goods sold and shows, at each step, what is debited, what is credited, which document is the evidence and how FIFO or Moving Average Cost sets the amount.

See The ProcessOne purchase, six postings: from goods receipt to COGS
Step 1 of 7 · Goods receipt, 5 Sept
Journal entry
InventoryDr €1,000
GRNICr €1,000
Balances after posting
Inventory
€1,000
100 units
GRNI
€1,000
Accounts payable
€0
Cost of goods sold
€0
The receipt values the stock and accrues the unbilled liability
Click a step, or use Previous and Next, to move through the seven dates of the running example. Balances are cumulative, so each step shows everything posted before it. They are shown under FIFO, with the Moving Average Cost figure wherever the method changes the amount. At month-end no new entry is needed: the €1,200 in GRNI is the second receipt waiting for its invoice.

Inventory journal entries at a glance

The table shows a document-driven perpetual inventory process. The account names are types, not GL numbers: the chart of accounts, the accounting framework and the ERP configuration decide the final names and presentation.

EventDebitCreditSource documentPosted by
Purchase order raisedPurchase orderNobody (commitment accounting is the exception)
Goods receivedInventoryGRNI (goods received not invoiced)Goods receiptERP, from the receipt
Freight / qualifying landed costInventoryAccrued freight or Accounts payableFreight invoice, landed-cost allocationERP, from the allocation
Supplier invoice matchedGRNIAccounts payableSupplier invoice + three-way matchERP, from the invoice
Invoice price differs from receiptGRNI + Inventory (or Purchase price variance)Accounts payableSupplier invoiceERP, per variance policy
Goods issued / soldCost of goods soldInventorySales delivery or issue noteERP, from the issue
Count shortageInventory shrinkage (expense)InventoryCount sheet + approved adjustmentWarehouse counts, finance approves
Count surplusInventorySurplus or variance offset per policyCount sheet + approved adjustmentWarehouse counts, finance approves
Write-down to net realizable valueInventory write-down expense / lossInventory (or allowance for write-down)Valuation reviewFinance, with documented basis and approval
Write-off of unusable stockInventory write-off expenseInventoryScrapping documentWarehouse scraps, finance approves
Return to supplier (not yet invoiced)GRNIInventoryReturn deliveryERP, from the return
Return to supplier (already invoiced)Accounts payable or return clearingInventoryReturn delivery + credit noteERP, from the credit note
Supplier paidAccounts payableBankPayment runAP, no inventory effect

Two things to notice before the detail. A supplier payment settles accounts payable and does not touch inventory. Every routine stock posting keeps quantity, valuation and source evidence together, so a standalone journal posted merely to force agreement hides the underlying error.

The running example

One item, one month, two purchases. Prices are chosen so that the method effect is visible.

DateEventQuantityUnit priceValue
3 SeptPurchase order to supplier100 units€10.00€1,000 (commitment)
5 SeptGoods receipt against the order100 units€10.00€1,000
6 SeptFreight invoice for that delivery€50
12 SeptSecond receipt, price increased100 units€12.00€1,200
15 SeptSupplier invoice for the first receipt100 units€10.00€1,000
20 SeptSales delivery to a customer150 unitscost per method
26 SeptCycle count finds 48 units instead of 50−2 unitscost per method
30 SeptMonth-end: second receipt still not invoiced€1,200 open in GRNI

After the freight is capitalized the first receipt costs €10.50 per unit (€1,050 for 100 units). The second receipt costs €12.00 per unit. Everything that follows uses those two numbers.

1. Purchase order: no journal entry

A purchase order authorizes a purchase. It creates neither an asset nor a liability, so nothing is posted. Commitment accounting, where it is used, is the exception, and this example assumes none. The order still matters to accounting later: it is the price reference for the three-way match and the reason a goods receipt can be valued at all. An open order is not GRNI. The distinction is explained in the GRNI guide.

2. Goods receipt: Inventory / GRNI

On 5 September the warehouse receives 100 units. The company now controls inventory it has not yet been billed for. A valued goods receipt records both facts at once:

Goods receipt, 5 Sept
InventoryDebit €1,000
GRNI (goods received not invoiced)Credit €1,000

The debit gives the stock a value at the purchase-order price. The credit is an accrual: the obligation exists because the goods arrived, even though the supplier invoice has not. This is the entry that keeps warehouse quantity and general-ledger value in step from the first day. The mechanics of the receipt itself are covered in goods receipt accounting.

GRNI is the name used in this guide. Other charts of accounts call the same account uninvoiced receipts, accrued purchases or receipt accrual. The treatment is the same.

The unit cost after this entry is €10.00, until the freight arrives.

3. Landed cost: qualifying acquisition costs

On 6 September the forwarder invoices €50 for the delivery. Costs of bringing inventory to its present location and condition are part of its cost, provided they qualify under the accounting framework and the company’s policy. Assume this freight qualifies: the €50 is allocated to the 100 units.

Freight allocated to receipt, 6 Sept
InventoryDebit €50
Accounts payable (forwarder)Credit €50

Unit cost becomes €10.50. If the freight invoice has not arrived but the cost is known, the credit goes to an accrued freight account instead and is cleared when the invoice is posted. Allocation rules (by value, by weight, by quantity) are the subject of the landed cost guide. Timing matters: the allocation should be posted before the units are issued, so that inventory and cost of goods sold carry the right value from the start. A qualifying cost that arrives after issue needs a revaluation, a COGS adjustment or an accrual, whichever the policy prescribes.

4. Supplier invoice: clearing GRNI

On 15 September the supplier invoices the first delivery: 100 units at €10.00, matching the order and the receipt. A matched invoice does not touch inventory. It moves the obligation from the accrual account to the supplier’s account:

Supplier invoice, matched, 15 Sept
GRNIDebit €1,000
Accounts payable (supplier)Credit €1,000

The €1,000 credit created at receipt is now cleared and the liability is a normal payable with a due date. Three-way matching of order, receipt and invoice is the control that allows this entry to be posted automatically.

5. Invoice price differences (separate illustration)

Suppose the supplier invoices €10.20 instead of €10.00: €1,020 for goods received at €1,000. The receipt accrual is cleared at its own value, and the €20 difference needs a home.

This price-variance example is illustrative and is not carried into the running example. The main example continues with €10.50 and €12.00.

Supplier invoice with price difference
Illustration only, not part of the running example
GRNIDebit €1,000
Inventory (units still on hand)Debit €20
Accounts payable (supplier)Credit €1,020

If the units are still in stock and policy permits capitalization, the €20 increases inventory. If they have already been issued, the difference goes to cost of goods sold or to a purchase price variance account. Which applies is a policy decision the ERP is configured to follow. What must not happen is a manual adjustment of the inventory balance to “make it fit”.

For a separate standard-cost example with receipt PPV and a later invoice difference, see purchase price variance journal entries.

6. Goods issue and COGS: FIFO vs Moving Average Cost

By 20 September there are 200 units on hand: 100 at €10.50 and 100 at €12.00. A customer delivery takes 150. The quantity side is simple. The value side depends on the costing method, and the method is the only thing that changes in the entry.

FIFO issues the oldest layer first:

FIFO issue valuation
100 units × €10.50 = €1,050
50 units × €12.00 = €600
Cost of goods sold €1,650
Remaining: 50 units × €12.00 = €600

Moving Average Cost uses the current average cost of everything on hand:

Moving Average Cost issue valuation
(€1,050 + €1,200) ÷ 200 units = €11.25 per unit
150 units × €11.25 = €1,687.50
Cost of goods sold €1,687.50
Remaining: 50 units × €11.25 = €562.50

The journal entry has the same shape under both methods. Only the amount changes:

Sales delivery, 20 Sept
FIFO €1,650.00 · Moving Average Cost €1,687.50
Cost of goods soldDebit €1,650.00 (FIFO)€1,687.50 (Moving Average Cost)
InventoryCredit €1,650.00 (FIFO)€1,687.50 (Moving Average Cost)

Revenue is recorded separately (Accounts receivable / Revenue) through the customer invoice. Keeping the two apart is what allows a delivery to be posted at cost on the day it leaves the warehouse even if the invoice is issued later.

The €37.50 difference between the methods is not an error in either. It is the point of choosing a method. How each one behaves over many receipts is covered in the FIFO guide, the Moving Average Cost guide and the side-by-side inventory valuation methods comparison. For production issues the same entry debits work in progress instead of cost of goods sold, as shown in production orders and the general ledger.

7. Inventory adjustment: count difference

On 26 September a cycle count finds 48 units where the system shows 50. After the discrepancy is investigated and no unposted document explains it, an adjustment is approved for −2 units.

Inventory adjustment, shortage, 26 Sept
2 × €12.00 = €24.00 (FIFO) · 2 × €11.25 = €22.50 (Moving Average Cost)
Inventory shrinkage (expense)Debit €24.00 (FIFO)€22.50 (Moving Average Cost)
InventoryCredit €24.00 (FIFO)€22.50 (Moving Average Cost)

The offset account follows the reason: shrinkage, damage, obsolescence or another approved variance account. This example uses inventory shrinkage. For a surplus, debit Inventory. The credit follows the cause and is not automatically the same account used for a shortage.

Three rules keep this entry honest:

  • Value follows the method. The adjustment is valued at the cost the units carry, the FIFO layer they would have come from or the current average, not at a typed-in price.
  • Reason and approval travel with it. A reason code and an approver are part of the posting, as described in the inventory adjustment guide.
  • A count difference is not automatically an adjustment. If the investigation finds an unposted receipt or delivery, the fix is to post that document. The inventory reconciliation guide covers the investigation, and cycle counting covers how the count itself is organized.

8. Write-down vs write-off

Two different events are often filed under one name. After the count, 48 units remain at €12.00 (FIFO) or €11.25 (Moving Average Cost). The two scenarios below are alternatives, not sequential events.

Scenario A: write-down

The 48 units remain saleable, but net realizable value falls to €9.00 per unit. Under a lower-of-cost-and-net-realizable-value policy:

Inventory write-down, 30 Sept
48 × (€12.00 − €9.00) = €144.00 (FIFO) · 48 × (€11.25 − €9.00) = €108.00 (Moving Average Cost)
Inventory write-down expense / lossDebit €144.00 (FIFO)€108.00 (Moving Average Cost)
InventoryCredit €144.00 (FIFO)€108.00 (Moving Average Cost)

Under both methods the 48 units are now carried at €432. Some companies credit an allowance account instead of Inventory so that cost and write-down stay visible separately. The balance-sheet result is the same. Whether the expense sits inside or outside COGS in the income statement follows the accounting framework and company policy. A write-down is a valuation judgement, so it needs a documented basis and an approval, whether it is posted through an ERP valuation process or a finance journal.

Scenario B: write-off

Instead, assume 10 of the 48 units are found damaged beyond use before any write-down is posted. They leave stock physically at their carrying cost of €12.00 under FIFO or €11.25 under Moving Average Cost. The €9.00 value from Scenario A does not apply here:

Inventory write-off, 30 Sept
10 × €12.00 = €120.00 (FIFO) · 10 × €11.25 = €112.50 (Moving Average Cost)
Inventory write-off expenseDebit €120.00 (FIFO)€112.50 (Moving Average Cost)
InventoryCredit €120.00 (FIFO)€112.50 (Moving Average Cost)

The write-off reduces quantity and value. The write-down reduces value only. The difference, the tax treatment and the controls around scrapping are the subject of the inventory write-off guide.

9. Return to supplier (separate illustration)

In a separate illustration, five units of the second delivery are rejected on inspection and returned. This return is not carried into the running example or its €1,200 month-end GRNI balance. The entry depends on whether the supplier invoice has been posted. Both entries value the return at the €12.00 receipt cost.

Before the invoice, the return reverses part of the receipt accrual:

Return to supplier, not yet invoiced
5 units × €12.00 = €60
GRNIDebit €60
InventoryCredit €60

After the invoice, the return and the supplier’s credit note reduce the payable. Some systems route this through a return clearing account first, with the same end result:

Return to supplier, already invoiced
Accounts payable (supplier)Debit €60
InventoryCredit €60

Return valuation follows the costing method and the ERP’s return logic: some systems reverse the original receipt valuation, others apply the current average. The €60 entries show one treatment.

10. Month-end: what stays in GRNI

On 30 September the second receipt (€1,200) has still not been invoiced. No additional accrual is needed, because the receipt already recorded it: the €1,200 credit is sitting in GRNI and represents the liability for goods received but not billed. The month-end task is to review that balance, not to create it:

  • every open GRNI line should match an open, uninvoiced receipt line;
  • lines older than the supplier’s normal invoicing cycle need a query to the supplier or a check for an invoice posted without a match;
  • clearing follows matching, correction or an authorized exception process, not a journal posted to tidy the balance.

Accounting designs without a GRNI account reach the same liability through a period-end accrual that is reversed in the next period. The absence of the account name does not change what has to be recorded. The GRNI guide covers ageing and reconciliation of the balance.

Perpetual vs periodic: where the entries differ

Everything above assumes a perpetual system: inventory and cost of goods sold are updated by each document. A periodic system does not update them for each movement. Purchases are collected in a Purchases account and cost of goods sold is calculated at period end from the closing count. Conceptually:

Periodic system, month-end
Cost of goods soldDebit opening inventory + purchases − closing count
Inventory (closing)Debit value of the closing count
Inventory (opening)Credit opening balance
PurchasesCredit total purchases for the month

Under a periodic approach a shortage is absorbed into calculated cost of goods sold unless it is separately identified, which is why count differences are harder to investigate. The comparison, and when each system is appropriate, is in perpetual vs periodic inventory.

What a controlled ERP should do

A mature ERP connects the operational evidence to the accounting consequence:

Control chain
Source documentBusiness transactionInventory movementCost calculationJournal entryGeneral ledgerAudit trail

This is a vendor-neutral control model, not a claim that a particular product implements every step. The purchase-to-pay process guide provides the wider context for receipts, invoice matching and supplier settlement. The entries in this guide fall into three categories.

1. Document-generated postings

Goods receipt, landed-cost allocation, matched supplier invoice, delivery or issue, and supplier return generate their postings from the business document. Quantity, valuation and account determination travel together. If a posting is wrong, the source transaction is wrong: investigate it and correct or reverse the document.

2. Approval-controlled inventory postings

Count adjustments and write-offs connect the count sheet or scrapping evidence to the reason, the approval and the resulting posting. The warehouse supplies the evidence and authorized reviewers approve the correction. Those references stay available through the audit trail.

3. Exceptional finance journals

Valuation adjustments and policy-defined accruals may require finance review or an authorized journal. A documented basis and an approval explain the exception.

A well-controlled ERP restricts direct manual journals to inventory control accounts. Routine quantity and value corrections go through the underlying inventory document, so that quantity, valuation, GL, source document and audit trail stay synchronized. Exceptional finance journals can exist, with authorization, and are reconciled to the inventory records.

A journal posted merely to force agreement hides a missing, duplicated or mis-valued document. Investigating that cause is the focus of why warehouse and accounting never agree.

Quick control check
What is FIFO COGS for the 150-unit issue in the running example?
Scenario
100 units at €10.50
100 units at €12.00
Issue 150 units

FAQ

What is the journal entry for an inventory adjustment?

For a shortage found at a count: debit an inventory shrinkage (loss) expense account and credit Inventory for the missing units, valued at the cost they carry under the company’s method. For a surplus, debit Inventory and credit the offset account that fits the cause. The entry should reference the count and an approval.

What account type is an inventory adjustment?

“Inventory adjustment” is not one universal GL account. The inventory side is a current asset account. The offset depends on the reason: shrinkage, loss, damage, obsolescence or another approved expense or variance account.

Does a purchase order create a journal entry?

Normally no: a purchase order is a commitment, and only environments with commitment accounting post it. The first financial entry is the goods receipt: debit Inventory, credit GRNI.

Is GRNI a liability?

For an uninvoiced receipt, the GRNI credit balance represents the accrued liability for goods received but not yet invoiced. It is cleared when the supplier invoice is matched and the amount moves to accounts payable. Exact classification and presentation follow the accounting framework and the chart of accounts.

How do you write off inventory in the journal?

Debit an inventory write-off expense account and credit Inventory for the quantity scrapped, valued at its carrying cost. The posting should be supported by a scrapping document and an approval. A write-down of stock that is still saleable but worth less is a different entry that reduces value only.

What is the journal entry for cost of goods sold?

Debit Cost of goods sold and credit Inventory for the cost of the units delivered. The amount comes from the costing method: the oldest cost layers under FIFO, the current average under Moving Average Cost. Revenue is recorded separately through the customer invoice.

Where does freight go in inventory accounting?

Freight and similar costs of bringing goods to their present location and condition are added to inventory cost when they qualify under the accounting framework and company policy: debit Inventory, credit Accounts payable or Accrued freight. They reach the income statement through cost of goods sold when the units are sold. A qualifying cost that arrives after issue needs a revaluation, a COGS adjustment or an accrual.

Conclusion

Inventory accounting follows a sequence of operational events: receipt, invoice, freight, issue, count and scrapping. Each entry has a fixed shape: the costing method sets the amount and the document is the evidence. Account determination and presentation follow the accounting framework, company policy and ERP configuration.

The control objective is a traceable path from each inventory event to its valuation and GL entry. When warehouse and finance disagree, investigate the source and correct the document. Document-based corrections and carefully authorized exceptions keep quantity, value and accounting synchronized without hiding the cause of a difference.

Bring your inventory posting questions to a pilot discussion.

Use the document, valuation and reconciliation checks in this guide to define the workflows you want to evaluate.

Request pilot access