Demand Forecasting Software | ML Models

Demand Forecasting Software

RaftLabs builds custom demand forecasting models trained on your historical order, sales, and supply data. Time-series ML models that account for seasonality, promotions, and external signals -- integrated directly into your inventory, procurement, or planning systems so forecasts translate into actions rather than spreadsheet exports. We start with a data audit: we assess your historical data quality, coverage, and granularity before committing to a model approach. If your data supports a reliable forecast, we tell you what accuracy is achievable. If it does not, we tell you that too rather than delivering a model that looks good in demo and fails in production.

  • Time-series ML models trained on your actual order and sales history
  • Seasonality, promotional uplift, and external signal integration built in
  • Forecast delivery direct to your ERP, inventory, or planning system
  • Forecast accuracy monitoring and automated retraining as patterns shift
See our work

Recent outcomes

Voice AI · Research

Text-based interviews converted to automated phone calls

6× deeper insights

AI Automation · Ops

Manual invoice OCR across 40+ gas stations

20k+ txns day one

Loyalty · Retail

SuperValu & Centra loyalty platform with receipt validation

1,062 users in 4 weeks

SaaS · Logistics

Multi-carrier shipping hub for Indonesian eCommerce

2,000+ shipments yr 1
4.9 / 5 on ClutchSee all work

RaftLabs builds custom demand forecasting models using time-series machine learning trained on your historical order and sales data. We integrate forecast outputs into ERP and inventory systems and include accuracy monitoring and automated retraining so the model stays reliable as demand patterns shift. A single-category model with ERP integration typically runs $20,000 to $60,000.

Trusted by

Vodafone
Aldi
Nike
Microsoft
Heineken
Cisco
Calorgas
Energia Rewards
GE
Bank of America
T-Mobile
Valero
Techstars
East Ventures

Demand forecasting sounds straightforward until you try to build it: you have years of order data, but promotions inflated some months, supply constraints suppressed others, and a one-off contract skewed a quarter that looks anomalous but was not. A naive model trained on that history will produce forecasts that are systematically wrong in ways that are hard to diagnose. Experienced inventory planners know this, which is why they override model outputs with judgement -- and why forecasting tools often end up unused.

RaftLabs builds demand forecasting models that account for the structure of your actual business: promotional uplift, seasonality, trend, and the external signals that move your demand independently of what you control. We start by understanding your data, your planning cycle, and what decisions the forecast needs to support -- and we define the accuracy benchmark up front so you know what you are getting before you commit to building.

Capabilities

What we build

Time-series demand forecasting models

Machine learning models trained on your historical order and sales data using time-series methods selected based on your specific data characteristics -- not a single algorithm applied to every problem. Facebook Prophet for businesses with strong weekly and annual seasonality patterns: additive decomposition into trend, seasonality, and holiday components makes the model interpretable and the seasonality explicit. LightGBM for high-cardinality tabular forecasting where many features (price, promotion flags, competitor events) inform the prediction alongside historical demand. LSTM networks for demand series with non-linear autocorrelation patterns that classical time-series methods underfit. Ensemble approaches that combine multiple model outputs via a weighted average or stacking model -- typically producing better accuracy than any single model because different architectures capture different patterns in the data. Accuracy evaluation against held-out test data using MAPE (mean absolute percentage error), WMAPE (weighted by volume), and Bias (systematic over- or under-forecast) -- the metric your planning team uses, not just the metric the model performs well on.

SKU-level and aggregate forecasting

Forecast models that operate at the level of granularity your planning process requires -- individual SKU, product family, category, or location -- built with the hierarchical structure that makes multi-level planning coherent rather than contradictory. Bottom-up forecasting generates SKU-level predictions first and aggregates them; top-down distributes a category-level forecast down to SKUs using historical sales mix proportions; middle-out generates at an intermediate level (product family) and reconciles both directions. Optimal reconciliation using the MinT (Minimum Trace) method: weighted combination of base forecasts across the hierarchy that minimises total forecast variance, outperforming both pure bottom-up and top-down approaches in empirical benchmarks. Cross-sectional coherence enforced as a hard constraint: the SKU forecasts for a category sum to the category forecast exactly, so your replenishment plan and your financial plan agree without a manual reconciliation step. Sparse SKU handling for long-tail products with intermittent demand: Croston's method or a Tweedie regression model for zero-inflated demand distributions where classical time-series methods break down because most periods have zero sales. Granularity selection documented before build: we determine the lowest level of granularity your data supports reliably and build the hierarchy from that baseline rather than producing SKU-level forecasts that are statistically meaningless because the individual series are too sparse.

