IEMSuite
Coming soon

Inventory EQuilibrium

Know what to reorder before you run out.

The forecasting engine inside IEMSuite. It learns from your own stock movements, product by product.

See how it works

Three steps, on your own data

It works from records IEMSuite already keeps, with nothing extra to import.

  1. Step 1Reads your stock movements
  2. Step 2Tests models on your history
  3. Step 3Forecasts what comes next

Demand forecast

Expected daily demand for 30 days, with a confidence label.

Reorder point

When to order, with safety stock for your supplier lead time.

Customers due to reorder

Read from each regular customer's own ordering rhythm.

Illustration with sample data. Each step is what the engine does with your own records.

What you get for every product

A 30-day demand forecast
Expected demand for each of the next 30 days, with a shaded range and a confidence label. The page names the model that produced it and the demand pattern it detected.
A suggested reorder point
The stock level at which to place a new order, with the safety stock it includes, for the supplier lead time you enter. It is compared with your current minimum and flagged if your minimum is lower.
Customers due to reorder
Regular customers expected to order again within 7 days, judged from the rhythm of their own past orders.

What the engine reads

Demand is built from stock transactions that take stock out for real use. Everything else is ignored, because a receipt or a transfer says nothing about what customers or production actually needed.

  • Shipments

    SHIP_OUT

    Stock that left on a shipment to a customer.

  • Production use

    CONSUME

    Materials consumed by a production batch.

  • Manual use

    MANUAL_CONSUMPTION

    Stock used outside a batch and recorded by hand.

  • Inbound receipts, transfers, stock adjustments, wastage and returns are not counted as demand.
  • Days with no movement count as zero demand, so quiet weeks lower the forecast instead of being skipped.
  • Up to the last 365 days are used. Today is left out until it is over, so a half-finished day never looks like a slow one.
  • Only active products are forecast. Archived and deleted products are left out.

How it chooses a model

No single forecasting method is right for every product. A product that sells a few units every day behaves nothing like one that sells in occasional bulk orders. So the engine first works out what kind of demand a product has, then tries the methods that suit it and keeps the one that does best on that product's own history.

1. Detect the demand pattern

Intermittent
More than 30% of days are close to zero, or demand swings very widely.
Tries: Croston, TSB, moving average, weekly pattern
Trend
Demand is clearly rising or falling over the history.
Tries: Prophet, exponential smoothing
Volatile
Demand moves a lot from day to day without a clear direction.
Tries: Prophet, moving average, Croston, TSB
Stable
Demand stays fairly even from day to day.
Tries: Exponential smoothing, weekly pattern, moving average

The 28-day mean and median are added to every pattern as baselines.

2. The candidate models

Weekly patternnaive_seasonal
Repeats the shape of the last week, so a product that sells every Monday is forecast for Mondays.
Moving averagemoving_average
The average of the last 14 days, carried forward.
Exponential smoothingsimple_exp_smoothing
A running level that weights recent days more, tuned per product.
Croston's methodcrostons
For products that sell in bursts: estimates order size and the gap between orders separately.
TSBtsb
A variant of Croston's that also tracks how often demand happens, so fading products fade in the forecast.
Prophetprophet
An open-source model for trend and weekly seasonality (yearly too, with enough history).
28-day mean and medianmean_28d / median_28d
Plain averages of the last 28 days. Always in the running as the baseline.

3. Test them on days they have not seen

The engine holds back recent history, fits every candidate on the days before it, and compares each forecast with what really happened. Two separate 14-day windows are used: one to pick the model and a later one to measure it. The measuring window never influences the choice, so the confidence you see is not flattered by it.

Each candidate is scored on its error across every day, including days with no demand (WMAPE), plus an equal penalty for leaning consistently high or low. Leaning low is what causes stockouts, so a model that is always a little short loses to one that is right on total.

A model that would forecast nothing for a product that clearly sells is never chosen. A more complex model must beat the plain 28-day baseline by at least 2% to replace it, so the forecast does not jump between methods on noise. On a trending product, a flat model cannot win while a trend-aware model is available.

After the choice, the winning model is refitted on the full history to make the 30-day forecast. The whole selection runs again each time a forecast is requested, so when a product's demand changes shape, the model changes with it.

A confidence label you can check

Every forecast says how much to trust it, using the error the chosen model actually made on the held-back days. There is no general accuracy figure, because accuracy depends on the product.

High
Error on held-back days below 30% WMAPE.
Medium
From 30% up to 70%.
Low
70% or more. Treat the forecast as a rough guide.
Unknown
Less than about 49 days of history, too little to hold back two windows and still train.

The shaded range on the chart is sized by that same measured error, so a product the engine forecasts badly gets a visibly wider range. The lower edge never goes below zero.

Reorder points from your real demand

