How to reconcile negative inventory before closing a period
Negative inventory distorts COGS and blocks a clean close. What causes it, how to reconcile it, and the controls that stop it recurring.
Part of the month-end close guide.

To reconcile negative inventory before closing a period, find every item with a negative on-hand quantity as of period-end, trace each one to its cause (usually a sale or fulfillment recorded before the matching receipt), then fix the source transaction: enter or re-date the missing receipt, or post an inventory adjustment backed by a physical count. Do this before running inventory cost accounting, because negative inventory is costed at an estimate and the true-up lands in whichever period the receipt posts.
Negative inventory looks like an operations problem. At close it becomes a cost of goods sold (COGS) problem, because the estimate and the correction can fall in different periods. This guide covers what causes it, how to reconcile it in NetSuite's Period Close Checklist, and the controls that keep it from coming back.
Key takeaways
• Negative inventory means the system recorded more units leaving than arriving, almost always because a receipt was entered late, dated wrong, or never entered.
• NetSuite costs an "underwater" sale at the last known cost, then posts a correcting adjustment with the later receipt, which can shift COGS from one period into the next.
• In NetSuite, Review Negative Inventory sits on the Period Close Checklist after Resolve Date/Period Mismatches and before Review Inventory Cost Accounting.
• The fix is at the source transaction: a correctly dated receipt, or an adjustment supported by a physical count, not a plug to COGS.
• Loopfour, the deterministic finance workflow automation platform, does not manage inventory; it runs the finance-side check before close and routes each negative item to its owner for an approved fix.
What is negative inventory, and why does it block a clean close?
Negative inventory is an on-hand quantity below zero for an item at a location. Physically, you can't hold minus ten units. In the ledger, it means shipments or sales were recorded before the receipts that supplied them.
Oracle calls this state "underwater." Per NetSuite's guidance on avoiding underwater inventory, when on-hand is below zero, "the estimated cost is calculated based on the last known cost when the item was in stock," and the true cost is adjusted when stock is later received.
That creates three close problems:
| Problem | Why it matters at close |
|---|---|
| COGS at an estimate | Gross margin for the period uses a cost that isn't final |
| True-up in a later period | The correction posts with the receipt date, shifting cost across periods |
| Inventory balance misstated | The balance sheet inventory value doesn't reflect what's on the shelf |
A worked example
Oracle's own example shows how the cost moves between periods. The figures come from NetSuite's documentation.
| Date | Transaction | On hand | COGS posted |
|---|---|---|---|
| March 30 | Invoice for 100 widgets; last known cost $10 | −100 | $1,000 (estimate) |
| April 2 | Receipt of 100 widgets at $12 | 0 | $200 adjustment, dated with the receipt |
March closes with $1,000 of COGS for units that actually cost $1,200. April carries a $200 cost that belongs to March. If March is already closed and reported, your March gross margin was overstated by $200 on this item alone, and April's is understated by the same amount. Multiply by every underwater item and the distortion becomes material.
What causes negative inventory?
Negative inventory is almost always a timing or data-entry problem, not a physical one. The goods arrived; the system just learned about it late, or never.
| Cause | How it happens | How to spot it |
|---|---|---|
| Late receipt entry | Goods arrive Monday; the receipt is entered Friday | Receipt date after the fulfillment date for the same item |
| Receipt dated on entry, not arrival | Receipt entered correctly but with today's date | Receipt date doesn't match the packing slip |
| Standalone invoices or cash sales | Inventory relieved without a sales order and fulfillment | Invoices with inventory items and no linked order |
| Wrong location | Received into one warehouse, shipped from another | Same item positive in one location, negative in another |
| Unit-of-measure errors | Received as one case, sold as twelve units | Quantities off by a pack-size multiple |
| Missed transfers or assemblies | Components consumed before a build or transfer is recorded | Component negative, finished good positive |
How do I reconcile negative inventory before closing a period?
Reconcile it in five steps: list, trace, fix, confirm, then cost. In NetSuite the steps follow the inventory tasks on the Period Close Checklist.
Step 1: List every negative item as of period-end
In NetSuite, go to Transactions → Inventory → Review Negative Inventory and enter the period-end date as the As of Date. Filter by location if you use Multi-Location Inventory. Export the list with item, location, and quantity.
Per Oracle's list of inventory tasks on the Period Close Checklist, Review Negative Inventory depends on Resolve Date/Period Mismatches, which depends on Lock All. Clear date/period mismatches first, because a receipt posted to the wrong period is itself a cause of negative inventory.
Step 2: Trace each item to its cause
For each negative item, pull its transaction history for the period and find the first transaction that took on-hand below zero. Then look for the receipt, transfer, or build that should have preceded it. The cause table above tells you what to look for.
Step 3: Fix the source transaction
Correct the transaction that was wrong, not the balance that resulted. The right fix depends on the cause:
• Receipt entered late or with the wrong date: change the receipt date to the actual date of receipt, if that date is in an open period.
• Receipt never entered: enter it with the actual date of receipt.
• Wrong location or unit of measure: correct the original receipt or fulfillment.
• Genuine shrinkage or miscount: post an inventory adjustment, supported by a physical count and approved by someone outside the warehouse.
Oracle recommends completing a physical count before this task. An adjustment without a count is a guess with a journal entry attached.
Step 4: Confirm nothing is still negative
Rerun Review Negative Inventory for the same As of Date and confirm the list is empty, or that every remaining item has a documented reason. NetSuite lets you mark the task complete with items still negative. That is a choice to close with estimated costs, so make it deliberately and write down why.
Step 5: Run inventory cost accounting
Only then run Review Inventory Cost Accounting. Oracle lists it as dependent on Review Negative Inventory, and it will not run while items still require correction. Once costing completes, review the Inventory Activity Detail report for the items you fixed.
Controls that stop negative inventory recurring
Every control that works here makes the receipt arrive in the system before the shipment leaves it. Oracle's own list of practices to avoid underwater inventory includes:
• Enter item receipts promptly, dated with the actual date of receipt.
• Sell inventory through sales orders and fulfill from them, rather than standalone invoices or cash sales.
• Set Fulfill Based on Commitment to Limit to Committed, so you can't ship what isn't there.
• Turn on inventory level warnings so users see a problem when they create it.
• Count regularly, and review negative inventory before every close, not only at year-end.
Add one finance control on top: a pre-close check. A few days before period-end, run the negative inventory review and send each item to the person who owns its receipt. Problems found on day minus three are cheap; problems found after costing runs are not.
Where Loopfour fits, and where it doesn't
Loopfour does not manage inventory, warehouses, or receiving. Those belong to your ERP and your operations team. What Loopfour runs is the finance-side control around them, as a predefined workflow on your existing NetSuite account.
pre-close date reached → negative inventory list pulled as of period-end → each item matched to its most recent receipt and fulfillment → item routed to its operations owner in Slack with the transaction history → owner fixes the source transaction → workflow rechecks the item → any remaining negative item held for controller approval before the close task is marked complete → execution tree records every step
The workflow is deterministic. It reads, matches, routes, and rechecks on fixed rules; it does not create receipts or adjustments on its own. A named person makes each fix, and the controller approves any decision to close with an item still negative.
Book a workflow review to see the pre-close check run against a NetSuite sandbox.
How to choose an approach
If negative inventory appears rarely, NetSuite's native Review Negative Inventory task and a disciplined close checklist are enough. Horizontal automation tools can schedule a saved search and email the results, and that works well if someone owns the follow-up.
The gap is ownership and evidence. A saved search tells you what's wrong. It doesn't make sure each item was fixed, by whom, or that the controller approved closing anything still open. Loopfour closes that gap for the finance control only, and we maintain the workflow as your NetSuite configuration changes. For how this step fits the rest of close, see the month-end close checklist and how to automate month-end close.
Frequently asked questions
What causes negative inventory in NetSuite? Negative inventory happens when a sale, fulfillment, or consumption is recorded before the receipt that supplied the goods. The usual causes are late receipt entry, receipts dated on entry rather than arrival, standalone invoices, wrong locations, and unit-of-measure errors.
How does negative inventory affect COGS? When on-hand is negative, NetSuite costs the sale at the last known cost as an estimate. When the receipt posts, a correcting adjustment posts with the receipt date, which can move part of the cost into a later period and misstate gross margin in both.
Can I close a period with negative inventory in NetSuite? NetSuite lets you mark the Review Negative Inventory task complete while items remain negative. Doing so means closing with estimated costs, so document each remaining item and have the controller approve the decision.
Should I fix negative inventory with a journal entry? No. A journal entry to inventory or COGS fixes the ledger balance but leaves item quantities negative and costing unresolved. Fix the source transaction or post an inventory adjustment supported by a physical count.
How do I prevent negative inventory? Enter receipts promptly with the actual date of receipt, sell through sales orders and fulfillments, limit fulfillment to committed quantities, turn on inventory level warnings, and review negative inventory a few days before every close.
Conclusion
Negative inventory before close is a sign that receipts and shipments were recorded out of order. Reconcile it by listing every negative item as of period-end, tracing each to its source, fixing the transaction, and confirming the list is empty before costing runs. Then add the controls that keep receipts ahead of shipments, and a pre-close check that finds the next one early.
Tell us the one workflow your team dreads. We will show it running — deterministic, permissioned, and auditable.
Book a demo.
Sources
• Oracle NetSuite: Inventory Tasks on the Period Close Checklist
• Oracle NetSuite: Reviewing Negative Inventory
• Oracle NetSuite: Avoiding Underwater Inventory
Related reading
• The month-end close checklist: every step, owner, and control
• How to automate month-end close in 2026 (without breaking your audit trail)
• How to lock accounting periods so backdated edits can't unreconcile your books
• What is month-end close? The process, how long it takes, and soft vs hard close
Sources
- Oracle NetSuite, Avoiding underwater inventory (opens in a new tab).
- Oracle NetSuite, Inventory tasks on the Period Close Checklist (opens in a new tab).
- Oracle NetSuite, Reviewing Negative Inventory (opens in a new tab).