Seasonality and promotional uplift modelling

Explicit seasonality decomposition using Fourier terms, calendar features, and holiday indicators so your forecast knows that December and July behave differently -- built using your actual promotional calendar and trading history rather than generic retail seasonality curves that may not match your business patterns. Fourier series terms at multiple frequencies (weekly, annual, and custom business-cycle periods) capture seasonality in Prophet and LightGBM models without overfitting to individual noisy years. Calendar feature engineering: day-of-week, week-of-year, month, quarter, and fiscal period indicators passed as model features alongside the demand series -- standard for gradient boosting models where explicit features outperform learned pattern detection. Public holiday calendars for your operating regions (UK, US, Australia, EU) encoded as binary indicators with configurable lead and lag windows: the week before a bank holiday affects demand differently from the holiday itself, and both differ from the week after. Promotional uplift modelling trained on your historical promotions: discount depth encoded as a continuous variable (25% off versus 50% off generates different uplifts), promotion type as a categorical (price reduction versus multi-buy versus free gift), channel (email versus in-store versus online), and duration (daily deal versus week-long promotion). Interaction terms between promotion depth and product category capture elasticity differences: a 20% discount on a commodity product drives different incremental volume than the same discount on a premium SKU. Planned promotions injected into the forecast input as future feature values so the model anticipates uplift rather than treating next month's promotion as a demand surprise.

External signal integration (weather, events)

Integration of external demand signals that correlate with your sales -- signals that move your demand independently of what you control and that a model trained on internal data alone will systematically miss. Feature selection process before any external data is ingested: we test each candidate signal for Granger causality and correlation with your historical demand series at the right lag, only including signals that demonstrably improve held-out forecast accuracy rather than adding complexity that hurts generalisation. Weather data for seasonal and weather-sensitive businesses via Open-Meteo or NOAA APIs: temperature, precipitation, and extreme weather indicators with location-specific data for businesses with multiple sites and different climate zones -- a retail chain's Edinburgh and Bristol stores need separate weather features. Local event calendars for location-sensitive demand: music festivals, sports events, public holidays, and school term dates encoded as proximity indicators (events within 5km, 10km, 20km radius) with venue capacity as a magnitude signal. Commodity price indices for input-cost-sensitive products via World Bank Commodity Prices or Bloomberg Commodity Index APIs: steel, grain, and energy prices as leading indicators for industrial demand planning with long procurement cycles. Macroeconomic indicators (PMI, consumer confidence index, unemployment rate) for businesses with demand that lags economic conditions by one to three months. Google Trends data for consumer product categories where search interest reliably precedes purchase volume. Each external feature tested on your historical data with a train/test split before inclusion in the production model -- we tell you what accuracy improvement each signal provides, not just that it was added.

Forecast delivery to inventory and ERP systems

Automated forecast delivery to your ERP demand planning module, inventory management system, or procurement tool on a configurable schedule -- built so the forecast translates directly into purchase orders and replenishment actions rather than sitting in a separate analytics tool that planners must manually consult. Integration approach determined by your system's capabilities during scoping: API integration for SAP Integrated Business Planning (IBP), Oracle Demand Management Cloud, and Microsoft Dynamics 365 Supply Chain Management using each platform's standard REST or OData endpoints to write forecast quantities into demand plans on a weekly or daily cadence. For SAP S/4HANA Demand Management, forecast data is written to the Planned Independent Requirements (PIR) table via BAPI or RFC call -- the same data structure SAP's own planning tools use, so MRP runs pick up the AI forecast without any additional configuration. For NetSuite Demand Planning and systems with limited API access: scheduled CSV or Excel file delivery in the exact column structure and naming convention your system's import template expects, written to an SFTP endpoint or SharePoint folder your team already monitors. For systems with no import capability (legacy ERP, custom planning spreadsheets): forecast data written to a PostgreSQL or BigQuery table your planning team queries directly, with a lightweight web UI for reviewing and overriding forecast values before they are finalised. Override workflow for planners who need to adjust model output: a web interface where a planner can modify a forecast for a specific SKU and period, with the override reason recorded in the audit log and the adjusted value passed to the downstream system. Override tracking feeds back into model retraining to surface cases where planners are systematically correcting a model blind spot.

