Revenue forecasting

Merchant Revenue Forecasting

Benchmarking forecasting methods across a heterogeneous merchant portfolio

Self-directed portfolio project using synthetic data. Merchant-level revenue forecasting with model benchmarking, forecast-error analysis, and FP&A / revenue-planning decision support.

View PDF View GitHub Back to selected work

Business Question

How can Finance improve monthly merchant revenue forecasting across a diverse merchant portfolio while balancing accuracy, stability, and interpretability?

Context / Data

The fixture includes 50 synthetic merchants, 60 months of history (2020–2024), and 3,000 merchant-months. Evaluation used MAPE, RMSE, and MAE on a common 12-month holdout.

Synthetic data designed to mimic FP&A challenges, not represent a real portfolio. Results may not generalize to real merchant businesses. No production deployment is claimed.

Approach

Nine methods were benchmarked on the same holdout: Naive, Seasonal Naive, SMA(3), WMA, SES, Holt, Holt-Winters, SARIMA, and Linear Regression. The review looks at both average forecast error and the distribution of merchant-level error, rather than relying only on a portfolio-wide score.

Key Findings

Holt achieved the lowest mean MAPE at 8.64%, versus 12.47% for the Seasonal Naive baseline — about a 31% relative reduction in mean MAPE. More complex models did not automatically outperform simpler, interpretable approaches.

Verified mean MAPE by model from the published case study.
Model Mean MAPE
Holt 8.64%
SES 9.08%
SMA(3) 9.34%
Holt-Winters 9.54%
WMA 9.60%
Linear Regression 9.66%
Naive 11.68%
SARIMA 11.81%
Seasonal Naive 12.47%

Portfolio averages can hide merchant-level variation. SARIMA (~11.81% mean MAPE) was not among the strongest average performers in this benchmark. This does not mean Holt will always be best for every merchant or future period.

Financial / Business Implications

More reliable merchant-level forecasts can improve revenue planning. Forecast-error monitoring can help Finance distinguish predictable merchants from higher-uncertainty merchants. Model benchmarking provides a disciplined baseline before introducing additional complexity. Forecast performance should be refreshed as new actuals arrive. Different merchant behaviors may justify different models rather than forcing one methodology across every merchant.

Recommendation

  1. Use a common holdout and more than one error metric before preferring a more complex forecasting method.
  2. Review both average error and the merchant-level error distribution when setting forecast governance.
  3. Identify merchants with greater uncertainty rather than relying solely on one portfolio-wide score.
  4. Refresh model rankings as new observations arrive; rankings can change.

Visuals

Average MAPE by method, merchant-level error distributions, and an illustrative merchant path (M001) are in the Merchant Revenue Forecasting PDF.

Technical Methodology

Tools used: Python, pandas, statsmodels, scikit-learn, and matplotlib. The analysis does not claim causal interpretation of drivers or interventions. External drivers may improve forecasts but were not the focus of this benchmark.

GitHub Repository

Methodology and code: github.com/ecastillo081/Merchant_Revenue_Forecasting.