AI Demand Forecast

Forecast product demand from sales and stockout history, review stock risks and export purchase suggestions. Check price recommendations before applying them. Numerical forecasts run locally; optional AI explains the aggregated product figures.

  • Magento 2.4.7 – 2.4.9
  • PHP 8.2 – 8.5
  • Version 1.0.3
$379
$265
Save 30%

One-off payment, with 12 months of updates.

What is included

  • 12 months of new versions and fixes; the versions released in that time stay yours
  • Install with Composer, or download a zip from your account
  • Licence for one production domain, staging and development copies included
  • 30-day money-back guarantee, refund policy

No subscription or automatic renewal. Keep using the versions included in your update period. Update and licence details

Composer package softaware/module-ai-demand-forecast

AI Demand Forecast Regular price $379$265

Sales history tells you what could be bought. Replenishment needs an estimate of what customers will want while the next delivery is on its way. AI Demand Forecast connects that gap with availability-aware forecasts, supplier timing and reviewable stock and price suggestions.

See the risk and the evidence behind it

The dashboard brings together stockout risks, purchase value, overstock, slow movers and pending price suggestions. Open a product to inspect daily sales, forecast range, observed unavailable days and recent held-out model comparisons.

Numerical methods include seasonal, trend, intermittent-demand and moving-average candidates. Forecasts run locally in PHP; external AI is optional for written explanations. Recorded promotion, holiday, optional temperature and price effects are used when supported by history.

Backfill supported historical orders and maintain supplier, lead time, minimum order, case pack and cost data. Supported configurable options and MSI stocks are tracked. Stock observations start after installation, so an older imported quiet week cannot automatically be recognised as a stockout.

Turn the analysis into a purchasing review

Purchase Suggestions prioritises items at or below their reorder point and calculates cover over lead time and an order cycle, with safety stock and pack constraints. Export a filtered CSV to your buying process.

The module does not issue supplier orders or automatically subtract open purchase orders. Check inbound quantities and commitments before converting a suggestion into a buy. Forecasted demand remains an estimate, particularly for sparse history or changing supplier conditions.

Review price suggestions and competitor context

Inspect proposed markdowns, slow-mover adjustments or availability pressure, constrained by cost/margin settings and product price boundaries. Authorised approval applies a supported regular or special price. History and reversion protect the review trail, with checks around later edits and scope.

Configured competitor product URLs are read for schema.org prices on a schedule. Missing data, old prices, robots restrictions and blocked access are reported. Confirm comparable variants, pack sizes and currency before relying on an offer.

Add explanation where it helps the buyer

Optional Monday summaries and on-demand explanations use aggregated product figures through AI Core, with usage and budget controls. Turning off this language-model layer leaves the numerical forecasts available.

Requirements and boundaries

Magento 2.4.7–2.4.9, PHP 8.2–8.5, SoftAware Core/AI Core and running cron. Grouped products are not forecast, bundles are treated as bundles and configurable price suggestions are excluded. Consult the documented scope restrictions before planning a broad price change.

Read the Demand Forecast and reorder guide and inspect a product forecast, purchase queue and price recommendation in the demo. Demo amounts and backtests are illustrative, not performance claims for your store.

See the workflow

Try the admin demo. Storefront examples are available on the Luma demo and Hyvä demo. Demonstration or offline-test data shows the workflow; evaluate AI matching and forecasts with your own representative catalogue.

Data and forecasting

  • Order-history backfill and daily collection
  • Sales, returns, pricing, promotions and observed stockout days
  • Supported configurable-option and MSI-stock tracking
  • Candidate seasonal, trend and intermittent-demand methods
  • Recent held-out backtests and prediction intervals
  • Measured holiday, promotion, optional temperature and price effects

Stock planning

  • Days of cover and estimated stockout timing
  • Reorder points and service-level safety stock
  • Product, supplier and default lead-time inputs
  • Minimum order and case-pack constraints
  • Urgency-filtered Purchase Suggestions with CSV export
  • Overstock and slow-mover review

Reviewed pricing

  • Markdown and availability-pressure recommendations
  • Cost/margin floor, product floor and ceiling constraints
  • Approval before regular or special prices are applied
  • Change history and reversion with later-edit checks
  • Documented scope and product-type restrictions

Competitor information

  • Product URLs entered directly or by CSV
  • Scheduled schema.org price extraction
  • Status for missing, stale, blocked or robots-restricted pages
  • Freshness checks before using a competitor offer

Optional AI and operations

  • Local numerical forecasting without an external language model
  • Optional Monday summary and on-demand explanations
  • Aggregated product figures sent to the configured provider
  • Shared AI Core usage, budgets and role controls
  • Cron collection, forecast batches and supported CLI operations

Questions before you install

Does the numerical forecast need a paid AI API?

No. Numerical forecasting runs locally in PHP. Optional written summaries and explanations use your configured AI provider and incur its usage cost.

Does it place supplier purchase orders?

No. It prepares suggestions and a CSV for review. It does not issue supplier orders or automatically subtract open purchase orders; reconcile inbound stock yourself.

Are prices changed automatically?

