Fracast-0
Fracast-0 is an 85K-parameter pretrained Time Series Foundation Model, small enough to load directly in a web page.
Source code and reproducible pretraining recipes are available in the GitHub repository.
Tianxiang Zhan
Fracast-0 is a compact pretrained model for probabilistic time-series forecasting. It uses a 2,048-point context, predicts 48 future points, and emits quantiles from 0.1 through 0.9.
The release has 85,001 parameters. The FP32 checkpoint is 344,412 bytes; the W8 checkpoint is 113,228 bytes.
Python Quick Start
Install the Python package in one command:
python -m pip install fracast
The package embeds both checkpoints, so this loads without network access:
import numpy as np
from fracast import FracastModel
model = FracastModel.from_pretrained(device="cpu")
# Input: [time]. Output: [horizon, quantile].
context = np.sin(np.arange(240) / 7.0)
forecast = model.forecast(context)
assert forecast.shape == (48, 9)
# The native head predicts 48 steps; longer horizons roll median blocks.
long_forecast = model.forecast(context, horizon=144)
assert long_forecast.shape == (144, 9)
# Input: [variables, time]. Output: [variables, horizon, quantile].
multivariate = np.stack([context, context * 0.5 + 2.0])
forecast = model.forecast(multivariate)
long_multivariate = model.forecast(multivariate, horizon=144)
assert forecast.shape == (2, 48, 9)
assert long_multivariate.shape == (2, 144, 9)
Pass weights="fp32" for the bundled full-precision checkpoint. The first
argument can also be a local directory or a Hugging Face repository id such as
"ztxtech/fracast-0" when remote loading is preferred. The W8 file stores
symmetric per-output-channel INT8 weights with FP32 scales and residual
tensors, then dequantizes them for inference.
Inference Contract
- Input shapes:
[T],[1, T], or[V, T]. - Output shapes:
[H, 9],[1, H, 9], or[V, H, 9];Hdefaults to 48. - Maximum context: 2,048 observations; longer input keeps the latest 2,048.
- Minimum context: 8 finite observations per channel.
- Missing values: use
NaN; the runtime masks them. - Quantile order:
[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]. - Multivariate input is forecast channel-independently. The model does not use cross-variable interactions or future covariates.
- Quantile crossings are not post-processed away.
The browser Playground loads the W8 checkpoint into page memory and releases it when the page is closed.
GIFT-Eval Benchmark
Fracast-0 was evaluated on all 97 GIFT-Eval configurations with the official
aggregation protocol. The result is labeled pretrained: the complete
pretraining recipe includes datasets from families present in the GIFT-Eval
test corpus.
| Protocol split | Configurations | Normalized MASE | Normalized MWQL |
|---|---|---|---|
| Short | 55 | 0.769573 | 0.568038 |
| Medium | 21 | 0.842959 | 0.557024 |
| Long | 21 | 0.875558 | 0.555953 |
| Overall | 97 | 0.807133 | 0.563008 |
The official aggregate first divides each configuration by the matching
Seasonal_Naive result and then takes the geometric mean over all 97
configurations. The leaderboard result uses the FP32 release checkpoint. The
shipped W8 form dequantizes weights before inference and is not an
integer-only kernel. The leaderboard submission is public as
GIFT-Eval PR #215.
Its official submission files and compact summary are in
benchmark/gift_eval/.
TIME Benchmark
Fracast-0 completed all 98 TIME tasks in a local Apple MPS run with batch size
512 and the FP32 release checkpoint. The normalized scores use seasonal-naive
normalization by (dataset_id, horizon) and a geometric mean over MASE and
CRPS.
| Scope | MASE norm | CRPS norm | MASE rank | CRPS rank |
|---|---|---|---|---|
| Short | 0.701284 | 0.586018 | 25 / 29 | 24 / 29 |
| Medium | 0.855065 | 0.736344 | 25 / 29 | 24 / 29 |
| Long | 0.833422 | 0.708427 | 24 / 29 | 20 / 29 |
| Overall | 0.767965 | 0.649192 | 24 / 29 | 24 / 29 |
The official raw submission is
TIME-Output discussion #42
with branch head c04be85a3108f901d5a656f3ee7ec5f50baf1f77. It was
merged into TIME-Output main
at 65119f562f340544ee2fe54194a60b3043a514fb. Review is complete; no separate
official recomputation is recorded for the compact scores in this archive.
Of the 98 tasks, 47 use the released 48-step head with median-quantile
feedback for longer horizons. This rollout path is disclosed in every raw
task configuration and is not a strict official-protocol claim. The compact
analysis and reproducibility scripts are archived in the
GitHub TIME archive
and the public tables are also stored here under
benchmark/time_benchmark/.
In the parameter-count analysis, Fracast-0 has 85,001 parameters and lies on both the parameter-MASE and parameter-CRPS Pareto fronts. Its dominator lists are empty for both metrics. The smallest better-performing comparator is Toto-2.0-4m with 4,144,456 parameters, MASE 0.691002, and CRPS 0.582490. OmniScient uses a conservative Chronos-2 base lower bound, and PatchTST-FM-Extended uses the public R1 count from the same default architecture.
FEV-Bench
Fracast-0 also completed the official local 100-task FEV-Bench run with Apple
MPS, batch size 512, FP32 computation, and the w8 checkpoint. The full
adapter, pinned analysis code, raw result, and ranking tables are archived in
the GitHub repository.
The raw CSV is also stored here as
benchmark/fev_bench/fracast-0.csv.
| Metric | Raw rank | Leakage-controlled rank |
|---|---|---|
| SQL | 17 / 30 | 16 / 30 |
| MASE | 20 / 30 | 16 / 30 |
| WQL | 17 / 30 | 16 / 30 |
| WAPE | 20 / 30 | 17 / 30 |
The raw SQL win rate is 44.44% with a 35.72% skill score. All 100 tasks
completed without a task failure. Fracast-0 was pretrained on every
autogluon/fev_datasets configuration in the benchmark, so the official
leakage-controlled aggregate replaces Fracast-0 errors with Chronos-Bolt. This
is an in-corpus result and must not be read as an independent zero-shot score.
The full disclosure is public in
FEV-Bench PR #189.
572 of 235,039 sequence windows (0.243%) had fewer than eight finite observations after official task slicing. The adapter repeats the most recent finite value for those windows; it does not use labels to change forecasts.
Files
| File | Size | SHA-256 |
|---|---|---|
model.safetensors |
344,412 B | 0d678f123f3d1f91c5065cca2b5d40eccc469360afc2381b27290486011ded2c |
model.int8.safetensors |
113,228 B | 77beb5e5f17cf77525c4c1813fdaacfba586ac0b9d6f67a7ad4355de25b05544 |
config.json |
1,338 B | 1d7d2cf831f51ae2c5c9bf4cb4d8d4a49ec0085d6d55010814a1aae2a777a5dc |
w8_manifest.json |
4,944 B | 7ade15dcc72aa6d597f398c85d73333d93ee16ebb5128810110723e3f25704ee |
benchmark/gift_eval/all_results.csv |
24,537 B | 09118b804e0f20895991d9ce993bb60be8ef6f80fe5c35bb88820bbe4dc30c3b |
benchmark/gift_eval/config.json |
343 B | 94a7b09e963336c8251664830796088b36cc60ea0d017b52ae89562523f8da8e |
benchmark/gift_eval/protocol_summary.csv |
172 B | 71722d8473999f3fe2edf66272725e06e757973fd18c86a0cb1818327f73a57d |
benchmark/gift_eval/run-manifest.json |
2,152 B | ce87b8ffda8626689cf5903436b61e2a20575513e9395100424bfa23ae0cd7f1 |
benchmark/fev_bench/fracast-0.csv |
68,587 B | 9dda82627d03966a279b4118a140d3b293c495c508c1037e05b536326e193ab2 |
benchmark/fev_bench/fracast_ranks.csv |
743 B | 272a3270e4074f50ac40aea7fdc4d28664bed83bf99aa8e807964e2f4b9c9487 |
benchmark/fev_bench/run-manifest.json |
3,561 B | 14aa7b8af91cb5e88751bcfbfa33d2eaff4659a0e3ecf876c54543e05530af23 |
benchmark/time_benchmark/Fracast-0_TIME_tasks.csv |
8,491 B | 1b493d95de44df4bda87f82e0dbb7707a7fbf8b1ca7c57f762769367b5fea31e |
benchmark/time_benchmark/TIME_horizon_leaderboard.csv |
6,522 B | 13faabfcb15acbc53a3d548efa9ab35c5a3338bfaedee10a814d0fc85970b1ff |
benchmark/time_benchmark/TIME_overall_leaderboard.csv |
1,561 B | 778fd266be0639b042ae9d6ebe9019479f60d6dcee79f1b68ada8a3e72d809ee |
benchmark/time_benchmark/TIME_pareto.csv |
2,885 B | 8c33c9f3fc0bc592103653d40f10fdd79600eb83b7b563cdff049660b875b44e |
benchmark/time_benchmark/TIME_pareto_summary.json |
2,812 B | 44ba218c32a89b26ccfb1df642465de858554c3a13ff33a3b5ad055169244d64 |
benchmark/time_benchmark/run-manifest.json |
3,820 B | c7295d31a403c1bfa94dc0c1f2a41e0f76758066961cda6fe41d909bf1c03f06 |
Training Data
Fracast-0 was trained on five pinned public datasets plus the four official
TinyCast synthetic shards. The five source datasets are immutable snapshots in
script/data/download_public_data.py:
| Key | Hugging Face dataset | Pinned revision | Approx. size |
|---|---|---|---|
pretrain |
Salesforce/GiftEvalPretrain |
6830b624de7ed2b3d3e5b85bb6959d81dcc5d874 |
908.1 GiB |
lotsa |
Salesforce/lotsa_data |
8191fd29eb5cf906ec55effca44d8059888b615d |
861.2 GiB |
chronos |
autogluon/chronos_datasets |
eeecad0b82a8c237e212ce6f8d1abecb513e2cec |
833.3 GiB |
boom |
Datadog/BOOM |
69325b544c45ff0d6c43c7a99c49a6601a01725b |
2.6 GiB |
fev |
autogluon/fev_datasets |
f71c0fff4cf81283a2c43e7f3a73aa4f9826aef8 |
0.6 GiB |
The five sources total about 2.6 TiB before conversion. They are converted independently into the fast-corpus layout; the TinyCast synthetic shards are built from the official four-shard recipe and converted into the same layout.
The corpus scan covered 69,614,455 series and about 549.85 billion points across 3,234 datasets; the training split used 62,653,010 series. The checkpoint is from step 45,776 with an effective batch of 4,096 windows, approximately 187.5 million training windows.
Because several corpus roots can overlap GIFT-Eval families, results are labeled pretrained, not zero-shot.
Limitations
- Fracast-0 is univariate and channel-independent; it does not model cross-variable dependence.
- The native head predicts 48 steps at a time. Longer horizons append median predictions and re-normalize each 2,048-point context before the next block.
- The GIFT-Eval result is labeled
pretrainedwith test-data leakage because the pretraining recipe includes GIFT-Eval-family datasets. - The FEV-Bench pretraining corpus overlaps every benchmark dataset, so its official leakage-controlled result is not an independent zero-shot score.
- 47 of 98 TIME tasks use median-quantile rollout beyond the native 48-step head; its official raw submission is merged, with no separate official recomputation recorded for the compact scores.
- The W8 export is not an integer-only kernel.
- This release is distributed under the Apache-2.0 license.
Acknowledgements
Fracast-0 depends on the teams behind the benchmark, compact baseline, and public pretraining corpora:
- GIFT-Eval provides the 97-configuration evaluation protocol used for the public result.
- FEV-Bench provides the 100-dataset evaluation protocol and leaderboard submission format.
- TIME provides the 98-task evaluation workflow, output format, and leaderboard submission protocol.
- TinyCast provides the compact design baseline and the Apache-2.0 components recorded in the source repository.
- Salesforce/GiftEvalPretrain, Salesforce/lotsa_data, autogluon/chronos_datasets, Datadog/BOOM, and autogluon/fev_datasets provide the public training data.
- The TinyCast team also publishes the synthetic pretraining shards used by the recipe.
Development support
The implementation, debugging, and release work used paid API access to Xiaomi MiMo 2.6 Pro and DeepSeek V4.1 Flash. Both were effective for this project and are recommended.
Supporters / sponsors
There are no sponsors yet. Continued maintenance still needs API credits and server resources. Feedback and support are welcome through:
Citation
A technical report is in preparation. Until then, cite this release as ztxtech/fracast-0.
- Downloads last month
- 8
Datasets used to train ztxtech/fracast-0
Salesforce/lotsa_data
autogluon/fev_datasets
Evaluation results
- Overall Normalized MASE on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.807
- Overall Normalized MWQL on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.563
- Short Normalized MASE on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.770
- Short Normalized MWQL on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.568
- Medium Normalized MASE on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.843
- Medium Normalized MWQL on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.557
- Long Normalized MASE on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.876
- Long Normalized MWQL on GIFT-Eval pretrained protocolOfficial GIFT-Eval 97-configuration protocol0.556