Revenue Forecasting Platform
Production ML system predicting pipeline and booking outcomes at daily frequency across current and future quarters.

Akash Sharma
Primary Owner
5–15%
Model MAPE
4+
Quarter Horizons
Daily
Scoring Frequency
Overview
Built and evolved the core end-of-quarter (EOQ) forecasting system, growing it from a QTD-based heuristic into a multi-layer ML platform. The system produces daily forecasts across four quarter horizons using XGBoost with leakage-safe GroupShuffleSplit validation. Enhancements over 4 years include: time-decay and average-index adjustment layers, SHAP explainability with dual-algorithm contribution logging, and a configurable multi-model framework supporting 30+ parameters for algorithm selection, feature groups, and ensemble composition.
The problem
Revenue teams at B2B SaaS companies needed reliable end-of-quarter pipeline and booking forecasts, starting from day one of the quarter, to drive planning, capacity allocation, and executive reporting. Simple heuristics couldn't capture seasonality, pacing dynamics, or macroeconomic context.
- Initial approach
- A quarter-to-date (QTD) heuristic projection.
- Why it wasn't enough
- Heuristics couldn't capture seasonality, pacing dynamics, or macroeconomic context, so the forecast was only as good as the quarter's pace so far.
How the system works
- 01
Raw data
pipeline and booking records
- 02
Feature engineering
forecast-category features
- 03
Model families
XGBoost, Ridge, and others
- 04
Validation
leakage-safe
- 05
Forecast adjustment
time-decay and average-index layers
- 06
Daily EOQ prediction
four quarter horizons
- 07
Production
scored daily, explained with SHAP
- 08
Actual EOQ
quarter-end outcome
- 09
Error / accuracy
5–15% model MAPE
Engineering decisions
Why XGBoost?
Gradient-boosted trees handle the nonlinear interactions across pipeline and booking features, and XGBoost is the core model in the system.
Why leakage-safe validation?
Random splits let future information leak into a forecasting problem, so validation uses GroupShuffleSplit to keep the evaluation honest.
Why multiple model families?
Customer behavior differed enough that one algorithm wasn't universally best, so the framework selects among XGBoost, Ridge, LightGBM, and CatBoost.
Why explainability?
A forecast had to become a decision people could inspect, so SHAP and coefficient contributions are logged to BigQuery.
Validation
Leakage-safe GroupShuffleSplit validation, with daily EOQ forecasts checked against actual quarter-end outcomes.
Results
Holds model MAPE in the 5–15% range through forecast category feature engineering, with daily EOQ forecast accuracy of ~85–99%. System delivers daily pipeline and booking forecasts used by enterprise revenue teams for EOQ planning and boardroom reporting.
Tech Stack
Domain Tags
Details
- Role
- Primary Owner
- Status
- Production
- Tier
- Tier 1
- Period
- Apr 2022 – Present
- Employment
- ADA Asia → Current role
Related Revenue Forecasting Projects
Time-Decay Forecast Smoothing
Dynamic adjustment layer that re-weights prior EOQ history by recency, capturing momentum and velocity signals closer to quarter end.
Seasonal Index Forecast Adjustment
Statistical fallback layer using day-of-quarter index averages when ML model signals are insufficient.
Model Explainability with SHAP
Dual-algorithm explainability infrastructure: SHAP for tree models, coefficient contribution for linear models, with BigQuery logging.