Price recommendations wait for an authorised approval. Applied changes are recorded and can be reverted with checks for later edits and documented scope restrictions.

Can it reconstruct earlier stockouts from old orders?

No. Stockout observations begin with tracking after installation. Historical order backfill does not recreate unrecorded availability or price observations.

Are the forecast and accuracy values guarantees?

No. Forecasts are estimates with uncertainty. Backtests describe observed held-out history and do not promise future sales or a universal accuracy rate.

Compatibility

Requirements and compatibility

Compatibility of AI Demand Forecast
Magento2.4.7 – 2.4.9
PHP8.2 – 8.5
Latest version 1.0.3
composer.json requires php ~8.2.0||~8.3.0||~8.4.0||~8.5.0 ext-curl * ext-dom * ext-json * magento/framework ~103.0.7 magento/module-backend * magento/module-catalog * magento/module-catalog-inventory * magento/module-catalog-rule * magento/module-config * magento/module-directory * magento/module-eav * magento/module-sales * magento/module-sales-rule * magento/module-store * magento/module-ui * softaware/module-ai-core ^1.2 softaware/module-core ^1.0

Installation

Up and running in minutes

After you buy, create a Composer key in your account. Then, in the root of your Magento project:

  1. 01Add the repository and your key (once per project)

    composer config repositories.softaware composer https://repo.softawarecommerce.com
    composer config --auth http-basic.repo.softawarecommerce.com PUBLIC_KEY PRIVATE_KEY
  2. 02Install the module

    composer require softaware/module-ai-demand-forecast
  3. 03Enable it

    bin/magento setup:upgrade
    bin/magento setup:di:compile
    bin/magento setup:static-content:deploy
    bin/magento cache:flush

    The last three are only needed in production mode.

Prefer a zip? Every version you are entitled to can be downloaded from My modules. More about Composer access

User guide

How to set up and use AI Demand Forecast

For version 1.0.3. The same guide comes with the module, in docs/user-guide.md.

1. First steps

  1. Check Stores > Configuration > Softaware > AI > AI Demand Forecast (menu: Softaware > AI Demand Forecast > Settings). The defaults work: 90-day horizon, 95 % service level, 14-day lead time, weekly ordering.
  2. Load your order history once (the nightly job only adds new days): bin/magento softaware:ai-forecast:backfill (two years by default), then bin/magento softaware:ai-forecast:run. Without this, cron starts with the last 30 days.
  3. Optional product data (attribute group Demand Forecast on the product page): Supplier, Lead Time (Days), Minimum Order Quantity, Case Pack, Price Floor, Price Ceiling, and Magento's Cost attribute (needed for purchase values and the minimum margin).
  4. Lead times per supplier: Settings > Stock Recommendations > Lead Time per Supplier.

2. Dashboard

  • Forecast Accuracy: how close the forecasts were on the last 1-4 weeks of sales, which were held back and forecast (1 - WAPE). Higher is better.
  • At Risk of Stockout: products out of stock or running out before new stock can arrive (lead time).
  • Suggested Purchases: value at cost of the suggested order quantities.
  • Overstock Value / Slow Movers: stock above the cover limit (26 weeks by default) and stock without sales for 60 days.
  • The chart shows units sold per week (blue) and the forecast (orange, dashed). Filter by category, supplier and (with MSI) stock.

3. Product Forecasts

Click a SKU: the chart shows daily sales, the forecast and its likely range (shaded), and hatched days where the product was out of stock (these days do not count as zero demand). Below: the stock recommendation, the chosen model with the backtest of all candidates (MASE below 1 = better than "same as last week"), and measured effects (promotion uplift, holidays, temperature, price elasticity). Recalculate Now updates one product at once.

4. Purchase Suggestions

Products at or below their reorder point, most urgent first. Suggested quantity = forecast demand over lead time plus one order cycle, plus safety stock, minus salable quantity, rounded up to the case pack and at least the MOQ. Export CSV downloads the list with the current filters, ready for a purchase order.

5. Price Suggestions

Nothing changes until you approve. Open a suggestion to see the reason, the expected demand change, the floor and competitor price. Approve and Apply sets a special price (for the configured number of days) or a new regular price; increases always change the regular price. Revert restores the previous prices, unless someone changed the price on the product page in the meantime (then it is left alone and you are told so). Products with their own price on a store view are not changed from a suggestion. Rejected suggestions of the same kind are not repeated for 14 days. Mass approve/reject is in the grid's Actions menu.

6. Competitors

Add competitor product URLs on the product page (section Competitor Prices, one per line), one by one on the Competitors page, or by CSV (sku,url,competitor name; comma, semicolon or tab separated, UTF-8 or Excel encodings). They are read once a day; the status column tells you if a page has no schema.org price, is disallowed by robots.txt or blocks automated access (those are skipped). Fetch Now in the grid reads up to 10 selected URLs at once. Prices older than 7 days are ignored.

7. AI summaries (optional)

Set up keys and a budget under Softaware > AI Services (AI Core), then switch on AI Summaries in the settings. A summary is written every Monday (one request); Write Summary Now on the dashboard and Explain with AI on suggestions make one request each. Costs show on AI Core's Usage & Costs page.