You enter your supplier lead time in days, and optionally how much it varies. The engine suggests the stock level at which to reorder so that demand during the lead time is covered in about 95% of replenishment cycles.

It looks at the last 90 days of the product's demand, adds up demand over every stretch as long as your lead time, and takes the level that covered 95% of them. This uses your product's real ups and downs instead of assuming demand follows a bell curve, which tends to understate the occasional large order that causes a stockout.

When there are fewer than 20 such stretches, or when you enter a lead time variation, it uses the standard safety stock formula instead, which accounts for both demand variation and lead time variation.

Alongside the reorder level you see average daily demand, how variable it is, the safety stock included, and your current minimum stock level, flagged when it is below the suggestion. Nothing is changed automatically. You decide whether to update your minimum.

Customers due to reorder

For B2B customers who buy on a rhythm, the engine notices when the next order is due and lists the ones expected within 7 days, so you can prepare stock or get in touch.

  • It reads up to two years of each customer's orders per product, leaving out cancelled orders and quotes.
  • A customer needs at least 5 orders of a product before a rhythm is estimated.
  • Customers whose order spacing is too irregular to predict are left out rather than shown with a misleading date.
  • Customers already past their usual date, and those silent for more than three times their usual gap, are left out.
  • Each entry is ranked high, medium or low by how much evidence stands behind it: the number of orders and how evenly they are spaced.

This is based on order timing only. IEMSuite cannot see your customers' own stock, so treat the list as a prompt to get in touch, not a promise.

Your data stays yours

Forecasting runs on IEMSuite's own forecasting service. Your records are not sent to an outside AI provider.

  • Read-only access

    The forecasting service can read records but cannot change them.

  • Workspace scoped

    Each request is limited to the signed-in user’s own workspace.

  • Permission checked

    Only users whose role can view inventory can open forecasts.

  • Internal only

    The service accepts requests only from the IEMSuite app itself.

What it cannot do

A forecast learns from the past. Knowing where that stops is part of using it well.

  • It cannot anticipate events that are not in your history, such as a new large customer, a promotion or a supplier problem.
  • A product needs at least 14 days since its first recorded demand before any forecast appears.
  • Products that rarely move get wide ranges and low or unknown confidence until history builds up.
  • Forecast requests are limited per workspace per day, according to your plan.
  • Forecasts are statistical estimates, not guarantees. Check them against what you know before ordering.

Full details for users are in the IEQ Engine documentation.

Frequently asked questions

Straight answers about how IEQ Engine works.

What does IEQ stand for?

IEQ stands for Inventory EQuilibrium: keeping each product's stock in balance, with enough on hand for the demand ahead and not much more. The engine works toward that by forecasting demand and suggesting when to reorder.

What is IEQ Engine?

IEQ Engine is the demand forecasting engine inside IEMSuite. It reads each product's outbound stock movements and produces a 30-day daily demand forecast with a confidence label, a suggested reorder point for your supplier lead time, and a list of regular customers who are due to reorder within the next 7 days.

Is IEQ Engine available now?

Not for every workspace yet. IEQ Engine is in beta and is switched on per workspace as it rolls out. When it is not enabled for your workspace, it does not appear in the app.

What data does the forecast use?

Only stock transactions that take stock out for real use: shipments (SHIP_OUT), production consumption (CONSUME) and manual consumption (MANUAL_CONSUMPTION), from up to the last 365 days. Inbound receipts, transfers, adjustments, wastage and returns are not treated as demand. Days with no movement count as zero, and the current day is left out until it is complete.

How much history does a product need?

At least 14 days from its first recorded demand before any forecast is produced. A measured confidence label needs about 49 days, because the engine has to hold back two separate 14-day windows to choose a model and then test it honestly. Until then the confidence shows as unknown.

Does IEQ Engine use AI?

It uses statistical forecasting models, not a large language model. For each product it tries several established methods, scores them on recent history they were not fitted on, and keeps the best one. That choice is repeated every time a forecast is requested, so it follows a product as its demand changes.

How accurate are the forecasts?

It depends on the product, which is why every forecast shows its own measured error instead of a headline number. The confidence label is high when the error on held-back days is below 30% WMAPE, medium below 70%, and low above that. We do not quote a general accuracy figure.

How is the reorder point calculated?

From the last 90 days of the product's own demand. The engine sums demand over every window as long as your lead time and takes the level that covered 95% of them. With too little history, or when you enter lead time variation, it uses the standard safety stock formula instead. It does not change your minimum stock level; you decide whether to adopt it.

Is my data sent to an outside AI company?

No. Forecasts run on IEMSuite's own forecasting service, which reads your workspace's records with read-only database access. Requests are made by the IEMSuite app on behalf of a signed-in user, scoped to that user's workspace.

Get IEQ Engine with IEMSuite

Start with IEMSuite today. IEQ Engine switches on for workspaces as it rolls out.

No credit card required to get started