Skip to content

Forecast Creation & Modelling

Status: Shipped

Domain: Cash Forecasting Linear Projects: Forecasting V2, Base forecasts


What It Does

Palm generates cash flow forecasts that treasury teams can trust and act on. The platform combines multiple data sources - historical transactions, open items from ERP, manual inputs, and ML-based predictions - to produce daily or weekly forecasts for any horizon.

Unlike traditional TMS forecasting that relies solely on scheduled payments and manual guesses, Palm's approach learns from actual payment patterns to predict when cash will really move. Each forecast line shows its source (ERP data, ML prediction, manual input), giving users transparency into what's driving the numbers.

The forecasting engine handles multi-entity complexity, automatically consolidating entity-level forecasts into group views while maintaining the ability to drill down to any level of detail.


Capabilities

Capability Status Notes
ML-based forecasting Shipped Learns from historical patterns
ERP data integration Shipped Open AP/AR items flow into forecast
Daily/weekly granularity Shipped Configurable forecast periods
Category-level forecasts Shipped See forecast by payment type (payroll, vendor, etc.)
Multi-entity consolidation Shipped Entity, country, and group level views
Forecast source transparency Shipped Know what's driving each forecast line
Rolling forecast updates Shipped Forecasts refresh as new data arrives
Manual adjustments Shipped Override or supplement ML predictions

Jobs Fulfilled

From cash-forecasting/jobs.md

1. Produce a short-term cash forecast I can trust and act on

Desired Outcomes Addressed: - [x] Minimize the time spent updating daily forecast (target: 15 minutes or less) - [x] Minimize the time spent gathering data from multiple ERP tables - [x] Increase the percentage of forecast based on booked/actual data vs guesses - [x] Increase confidence in inputs by understanding their source and historical accuracy - [ ] Reduce the frequency of surprise payments not captured in forecast (partial) - [x] Increase transparency on data sources (% from ERP vs manual vs ML) - [ ] Reduce the risk of being caught by surprise on large variances (partial)

How Palm Addresses This: - Automated data ingestion from ERP and banks - ML fills gaps where ERP data doesn't exist - Forecast source indicators show ERP vs ML vs manual - Category-level drill-down identifies what's driving forecast

2. Forecast cash flows entity-by-entity across decentralized group structure

Desired Outcomes Addressed: - [x] Minimize the time spent chasing entities for forecast submissions - [x] Minimize the effort required to produce entity-level forecasts - [x] Reduce errors from manual Excel manipulation (format, decimal conventions, typos) - [x] Increase the granularity of cash visibility at entity level (not just consolidated) - [ ] Increase visibility into forecast changes vs original figures (partial - version tracking not full) - [ ] Reduce dependency on infrequent budget/forecast cycles (partial)

How Palm Addresses This: - Centralized forecast generation from bank and ERP data - No entity-level Excel submissions required for base forecast - Entity-level views with drill-down to consolidated - Standardized formats eliminate number formatting issues

3. Optimize use of operational cash

Desired Outcomes Addressed: - [x] Minimize buffer balances held on operational accounts - [x] Minimize idle cash sitting in low-yield operating accounts - [x] Increase investment income by deploying excess cash to higher-yield investments - [x] Reduce buffer requirements through forecast accuracy - [ ] Reduce uncertainty about daily funding needs (partial - depends on forecast accuracy) - [ ] Increase confidence in daily transactional forecasts (improving) - [ ] Reduce the frequency of early investment liquidations due to forecast misses (partial)

How Palm Addresses This: - Daily/weekly forecasts enable tighter cash management - Higher accuracy reduces need for buffers - Category-level forecasts help identify predictable vs unpredictable flows

4. Improve forecast accuracy by handling outliers

Desired Outcomes Addressed: - [x] Minimize the impact of one-off large payments on future forecasts - [ ] Reduce manual effort to identify and flag unusual transactions (no auto-detection yet) - [x] Increase confidence in forecasts by excluding known anomalies

How Palm Addresses This: - Outlier exclusion from ML training - Large transaction flagging - Manual adjustments to correct for known one-offs


Pain Points Addressed

Pain Point Addressed? Notes
Excel chaos across many entities Yes Centralized platform, no Excel submissions
Budget/forecast cycles too infrequent Yes Rolling forecast always current
No smart forecasting in TMS Yes ML-based prediction
Data mining from ERP is difficult Yes Automated ERP integration
TMS inflexibility drives Excel usage Partial Self-service adjustments available
Outliers skew forecasts Yes Outlier handling capabilities
Collections forecast is just one monthly number Yes Daily granularity available

What's NOT Included (Yet)

  • Forecast version tracking and comparison ("what was my July forecast?")
  • Push-button forecast generation ("generate weekly forecast")
  • External signal integration (Instagram engagement, weather, etc.)
  • Customer-specific AR collection patterns (influential customer tracking)
  • FP&A budget reconciliation tools
  • Forecast accuracy scoring by category

How It Works (Technical)

Component Technology Notes
ML forecasting engine AutoGluon TimeSeries 25+ models including Chronos 2 foundation models
Model types Ensemble WeightedEnsemble, plus individual: DLinear, PatchTST, TiDE, DeepAR, etc.
Model registry MLflow Champion/candidate versioning, LoRA fine-tuning
Data storage PostgreSQL forecasts schema with versioned predictions
Anomaly detection PELT + IQR Changepoint and outlier detection
Task orchestration Airflow DAGs for training and batch prediction

Key files/services: - /backend/forecast/ - Forecasting engine - /backend/variance/ - Variance analysis - /db_schemas/forecasts_schema.sql - Data model - /backend/palm_mlflow/ - Model tracking



Last updated: 2026-02-17