All posts
Integrator7 min read

Odoo Product Demand Forecasting: Forecasted Quantity, Replenishment, and Lead Times

Odoo computes a forecasted quantity combining on-hand stock, confirmed sales, purchase orders, and manufacturing orders. This guide explains how the forecast is built, how to read the replenishment report, and how lead times affect reorder point calculations.

Odoo does not include a statistical forecasting engine. Instead, it maintains a running "forecasted quantity" - a real-time calculation of what stock will be available on any future date given all current commitments and expected receipts.

The Forecasted Quantity Calculation#

Forecasted Qty = On-Hand Qty
              + Incoming Qty (PO lines, MO outputs, receipts in transit)
              - Outgoing Qty (SO lines, MO components, deliveries in transit)

Odoo applies each scheduled stock move in chronological order to produce a timeline of future stock levels.

Where to see it:

  • Product form → Forecasted button - Forecasted Inventory report
  • Inventory → Reporting → Forecasted Inventory - products below minimum stock

Replenishment Rules: Min/Max#

Reorder point rules (stock.warehouse.orderpoint) watch the forecasted quantity. When it drops to or below the Minimum Quantity, Odoo generates a replenishment:

  • Buy route → draft Request for Quotation
  • Manufacture route → draft Manufacturing Order
FieldDescription
Minimum QtyTrigger threshold
Maximum QtyTarget stock level after replenishment
Quantity MultipleRound up to multiples (e.g., packs of 12)

Lead Times#

Purchase Lead Time - on the vendor pricelist line: days from PO creation to receipt.

Security Lead Time for Purchase - Inventory → Configuration → Settings. Adds a buffer to all PO lead times to account for late deliveries.

Days to Purchase - days the purchasing team needs to create and send a PO after draft generation.

Manufacturing Lead Time - on the product form: days to manufacture.

The scheduler fires these calculations on the daily cron, or manually via Inventory → Operations → Replenishment → Run Scheduler.

Make-to-Order (MTO) Route#

MTO products do not use reorder points. A confirmed sale order line that would drive forecasted stock below zero automatically creates a PO or MO for the exact quantity needed. MTO works well for customised or high-value products but fails where customers expect immediate availability.

Common Mistakes#

  • Forecasted quantity ignoring draft orders - only confirmed SOs and validated stock moves affect the forecast; draft quotations do not pull stock down
  • Reorder rules without a vendor set - the Buy replenishment creates an unassigned draft PO that appears to do nothing; configure a vendor on the product's Purchases tab
  • Lead time set to zero - always set realistic lead times; a zero vendor lead time causes the system to expect immediate receipt
  • Security lead time too large - a large security buffer causes over-ordering; calibrate based on actual late-delivery frequency

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free