TinyCast: Probabilistic Zero-Shot Forecasting with Computed Periodicity
Organizations: RAWS Labs
Abstract
We introduce TinyCast, an attention-free zero-shot forecaster that emits a predictive distribution from 146,505 parameters, on the premise that at this size the periodic structure of a context is worth computing rather than learning. A zero-parameter spectral detector supplies the dominant periods, the context is folded on their phase, and a dilated convolutional encoder and a block-autoregressive quantile decoder model the rest. It is smaller than every zero-shot entry on the GIFT-Eval board whose parameter count can be established. On probabilistic accuracy it defines the size-accuracy frontier. Among zero-shot entries declaring no test-data leakage it is the only one below 1.4M parameters that emits a predictive distribution, and every entry scoring better carries at least that budget. On Chronos-ZS and fev-bench every neural model ahead of it carries at least 28 times its parameters. Because the mixing path is convolutions and matrix multiplications only, it exports to static INT8 and forecasts end to end on an embedded device without per-signal fitting.
Figures & tables
| Model | Params | |||
|---|---|---|---|---|
| TinyCast (ours) | 146 K | 0.774 | 0.545 | 0.554 |
| Reverso-Nano ( Fu et al., 2026 ) | 200 K | 0.760 | (0.661) | (2.035) |
| Reverso-Small ( Fu et al., 2026 ) | 550 K | 0.726 | (0.626) | (1.945) |
| TTM-R3 ( Ekambaram et al., 2024 ) | 1.4 M | 0.724 | 0.520 | 0.501 |
| Reverso ( Fu et al., 2026 ) | 2.6 M | 0.711 | (0.610) | (1.905) |
| Toto-2.0-4m ( Khwaja et al., 2026 ) | 4.1 M | 0.757 | 0.524 | 0.455 |
Appendix figures & tables20 assets
Supplementary material from the paper’s appendix.
Appendix
| Stage | Module (shape) | Params |
| input | ( ) | 960 |
| encoder | depthwise conv ( ) | |
| pointwise ( ) | ||
| shared SwiGLU (up , down ) | ||
| RMSNorms ( ) | ||
| encoder subtotal | 57,920 |
| Optimization | |
|---|---|
| Optimizer | AdamW ( Loshchilov & Hutter, 2019 ) |
| Weight decay | 0.01 |
| Gradient clipping | 1.0 |
| Precision | bf16-mixed |
| Random seed | 42 |
| Total samples | 150 M |
| Profile | Arithmetic | Symmetrization | Alignment | |||
|---|---|---|---|---|---|---|
| Host | bf16 | yes | yes | 0.7738 | 0.5454 | 0.5541 |
| No alignment | bf16 | yes | no | 0.7858 | 0.5567 | 0.5786 |
| No symmetrization | bf16 | no | yes | 0.7816 | 0.5515 | 0.5638 |
| Single pass | bf16 | no | no | 0.7935 | 0.5629 | 0.5889 |
| Quantization reference | fp32-strict | yes | yes | 0.7736 | 0.5457 | 0.5535 |
| Single-pass reference | fp32-strict | no | no | 0.7918 | 0.5622 | 0.5865 |
| Model | |||
|---|---|---|---|
| TinyCast (ours) | 0.774 | 0.545 | 0.554 |
| PatchTST | 0.849 | 0.587 | 0.574 |
| iTransformer | 0.893 | 0.620 | 0.613 |
| TFT | 0.915 | 0.605 | 0.656 |
| N-BEATS | 0.938 | 0.816 | 2.512 |
| DLinear | 1.061 | 0.846 | 2.841 |
| 95% CI | |||||
|---|---|---|---|---|---|
| Model | Params | configs | base datasets | ||
| Reverso-Nano | 200 K | † | |||
| Reverso-Small | 550 K | ||||
| TTM-R3 | 1.4 M | ||||
| Reverso | 2.6 M | ||||
| Toto-2.0-4m | 4.1 M | † | |||
| Family | Control | Parameters | Steps | Encoder | |
| Architecture | dilated-conv base | 7,500 | 1 | untied, non-separable, FFN | |
| + phase binning | |||||
| + recency gate | |||||
| substituted-recency arm | |||||
| Component | architecture family’s best arm | 30,000 | 9 | untied, non-separable, FFN | |
| + future-conv | future-conv stack separable, shared FFN |
| params | |||||
|---|---|---|---|---|---|
| detector off, recency path substituted | 410 K | 1.1537 | 0.9774 | ||
| control (dilated-conv base) | 340 K | 1.0225 | 0.8614 | ||
| causal padding | 340 K | 1.0161 | † | 0.8562 | † |
| + phase binning | 361 K | 0.9248 | 0.7791 | ||
| + phase binning + causal | 361 K | 0.9250 | 0.7886 | ||
| + phase binning + recency gate | 393 K | 0.9092 | 0.7694 |
| control (394 K line) | 0.8123 | 0.5699 | ||
|---|---|---|---|---|
| + future-conv correction | 0.7972 | 0.5614 | ||
| + synthetic-family blend | 0.8060 | † | 0.5669 | † |
| + synthetic-family blend (tuned dose) | 0.8052 | † | 0.5623 | † |
| + gated committing loss | 0.8100 | † | 0.5690 | † |
| + future-conv + synthetic families | 0.7860 | 0.5529 |
| control (peak LR , 100 M samples) | 0.8562 | 0.7252 | ||
| peak LR 1e-3 | 0.8957 | 0.7460 | ||
| peak LR 2e-3 | 0.8665 | 0.7300 | † | |
| peak LR 4e-3 | 0.8745 | 0.7304 | † | |
| budget 50 M samples | 0.8933 | 0.7479 | ||
| budget 150 M samples | 0.8533 | † | 0.7217 | † |
| control (phase binning + recency gate) | 0.9092 | |
| phase bins, to | 0.9047 | |
| cross-horizon convolution, width | 0.9085 | |
| encoder kernel width, to | 0.9100 | |
| gated encoder convolution | 0.9178 | |
| harmonics per period, to | 0.9178 |
| Group | Intervention | Scored on | Result |
| 1 Computed values | seasonal-naive draft as input value | 6-config probe | 0.8825 |
| + all significant periods | 6-config probe | 0.8930 | |
| + linear trend term | 6-config probe | 0.9178 | |
| control (dilated-conv base) | 6-config probe | 0.8760 | |
| trend-seasonal decomposition as channels | 97 configs | 0.9177 | |
| 2 Learned rule | learned per-period weight, variant 1 | 97 configs | 0.9114 |
| Model | Params | CI | ||
| TinyCast (ours) | 146 K | 0.554 | ||
| Reverso-Nano | 200 K | (2.035) | ||
| Reverso-Small | 550 K | (1.945) | ||
| TTM-R3 | 1.4 M | 0.501 | ||
| Reverso | 2.6 M | (1.905) | ||
| Toto-2.0-4m | 4.1 M | 0.455 |
| Model | Params | rel. MASE | rel. WQL |
|---|---|---|---|
| TinyCast | 146 K | 0.880 | 0.722 |
| AutoARIMA | – | 0.869 | 0.741 |
| AutoTheta | – | 0.859 | 0.793 |
| AutoETS | – | 0.943 | 0.814 |
| TTM-R2 | 805 K | 1.120 | 1.134 |
| Chronos-Tiny | 8.4 M | 0.874 | 0.703 |
| MASE | WQL | ||||
|---|---|---|---|---|---|
| Model | Params | ratio | win rate | ratio | win rate |
| TinyCast | 146 K | 0.819 | – | 0.658 | – |
| AutoARIMA | 0 | 0.879 | 0.688 | 0.746 | 0.719 |
| AutoTheta | 0 | 0.890 | 0.650 | 0.922 | 0.810 |
| Toto-2.0-4m | 4.1 M | 0.720 | 0.190 | 0.553 | 0.140 |
| CITRAS-FM | 7.2 M ∗ | 0.707 | 0.140 | 0.540 | 0.080 |
| Observed samples | 64 | 128 | 256 | 512 | 1024 | 2048 |
|---|---|---|---|---|---|---|
| Relative MAE | 1.013 | 0.975 | 0.911 | 0.845 | 0.786 | 0.759 |
| Latency | |
|---|---|
| Core call (full re-encode) | 4.08 s |
| Per-position encoder step ( per core call) | 1860 s |
| Decoder (in isolation) | 0.20 s |
| Flash | |
| INT8 matrix and convolution coefficients | 138.1 KiB |
| Complete benchmark image (incl. context) | 365.5 KiB |
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 83 papers