Skip to main content

AI Demand Forecasting

ECOSIRE AI Demand Forecasting predicts how much of each product you will sell in the coming weeks or months, using the sales and stock history already in your Odoo database. It picks the best forecasting model for every product automatically and turns the forecast into practical replenishment numbers: safety stock, reorder point and a suggested order quantity.

Everything runs inside your Odoo server. There is no third-party service, no API key and no network traffic: your sales data never leaves your system.

Technical nameecosire_ai_demand_forecasting
Current shipped version17.0 -> 17.0.1.0.4, 18.0 -> 18.0.1.0.4, 19.0 -> 19.0.1.0.4
CompatibilityOdoo 17, 18 and 19 (Community and Enterprise)
Price$599 USD (one-time)
CategoryInventory
Dependenciesproduct, sale_management, stock (standard Odoo apps)

What it does​

  • Five forecasting methods — Naive (last value), Simple Moving Average, Simple Exponential Smoothing, Holt-Winters (trend + seasonality) and Croston / SBA for intermittent, spare-parts style demand with many zero periods.
  • Automatic model choice per product — each method is backtested on your history and the one with the lowest WAPE (weighted absolute percentage error) wins. You can also force one method company-wide.
  • Accuracy you can read — every forecast shows MAE, RMSE, MAPE and WAPE so you know how far to trust it.
  • Forecast ranges — each future period carries a forecast quantity with a lower and upper bound.
  • Replenishment hints — safety stock, reorder point and a suggested order quantity, calculated from the forecast, your service level, your lead time and the current on-hand and incoming quantities.
  • Two history sources — ordered quantities from confirmed sales orders, or quantities actually shipped by outgoing stock moves.
  • Daily, weekly or monthly buckets with a configurable horizon and history window.
  • Dashboard — KPIs, a forecast-by-period trend chart, the method mix and the top replenishment suggestions, with clear empty, loading and error states.
  • Single, bulk or scheduled runs — refresh one product, run a selection or all products with history, or let a weekly scheduled job refresh everything.
  • Multi-company — one configuration per company, and forecasts are isolated between companies.
  • Self-contained — pure Python, no numpy / statsmodels / scikit-learn required, and no separate ECOSIRE module needed to install it.

Installation​

  1. Download the module from the Odoo Apps Store (or from your ecosire.com order) and add it to your addons path.
  2. Restart Odoo, update the Apps list, and install ECOSIRE AI Demand Forecasting.
  3. A default configuration is created for every company on install, so you can run your first forecast immediately.

The module installs on its own: it only needs the standard Sales, Inventory and Product apps.

Access rights​

Two groups are added under Settings → Users & Companies → Users → Demand Forecasting:

GroupCan do
Demand Forecasting / UserView the dashboard and the forecasts
Demand Forecasting / ManagerEverything a User can, plus run and refresh forecasts and change the settings

Configuration​

Open Demand Forecasting → Settings. There is one configuration per company:

SettingDefaultWhat it means
History SourceSales Order LinesSales Order Lines uses ordered quantities on confirmed orders; Outgoing Stock Moves uses what actually shipped (including non-sale issues).
GranularityMonthlyThe time bucket history is grouped into: daily, weekly or monthly.
Forecast Horizon (periods)6How many future periods to forecast.
History Window (periods)36How many past periods to fit the model on. 0 uses all available history.
Default MethodAutomatic (backtest selection)Leave on Automatic to let each product get its best model, or pick one method for every product.
Service Level0.95The target service level for safety stock (0.95 = 95% of periods without a stock-out).
Lead Time (periods)1.0Your replenishment lead time, in the same unit as the granularity.
Scheduled Refresh EnabledOffTurn on to include this company in the weekly scheduled refresh.

The Run All Forecasts Now button on the settings form forecasts every product that has demand history.

Running forecasts​

  • Bulk: Demand Forecasting → Run Forecast opens a wizard. Choose Selected Products (and pick them) or All Products with Demand History, then click Run.
  • One product: open a forecast under Demand Forecasting → Forecasts and click Refresh Forecast.
  • Scheduled: the scheduled action Demand Forecasting: Scheduled Refresh runs weekly and refreshes every company that has Scheduled Refresh Enabled switched on. It is off by default; to use it, enable the setting and make sure the scheduled action itself is active under Settings → Technical → Scheduled Actions.

Each forecast ends in one of these states:

StateMeaning
DoneThe forecast was computed.
Insufficient HistoryThe product has fewer than two periods of demand in the history window, so there is nothing to fit yet.
FailedThe run hit an error; the message is shown on the forecast.

Seasonal (Holt-Winters) forecasting needs at least two full seasons of history; with less, it falls back to simple exponential smoothing for that product.

Reading a forecast​

Each forecast shows the method that was chosen, the number of history points used, the accuracy metrics and the replenishment hints, with one line per future period (period date, forecast quantity, lower and upper bound).

The replenishment numbers use the standard inventory formulas:

  • Safety stock = z × demand standard deviation × √lead time, where z follows from your service level.
  • Reorder point = average demand per period × lead time + safety stock.
  • Suggested order quantity = forecast over the horizon − on hand − incoming + safety stock (never below zero).

These are planning guides derived from your history, not automatic purchase orders: review them before you buy.

Dashboard​

Demand Forecasting → Dashboard gives the overview: headline KPIs, the forecast trend by period, the mix of methods selected across your catalogue, and the products with the largest suggested order quantities. If no forecast has been run yet, the dashboard shows No forecasts yet with a Run your first forecast button.

The dashboard follows your Odoo theme, so it switches to dark colours when you enable dark mode. If its data cannot be loaded (for example, the connection to the server drops), the page shows its own message with a Try again button instead of a pop-up, and the toolbar buttons stay usable.

Technical reference​

The dashboard reads its data from one internal JSON-RPC endpoint, /ecosire_demand_forecast/dashboard_data (auth='user'). It requires a logged-in Odoo user, respects the forecasting access groups and multi-company rules, and needs no setup. There are no public webhooks or external endpoints to configure.

Tips​

  • Use weekly or monthly buckets for most catalogues; daily buckets are noisy unless you sell every day.
  • Products with long gaps between sales are handled best by Croston / SBA, which Automatic picks when it backtests best.
  • Choose Outgoing Stock Moves as the history source when deliveries, not orders, are what drain your stock.

Changelog​

1.0.4 (2026-10-21)​

  • The dashboard opens again on Odoo 18. Opening Demand Forecasting → Dashboard on Odoo 18 showed Odoo's "Oops! Something went wrong" dialog; it now loads its KPIs, charts and replenishment table. (Odoo 18 only.)
  • Dashboard follows dark mode. Cards, panels and text now take their colours from the Odoo theme and switch to dark when you enable dark mode, instead of staying light with unreadable titles.
  • Clearer error state. When the dashboard data cannot be loaded, the page shows its own message with a Try again button; the extra pop-up that covered the toolbar buttons is gone.

1.0.3 (2026-09-17)​

  • Installs on its own. The package no longer requires a separate ECOSIRE licence module and no key is needed. Earlier downloads could fail to install on a fresh Odoo because they asked for a module that was not part of the package. A built-in check now proves every build is self-contained.

1.0.2 (2026-08-18)​

  • Demo demand history keeps its original dates, and administrators get the forecasting access rights automatically on install.

1.0.1 (2026-07-02)​

  • Fixed the dashboard not opening on Odoo 18 and 19.

1.0.0 (2026-06-23)​

  • Initial release.

Support​

Email info@ecosire.com with your Odoo version and the forecast or product in question. Setup support is included.