Charts /
CH-TIM-08
CH-TIM-08 . family TIM
FAN
actual line continuing into declared forecast bands. Needs: actuals + forecast median with declared p25-p75 and p10-p90 bands.
trenduncertainty
Use when
- forecasts that honestly show their spread
- committing to a range instead of a false point estimate
Do not use when
- fabricating bands the model never produced
- showing only the median (that is CH-TIM-01 with a dashed tail)
See instead
Alternatives
- CH-TIM-02 (progress vs plan, no uncertainty)
- CH-DST-10 (uncertainty on categories)
Rules
- bands are DECLARED quantiles; the source names the method
- median dashed: it is an estimate, not a measurement
- the forecast region is visibly divided from actuals
- y starts at zero
Never do this
- bands without a named method
- solid median implying certainty
- hiding the actual/forecast boundary
QA before delivering
- method in the source line
- band90 contains band50 contains median
- median dashed
- unit once
- source present
Data shape
| title | action title naming the range |
| source | must state the forecast method |
| unit | on the top tick |
| x | all period labels, actual + forecast |
| split | count of actual periods |
| actual | values for the first split periods |
| median | forecast medians |
| band50 | [[lo,hi]] p25-p75 |
| band90 | [[lo,hi]] p10-p90 |
Sample data (golden)
{
"title": "The forecast reaches 70 by October, inside a 22-point spread",
"eyebrow": "PROGRESS FORECAST",
"source": "Source: sample dataset v1; quantile forecast, monthly refit",
"unit": "%",
"x": [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct"
],
"split": 6,
"actual": [
40,
44,
47,
52,
55,
58
],
"median": [
61,
64,
67,
70
],
"band50": [
[
59,
63
],
[
61,
67
],
[
63,
71
],
[
65,
75
]
],
"band90": [
[
56,
66
],
[
57,
71
],
[
58,
76
],
[
59,
81
]
]
}