Update README.md

#1
by kashif HF Staff - opened
Files changed (1) hide show
  1. README.md +43 -186
README.md CHANGED
@@ -2,40 +2,21 @@
2
  license: apache-2.0
3
  pipeline_tag: time-series-forecasting
4
  library_name: tfc-t0
5
- thumbnail: https://www.theforecastingcompany.com/og/default.png
6
  tags:
7
  - time-series
8
  - forecasting
9
  - probabilistic-forecasting
10
  - foundation-models
11
  - pretrained-models
12
- - transformer
13
- - multivariate
14
- - known-future-covariates
15
- - open-weights
16
  - covariates
17
  - pytorch
18
- - mlx
19
- - apple-silicon
20
  - safetensors
21
  - model_hub_mixin
22
  - pytorch_model_hub_mixin
23
  model-index:
24
  - name: t0-alpha
25
  results:
26
- - task:
27
- type: time-series-forecasting
28
- name: Time Series Forecasting
29
- dataset:
30
- name: fev-bench
31
- type: autogluon/fev-bench
32
- metrics:
33
- - name: Skill score
34
- type: skill-score
35
- value: 42.2
36
- source:
37
- name: fev-bench leaderboard
38
- url: https://huggingface.co/spaces/autogluon/fev-bench
39
  - task:
40
  type: time-series-forecasting
41
  name: Time Series Forecasting
@@ -55,25 +36,18 @@ model-index:
55
  ---
56
 
57
  <p align="center">
58
- <img class="dark:hidden" src="https://www.theforecastingcompany.com/logo/logo_horizontal_light.png" alt="The Forecasting Company" width="280" />
59
- <img class="hidden dark:block" src="https://www.theforecastingcompany.com/logo/logo_horizontal_dark.png" alt="The Forecasting Company" width="280" />
60
  </p>
61
 
62
  # `t0-alpha`
63
 
