TempoPFN: Synthetic Pre-training of Linear RNNs for Zero-shot Time Series Forecasting
Organizations: University of Freiburg · ELLIS Institute Tübingen · Prior Labs
Abstract
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.
Figures & tables
| Criterion | TiRex | TabPFN-TS | Mamba4Cast | Chronos | TempoPFN |
|---|---|---|---|---|---|
| Fully open-source data pipeline | ✗ | ✗ | ✓ | ✗ | ✓ |
| Open-source training code | ✗ | ✗ | ✓ | ✓ | ✓ |
| Competitive with SOTA performance | ✓ | ✓ | ✗ | ✓ | ✓ |
| Fast training and inference | ✓ | ✗ | (✓) | (✓) | ✓ |
| Purely synthetic pretraining | ✗ | (✓) | ✓ | ✗ | ✓ |
| Rank | Model | Avg. Win Rate (%) | Skill Score (%) | Median Runtime (s) | Leakage (%) | Failed Tasks (%) | Organization | Zero-shot |
|---|---|---|---|---|---|---|---|---|
| 1 | Chronos-2 | 87.7 | 35.5 | 2.69 | 0 | 0 | AWS | ✓ |
| 2 | TiRex | 76.5 | 30.0 | 1.40 | 1 | 0 | NX-AI | ✓ |
| 3 | TimesFM 2.5 | 74.8 | 30.2 | 16.92 | 10 | 0 | ✓ | |
| 4 | Toto 1.0 | 66.6 | 28.2 | 90.74 | 8 | 0 | Datadog | ✓ |
| 5 | TempoPFN | 62.4 | 25.7 | 20.67 | 0 | 0 | Uni Freiburg / ELLIS | ✓ |
| 6 | Moirai 2.0 | 60.4 | 27.3 | 2.46 | 28 | 0 | Salesforce | ✓ |
| Gift-ZS Overall | Gift-ZS Short | Gift-ZS Medium | Gift-ZS Long | |||||
|---|---|---|---|---|---|---|---|---|
| Model | CRPS | MASE | CRPS | MASE | CRPS | MASE | CRPS | MASE |
| TempoPFN (Linear RNN, 40M) | 0.577 | 0.842 | 0.563 | 0.763 | 0.566 | 0.900 | 0.631 | 1.019 |
| chronos-2-small (Transformer, 28M) | 0.581 | 0.849 | 0.578 | 0.784 | 0.571 | 0.913 | 0.619 | 1.001 |
| seasonal_naive | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Gift-ZS Overall | Gift-ZS Short | Gift-ZS Medium | Gift-ZS Long | ||||||
| Ablation | Source | CRPS | MASE | CRPS | MASE | CRPS | MASE | CRPS | MASE |
| Base Model | – | ||||||||
| - GP | A | ||||||||
| - Kernel | A | ||||||||
| - ForecastPFN | A | ||||||||
| - Sawtooth | N | ||||||||
| Gift-ZS Overall | Gift-ZS Short | Gift-ZS Medium | Gift-ZS Long | |||||
|---|---|---|---|---|---|---|---|---|
| Model | CRPS | MASE | CRPS | MASE | CRPS | MASE | CRPS | MASE |
| w/ Aug | 0.577 | 0.842 | 0.563 | 0.763 | 0.566 | 0.900 | 0.631 | 1.019 |
| w/o Aug | 0.610 | 0.875 | 0.582 | 0.783 | 0.617 | 0.963 | 0.643 | 1.059 |
| seasonal_naive | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
Appendix figures & tables34 assets
Supplementary material from the paper’s appendix.
Appendix
| Parameter | Range / Distribution |
|---|---|
| Integration step size | |
| Initial value | |
| Regime 0 mean reversion | |
| Regime 0 mean | |
| Regime 0 volatility | |
| Regime 0 vol. process |
| Generator | Source | Length | Series / Sec |
|---|---|---|---|
| Cauker | A | 2048 | |
| GP | A | 2048 | |
| Kernel | A | 2048 | |
| ForecastPFN | A | 2048 | |
| Sawtooth | N | 2048 | |
| Sinewave | N | 2048 |
| Category | Parameter | Value |
| Model | Total Parameters | 40M |
| Embedding size ( embed_size ) | 512 | |
| Encoder layers | 10 | |
| Number of heads ( num_heads ) | 4 | |
| Encoder attention mode | chunk | |
| Short convolution kernel size | 32 |
| Gift-ZS Overall | Gift-ZS Short | Gift-ZS Medium | Gift-ZS Long | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Ablation | Source | CRPS | MASE | CRPS | MASE | CRPS | MASE | CRPS | MASE |
| Base Model | – | 0.577 | 0.842 | 0.563 | 0.763 | 0.566 | 0.900 | 0.631 | 1.019 |
| + Cauker | Adapted | 0.600 | 0.875 | 0.583 | 0.789 | 0.615 | 0.964 | 0.631 | 1.043 |
| + GP | Adapted | 0.632 | 0.897 | 0.607 | 0.812 | 0.666 | 0.993 | 0.666 | 1.053 |
| + Kernel | Adapted | 0.638 | 0.926 | 0.622 | 0.835 | 0.656 | 1.042 | 0.661 | 1.082 |
| + ForecastPFN | Adapted | 0.715 | 1.027 | 0.695 | 0.918 | 0.760 | 1.172 | 0.726 | 1.206 |
| Gift-ZS Overall | Gift-ZS Short | Gift-ZS Medium | Gift-ZS Long | |||||
| Configuration | CRPS | MASE | CRPS | MASE | CRPS | MASE | CRPS | MASE |
| Ablating Positional Encoding: | ||||||||
| Base Model (Sin. Pos. Enc. Off) | 0.561 | 0.820 | 0.553 | 0.751 | 0.556 | 0.880 | 0.590 | 0.962 |
| Sinusoidal Positional Encoding | 0.648 | 0.937 | 0.596 | 0.809 | 0.731 | 1.120 | 0.715 | 1.152 |
| Ablating Number of Householder Matrices (H): | ||||||||
| H=6 | 0.556 | 0.823 | 0.545 | 0.750 | 0.552 | 0.886 | 0.590 | 0.972 |
| Gift-ZS Overall | Gift-ZS Short | Gift-ZS Medium | Gift-ZS Long | |||||
|---|---|---|---|---|---|---|---|---|
| Configuration | CRPS | MASE | CRPS | MASE | CRPS | MASE | CRPS | MASE |
| Base Model (d=512, L=10) | 0.533 | 0.788 | 0.532 | 0.727 | 0.523 | 0.840 | 0.544 | 0.912 |
| d=512, L=10, Weaving Off | 0.537 | 0.790 | 0.532 | 0.723 | 0.533 | 0.862 | 0.553 | 0.914 |
| d=384, L=16 (Narrower, Deeper) | 0.539 | 0.792 | 0.532 | 0.727 | 0.533 | 0.850 | 0.563 | 0.921 |
| d=576, L=8 (Wider, Shallower) | 0.540 | 0.794 | 0.536 | 0.732 | 0.529 | 0.849 | 0.561 | 0.921 |
| seasonal_naive | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Gift-ZS Overall | Gift-ZS Short | Gift-ZS Medium | Gift-ZS Long | |||||
|---|---|---|---|---|---|---|---|---|
| LR Scheduler | CRPS | MASE | CRPS | MASE | CRPS | MASE | CRPS | MASE |
| WarmupStableDecay | 0.554 | 0.812 | 0.544 | 0.740 | 0.550 | 0.877 | 0.584 | 0.956 |
| CosineWithWarmup | 0.559 | 0.817 | 0.552 | 0.751 | 0.550 | 0.873 | 0.588 | 0.955 |
| CosineWithRestarts | 0.559 | 0.820 | 0.552 | 0.755 | 0.552 | 0.874 | 0.585 | 0.953 |
| Cosine (no warmup) | 0.561 | 0.820 | 0.553 | 0.751 | 0.556 | 0.880 | 0.590 | 0.962 |
| seasonal_naive | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Model | Params (M) | Training Time | Inference Time | Memory | Parallelization |
|---|---|---|---|---|---|
| TiRex ( Auer et al., 2025 ) | 35 | Work: Depth: (window ) | AR: Depth: | (streaming) | Low (sequential sLSTM) |
| TabPFN-TS ( Hoo et al., 2024 ) | 11 | Moderate (attention) | |||
| TimesFM-2.0 ( Das et al., 2024 ) | 500 | Direct: | High (transformer) | ||
| Chronos ( Ansari et al., 2024 ) | 9–205 | AR: | High (transformer) | ||
| MOIRAI-MoE ( Liu et al., 2025b ) | 14–935 | High (MoE + transformer) | |||
| TempoPFN (ours) | 40 | Work: Depth: | Work: Depth: Horizon: | (streaming) or (cached) | Full (sequence-parallel) |
| Rank | Model | Avg. Win Rate (%) | Skill Score (%) | Median Runtime (s) | Leakage (%) | Failed Tasks (%) | Organization | Zero-shot |
|---|---|---|---|---|---|---|---|---|
| 1 | Chronos-2 | 90.9 | 47.3 | 2.69 | 0 | 0 | AWS | ✓ |
| 2 | TiRex | 82.1 | 42.6 | 1.40 | 1 | 0 | NX-AI | ✓ |
| 3 | TimesFM 2.5 | 77.1 | 42.2 | 16.92 | 10 | 0 | ✓ | |
| 4 | Toto 1.0 | 69.6 | 40.7 | 90.74 | 8 | 0 | Datadog | ✓ |
| 5 | TempoPFN | 65.3 | 38.3 | 20.67 | 0 | 0 | Uni Freiburg / ELLIS | ✓ |
| 6 | Moirai 2.0 | 63.4 | 39.3 | 2.46 | 28 | 0 | Salesforce | ✓ |
| Dataset | TempoPFN | TiRex | FlowState-9.1M | Toto_Open_Base_1.0 | TabPFN-TS | YingLong_50m | Chronos Bolt B | TTM-R2-Finetuned | Moirai L 1.1 | Moirai B 1.1 |
|---|---|---|---|---|---|---|---|---|---|---|
| bitbrains_fast_storage/5T/long | 0.555 | 0.558 | 0.701 | 0.568 | 0.752 | 0.586 | 0.635 | 0.796 | 0.608 | 0.622 |
| bitbrains_fast_storage/5T/medium | 0.516 | 0.516 | 0.651 | 0.525 | 0.792 | 0.537 | 0.631 | 0.690 | 0.531 | 0.553 |
| bitbrains_fast_storage/5T/short | 0.334 | 0.334 | 0.422 | 0.306 | 0.547 | 0.343 | 0.375 | 0.465 | 0.340 | 0.341 |
| bitbrains_fast_storage/H/short | 0.632 | 0.683 | 0.684 | 0.609 | 0.655 | 0.610 | 0.757 | 1.007 | 0.632 | 0.600 |
| bitbrains_rnd/5T/long | 0.602 | 0.541 | 0.619 | 0.501 | 0.697 | 0.563 | 0.643 | 0.648 | 0.577 | 0.566 |
| bitbrains_rnd/5T/medium | 0.530 | 0.500 | 0.619 | 0.537 | 0.701 | 0.546 | 0.517 | 0.670 | 0.508 | 0.527 |
| Dataset | TempoPFN | TiRex | FlowState-9.1M | Toto_Open_Base_1.0 | TTM-R2-Finetuned | TabPFN-TS | Chronos Bolt B | YingLong_50m | Moirai L 1.1 | Moirai B 1.1 |
|---|---|---|---|---|---|---|---|---|---|---|
| bitbrains_fast_storage/5T/long | 0.846 | 0.808 | 0.913 | 0.789 | 0.827 | 1.014 | 0.834 | 0.886 | 0.840 | 0.851 |
| bitbrains_fast_storage/5T/medium | 0.896 | 0.815 | 1.033 | 0.807 | 0.876 | 1.072 | 0.871 | 0.889 | 0.836 | 0.860 |
| bitbrains_fast_storage/5T/short | 0.716 | 0.609 | 0.883 | 0.591 | 0.648 | 0.879 | 0.662 | 0.719 | 0.728 | 0.697 |
| bitbrains_fast_storage/H/short | 0.910 | 0.825 | 0.851 | 0.728 | 0.927 | 0.912 | 0.824 | 0.856 | 0.839 | 0.909 |
| bitbrains_rnd/5T/long | 1.005 | 0.954 | 1.007 | 0.953 | 1.001 | 1.107 | 0.970 | 1.002 | 0.977 | 0.985 |
| bitbrains_rnd/5T/medium | 1.001 | 0.967 | 1.009 | 0.972 | 0.997 | 1.064 | 0.979 | 1.004 | 0.982 | 0.997 |
| Dataset | TempoPFN | TiRex | FlowState-9.1M | Toto_Open_Base_1.0 | Chronos Bolt B | TabPFN-TS | YingLong_50m | TTM-R2-Finetuned | Moirai L 1.1 | Moirai B 1.1 |
|---|---|---|---|---|---|---|---|---|---|---|
| bitbrains_fast_storage/5T/long | 1.000 | 2.000 | 8.000 | 3.000 | 7.000 | 9.000 | 4.000 | 10.000 | 5.000 | 6.000 |
| bitbrains_fast_storage/5T/medium | 1.000 | 2.000 | 8.000 | 3.000 | 7.000 | 10.000 | 5.000 | 9.000 | 4.000 | 6.000 |
| bitbrains_fast_storage/5T/short | 2.000 | 3.000 | 8.000 | 1.000 | 7.000 | 10.000 | 6.000 | 9.000 | 4.000 | 5.000 |
| bitbrains_fast_storage/H/short | 4.000 | 7.000 | 8.000 | 2.000 | 9.000 | 6.000 | 3.000 | 11.000 | 5.000 | 1.000 |
| bitbrains_rnd/5T/long | 6.000 | 2.000 | 7.000 | 1.000 | 8.000 | 10.000 | 3.000 | 9.000 | 5.000 | 4.000 |
| bitbrains_rnd/5T/medium | 5.000 | 1.000 | 8.000 | 6.000 | 3.000 | 10.000 | 7.000 | 9.000 | 2.000 | 4.000 |
| Dataset | TempoPFN | TiRex | FlowState-9.1M | Toto_Open_Base_1.0 | Chronos Bolt B | TTM-R2-Finetuned | TabPFN-TS | YingLong_50m | Moirai L 1.1 | Moirai B 1.1 |
|---|---|---|---|---|---|---|---|---|---|---|
| bitbrains_fast_storage/5T/long | 6.000 | 2.000 | 9.000 | 1.000 | 4.000 | 3.000 | 11.000 | 8.000 | 5.000 | 7.000 |
| bitbrains_fast_storage/5T/medium | 8.000 | 2.000 | 10.000 | 1.000 | 5.000 | 6.000 | 11.000 | 7.000 | 3.000 | 4.000 |
| bitbrains_fast_storage/5T/short | 6.000 | 2.000 | 10.000 | 1.000 | 4.000 | 3.000 | 9.000 | 7.000 | 8.000 | 5.000 |
| bitbrains_fast_storage/H/short | 8.000 | 3.000 | 5.000 | 1.000 | 2.000 | 10.000 | 9.000 | 6.000 | 4.000 | 7.000 |
| bitbrains_rnd/5T/long | 9.000 | 2.000 | 10.000 | 1.000 | 3.000 | 7.000 | 11.000 | 8.000 | 4.000 | 5.000 |
| bitbrains_rnd/5T/medium | 8.000 | 1.000 | 10.000 | 2.000 | 3.000 | 5.000 | 11.000 | 9.000 | 4.000 | 6.000 |
Zero-Shot Time Series Forecasting
Zero-shot time series forecasting uses pretrained models to predict unseen series or domains without task-specific training.
See all 89 papers