Simple exponential smoothing can't follow a trend: forecasts lag behind growing sales. Holt's method tracks both a level and a trend :
Initialise with and , then update for . The forecast steps after the last observation is .
Implement holt_forecast(y, alpha, beta, horizon) returning a list of horizon forecasts. Raise ValueError if y has fewer than 2 points. Then implement mape(actual, forecast), the mean absolute percentage error as a percentage, skipping points where the actual value is 0.