Synthetic time series constitute a substantial share of the training corpora of several recent forecasting foundation models. Existing studies report benefits at small data budgets and modest synthetic proportions, but each evaluates individual combinations of model and generator. Studying these benefits systematically requires generators that support controlled configuration, perturbation, reproducibility and mechanism-level ablation, and the 11 existing generators we review show gaps in this combined support. We present SynForecast, an open-source Python library with 32 generators, 19 of which implement named mechanisms with a published source in econometrics, quantitative finance, statistical physics and point-process theory. Perturbations and mechanism families can be varied while everything else is held fixed, output comes in the long format that forecasting libraries accept, and output does not depend on the number of parallel workers. We evaluate SynForecast on M4 at five frequencies with a neural network and a gradient-boosted ensemble. A classical baseline attains the lowest error in nine of ten frequency-history combinations. A synthetic prior outperforms the same network trained from scratch at a fixed budget by up to 34% with a few dozen observations, but loses to it at full history at every frequency, and none of three pre-specified rescalings of history predicts where the sign changes. At the hourly frequency, where the prior fails at every history, the corpus lacks daily cycles; adding them reduces zero-shot error by 43 to 63% for both models. Fine-tuning outperforms training from scratch by up to about 15%, but at short histories a fixed 300-step fine-tune is worse than the pretrained model used as is. Removing the classical mechanism family costs about 2% for both models; every other family has a smaller effect outside the hourly frequency.
Figures & tables
Figure 1: From configuration to panel. Before dispatch, a master random stream initialized with seed s samples series lengths ni , generation seeds gi , and one seed per overlay and series. Workers generate base trajectories xi under mechanism configuration θ using their assigned generation seeds. Changepoints C , anomalies A and missingness M are then applied in sequence, each using its own seeded random stream. The resulting series are assembled into a long-format dataframe. Each stage is annotated with the design requirement it addresses.
Figure 2: Example output for monthly series of length 144. Top: three generators from each of the five groups, using default mechanism parameters except for the seasonal settings of SARIMA, ETS and the Gaussian process. Jointly generated panels are illustrated with two series each. Bottom: a seasonal series with each overlay enabled separately, superimposed on the same base trajectory without overlays (gray). Dashed lines indicate changepoint positions, markers identify anomalies, and the gray base trajectory remains visible through the missing block.
Statistical
Best learned
Frequency
History
Seas. Naive
AutoETS
NHITS
LightGBM
Hourly
96 obs
1.293 (0.004)
1.839 (0.006)
2.065 (0.021)
1.743 (0.010)
full
1.195 (0.004)
1.603 (0.006)
1.412 (0.012)
1.443 (0.006)
Daily
28 obs
1.490 (0.013)
1.229 (0.013)
1.418 (0.013)
1.390 (0.012)
full
1.441 (0.015)
1.205 (0.037)
1.150 (0.014)
1.332 (0.065)
Weekly
104 obs
1.151 (0.002)
0.723 (0.004)
0.777 (0.004)
0.793 (0.005)
Table 1: Mean seasonal MASE, control arm, over 30 replicates and 300 series, with the standard error across replicates in parentheses. “Best learned” is the lowest of from_scratch , zero_shot and pretrain_ft for NHITS, or of the first two for LightGBM. Lower is better; the best value in each row is bold.
Figure 3: Relative improvement Δa→b (Eq. 3 , %) of the condition named first over the condition named second, NHITS, mean over 30 replicates, by frequency and history level; the small number in each cell is the history in observations; Table S2 in the supplementary material gives each value with its 95% interval. Bold values are significant after Holm correction within the 30 tests of a panel (Wilcoxon signed-rank test across replicates). Blue favors the first condition, orange the second; the color scale is clipped at ±40 %.
Figure 4: Improvement of the synthetic prior ( zero_shot ) over target-specific training ( from_scratch ) against history, NHITS, under the three candidate normalizations. Bands are 95% intervals over 30 replicates; the dashed line is parity. The vertical scale is linear within ±25 % and logarithmic beyond it, with the transition marked by a dotted rule: hourly reaches −359 %, which on a linear scale compresses the four frequencies that carry the argument into an illegible band around parity. No point is clipped. All three panels are shown because none of them collapses the five frequencies onto a common curve: in (b), seasonal cycles, the crossings span 4.2 (weekly) to 45.3 (daily). Hourly is negative throughout.
Frequency
Raw (obs)
Cycles
History/horizon
Quarterly
83.7
20.9
10.5
Monthly
171.9
14.3
9.5
Weekly
220.1
4.2
16.9
Daily
316.8
45.3
22.6
CV
0.491
0.824
0.411
95% CI
[0.459, 0.628]
[0.783, 0.975]
[0.375, 0.556]
Table 2: Crossover location by frequency and normalization, NHITS, in realized training observations, over 30 replicates. Hourly is excluded because the effect is negative at every level; that exclusion was the pre-specified handling for a frequency with no crossing. CV is the coefficient of variation across the four remaining frequencies, with a bootstrap 95% interval over replicates. Figure 4 is generated independently from the same cells and its interpolated crossings agree with this table to within 0.1 observations.
Uncovered evaluated series
Frequency
n
Synthetic
Real
Gap
Full
Quarterly
1000
0.27
0.10
+0.17
0.26
Monthly
1000
0.38
0.11
+0.26
0.35
Weekly
59
0.44
0.29
+0.14
0.09
Daily
1000
0.10
0.03
+0.07
0.10
Hourly
114
0.72
0.24
+0.48
0.47
Table 3: Feature-space coverage of the evaluated M4 series, mean over replicates 0–2. “Uncovered” is the fraction of evaluated series lying in grid cells (30 × 30, PCA fitted on the evaluated series) that the comparison sample does not occupy. The comparison samples are the round’s pretraining corpus and other M4 series of the same frequency, subsampled to the same size, n ; at weekly and hourly n is limited by the series M4 has outside the evaluated subsample. “Full” scores the whole control corpus instead of a sample of size n . At weekly, 54 to 56 of the 300 evaluated series have undefined features and are dropped.
History (observations)
96
144
240
384
672
Full
Zero-shot MASE relative to Seasonal Naive
NHITS, series
2.34
2.44
2.72
3.28
4.52
5.38
with cycles
1.34
1.37
1.44
1.56
1.80
2.01
NHITS, window
2.17
2.11
2.07
2.02
1.98
1.91
with cycles
1.51
1.48
1.46
1.44
1.42
1.39
Table 4: Hourly follow-up: the pretraining corpus without (control) and with calendar cycles, mean over 30 replicates. Top: zero-shot MASE relative to Seasonal Naive. Bottom: improvement Δ (Eq. 3 , %) of the zero-shot model over the same model trained from scratch; bold values are significant after Holm correction across the six history levels (Wilcoxon signed-rank test across replicates). Series and window name NHITS’s input standardization. The control rows, including those with the window scaler, come from the follow-up run, not from the main experiment, so they differ slightly from the main-experiment values quoted in the text.
Figure 5: Effect of removing each mechanism family on zero-shot accuracy (Eq. 5 ), primary population (daily, weekly, monthly and quarterly; three history levels each; 20 replicates), with 95% intervals from a bootstrap over replicates. Positive: the family helps. Families: classical = SARIMA, ETS, INAR; Gaussian process = four GP instances; heavy-tail and regime = GARCH, Lévy, regime switching; other stochastic = fractional Brownian motion, chaotic, bounded, cyclic; domain = intermittent demand, energy load, IoT sensor, vital signs; procedural = TSI, TCM, KernelSynth; MAR = three non-seasonal mixture-autoregressive instances. Table 7 also reports the pre-specified replicates 0–9.
Figure 6: Change in MASE caused by one level shift of three times the series’ median standard deviation, by its position relative to the forecast origin; monthly SARIMA panels, 5 replicates of 300 series, mean ± one standard error across replicates. The shaded position lies inside the 18-step forecast window.
Appendix figures & tables9 assets
Supplementary material from the paper’s appendix.
Appendix
Generator
Version inspected
(i)
(ii)
(iii)
(iv)
Base mechanisms
gratis (R) ( Kang et al., 2020 )
1.0.8
yes
no
partly
partly
3: MAR, ARIMA, ETS
GluonTS dataset.artificial ( Alexandrov et al., 2020 )
commit d60556c
yes
partly
partly
partly
2 presets, about 14 primitives
Darts generators ( Herzen et al., 2022 )
0.47.0
partly
no
no
partly
6
TimeSynth
0.2.4
no
partly
no
partly
7
TSGM simulators ( Nikitin et al., 2024 )
0.1.0
no
partly
partly
partly
3 simulators
GutenTAG ( Wenig et al., 2022 )
1.5.0
partly
partly
yes
yes
13 base oscillations
Appendix
Table 5: Existing generators against the requirements of Section 1 : (i) output carries a frequency, a time origin and a series identity; (ii) a perturbation can be varied while the base series stays bit-identical; (iii) output is identical under parallel execution; (iv) many named generating processes, each removable. Yes means fully met. For (ii), partly means perturbations act on a generated series but their isolation follows from draw order or a shared random stream and is not guaranteed. For (iii), partly means the library exposes a seed but either generates in one process or gives no guarantee across worker counts; no means no seed is exposed. For (iv), yes means ten or more mechanisms the user can select individually, partly two to nine, or primitives the user composes, and no a single family whose components the user cannot select. A dash marks a property that cannot be assessed without code. TimeSynth has no publication; its repository, last updated in 2020, is https://github.com/TimeSynth/TimeSynth .
(a) Throughput against worker count
Workers
Median (s)
Series/s
Speedup
Efficiency
1
5.05
171
1.00
1.00
2
3.89
222
1.30
0.65
4
2.77
312
1.82
0.46
6
2.33
371
2.17
0.36
8
2.06
419
2.45
0.31
Appendix
Table 6: Generation throughput. Panel (a) holds total work fixed at 864 series of 1,024 observations from the 54-instance pretraining pool and varies the worker count; medians of five interleaved repetitions on 20 logical cores. Panel (b) is the cost of one pretraining draw at each frequency, as the experiments of this section generated it: 54 instances, 26 series each, four workers. Each draw runs in a fresh process, and peak resident memory is that process’s own.
Primary population
Hourly
Family removed
Replicates
Inst.
NHITS
LightGBM
NHITS
LightGBM
Classical
0–19
11
+1.83[+1.15,+2.51]
+2.30[+1.93,+2.63]
+2.2
−2.3
0–9
+1.69[+0.91,+2.51]
+2.46[+1.85,+2.98]
Gaussian process
0–19
4
+0.88[+0.25,+1.53]
+0.93[+0.71,+1.13]
+9.8
+10.8
0–9
+0.90[−0.18,+2.06]
+0.98[+0.67,+1.27]
Heavy-tail, regime
0–19
6
+0.98[+0.47,+1.45]
+0.83[+0.52,+1.11]
−1.0
−6.6
Appendix
Table 7: Mechanism-family ablation. Effect =100×log (geometric-mean zero-shot MASE, arm / control); positive means removing the family made zero-shot accuracy worse , so the family contributes. For each family, the first row is the run as executed (replicates 0–19) and the second the pre-specified replicates 0–9 ( C ). Primary population: daily, weekly, monthly and quarterly, three history levels each; 95% interval from a bootstrap over replicates; bold where the interval excludes zero. Hourly is reported separately, as a point estimate on replicates 0–19. Families: classical = SARIMA, ETS, INAR; Gaussian process = four GP instances; heavy-tail and regime = GARCH, Lévy, regime switching; other stochastic = fractional Brownian motion, chaotic systems, bounded processes, cyclic; domain = intermittent demand, energy load, IoT sensor, vital signs, of whose 11 instances one almost never contributes (Section 4.1 ); procedural = TSI, TCM, KernelSynth; MAR = three non-seasonal mixture-autoregressive instances.
Frequency
History level
(a) zero_shot over from_scratch
Quarterly
+ 32.5 ± 0.9
+ 33.4 ± 0.7
+ 31.5 ± 1.3
+ 29.1 ± 1.6
+ 21.0 ± 2.0
− 7.3 ± 2.1
Monthly
+ 26.1 ± 1.0
+ 24.5 ± 1.1
+ 24.3 ± 1.1
+ 19.8 ± 1.2
+ 10.5 ± 1.8
− 8.9 ± 1.8
Weekly
+ 6.5 ± 0.9
+ 3.6 ± 0.8
+ 2.2 ± 1.0
− 0.5 ± 1.1
− 7.9 ± 1.3
− 17.2 ± 3.6
Daily
+ 34.1 ± 0.9
+ 29.4 ± 1.0
+ 17.5 ± 1.4
+ 8.8 ± 1.3
− 1.0 ± 1.7
− 17.4 ± 2.8
Hourly
− 51.0 ± 5.8
− 60.5 ± 5.7
− 82.2 ± 7.0
− 122.8 ± 8.7
− 248.0 ± 13.4
− 358.6 ± 19.7
Appendix
Table S1: The values of Figure 3 of the article with their uncertainty: relative improvement (%) of the condition named first over the condition named second, NHITS, mean over 30 replicates, with the half-width of the 95% t interval over replicates; history levels from the shortest (left) to full history (right), as in Figure 3 of the article.
Break position (obs)
Seas. Naive
AutoETS
NHITS
72 before
+0.000 (0.000)
+0.070 (0.006)
+0.005 (0.002)
36 before
+0.000 (0.000)
+0.070 (0.005)
+0.014 (0.004)
18 before
+0.000 (0.000)
+0.078 (0.004)
+0.334 (0.229)
6 before
+1.140 (0.105)
+0.150 (0.024)
+1.393 (0.037)
1 before
+1.620 (0.162)
+1.441 (0.127)
+1.903 (0.107)
6 after
+1.140 (0.110)
+1.280 (0.086)
+1.333 (0.114)
Appendix
Table S2: Change in MASE caused by one level shift, by its position relative to the forecast origin; mean over 5 replicates of 300 monthly SARIMA series (standard error across replicates). Breaks “before” fall in the training window; “after” falls in the forecast window. MASE without a break: Seasonal Naive 1.012, AutoETS 0.807, NHITS 0.716.
vs from_scratch
vs zero_shot
Frequency
Mean (%)
Win rate
Levels
MDE (%)
Mean (%)
Win rate
Levels
Quarterly
+12.96
0.97
6/6
2.0–2.9
†
0.17
6/6
Monthly
+4.98
0.91
5/6
1.1–1.6
†
0.17
6/6
Weekly
†
0.68
5/6
0.8–1.4
†
0.60
4/6
Daily
†
0.82
6/6
0.7–1.7
†
0.32
6/6
Hourly
−16.96
0.01
6/6
2.3–4.1
+46.29
1.00
6/6
Appendix
Table S3: pretrain_ft against from_scratch and against zero_shot , NHITS, 30 replicates. Positive favors fine-tuning. Each history level is tested on its 30 replicates with a Wilcoxon signed-rank test; “Levels” counts the six levels that reach significance after Holm correction within each family of 30 tests (5 frequencies × 6 history levels), one family per comparison. Mean and win rate are averaged over levels; † marks a frequency whose per-level effect changes sign with history, for which no mean is given (per-level values with intervals are in Table S2). MDE is the minimum detectable effect at 80% power on the per-replicate percentage differences, under a normal approximation, as a range across levels.
Frequency
History level
Quarterly
− 2.4 (16)
− 3.3 (20)
− 3.6 (32)
− 5.3 (48)
− 3.1 (64)
+ 1.8 (full)
Monthly
− 2.1 (36)
− 3.4 (48)
− 1.9 (72)
− 0.4 (108)
− 1.3 (144)
+ 2.2 (full)
Weekly
− 2.3 (104)
− 1.7 (156)
− 2.4 (208)
− 1.2 (260)
+ 0.5 (416)
+ 0.9 (full)
Daily
+ 1.9 (28)
− 1.6 (56)
− 3.0 (112)
− 3.9 (182)
+ 0.3 (364)
− 1.3 (full)
Hourly
+ 3.0 (96)
+ 17.7 (144)
+ 19.7 (240)
+ 22.6 (384)
+ 21.9 (672)
+ 15.6 (full)
Appendix
Table S4: Sensitivity check E1b: improvement (%) of NHITS trained from scratch for 1,000 steps over 300 steps, mean over the ten replicates that ran it, by frequency and history level (nominal history level in parentheses). Positive favors 1,000 steps. Bold where the 95% replicate-bootstrap interval excludes zero. With ten replicates and Holm correction over 30 tests no level can reach significance (smallest attainable adjusted p=0.059 ), so the check is reported as estimates.
NHITS
LightGBM
Frequency
Shortest
Full
Shortest
Full
Quarterly
1.12
1.08
1.11
1.17
Monthly
1.07
1.02
1.01
0.99
Weekly
0.67
0.56
0.69
0.68
Daily
0.95
0.94
0.93
1.12
Hourly
2.41
5.40
3.13
6.37
Appendix
Table S5: Mean zero-shot MASE relative to mean Seasonal Naive MASE over 30 replicates, at the shortest and at full history, control arm.
Item
Expectation
Outcome
Held
Baselines
A statistical baseline is lowest in at least 8 of the 10 rows of Table 1 of the article
9 of 10
Yes
Crossover
Zero-shot beats scratch at the shortest history and loses at full history at four of five frequencies, hourly negative; the rule returns no collapse, history/horizon least and cycles most dispersed
As expected, for both models
Yes
Fine-tuning
Fine-tuning beats scratch at quarterly at all six levels, at least four significant
Six of six significant, +13 %
Yes
The quarterly effect is presented as reliable only if fine-tuning is nowhere significantly worse than zero-shot
Significantly worse at short histories
Not presented
The sign alternation of an earlier run at daily and hourly does not recur
It does not
Yes
Budget (E1b)
1,000-step scratch beats 300 at full history at four or more frequencies; the zero-shot advantage survives
Better at full history at hourly; at the other frequencies within ±2.2% , and worse at most shorter histories; the advantage survives
No
Appendix
Table S6: Pre-specified expectations against outcomes.
Choosing the wrong synthetic generator for time-series foundation model pretraining is costly: under identical training budgets, the best and worst generators produce up to a 2× gap in forecasting error, yet the field has no principled way to make this choice. The problem is compounded by the fact that generator rankings are not stable across architectures: across 11 generator families evaluated on Chronos-T5-Mini and Moirai-Small trained from scratch, we find that which generators are useful depends on the model architecture. Rather than solving the generator selection problem, we sidestep it: a simple equal-weight mixture of all generators matches or beats the best individual generator for both architectures, and composing this mixture with real data yields the strongest pretraining corpora overall. Synthetic pretraining is therefore a corpus composition problem, not a generator selection problem, and composition choices should be validated per model family rather than assumed to transfer.
Aaryan Nagpal, Debdeep Sanyal, Murari Mandal +2
Birla AI Labs, Mumbai, India · KIIT, Bhubaneswar, India · BITS Pilani, Pilani, India
Synthetic data has transformed language model training, yet its role in time series forecasting remains poorly understood. We present a large-scale empirical study: nine experiment groups, 4,218 runs systematically evaluating synthetic time series augmentation across five architectures, four synthetic signals and seven datasets. The effect is sharply architecture-conditional: channel-mixing models (TimesNet, iTransformer) benefit in the majority of trials, while channel-independent models (DLinear, PatchTST) are consistently degraded. In selected low-resource settings the gains are striking: TimesNet trained on only 10% of Weather data with synthetic augmentation surpasses the full-data baseline (4 of 16 sparsity-dataset combinations). Averaged across all architectures, augmentation hurts in 67% of trials. We further find that only the Seasonal-Trend generator reliably helps across the tested benchmarks, and that hard curriculum switching is actively harmful (+24% MSE degradation). These results provide concrete, actionable guidelines on how to use synthetic data: use synthetic augmentation with channel-mixing architectures, use gradual annealing schedules, and treat low-resource augmentation as architecture- and dataset-dependent. Code is available at \href{https://github.com/hugoiscracked/synthetic-ts/tree/main}
Hugo Cazaux, Eyjólfur Ingi Ásgeirsson, Hlynur Stefánsson
Department of Engineering Reykjavík University Iceland, Menntavegur 1, 102
Foundation models for zero-shot time series forecasting face challenges in efficient long-horizon prediction and reproducibility, with existing synthetic-only approaches underperforming on challenging benchmarks. This paper presents TempoPFN, a univariate time series foundation model based on linear Recurrent Neural Networks (RNNs) pre-trained exclusively on synthetic data. The model uses a GatedDeltaProduct architecture with state-weaving for fully parallelizable training across sequence lengths, eliminating the need for windowing or summarization techniques while maintaining robust temporal state-tracking. Our comprehensive synthetic data pipeline unifies diverse generators, including stochastic differential equations, Gaussian processes, and audio synthesis, with novel augmentations. In zero-shot evaluations on the Gift-Eval, fev-bench and Chronos-ZS benchmarks, TempoPFN achieves top-tier competitive performance, surpassing the majority of models trained on real-world data, while leveraging fully parallelizable training and inference. We open-source our complete data generation pipeline and training code, providing a reproducible foundation for future research.
Vladyslav Moroshan, Julien Siems, Arber Zela +2
University of Freiburg · ELLIS Institute Tübingen · Prior Labs