Ask a model for next month's number and it will give you one, confidently, to several decimal places. The precision is free. The honesty costs extra.
The problem with a single number
A point forecast answers "what's most likely?" Most decisions need a different answer: "how wrong could this be, and what happens if it is?"
Planning for the mean means being caught out roughly half the time. A prediction interval makes that risk visible.
A simple way to get one
If you have residuals from a backtest, you can build an empirical interval without any distributional assumptions:
import numpy as np
def prediction_interval(forecast, residuals, coverage=0.9):
tail = (1 - coverage) / 2
low, high = np.quantile(residuals, [tail, 1 - tail])
return forecast + low, forecast + highIt assumes future errors look like past ones, which is the sort of assumption that holds right up until it doesn't.
The takeaway
Report the range. The interval is where the useful conversation starts, and it's also a polite way of saying you warned them.
