Skip to main content

TabPFN-TS

Zero-Shot Time Series Forecasting with TabPFN

PyPI version colab Discord arXiv

📌 News

  • 15-09-2026: 🚀 v1.3.0 — defaults now use TabPFN-3.5 in both LOCAL and CLIENT mode. Requires tabpfn>=9.0.0 and tabpfn-client>=0.5.3.
  • 12-05-2026: 🚀 v1.1.0 — defaults now ship the TabPFN-TS-3 finetuned checkpoint from the TabPFN-3 report for SOTA forecasting out of the box. Requires tabpfn>=8.0.0.
  • 27-05-2025: 📝 New paper version and v1.0.0 release! Strong GIFT-EVAL results, new AutoSeasonalFeatures, improved CalendarFeatures.
  • 27-01-2025: 🚀 Ranked 1st on GIFT-EVAL benchmark[1]!
  • 10-10-2024: 🚀 TabPFN-TS paper accepted to NeurIPS 2024 TRL and TSALM workshops!

[1] Last checked on: 10/03/2025

✨ Introduction

We demonstrate that the tabular foundation model TabPFN, combined with lightweight feature engineering, enables zero-shot time series forecasting for both point and probabilistic tasks. On the GIFT-EVAL benchmark, our method achieves performance on par with top-tier models across both evaluation metrics.

As of v1.3.0 the package uses TabPFN-3.5 by default — a tabular foundation model pretrained purely on synthetic data. The finetuned TabPFN-TS-3 checkpoint from the TabPFN-3 report stays available.

📖 How does it work?

Our work proposes to frame univariate time series forecasting as a tabular regression problem.

How it works

Concretely, we:

  1. Transform a time series into a table
  2. Extract features and add them to the table
  3. Perform regression on the table using TabPFN
  4. Use regression results as time series forecasting outputs

For more details, see our paper and the TabPFN-3 report.

🧮 Covariate model — what's used vs. what's not

TabPFN-TS treats forecasting as univariate, target-history + known-future covariate regression. Concretely:

Input column type Used? Notes
Target (univariate or multivariate) ✅ Multivariate targets are decomposed into N independent univariate forecasts.
Known dynamic covariates (e.g. holidays) ✅ Future values must be supplied in future_df. Numeric and boolean ones also get lag and trailing-mean features (see below).
Past dynamic covariates (e.g. weather observations) ❌ Dropped — no future values available.
Static covariates (e.g. item_id, store_size) ❌ Currently dropped.
Engineered temporal features (calendar, sin/cos, …) ✅ Auto-generated by TABPFN_TS_DEFAULT_FEATURES.

If your task relies on past_dynamic or static_columns, performance may be lower than dedicated multivariate / static-aware forecasters.

Known-covariate lags. KnownCovariateLagFeature, first in TABPFN_TS_DEFAULT_FEATURES, adds three columns per numeric or boolean known covariate: its lag 1, its lag at the season length, and its trailing mean over one season. The season comes from the timestamp frequency. The features are computed per series over context + horizon, so a horizon row only reads covariate values (never the target). String or categorical covariates get no extra columns. On the 25 fev-bench tasks with numeric known covariates this lowers SQL by 4.5% on the default v3.5 model (21/25 tasks better, worst task +1.5%), with the largest gains on temperature-driven load forecasting. To turn it off, pass temporal_features= a list without it to TabPFNTSPipeline.

👉 Why give us a try?

  • Zero-shot forecasting: this method is extremely fast and requires no training, making it highly accessible for experimenting with your own problems.
  • Point and probabilistic forecasting: it provides accurate point forecasts as well as probabilistic forecasts.
  • Known-future covariate support: pass covariates whose future values are known at forecast time (calendar, holidays, scheduled events, demand or weather forecasts) directly alongside the target — see Covariate model for details on what's supported.

On top of that, thanks to tabpfn-client from Prior Labs, you won't even need your own GPU to run fast inference with TabPFN. 😉 We have included tabpfn-client as the default engine in our implementation.

⚙️ Installation

You can install the package via pip:

pip install tabpfn-time-series

Checkpoint

Both modes pin TabPFN-3.5. In LOCAL mode tabpfn downloads its default checkpoint automatically on first init — accept the license at ux.priorlabs.ai first. In CLIENT mode the cloud API serves its v3.5_default model.

For Developers

To install the package in editable mode with all development dependencies, run the following command in your terminal:

pip install -e ".[dev]"
# or with uv
uv pip install -e ".[dev]"

🚀 Getting Started

from tabpfn_time_series import TabPFNTSPipeline

pipeline = TabPFNTSPipeline()  # uses the cloud client by default — no GPU needed
predictions = pipeline.predict_df(context_df, prediction_length=24)

For full walkthroughs:

I want to... Notebook
Use it on my project quickstart.ipynb
Understand how it works how-it-works.ipynb

More examples live in the examples/ directory.

📚 Citation

If TabPFN-TS is useful in your research, please cite the paper (arXiv:2501.02945) and the TabPFN-3 report for the TabPFN-TS-3 checkpoint.

📊 Anonymous Telemetry

This project collects anonymous usage telemetry by default.

The data is used exclusively to help us understand how the library is being used and to guide future improvements.

  • No personal data is collected
  • No code, model inputs, or outputs are ever sent
  • Data is strictly anonymous and cannot be linked to individuals

What we collect

We only collect high-level, non-identifying information such as:

  • Package version
  • Python version
  • How often fit and inference are called, including simple metadata like the dimensionality of the input and the type of task (e.g., classification vs. regression) (⚠️ never the data itself)

See the Telemetry documentation for the full details of events and metadata.

This data is processed in compliance with the General Data Protection Regulation (GDPR) principles of data minimization and purpose limitation.

For more details, please see our Privacy Policy.

How to opt out

If you prefer not to send telemetry, you can disable it by setting the following environment variable:

export TABPFN_DISABLE_TELEMETRY=1

Metadata

Release files for tabpfn-time-series 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tabpfn-time-series 1.4.0
File Size Uploaded Provenance Actions
tabpfn_time_series-1.4.0.tar.gz 903.3 kB Without provenance Details for tabpfn_time_series-1.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for tabpfn-time-series 1.4.0
File Interpreter ABI Platform Actions
tabpfn_time_series-1.4.0-py3-none-any.whl Python 3 none any Details for tabpfn_time_series-1.4.0-py3-none-any.whl

Total release size: 970.8 kB

Release files / tabpfn_time_series-1.4.0.tar.gz

Download URL tabpfn_time_series-1.4.0.tar.gz
Size 903.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a205a6969e9e4712883bf1aa23035c4ab23856154c353b8fe6626b956d3e6115
BLAKE2b-256 checksum
How to use checksums
947c515d7b862527a52c163bcbd076993a5a2dda3b58ba90b1b0350450274147
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / tabpfn_time_series-1.4.0-py3-none-any.whl

Download URL tabpfn_time_series-1.4.0-py3-none-any.whl
Size 67.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
492470beb118a8593aee94a3254316a9b1e734bbf2549420361f801c6e692432
BLAKE2b-256 checksum
How to use checksums
dab82100603cc0e2c13481368494b82e4af650e0a40892938f2852976bbf9185
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for tabpfn-time-series 1.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page