Forecast accuracy monitoring and retraining

Automated accuracy tracking that compares forecast values against actual demand as orders arrive -- not a monthly review process, but a continuous monitoring pipeline that catches model drift before it affects your purchasing decisions. MAPE (mean absolute percentage error), WMAPE (weighted by volume), and Bias (systematic over- or under-forecast) calculated per SKU and per category on a rolling 4-week and 13-week window, with configurable thresholds that trigger alerts when accuracy degrades below the benchmark established at project handover. Drift detection distinguishes between noise (random variation in a single period) and genuine degradation (persistent accuracy decline over multiple periods) using statistical process control methods -- control charts with upper and lower control limits so alerts fire on signal, not noise. Category-level dashboards showing forecast accuracy trends over time, the contribution of external signals to accuracy improvement, and the SKUs or product families where the model is weakest -- actionable for the planning team, not just monitoring for the technical team. Retraining pipelines that incorporate new demand data on a configurable cadence: weekly retraining for fast-moving categories where patterns shift quickly, monthly retraining for stable categories where more data per retrain produces better generalisation. Retrain-on-trigger capability for structural breaks -- a new product launch, a major promotional event, or a supply disruption that changes demand patterns permanently -- so the model adapts to step-changes rather than treating them as anomalies to ignore. Model version registry (MLflow) logs each retrained model with the accuracy metrics on the validation set before the new version is promoted to production -- rollback to the previous model version is a one-step operation if a retrain degrades performance.

Your forecast is only as good as the model behind it.

Tell us about your current planning process, your data history, and the decisions the forecast needs to support. We will assess whether a custom model is worth building and what accuracy you can realistically expect.

  • AI Development -- custom AI and ML model development for demand forecasting use cases

  • IoT Development -- IoT sensor data and supply chain signals feeding demand forecasting models

Frequently asked questions

As a starting point, two years of transactional history gives a time-series model enough data to identify annual seasonality patterns reliably. One year can be sufficient if your business does not have strong seasonal variation. Less than 12 months of data makes it very difficult to separate genuine demand patterns from noise, and any model built on that data will be unreliable for planning purposes. If your historical data is limited, we can supplement it with external signals -- market indices, weather data, economic indicators -- to fill gaps, but we will tell you clearly what accuracy range is achievable before you commit to building.

New products present a genuine cold-start problem: without historical demand, a time-series model has nothing to learn from. We address this through a combination of approaches depending on the product category. For products similar to existing SKUs, we use attribute-based similarity to transfer demand patterns from comparable historical products. For genuinely novel products, we model the launch curve using data from comparable historical launches in your catalogue or industry benchmarks. We are transparent about the higher uncertainty on new product forecasts and build that uncertainty into the confidence intervals the model reports.

The integration approach depends on your ERP's API capabilities. For systems like SAP, Oracle, and Microsoft Dynamics, we use standard API endpoints to write forecast data into the demand planning module on a configurable schedule -- daily, weekly, or triggered by model update. For systems with limited API access, we write forecast output to a format your planning team already imports -- typically CSV or Excel in the structure your system expects. We build and test the integration as part of the engagement, not as a separate phase, so forecast delivery is working in your real system before handover.

A single-category demand forecasting model -- one product line or business unit, with seasonal and promotional adjustment, delivered to your planning tool -- typically runs $20,000 to $60,000. A multi-category system with SKU-level granularity, external signal integration, and full ERP integration ranges from $60,000 to $150,000. We scope the engagement by reviewing your data, defining the forecast granularity, and agreeing the accuracy benchmark before providing a fixed-cost quote.

Work with us

Tell us what you need. We'll tell you what it would take.

We scope Demand Forecasting Software in 30 minutes. You walk away with a clear cost, timeline, and approach. No commitment required.

  • Scope and cost agreed before work starts. No surprises. No obligation.
  • Working prototype within 3 weeks of kickoff.
  • Pay by milestone. You see progress before each invoice.
  • 60-day post-launch warranty. Bug fixes, UI tweaks, and deployment support. No retainer.
  • All conversations are NDA-protected.