Skip to main content
StatsForecast fits each series independently, so synthetic data plays a different role here than it does for global models. This guide establishes three things in order: augmenting a panel cannot change a local fit, there is no local-model equivalent of pretraining, and a generated series with a known process makes a good pipeline check. AutoETS and its siblings share no parameters across series. Everything below follows from that. We use the classic Box–Jenkins airline passenger series. Its final 12 months are held out before SynAugment analyzes the training history.

1. Augmentation cannot change a local fit

Adding synthetic series gives AutoETS more series to fit, but no pooled parameter for them to influence, so the model fitted to the airline series is untouched. Sixteen SynAugment counterparts are added under a SARIMA override; the 12-month holdout is removed first, so no future value reaches the augmenter.
Both workflows score the same because they are the same fit. In the chart the augmented forecast is drawn as a thick translucent band with the observed-only line on top of it — one visible line means the two coincide exactly.

2. There is no local-model pretraining

Because nothing is shared, fitting AutoETS to synthetic histories produces forecasts for those histories, not for the airline series. Averaging them is not a shortcut either, and the table below shows why: SynAugment matches each draw to the mean of the training window, which leaves the final level free. On a strongly trending series the two are far apart, so the draws end scattered around the observed endpoint.

3. Validate the pipeline on a known process

The two sections above used the airline series, whose true process nobody knows. A generated series is different: you chose the process, the seasonal period, and the noise scale, so you know in advance what a correctly configured pipeline should be able to do. That makes it a check with a known answer. The twelve series below come from an additive ETS process with a 12-period season, and the last 12 points of each are held out. AutoETS should beat SeasonalNaive by a wide margin, because the data really does contain the smooth trend-plus-season structure AutoETS fits and SeasonalNaive ignores. If it does not, the pipeline is misconfigured — and you have learned that without touching real data.
AutoETS comes in around four times more accurate than SeasonalNaive, which is the outcome the generated structure predicts. That is the whole check: a known-answer test that fails loudly when the frequency, the season length, or the model family is set up wrongly. For a sense of how much of the remaining error is irreducible, the noise is Gaussian with standard deviation NOISE_STD, so the best any forecaster could do one step ahead is a mean absolute error of NOISE_STD * sqrt(2 / pi). Forecasting twelve steps ahead must do worse than that, since an additive-error ETS accumulates innovations into its state as the horizon grows — so treat the number below as a lower bound to sit above, not a target to reach.
For local models, synthetic data is a test instrument rather than extra training signal. Augmentation is inert, aggregating synthetic fits is not a substitute for pretraining, and generating from a process you configured yourself gives you a check whose answer you already know. Panel augmentation does help model families that pool parameters across series — see the MLForecast and NeuralForecast guides. Synthetic panels are also useful here for stress testing: inject anomalies or changepoints with known positions and measure how far the fitted model moves.