How we built revenue forecasting with Holt's double exponential smoothing
Rahul Verma
· 8 min read
Revenue forecasting for an individual SMB is a different problem than forecasting for a large enterprise. The time series is short — often a year or two of monthly invoice totals — noisy, and frequently has gaps where no invoices were issued at all. Training a machine-learning model on that kind of data overfits badly.
Why not a full ML model
With only 12–24 monthly data points per business, there isn't enough signal to train anything beyond a very simple model. We needed something that could produce a sensible trend line from day one, without a cold-start problem.
Why Holt's method
Holt's double exponential smoothing models both the level and the trend of a series using two smoothing parameters, alpha and beta. It requires no training step — it's computed directly from the historical series — and it degrades gracefully when data is sparse: with very few points, the trend component naturally stays close to flat instead of extrapolating wildly.
We tuned alpha and beta per account using a grid search that minimizes one-step-ahead forecast error on held-out months, re-running the search periodically as more invoice history accumulates.
Handling gaps and outliers
Months with zero invoices (common for seasonal or project-based businesses) are treated as missing rather than as zero revenue, so a single quiet month doesn't drag the trend down. Outlier invoices — a one-off large contract, for instance — are winsorized before they enter the smoothing calculation so a single anomaly doesn't distort the forecast for months afterward.
