How to Set Optimal Reorder Points in Odoo from Real Sales History
Turn guesswork min/max reordering rules into data-driven stock targets — updated automatically
Odoo’s reordering rules are powerful — if the min/max numbers in them are right. In most companies they were typed in once, based on gut feeling, and never touched again. This guide explains what stale reorder points cost, why spreadsheet recalculations don’t stick, and how AutoSTOCK computes an optimal stock target for every product from your real Odoo sales history and writes it back as standard stock.warehouse.orderpoint rules your procurement already understands.
💸 What Guesswork Reorder Points Cost You
Every product in your warehouse answers to two numbers: the minimum that triggers replenishment and the maximum you fill up to. Get them wrong in either direction and you pay:
- Set too low: stockouts on your best sellers. Customers wait, orders are canceled, and sales quietly leak to competitors who had the item on the shelf.
- Set too high: working capital frozen in slow movers, shelf space wasted, and dead stock that eventually gets written off.
- Set once and forgotten: demand changes every season, but rules typed in two years ago still drive today’s purchasing. The gap between real demand and stored rules widens every month.
- Not set at all: Odoo’s replenishment has nothing to work with, so purchasing runs on memory, hallway conversations, and panic orders with expensive express shipping.
The math behind a good reorder point — average demand, demand variability, vendor lead time, desired service level — is well understood. The problem is nobody has time to run it for hundreds or thousands of SKUs, month after month.
🔧 How Teams Usually Try to Fix It
1. Manual rules in Odoo
Odoo lets you create a reordering rule per product with min and max quantities, and its scheduler will faithfully act on them. But Odoo does not tell you what the numbers should be — that judgment is yours, per product, forever. With more than a few dozen SKUs, the rules fossilize.
2. The quarterly spreadsheet
Export sales, build formulas, compute new min/max values, then retype them into Odoo one by one. It works — once. The export is stale the day after, the retyping introduces errors, and the exercise is painful enough that “quarterly” becomes “yearly” becomes “never”.
3. Custom scripts or heavyweight planning modules
A developer can script the statistics, but the script needs maintenance, and its output still has to land in Odoo safely. Full-blown demand planning suites do the math well but bring their own database, their own screens, and an implementation project — heavy for an SMB that just wants correct min/max values in the system it already runs.
🤖 The Automated Way: AutoSTOCK
AutoSTOCK is a BOTS4.me bot that analyzes your real sales history in Odoo — 120 days by default, configurable — computes an optimal stock target per product, and writes the result back as native Odoo reordering rules. No new planning screens: your Odoo keeps working exactly as before, just with numbers that are finally right and kept fresh automatically.
Real sales history analyzed
Optimal target computed per product
Native min/max rules written to Odoo
Report emailed after every run
📐 Five optimization modes — pick the one that fits
Coverage: the default. The reorder point (min) covers what sells during the vendor lead time plus a 50% buffer; the order-up-to level (max) adds N months of average demand on top (default 2). Simple, predictable, easy to explain to the whole team.
Service level: statistical Gaussian safety stock for a chosen availability target between 80% and 99%, using each product’s real vendor lead time from Odoo — longer lead times automatically mean more safety stock. Erratic or thin demand is excluded so statistics are never applied where they don’t belong.
Demand percentile: distribution-free safety stock derived directly from your actual demand pattern — no normality assumption at all.
Hybrid: automatic per product — AutoSTOCK classifies every product by how regularly it actually sells, then applies Service level math to the steady sellers and Demand percentile math to the erratic ones. Products too sparse for either are left alone instead of getting a misleading target.
Recent-weighted: no cut-off date — the same idea as Coverage, but recent sales count more than old ones: a sale counts half as much once one lead time has passed, a quarter after two. Nothing drops off a cliff at the edge of the analysis window.
⚠️ Qualification gates — one-off items never get stocked
A product only receives a stock target if enough different customers bought it enough times — both thresholds configurable. That one special-order machine you sold once will never appear on your shelf as “safety stock”.
From Free Month to Fresh Reordering Rules
- Step 1 — Start your free Discovery month: sign in at bots4.me/bots, click Start free Discovery month on the AutoSTOCK card and accept the Terms once — no credit card needed. Want help with the setup? Tell us which ERP you run, and we set it up together with you. You can also click through the sample-data dashboard at bots4.me/bots_demo first.
- Step 2 — Connect Odoo: on Odoo.sh or on-premise, install the free BOTS4.me Connect module (Odoo 13–19) and connect it in one click. On Odoo Online, create an API key under Settings → Users & Companies → Users → your user → Account Security, then open Settings (gear) → AutoSTOCK → Access Manager → Add Source → ERP → Odoo at bots4.me and paste it there; the Odoo user behind the key needs Inventory (User) rights. Odoo Online needs Odoo’s Custom plan for API access. An optional zero-code XML helper adds a BOTS4.me menu inside Odoo. One connection serves every BOTS4.me app that works with Odoo.
- Step 3 — Pick mode and period: in the Control tab of AutoSTOCK choose the Optimization mode (Coverage, Service level, Demand percentile, Hybrid or Recent-weighted), the Analysis period (120 days by default) and the qualification gates Min. unique customers and Min. orders. Coverage works on every paid tier; the other modes are available at the Business tier.
- Step 4 — Start in DEMO: AutoSTOCK starts in DEMO. It runs the full analysis and emails the complete report (reorder point and order-up-to level per product, stock plus incoming, and which rules would change) while changing nothing in Odoo. In DEMO a new analysis is produced at most about once a day and uses your usage allowance like a live run. You can stay report-only as long as you like.
- Step 5 — Go live: in the Control tab switch the mode from DEMO to LIVE (it unlocks after your first DEMO report) and switch on Write Reorder Rules (every paid plan, including the free Discovery month). Both are needed. Choose a Run Schedule (daily or weekly) and Operating hours, and from then on targets are recomputed and the rules AutoSTOCK manages are refreshed automatically.
Your First Week with AutoSTOCK
- Read the summary of the first report: how many products had sales in the analysis period, how many qualified for a target and how many did not, how many are below their reorder point, and how many reordering rules were (or in DEMO would have been) created or updated.
- Check the product table: it shows the Reorder point (min), Order up to (max), Stock + incoming and Status for every product that gets a rule, so you can sanity-check each target against what you know. Rules you set yourself are listed under “Left as you set them”.
- Tune the gates: if too many products qualify, raise Min. unique customers or Min. orders; if regular sellers are missing, lower them. Products without a vendor lead time in Odoo use the Default lead time.
- Try a second mode before going live: switch the Optimization mode and compare the next DEMO report with the first one. Coverage is the simple, predictable starting point.
- Go LIVE when the targets convince you: switch the mode to LIVE and turn on Write Reorder Rules. The rules then appear as normal reordering rules in Odoo, and the Logs tab and the Reorder Rules Updated stat show what each run changed.
- On the Business plan, let the data choose: Monthly mode & window comparison compares every mode and analysis period on your own sales history once a month and emails the winner with the exact settings to apply, without touching your ERP. The optional SMART layers (Trend Adjustment, Seasonal Look-ahead, Seasonal Purchase Reminders) refine the demand figure and are off until you switch them on; Outlier Dampening is on by default on every paid plan.
- Then close the loop: AutoPURCHASE orders against the targets AutoSTOCK wrote. Schedule AutoSTOCK to run before AutoPURCHASE so the targets are always fresh.
📅 What Day-to-Day Operation Looks Like
After each analysis — or only when rules change, or weekly, as you choose — you receive a stock report: the reorder point and order-up-to level per product, the products below their reorder point, and exactly which rules changed. Reports and logs come in your choice of 31 languages. In the dashboard at bots4.me/bots you get per-app Control, Logs, and Settings tabs, Bot Power on/off, and every feature individually toggleable — with full decision logs for every run. The platform is EU-hosted, built for GDPR, and offers 2FA.
Because AutoSTOCK writes standard Odoo reordering rules (regular stock.warehouse.orderpoint min/max records), nothing else in your workflow has to change: Odoo’s own replenishment, your buyers, and your existing reports all keep working with the same records — now continuously kept honest by real sales data. It runs on the same platform on which IMP Kontakt turns thousands of emailed RFQs and orders a month into ERP records with Mail2ERP.
🔄 From Stock Targets to a Closed Inventory Loop
Correct reorder points are step one of a fully automated replenishment loop. Step two: AutoPURCHASE turns those targets into draft purchase orders — computing per-product needs, grouping lines per preferred vendor, and respecting vendor minimums, so you only review and confirm. Step three: when suppliers confirm, Supplier2ERP reads the confirmation emails and updates your POs in Odoo with confirmed prices, quantities, and delivery dates.
AutoSTOCK sets the targets → AutoPURCHASE drafts the orders → Supplier2ERP keeps them honest. Own all three and replenishment becomes something you supervise, not something you do.
🌍 Odoo First, Other ERPs Too
AutoSTOCK supports Odoo versions 13 through 19 (Odoo Online, Odoo.sh, and on-premise), ERPNext 15 and 16, Zoho Inventory, Dolibarr 23 and newer, Microsoft Dynamics 365 Business Central (online), QuickBooks Online, Xero and SAP Business One (on the last four BOTS4.me keeps the reorder rules for you) today. Any other ERP with an API (SAP S/4HANA, Oracle NetSuite, Dynamics 365 Finance / Sales and others) is connected on request, so if you need stock optimization on another system, tell us which one.
❓ Frequently Asked Questions
How do I calculate optimal reorder points in Odoo automatically?
Odoo itself executes reordering rules but does not compute what min/max should be. AutoSTOCK adds the missing calculation: it analyzes your real sales history from Odoo (120 days by default), computes an optimal target per product using one of five optimization modes — coverage, service level, demand percentile, hybrid, or recent-weighted — and writes the result back as standard Odoo reordering rules on a schedule you choose.
What data does AutoSTOCK use to compute stock targets?
Your actual Odoo sales history over a configurable period (default 120 days), plus each product’s real vendor lead time from Odoo, used in every mode. Targets are based on what customers really bought — not on assumptions or industry averages.
What is the difference between the coverage, service level, demand percentile, hybrid, and recent-weighted modes?
Coverage sets the reorder point to what sells during the vendor lead time plus a buffer and adds N months of average demand (default 2) as the order-up-to level — simple and predictable. Service level computes Gaussian safety stock for a chosen availability target between 80% and 99%, using real vendor lead times. Demand percentile derives safety stock directly from your demand distribution without assuming it is normal. Hybrid classifies each product by how regularly it sells and applies Service level math to the steady sellers, Demand percentile math to the erratic ones. Recent-weighted works like Coverage but lets recent sales count more than old ones, so nothing drops off a cliff at the edge of the window. You can switch modes anytime in the dashboard.
Does AutoSTOCK overwrite my existing Odoo reordering rules?
No. AutoSTOCK manages only the rules it created and Odoo’s empty rules (min and max at 0). Rules you set yourself stay as they are and are listed in the report, unless you switch on Take Over My Rules, and a never-stock list keeps chosen products out. It writes standard stock.warehouse.orderpoint min/max records, so your own procurement flow keeps working with them. If you prefer to look before anything is written, report-only mode and Demo Mode run the full analysis and email the report without changing your ERP.
How do I stop one-off or special-order products from getting a reorder point?
AutoSTOCK’s qualification gates only assign a stock target when enough different customers bought a product enough times — both thresholds are configurable. Products that fail the gates simply never get a rule, so one-off items stay out of your warehouse.
Does it work with Odoo Online, Odoo.sh, and on-premise?
Yes — Odoo 13 through 19 on-premise, plus the current versions of Odoo.sh and Odoo Online. Odoo.sh and on-premise use the free BOTS4.me Connect Python module, installed once and connected in one click; Odoo Online, which forbids custom Python, connects with an API key from Settings → Users & Companies → Users → your user → Account Security.
Can I try AutoSTOCK before it writes anything?
Yes. Your first month is a free Discovery month, with no credit card needed. It starts in DEMO: you get the full stock analysis and the email report, with no reordering rules written to your ERP, until you switch to LIVE and turn on Write Reorder Rules.
📚 Related Guides
- Hub: How to Automate Odoo End-to-End: From Email Order to Paid Invoice
- Next step in the loop: How to Automate Purchasing in Odoo: Draft POs from Real Needs
- Closing the loop: How to Import Supplier Order Confirmations into Odoo Automatically
- The sales side: How to Automate Order Confirmation, Delivery and Invoicing in Odoo
- Connector setup: How to Connect Odoo to BOTS4.me (Odoo 13–19)
🔗 Sources and Further Reading
Official documentation and standards referenced in this guide. External links open in a new tab.
Stop Guessing Your Reorder Points
Start your free Discovery month: connect your Odoo, and your first full stock optimization reports arrive in DEMO, with nothing written to your ERP until you switch to LIVE.