Back to all work

Case study

Winning a Sales Forecasting Competition with a Simple Time-Series Approach

The key was not model complexity. It was understanding the scoring rule, reducing variance in the data, and making conservative forecasts with a simple ARIMA-based approach.

Outcome

First place among roughly 70 participants.

The important step was understanding what the competition actually rewarded.

Context

The competition asked participants to forecast 100 days of future sales for 200 small businesses. It was framed as a lending problem, so the score was not based on plain forecast error alone. Over-forecasting was penalized much more heavily than under-forecasting.

Many participants used more complex modeling approaches, but the scoring setup made problem framing and risk-aware forecasting more important than adding complexity for its own sake.

Approach

I used ARIMA, but the real work happened before and after the model step. I cleaned cancellation noise, aggregated transactions to reduce day-level variance, applied log transformation, and then adjusted the forecast direction to fit the competition’s asymmetric objective.

The result was a conservative, interpretable workflow that fit the evaluation rule instead of optimizing a generic notion of accuracy.

The model was simple, but the forecast logic was not naive.

Cancellation cleanup

The raw data included negative transactions that represented cancellations. I removed those together with their corresponding positive transactions so the series would reflect actual realized sales rather than inflated variance.

Adaptive aggregation

Each store’s transaction history was aggregated into 28-day, 14-day, or 7-day buckets depending on how much history was available. That reduced day-of-week noise while preserving enough structure to forecast short series.

Log scale and zero-sales adjustment

Forecasting on the log scale made the aggregated series more stable. When a store showed zero-sales periods, I adjusted the final forecast using the observed probability of no sales rather than ignoring that pattern.

Conservative forecast shift

Because over-forecasting was much more expensive under the competition rule, I shifted forecasts downward using the model’s estimated uncertainty instead of submitting the raw point estimate.

A simple time-series model won because it matched the evaluation rule.

Ranking

1st

Finished first in the competition.

Field

~70

Approximate number of participants in the event.

Lesson

Objective first

The scoring rule mattered as much as the model choice.

Forecasting quality depends on matching the model to the decision context.

What mattered

The important choice was not chasing a more fashionable model. It was recognizing that the competition rewarded cautious forecasts under uncertainty, then shaping the preprocessing and prediction logic around that fact.

Why it worked

A restrained ARIMA workflow performed well because the signal was cleaned, the variance was reduced, and the final forecast was adjusted to fit the real scoring objective instead of a generic benchmark.

Continue with connected pages

Case studies and methods that connect to the same operational questions.

Method

Seasonality Index for Inventory Planning

An inventory planning method that estimates SKU-level seasonality, groups products into seasonal buckets, and connects those signals back to category planning.

Format: Method note built around product-level seasonality and seasonal buckets.

Back to all work