64
- <p align="center">
65
- <a href="https://arxiv.org/abs/2609.24559"><img src="https://img.shields.io/badge/arXiv-2609.24559-b31b1b.svg" alt="arXiv" /></a>
66
- </p>
67
-
68
  `t0-alpha` is an open-weights time-series forecasting foundation model from [The Forecasting Company](https://theforecastingcompany.com/).
69
 
70
  `t0` is a transformer-based model that produces probabilistic multi-horizon forecasts and natively operates on multiple covariates. `t0-alpha` is the first public iteration of the model.
71
 
72
  You can use `t0` on [Retrocast](https://app.retrocast.com/), The Forecasting Company's platform for forecasting on your own data and comparing forecasts across open-weight models.
73
 
74
- **Model family:** [`t0-alpha` (PyTorch/MLX)](https://huggingface.co/theforecastingcompany/t0-alpha) · [ONNX FP16](https://huggingface.co/theforecastingcompany/t0-alpha-onnx-fp16) · [ONNX INT8](https://huggingface.co/theforecastingcompany/t0-alpha-onnx-int8) · [`t0-beta`](https://huggingface.co/theforecastingcompany/t0-beta) · [`t0-gamma`](https://huggingface.co/theforecastingcompany/t0-gamma) · [Collection](https://huggingface.co/collections/theforecastingcompany/t0-alpha-model-family-6a99be18a9e3ab245fda8501)
75
-
76
- ![t0 forecasting French national electricity demand in Retrocast](https://raw.githubusercontent.com/theforecastingcompany/tfc-t0/main/assets/enedis_with_holidays.webp)
77
 
78
  _`t0` forecasting French national electricity demand in Retrocast. Data: [Enedis open data](https://data.enedis.fr/)._
79
 
@@ -87,9 +61,9 @@ _`t0` forecasting French national electricity demand in Retrocast. Data: [Enedis
87
  - Parameters: approximately 102M
88
  - License: Apache-2.0
89
  - Weights: https://huggingface.co/theforecastingcompany/t0-alpha
90
- - PyTorch runtime: [`tfc-t0[torch]`](https://pypi.org/project/tfc-t0/)
91
- - MLX runtime: [`tfc-t0[mlx]>=0.6.0`](https://pypi.org/project/tfc-t0/) (Apple silicon)
92
- - Managed API: https://docs.retrocast.com/documentation#available-models
93
 
94
  `t0-alpha` is an alpha release intended for research, experimentation, and applied forecasting evaluation.
95
 
@@ -107,7 +81,7 @@ Forecasts should be treated as probabilistic estimates, not guarantees.
107
 
108
  | Without covariates | With covariates |
109
  | ----------------------------------------------------------------- | ----------------------------------------------------------- |
110
- | ![t0 forecast without covariates](https://raw.githubusercontent.com/theforecastingcompany/tfc-t0/main/assets/medicam_without_cov.webp) | ![t0 forecast with covariates](https://raw.githubusercontent.com/theforecastingcompany/tfc-t0/main/assets/medicam_with_cov.webp) |
111
 
112
  _Data: [Medic'AM](https://www.assurance-maladie.ameli.fr/etudes-et-donnees/medicaments-classe-atc-medicam), monthly drug reimbursements from the French national health insurance._
113
 
@@ -115,40 +89,20 @@ The [Quickstart](#quickstart) below shows the API for both a plain univariate fo
115
 
116
  ## Installation
117
 
118
- Choose a runtime for the same original `t0-alpha` checkpoint. Both local runtimes
119
- ship in the `tfc-t0` package, each behind an extra; a bare `pip install tfc-t0`
120
- installs neither runtime: choose one with its extra.
121
-
122
- | Runtime | Best for | Install |
123
- | --- | --- | --- |
124
- | PyTorch | Broad hardware support and the PyTorch ecosystem | `pip install "tfc-t0[torch]"` |
125
- | MLX | Local, inference-only use on Apple silicon | `pip install "tfc-t0[mlx]>=0.6.0"` |
126
- | ONNX FP16 | Accelerator-oriented local and edge deployments | [`t0-alpha-onnx-fp16`](https://huggingface.co/theforecastingcompany/t0-alpha-onnx-fp16) |
127
- | ONNX INT8 | CPU and in-browser inference | [`t0-alpha-onnx-int8`](https://huggingface.co/theforecastingcompany/t0-alpha-onnx-int8) |
128
- | Managed API | Hosted inference without local weights | [`theforecastingcompany` SDK](https://pypi.org/project/theforecastingcompany/) |
129
-
130
- ### PyTorch
131
-
132
  ```bash
133
- pip install "tfc-t0[torch]"
134
  ```
135
 
136
  Requirements:
137
 
138
- - Python `>=3.10`
139
- - PyTorch `>=2.4`
140
 
141
  Optional extras:
142
 
143
  ```bash
144
- pip install "tfc-t0[evaluation]" # includes the PyTorch runtime
145
- pip install "tfc-t0[torch,plot]"
146
- ```
147
-
148
- ### MLX on Apple silicon
149
-
150
- ```bash
151
- pip install "tfc-t0[mlx]>=0.6.0"
152
  ```
153
 
154
  ## 🚀 Quickstart
@@ -162,36 +116,16 @@ from t0 import T0Forecaster
162
  model = T0Forecaster.from_pretrained("theforecastingcompany/t0-alpha").eval()
163
 
164
  context = torch.randn(4, 512) # 4 series, 512 past timesteps
165
- out = model.predict(context, horizon=64, quantile_levels=[0.1, 0.5, 0.9])
166
  out.quantiles # (4, 64, 3)
167
  out.median # (4, 64)
168
  ```
169
 
170
  `predict` accepts PyTorch tensors and NumPy arrays.
171
 
172
- ### MLX Quickstart
173
-
174
- The MLX runtime deliberately follows the same forecasting interface:
175
-
176
- ```python
177
- import numpy as np
178
- from t0.mlx import T0Forecaster
179
-
180
- model = T0Forecaster.from_pretrained("theforecastingcompany/t0-alpha").eval()
181
- context = np.random.randn(4, 512).astype(np.float32)
182
-
183
- out = model.predict(context, horizon=64, quantile_levels=[0.1, 0.5, 0.9])
184
- out.quantiles.shape # (4, 64, 3)
185
- out.median.shape # (4, 64)
186
- ```
187
-
188
- See [the MLX runtime](https://github.com/theforecastingcompany/tfc-t0#mlx-runtime-apple-silicon) for
189
- feature coverage, compilation guidance and reproducible Apple-silicon
190
- benchmarks.
191
-
192
  ### Forecasting With Covariates
193
 
194
- Anything known over the past goes in `context`. Alongside the target, extra variates attend to it and are forecast together. Anything known over the future, such as calendar features, planned promotions, or weather forecasts, goes in `future_covariates`, shaped `[B, F, context + horizon]`. The model conditions on it but does not forecast it.
195
 
196
  ```python
197
  import torch
@@ -205,98 +139,24 @@ future_covariates = torch.randn(2, 3, 512 + 64) # 3 covariates known over conte
205
  out = model.predict(
206
  context,
207
  horizon=64,
208
- quantile_levels=[0.1, 0.5, 0.9],
209
  future_covariates=future_covariates,
210
  )
211
  out.quantiles # (2, 64, 3)
212
  out.median # (2, 64)
213
  ```
214
 
215
- ### Batched Inference
216
-
217
- ```python
218
- import numpy as np
219
- from t0 import T0Forecaster, batch_series
220
-
221
- model = T0Forecaster.from_pretrained("theforecastingcompany/t0-alpha").eval()
222
-
223
- daily = np.random.randn(180) # one series, 180 past timesteps
224
- store = np.random.randn(2, 96) # one series of 2 variates, 96 past timesteps
225
- hourly = np.random.randn(1024) # one series, 1024 past timesteps
226
-
227
- context, mask, group_ids = batch_series([daily, store, hourly])
228
- context.shape # (4, 1024) — variates stacked, right-aligned to the longest series
229
- group_ids # [0, 1, 1, 2] — `store`'s two variates are forecast jointly
230
-
231
- out = model.predict(context, horizon=24, quantile_levels=[0.1, 0.5, 0.9], mask=mask, group_ids=group_ids)
232
- out.quantiles # (4, 24, 3)
233
- out.median[0] # the 24-step median forecast for `daily`
234
- ```
235
-
236
- Integrations that prepare complete T0 inputs, including known-future
237
- covariates, can batch the native representation directly:
238
-
239
- ```python
240
- from t0 import TimeSeries
241
-
242
- first = TimeSeries.from_array(context_1, future_covariates_1)
243
- second = TimeSeries.from_array(context_2, future_covariates_2)
244
- batch = TimeSeries.batch([first, second])
245
-
246
- out = model.predict(
247
- batch,
248
- horizon=64,
249
- context_length=max(context_1.shape[-1], context_2.shape[-1]),
250
- )
251
- ```
252
-
253
- Here each context includes its batch axis, for example `[1, V, T]`, and each
254
- known-future input is `[1, F, T + horizon]`. The output is ordered by the
255
- flattened target rows in `batch`.
256
-
257
- ### Converting your data to `TimeSeries`
258
-
259
- `TimeSeries` is the model's native input. It holds target rows, known-future
260
- covariate rows, a mask and group ids, all on one width. `predict` builds one for
261
- you from a raw array. You only need to construct one yourself to batch inputs of
262
- different widths, or to call `forward` directly.
263
-
264
- ```python
265
- from t0 import TimeSeries
266
-
267
- # context only, with `horizon` marking the region to predict
268
- model_input = TimeSeries.from_array(context, horizon=24) # context: [B, V, T]
269
-
270
- # with known-future covariates, whose width sets the horizon
271
- model_input = TimeSeries.from_array(context, future_covariates) # covariates: [B, F, T + 24]
272
-
273
- out = model.predict(model_input, horizon=24, quantile_levels=[0.1, 0.5, 0.9])
274
- ```
275
-
276
- `predict` infers `context_length` from where the forecast region starts. Pass it
277
- explicitly when batching series of different widths. `forward` takes the same
278
- `TimeSeries` and runs a single differentiable pass over it, with no rollout. That
279
- is the entry point for fine-tuning.
280
-
281
- **For efficient inference at scale, look at [Retrocast](https://app.retrocast.com/).**
282
-
283
  ## Input Contract
284
 
285
  - `context` may be shaped `(B, T)` for batched univariate forecasting.
286
- - `context` may also be shaped `(T,)`, which is promoted to a single-row batch.
287
  - `context` may be shaped `(B, V, T)` for multiple target variates.
288
  - `future_covariates`, when provided, should be shaped `(B, F, context + horizon)`.
289
- - `mask`, when provided, holds `MaskType` values shaped like `context`: `MISSING` for an absent observation, `PAD` for a cell that only widens a shorter series out to the batch's width.
290
- - NaN in `context` is read as an absent observation. Padding is the case NaN cannot express, so a batch of unequal-length series needs a `mask` (or `batch_series`) to declare it.
291
- - Patches made entirely of `PAD` stay out of attention.
292
- - `group_ids`, when provided, holds one id per row of the context. Rows sharing an id are variates of one series and are forecast jointly.
293
- - `group_ids` cannot be combined with `future_covariates`, which are addressed per sample.
294
- - NaN in `future_covariates` is treated as missing.
295
  - `horizon` must be at least 1.
296
  - Requested quantiles must be non-empty, sorted ascending, unique, and in `(0, 1)`.
297
  - The model was trained to emit quantiles `0.1`, `0.25`, `0.5`, `0.75`, and `0.9`.
298
- - Requested levels between the trained ones are interpolated; levels beyond
299
- them follow exponential tails pinned through the outermost trained levels.
300
  - Horizons up to 1024 timesteps are decoded in one forward pass.
301
  - Longer horizons use autoregressive rollout.
302
  - Returned forecasts are finite `float32` tensors on the model's device.
@@ -305,7 +165,9 @@ is the entry point for fine-tuning.
305
 
306
  `t0` is a decoder-style patch transformer.
307
 
308
- It encodes each patch from values, within-patch time index, and validity mask. The transformer alternates causal time-axis self-attention with variate-axis group self-attention.
 
 
309
 
310
  | Field | Value |
311
  | --- | --- |
@@ -318,33 +180,25 @@ It encodes each patch from values, within-patch time index, and validity mask. T
318
  | Feedforward dim | 2048 |
319
  | Attention heads | 8 |
320
  | Patch size | 32 |
 
321
  | Scaler | causal mean/std with `arcsinh` transform |
322
  | Native quantile levels | 0.1, 0.25, 0.5, 0.75, 0.9 |
323
 
324
  ## Evaluation
325
 
326
- `t0-alpha` is reported on the [GIFT-Eval leaderboard](https://huggingface.co/spaces/Salesforce/GIFT-Eval) and the [fev-bench leaderboard](https://huggingface.co/spaces/autogluon/fev-bench).
327
 
328
- | Benchmark | Metric | Value |
329
- | --- | --- | ---: |
330
- | GIFT-Eval | CRPS | 0.4941 |
331
- | GIFT-Eval | MASE | 0.7240 |
332
- | fev-bench | Skill score | 42.2 |
333
 
334
  Users should also evaluate `t0-alpha` on their own historical backtests. Useful checks include quantile loss, CRPS, MASE, empirical quantile coverage, calibration, and breakdowns by frequency, horizon, domain, history length, and covariate availability.
335
 
336
  ## 🧰 Public API
337
 
338
- - `T0Forecaster`: the model itself.
339
- - `Forecast`: the object returned by the model.
340
- - `T0Config`: the configuration of the model.
341
- - `MaskType`: the reason a time step is masked out.
342
- - `VariateType`: whether a row is a target, a historical covariate or a
343
- known-future covariate.
344
- - `batch_series`: utility to batch time series of potentially different lengths.
345
- - `TimeSeries.from_array` / `TimeSeries.batch`: build the model's native input,
346
- including known-future covariates and an explicit forecast `horizon`.
347
- `predict` accepts either a `TimeSeries` or a raw context array.
348
 
349
  ## 🧬 Lineage and Attributions
350
 
@@ -353,26 +207,29 @@ Users should also evaluate `t0-alpha` on their own historical backtests. Useful
353
  - **Toto** by Datadog ([repo](https://github.com/DataDog/toto)) and **Chronos-2** by Amazon ([repo](https://github.com/amazon-science/chronos-forecasting)) for factorizing attention in the time and variates dimension.
354
  - **TiRex** by NXAI ([repo](https://github.com/NX-AI/tirex)) for contiguous patch masking.
355
 
356
- Code-level attributions are listed in [`NOTICE`](https://huggingface.co/theforecastingcompany/t0-alpha/blob/main/NOTICE), all under Apache-2.0.
357
 
358
- ## 📚 Citation
359
 
360
- `t0` is described in [t0: A Time-Series Foundation Model for Forecasting with Context](https://arxiv.org/abs/2609.24559). If our model is useful, please cite:
 
 
361
 
362
  ```bibtex
363
- @article{meyer2026t0,
364
- title = {$t_0$: A Time-Series Foundation Model for Forecasting with Context},
365
- author = {Meyer, Lucas and Sole, Claudio and Xiang, Huikan and Li, Nicolas and Franceschino, Lucas and Quera-Bofarull, Arnau and Scholl, Maarten P. and Fainberg, Joachim and N{\'e}giar, Geoffrey},
366
- journal = {arXiv preprint arXiv:2609.24559},
367
- year = {2026},
368
- url = {https://arxiv.org/abs/2609.24559},
369
  }
370
  ```
371
 
372
  ## ⚖️ License
373
 
374
- Apache-2.0. See [`LICENSE`](https://huggingface.co/theforecastingcompany/t0-alpha/blob/main/LICENSE) and [`NOTICE`](https://huggingface.co/theforecastingcompany/t0-alpha/blob/main/NOTICE).
375
 
376
  ## Contact
377
 
378
- For issues and bug reports, use the tracker at https://github.com/theforecastingcompany/tfc-t0/issues.
 
 
 
2
  license: apache-2.0
3
  pipeline_tag: time-series-forecasting
4
  library_name: tfc-t0
5
+ thumbnail: https://www.theforecastingcompany.com/images/og.png
6
  tags:
7
  - time-series
8
  - forecasting
9
  - probabilistic-forecasting
10
  - foundation-models
11
  - pretrained-models
 
 
 
 
12
  - covariates
13
  - pytorch
 
 
14
  - safetensors
15
  - model_hub_mixin
16
  - pytorch_model_hub_mixin
17
  model-index:
18
  - name: t0-alpha
19
  results:
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  - task:
21
  type: time-series-forecasting
22
  name: Time Series Forecasting
 
36
  ---
37
 
38
  <p align="center">
39
+ <img src="https://www.theforecastingcompany.com/logo/logo_horizontal_pride_universal.png" alt="The Forecasting Company" width="280" />
 
40
  </p>
41
 
42
  # `t0-alpha`
43
 
 
 
 
 
44
  `t0-alpha` is an open-weights time-series forecasting foundation model from [The Forecasting Company](https://theforecastingcompany.com/).
45
 
46
  `t0` is a transformer-based model that produces probabilistic multi-horizon forecasts and natively operates on multiple covariates. `t0-alpha` is the first public iteration of the model.
47
 
48
  You can use `t0` on [Retrocast](https://app.retrocast.com/), The Forecasting Company's platform for forecasting on your own data and comparing forecasts across open-weight models.
49
 
50
+ ![t0 forecasting French national electricity demand in Retrocast](assets/enedis_with_holidays.png)
 
 
51
 
52
  _`t0` forecasting French national electricity demand in Retrocast. Data: [Enedis open data](https://data.enedis.fr/)._
53
 
 
61
  - Parameters: approximately 102M
62
  - License: Apache-2.0
63
  - Weights: https://huggingface.co/theforecastingcompany/t0-alpha
64
+ - Source code: https://github.com/theforecastingcompany/tfc-t0
65
+ - Issues: https://github.com/theforecastingcompany/tfc-t0/issues
66
+ - Package: `tfc-t0`
67
 
68
  `t0-alpha` is an alpha release intended for research, experimentation, and applied forecasting evaluation.
69
 
 
81
 
82
  | Without covariates | With covariates |
83
  | ----------------------------------------------------------------- | ----------------------------------------------------------- |
84
+ | ![t0 forecast without covariates](assets/medicam_without_cov.png) | ![t0 forecast with covariates](assets/medicam_with_cov.png) |
85
 
86
  _Data: [Medic'AM](https://www.assurance-maladie.ameli.fr/etudes-et-donnees/medicaments-classe-atc-medicam), monthly drug reimbursements from the French national health insurance._
87
 
 
89
 
90
  ## Installation
91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  ```bash
93
+ pip install tfc-t0
94
  ```
95
 
96
  Requirements:
97
 
98
+ - Python `>=3.11,<3.14`
99
+ - PyTorch `>=2.4,<3`
100
 
101
  Optional extras:
102
 
103
  ```bash
104
+ pip install "tfc-t0[evaluation]"
105
+ pip install "tfc-t0[plot]"
 
 
 
 
 
 
106
  ```
107
 
108
  ## 🚀 Quickstart
 
116
  model = T0Forecaster.from_pretrained("theforecastingcompany/t0-alpha").eval()
117
 
118
  context = torch.randn(4, 512) # 4 series, 512 past timesteps
119
+ out = model.predict(context, horizon=64, quantiles=[0.1, 0.5, 0.9])
120
  out.quantiles # (4, 64, 3)
121
  out.median # (4, 64)
122
  ```
123
 
124
  `predict` accepts PyTorch tensors and NumPy arrays.
125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  ### Forecasting With Covariates
127
 
128
+ Anything known over the past goes in `context`. Alongside the target, extra variates attend to it and are forecast together. Anything known over the future, such as calendar features, planned promotions, or weather forecasts, goes in `future_covariates`, shaped `[B, F, context + horizon]`; the model conditions on it but does not forecast it.
129
 
130
  ```python
131
  import torch
 
139
  out = model.predict(
140
  context,
141
  horizon=64,
142
+ quantiles=[0.1, 0.5, 0.9],
143
  future_covariates=future_covariates,
144
  )
145
  out.quantiles # (2, 64, 3)
146
  out.median # (2, 64)
147
  ```
148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  ## Input Contract
150
 
151
  - `context` may be shaped `(B, T)` for batched univariate forecasting.
152
+ - `context` may also be shaped `(T,)`; it is promoted to a single-row batch.
153
  - `context` may be shaped `(B, V, T)` for multiple target variates.
154
  - `future_covariates`, when provided, should be shaped `(B, F, context + horizon)`.
155
+ - NaN values are treated as missing observations.
 
 
 
 
 
156
  - `horizon` must be at least 1.
157
  - Requested quantiles must be non-empty, sorted ascending, unique, and in `(0, 1)`.
158
  - The model was trained to emit quantiles `0.1`, `0.25`, `0.5`, `0.75`, and `0.9`.
159
+ - Requested quantiles are produced by inference-time interpolation when needed.
 
160
  - Horizons up to 1024 timesteps are decoded in one forward pass.
161
  - Longer horizons use autoregressive rollout.
162
  - Returned forecasts are finite `float32` tensors on the model's device.
 
165
 
166
  `t0` is a decoder-style patch transformer.
167
 
168
+ It encodes each patch from values, within-patch time index, and validity mask. The transformer alternates causal time-axis self-attention with variate-axis group self-attention. Time attention uses time-aware rotary embeddings. Variate attention lets variates in the same sample attend to one another. The stack uses pre-norm RMSNorm blocks, SwiGLU feed-forward layers, and a quantile head.
169
+
170
+ At inference, target and historical variates are normalized with causal running statistics. Future covariates use per-row global statistics.
171
 
172
  | Field | Value |
173
  | --- | --- |
 
180
  | Feedforward dim | 2048 |
181
  | Attention heads | 8 |
182
  | Patch size | 32 |
183
+ | Dropout | 0.1 |
184
  | Scaler | causal mean/std with `arcsinh` transform |
185
  | Native quantile levels | 0.1, 0.25, 0.5, 0.75, 0.9 |
186
 
187
  ## Evaluation
188
 
189
+ `t0-alpha` is reported on the [GIFT-Eval leaderboard](https://huggingface.co/spaces/Salesforce/GIFT-Eval).
190
 
191
+ | Benchmark | CRPS | MASE |
192
+ | --- | ---: | ---: |
193
+ | GIFT-Eval | 0.4941 | 0.7240 |
 
 
194
 
195
  Users should also evaluate `t0-alpha` on their own historical backtests. Useful checks include quantile loss, CRPS, MASE, empirical quantile coverage, calibration, and breakdowns by frequency, horizon, domain, history length, and covariate availability.
196
 
197
  ## 🧰 Public API
198
 
199
+ - `T0Forecaster`: The actual PyTorch module class.
200
+ - `Forecast`: return object encapsulating forecasted quantiles.
201
+ - `T0Config`: dataclass to configure the model.
 
 
 
 
 
 
 
202
 
203
  ## 🧬 Lineage and Attributions
204
 
 
207
  - **Toto** by Datadog ([repo](https://github.com/DataDog/toto)) and **Chronos-2** by Amazon ([repo](https://github.com/amazon-science/chronos-forecasting)) for factorizing attention in the time and variates dimension.
208
  - **TiRex** by NXAI ([repo](https://github.com/NX-AI/tirex)) for contiguous patch masking.
209
 
210
+ Code-level attributions are listed in [`NOTICE`](NOTICE), all under Apache-2.0.
211
 
212
+ ## Environmental Impact
213
 
214
+ Training compute and carbon emissions are not currently reported.
215
+
216
+ ## 📚 Citation
217
 
218
  ```bibtex
219
+ @misc{tfc-t0,
220
+ title = {t0: A time-series forecasting foundation model},
221
+ author = {The Forecasting Company},
222
+ year = {2026},
223
+ url = {https://huggingface.co/theforecastingcompany/t0-alpha},
 
224
  }
225
  ```
226
 
227
  ## ⚖️ License
228
 
229
+ Apache-2.0. See [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE).
230
 
231
  ## Contact
232
 
233
+ For issues, bug reports, or API questions, please use the GitHub issue tracker:
234
+
235
+ https://github.com/theforecastingcompany/tfc-t0/issues