Home / Odoo Problems / Inventory
Odoo Inventory

Odoo Negative Stock & Valuation Problems: Causes & Solutions

By Odoobots ERP TeamUpdated September 20266 min readApplies to Odoo 14–19
TL;DR

Odoo happily validates a delivery of 10 units when the system shows 4 — stock goes to −6 by design, because stopping dispatch is worse than a bookkeeping gap. Negatives are a symptom: receipts validated late or not at all. Fix the receiving discipline, then reset the baseline once, properly.

First, confirm the symptom

  • On Hand shows negative quantities on products you physically have
  • Stock valuation jumps wildly after certain receipts
  • COGS/margins look absurd on some invoices (FIFO/AVCO setups)
  • The negative list keeps regrowing after every "correction"

1. Understand: negatives are allowed by design

Unless reservations are enforced, warehouse staff can validate more than book stock. That is deliberate — Odoo assumes the physical world is right and the books are late. The problem is when nobody closes the gap.

Fix
  1. Decide policy: block over-delivery (strict reservations) or allow-and-reconcile. For most trading businesses we configure allow-and-reconcile with a weekly negative-stock review.
  2. Report: Inventory → Reporting → Stock filtered On Hand < 0 — this list is your weekly to-do.

2. Deliveries validated before receipts

Goods arrive, get sold, get delivered — but the purchase receipt is validated days later (or never). Sales outpace paper receipts and negatives bloom, then "fix themselves" confusingly when the receipt lands.

Fix
  1. Receipts get validated the day goods arrive — barcode at the gate makes this automatic.
  2. Track the lag: pending receipts on the Inventory Overview should be hours old, not weeks.
Odoo product form showing On Hand and Forecasted quantities used to diagnose negative stock
Diagnose per product: On Hand negative with big incoming Forecasted = receipts validated late (cause #2). On Hand negative with nothing incoming = the goods were never entered at all.

3. FIFO/AVCO valuation layers break on negatives

Under FIFO or Average costing, delivering stock you "don't have" forces Odoo to cost the outgoing move with a guess — and when the real receipt arrives at a different price, valuation and COGS wobble. Enough cycles of this and your gross margin report is fiction.

Fix
  1. Stop generating negatives (causes #1–2) — valuation heals only after quantities are honest.
  2. For damaged history, revalue: inventory adjustment to true counts, then a valuation correction entry with your accountant's blessing.

4. Wrong-location moves hiding real stock

Stock physically in Godown B, system stock in Godown A: deliveries from B drive B negative while A shows phantom quantity. Net company stock looks fine — location stock is nonsense.

Fix
  1. Run location-wise stock (Reporting → Stock by Location) and look for mirrored positives/negatives.
  2. Post internal transfers to mirror reality, and set source locations correctly on operation types.

5. The proper one-time clean-up

Correcting negatives one-by-one for months means the process is broken. Do it once, completely:

Fix — the reset routine
  1. Freeze a count day; physical count location-wise.
  2. Validate every pending receipt/delivery up to the count moment.
  3. One inventory adjustment to counted reality (see the Apply trap).
  4. Switch on the weekly negative report + receiving SOP so it never regrows.
Odoo Physical Inventory screen with counted quantities and differences ready to apply
The reset moment: one honest count, applied once — then discipline keeps it honest. This screen is where baselines get fixed.
Negatives regrow every week?

Then it is process, not data — and we fix both: baseline reset, receiving SOP, barcode flow, weekly exception report. Dhanalakshmi Industries and Anchor Marine run clean stock on exactly this routine.

Get a stock clean-up plan or WhatsApp +91 98414 81435

Frequently asked questions

Can I just block negative stock entirely?

Yes — enforce reservations so deliveries can't exceed available stock. But if your receiving discipline is weak, blocking negatives blocks dispatches. Fix receiving first, then tighten.

Does negative stock affect my accounts?

Under automated FIFO/AVCO valuation, yes — COGS and stock value entries get distorted (cause #3). Under manual/periodic valuation it is purely an operational issue.