8. Holidays and weather

Choose a country for public holidays (free Nager.Date service). Weather (free Open-Meteo service) is off by default; set the location where most customers are. Effects are only applied when the history shows them.

Changelog

Release notes

1.0.3

Latest
  • Settings moved back to the Softaware tab of Stores > Configuration, listed in the collapsible "AI" group (Softaware Core 1.2.0 section groups) instead of a separate "Softaware AI" tab. Requires softaware/module-ai-core ^1.2.

1.0.2

  • Settings moved to the new "Softaware AI" tab of Stores > Configuration (provided by AI Core 1.1.0), which groups the settings of all SoftAware AI modules. Requires softaware/module-ai-core ^1.1.

1.0.1

1.0.1 (2026-10-10)

Fixed

  • AI requests leave room for the model's thinking: current Claude models always think and count those tokens in the output limit, so an answer could be cut off ("Allow more output tokens") and the run was lost after it had been paid for. The output limit is only a ceiling; unused tokens are not charged.

1.0.0

1.0.0 (2026-10-10)

Added

  • Data layer (cron, incremental): daily sales per product and stock (configurable products as the parent and per option), returns, hourly out-of-stock checks (stockout days are treated as unknown demand), price history (regular, special and catalog rule price), promotion days, MSI support (salable quantity per stock) without a code dependency on MSI. History backfill command.
  • Forecasting engine in PHP: Holt-Winters additive/multiplicative with weekly and yearly seasonality, damped trend, Croston and SBA for intermittent demand, moving average; model chosen by backtest (MASE, RMSSE for intermittent demand; MAPE and WAPE stored); prediction intervals. Promotion uplift, public holiday effect (Nager.Date), optional temperature effect (Open-Meteo) and price elasticity (log-log regression).
  • Stock recommendations: days of cover, predicted stockout date, reorder point, safety stock from service level and forecast error, suggested order quantity with lead time per product/supplier, MOQ and case pack; overstock and slow movers.
  • Price suggestions: markdowns for slow stock (target sell-through), increases when demand exceeds supply, competitor match/raise; minimum margin, price floor and ceiling; approve as special price or regular price, logged and revertible; mass approve/reject.
  • Competitor prices from merchant-entered product URLs (product page section, Competitors page, CSV import): daily fetch with robots.txt, identifying User-Agent, per-site pause, timeouts, size limit, SSRF guard (public addresses only, checked again on every redirect, connection pinned to the checked address); price from schema.org JSON-LD or microdata.
  • Optional AI texts through Softaware AI Core: weekly summary and explanations per suggestion (aggregated product numbers only).
  • Admin: Dashboard (KPIs, weekly chart, risks, demand changes, overstock, open price suggestions, AI summary, filters by category, supplier and stock), Product Forecasts grid and detail page (chart with forecast range and stockout days, backtest table, measured effects), Purchase Suggestions with CSV export, Price Suggestions, Competitors, Settings.
  • CLI: softaware:ai-forecast:backfill, :run, :competitors:fetch [--dry-run], :summary.
  • Unit tests (PHPUnit) for every forecasting method against known series, model selection, regressors, stock and price rules, SSRF guard, robots.txt, schema.org parsing and fetching against a local fixture server, AI requests with a fake completion service.
  • Uses the shared AiCore helpers instead of its own copies: SSRF-safe fetching, robots.txt and per-host delays (PoliteFetcherInterface), schema.org offer parsing (OfferParserInterface), the prompt allow-list filter (PromptDataFilterInterface) and the safe HTTP client for holiday/weather data; AI cost panel on the dashboard.

Fixed (pre-release review 2026-10-10)

  • Adding a competitor URL failed (undefined variable after the move to AI Core's URL guard), which also broke saving a product with a URL in its "Competitor Prices" section and the CSV import.
  • A product listed for months that sold once was forecast at that quantity every day: a short sales history is now extended to 4 weeks with the in-stock days before the first sale (never before the product was created).
  • Products with no forecast demand but a recent sale were shown as "Overstock" with an overstock quantity of 0; they are now "OK" (and become slow movers after the slow-mover period).
  • A product whose forecast failed stayed due, so the daily run never completed and softaware:ai-forecast:run could loop forever; it is now marked done for the day (previous forecast kept) and the error is logged.
  • Approve, reject and revert lock the suggestion: a double submit or two admins can no longer apply a price twice (the second "previous price" would have made Revert restore the wrong price).
  • Revert no longer overwrites a price that was changed on the product page after the approval.
  • Approve refuses products with their own price or special price on a store view (website price scope), where a change at the default scope would not reach those store views.
  • Competitor fetches (cron, CLI, admin "Fetch Now") share one lock, so a site never gets parallel requests.
  • CSV import accepts semicolon- and tab-separated files and UTF-16 / Windows-1252 encodings (a non-UTF-8 competitor name broke the import).
  • "Recalculate" on the product forecast page no longer runs the catalogue-wide daily collection in the admin request.
  • The "Competitor Prices" product section is hidden while the module is switched off.

From the blog

Guides and articles