ChatGPT for time series: test the forecast from the time it was made

Tell ChatGPT the forecast origin and horizon before asking it to evaluate a time series. For a two-step forecast made after observation 3, training may use observations 1 through 3 and the target is observation 5. Using observation 4 to construct that forecast borrows information that was unavailable at its stated origin.

Write the chronological evaluation schedule before asking for a more elaborate model. A baseline with the wrong information boundary makes later accuracy comparisons misleading.

Keep the horizon fixed as the origin moves

This original fictional series has eight equally spaced periods. The values are unit counts: 10, 12, 11, 15, 14, 18, 17, 20. They are teaching data, not measured business demand.

Use an expanding training window, a minimum of three observations, and a fixed horizon of two periods. For a last-observation baseline, every forecast equals the last value available at its origin:

Origin Training positions Target Baseline forecast Actual Absolute error
3 1 through 3 5 11 14 3
4 1 through 4 6 15 18 3
5 1 through 5 7 14 17 3
6 1 through 6 8 18 20 2

The expected mean absolute error is (3+3+3+2)/4 = 2.75 units for these four two-step targets. These are independently calculated teaching expectations, not scores from a fitted model or a ChatGPT run.

The rolling-origin cross-validation discussion, checked October 24, 2026, in Forecasting: Principles and Practice describes evaluating forecasts using only earlier observations at each training cutoff and extending the procedure to multiple steps. Here, the schedule states exactly which earlier observations are eligible.

Catch the intermediate-observation mistake

For the first row, using value 15 at position 4 would produce an error of 1 against target 14 at position 5. But that is a one-step last-observation forecast from origin 4. It cannot replace the two-step forecast issued at origin 3.

A rolling evaluation may legitimately use position 4 when the origin advances to 4. Keep each forecast's origin attached to its target and prediction so that an observation's eligibility is explicit. The same date can be unavailable for one forecast and available for a later one.

Preprocessing must follow those cutoffs too. Fit any learned scaling or imputation on the training window and apply it forward. Preserve the actual frequency and define how missing periods are treated; shuffling rows or silently closing date gaps changes the task.

Ask for the schedule before analysis code

Plan a time-series backtest. Do not fit a model or alter data yet.
Time column, frequency, units and observation availability: [ENTER]
Forecast issue time, horizon and operational question: [ENTER]
Permitted history and missing-period policy: [PASTE]
Covariates and when each becomes known: [ENTER]

For the teaching fixture y=[10,12,11,15,14,18,17,20], use expanding
windows with minimum length 3 and horizon 2. List each origin, eligible
training positions, target position, last-observation baseline and
absolute error. Explain why origin 3 cannot use the fourth observation
to predict the fifth.
Keep horizon-specific errors separate. Identify any preprocessing
that must be learned within a fold and any unresolved availability
rules. Do not shuffle the series, fill gaps by assumption, tune on
future targets, invent a fitted model or claim operational accuracy.

The data-science portfolio guide explains presenting a checked evaluation; this task establishes its chronological input boundary first. Run the approved fold schedule in the maintained notebook. Keep origin, horizon, target, baseline and model prediction in the output so a reviewer can recompute each error without guessing what was known when.

Keep reading