You are looking at CAFE 0.9.5, kept for comparison. The current release is 0.9.6; compare the two.

Leaderboard · version 0.9.5

CAFE

CAFE tests time-series foundation models with their weights frozen, on sensor recordings from machines, structures and the natural environment. Each model reads a recording on C (whole when it is longer than 512 samples, up to the model's context; block-averaged to 512 for fixed-length models; stretched to 512 when shorter), the last 512 values on FE and windows of 256 values on A, and returns a vector, and the same small head reads that vector for every model, to classify a recording (C), find abnormal stretches (A) or warn of an event before it happens (FE). A score of 0.5 is chance and 1 is perfect, and the CAFE score is the mean of C, A and FE.

Main board

6 of 15 ranked models share tier 1, so the order inside that tier is no claim. The board rests on 17 C, 12 A and 16 FE datasets. Main board: one readout per model.

Forgis runs CAFE and developed 5 of the 15 ranked models, marked ◊, with CAFE test scores visible during their development. They get no special colour here. You can take them out of every table with the switch above the board.

Task
Readout
Rows
Dataset groups

◊ Forgis row. Kind tells unranked rows apart: baseline, reference, tabular. Click a column to sort. The glossary near the end explains every term.

Heat maps

One row per model, one column per dataset. Lighter is lower and darker is higher, so the scale also reads in grey and for colour-blind readers. A thick edge marks the best ranked model on a dataset. The rows follow the switches above the board.

Hover or tap a cell for its value.

Breakdowns

Per dataset

Best and median are over ranked models. A flag says a baseline beats every model on that dataset, or reaches at least the median model. Those datasets stay in on purpose.

Dataset groups

Domain groups are for browsing and carry no weight in any score. Numbers are the main board's. To see the board without a group, use the switches at the top.

Pair verdicts

Row against column. Hover or tap a cell for the difference, its interval and the Holm p. Unresolved does not mean equal.

Hover or tap a cell.

Tiers

CAFE score

Tier 1 pj_better_10m ◊, pj_better_3p7m ◊, Mantis, pjgood-warp-xview-combo-10M ◊, Chronos-2, LeSaturn-warppool-factorized-7.4M ◊

Tier 2 pj_better_1m ◊, MantisV2

Tier 3 NuTime, Timestral-209M, Timestral-123M, Timestral-5M, Timestral-28M, Toto-Open-Base-1.0

Tier 4 TimesFM-2.5-200M

C, classification

Tier 1 Chronos-2, Timestral-209M, pjgood-warp-xview-combo-10M ◊, Timestral-123M

Tier 2 Timestral-28M, pj_better_10m ◊, pj_better_3p7m ◊, LeSaturn-warppool-factorized-7.4M ◊

Tier 3 Timestral-5M, Mantis, NuTime

Tier 4 pj_better_1m ◊, MantisV2

Tier 5 TimesFM-2.5-200M

Tier 6 Toto-Open-Base-1.0

A, anomaly detection

Tier 1 pj_better_3p7m ◊, pjgood-warp-xview-combo-10M ◊, pj_better_10m ◊, MantisV2, Mantis, NuTime, pj_better_1m ◊, LeSaturn-warppool-factorized-7.4M ◊

Tier 2 Chronos-2, Timestral-209M, Timestral-123M, Timestral-28M, Timestral-5M, Toto-Open-Base-1.0, TimesFM-2.5-200M

FE, forecasting events

Tier 1 Mantis, Toto-Open-Base-1.0, pj_better_10m ◊, LeSaturn-warppool-factorized-7.4M ◊

Tier 2 Chronos-2, pj_better_3p7m ◊

Tier 3 pjgood-warp-xview-combo-10M ◊, pj_better_1m ◊

Tier 4 MantisV2

Tier 5 NuTime, Timestral-5M

Tier 6 Timestral-209M, Timestral-123M, Timestral-28M

Tier 7 TimesFM-2.5-200M

Sensitivities

With and without A

Computed from the per-dataset values on this page. Ranks count the ranked rows only.

Other rule sets and dataset choices

Each row is a whole board under one changed rule, from sens095.json.

Datasets resampled, and the chance of being first

The datasets are drawn again with replacement within each task. Computed by sens095.json (sens095.py), 10,000 draws, each also resampling the test material. This asks how much the order depends on which datasets are in the benchmark, which the board's own interval does not cover.

Noise

Signal-to-noise, this version

Recomputed from this version's draws: the spread of the ranked rows' scores divided by the test-material noise of a pair. The other sources below are not in it.

A null floors per dataset

Each null is normalised as the dataset's score is, so 0.5 is chance. They remove no dataset in 0.9.5: they are shown as unranked rows, and a dataset leaves A only if fewer than 5 of its series keep a prefix of 512 samples. These scores read no model.

12 A datasets are admitted; the rule asks for at least 5. The mean of their best data-free scores is 0.603, and 14 of 15 ranked rows score above it on those datasets; the rule asks for at least half. So A counts in the CAFE score.

Source: data/nulls095_summary.json (from nulls095.json, centre assignment, Eval series).

Rules in plain words

Inputs

Every encoder gets real samples with no padding and no mask. What an encoder does inside, such as padding to its own context or normalising its input, counts as part of the model under test. The models table lists the input rules each row used.

On C, a recording of 512 samples or fewer is stretched to 512 by linear interpolation for every model, which changes the time scale in the same way for every encoder. A longer recording goes to the model whole: a model that accepts variable length gets it up to its maximum context, most recent samples kept, and a model with a fixed input length of 512 gets it block-averaged to 512. On A, the window is 256 real samples ending at the scored moment, never stretched; its score goes to the window's centre step, and a series needs a prefix of at least 512 samples or it leaves the list. On FE, every model gets the last 512 samples before the forecast time. Rows that embed no window, the tabular rows and hand-made references, keep their registered inputs.

Heads

The head is the only thing fitted, and it is the same for every model. C uses L2 logistic regression on one block per channel: a model's native width when it is at most 256 per channel, and wider embeddings projected to 256 per channel by a fixed random projection (at most 8,192 in total), with its penalty chosen by cross-validation inside the training split. A uses no labels: it scores a window by the mean of its 5 smallest Mahalanobis distances to the windows of the series' own prefix. FE fits one ridge regression per lead time on the embedding at the end of the context, with 3 head seeds.

Scores

Each dataset gives one number on the same scale, 0.5 for chance and 1 for perfect. C uses balanced accuracy rescaled for the number of classes, A uses VUS-PR after the prefix rescaled against random scores, and FE uses stratified AUROC averaged over lead times and head seeds. A task score is the plain mean over its datasets. The CAFE score is the mean of C, A and FE.

Readouts

Each model has one readout, the same on C, A and FE. The candidates are m0 (the released embedding), m1, m2, m3 and m6, as far as the model's code exposes them; the pick has the highest validation CAFE score, the mean over the tasks of cross-validation on the training split for C, the Tuning series for A and the inner cross-validation of the ridge head for FE. A candidate within 0.005 of the best loses to an earlier one. No test value is read.

Intervals

An interval is a paired 95% percentile bootstrap of the test material inside each dataset: test samples or splits on C, Eval series on A with near-duplicates resampled together, time blocks on FE. There are 10,000 draws, the same for every model. The datasets are held fixed, so an interval says nothing about how a model would do on other datasets; the resampled table under Sensitivities speaks to that.

Verdicts and tiers

Every pair of ranked models gets one of three verdicts. It is better if the Holm-corrected two-sided bootstrap p is below 0.05. It is practically equal if not resolved and the 95% interval of the difference lies inside plus or minus 0.01. Otherwise it is unresolved, which means the data do not say. A pair of single-seed models less than 0.009 apart is also marked within seed noise. Tier 1 holds the models above the first one resolved below the top model, and the next tier starts there, so a model in a lower tier can still be unresolved against the top one. Rank inside a tier is not a claim.

Admission checks

A dataset must come from an inanimate physical system, its label must be a state, type or identity of that system or an event observed in the record, it needs at least 100 test samples on C, 5 Eval series on A or 1,000 events on FE, and only the largest dataset of a recording campaign stays. A series needs the prefix above. The data-free nulls admit and remove nothing; they are shown beside the models. None of these checks reads a model's score, so datasets where a trivial row beats every encoder stay in and the boards show it.

Conflict of interest

Forgis maintains CAFE and developed 5 of the 15 ranked models. Those models were developed with access to CAFE test scores, and the owner of the benchmark asked for several rule changes while the order was known. Each amendment says what was known when it was written, and the boards under older rules stay published. Some of the latest rules help Forgis rows and some hurt them. Two decisions came after this board was seen. The 08:00Z deadline of 4 November, whose fallback would have made every model's readout m0, was withdrawn because 912 of the 920 jobs, the fallback's own m0 cells among them, finished after it (PREREG09, note of 2026-11-04 ~18:50Z); the m0 board is shown as a sensitivity. The note of 2026-11-04 ~22:05Z retired reporting-only sensitivities and gates that this version's rules make inapplicable, kept A at w = 512 as a sensitivity and scheduled the per-channel Forgis m0; both are pending for 0.9.5.1, as the dataset card lists. Forgis checkpoints that are not public carry a sha256, and the dataset card says which.

What the board does not show

The board does not show performance after fine-tuning, because nothing is fine-tuned. It does not cover datasets outside the list, and its intervals leave out pretraining seed, head training set and readout choice. It says nothing about value forecasting, because FE scores events only. Run time is reported and never scored. CAFE publishes scores and no data.

Known limitations, as written on the dataset card
  • Recording length carries label information in two C datasets, in the source data itself: a classifier that sees only the length scores uea/AsphaltPavementTypeCoordinates 0.720 and ucr/PLAID 0.596 (see Datasets admitted and removed); every other C dataset has one length per recording. The variable-length models see the length of recordings above 512 samples and the block-averaged models do not. The board with C resampled to 512 for every model is under Sensitivities.
  • On W3 a score that reads only elapsed time reaches 0.9995, so a model that tracks drift scores well there without detecting anything. The A gate compares the ranked rows with 0.603, the mean over the A datasets of each dataset's best data-free score. The board without the five returned A datasets is under Sensitivities.
  • On ESA_M1, ESA_M2, HAI, UKWIND and HOT some A Tuning series are other blocks of the same recordings as Eval series, though no series is in both, so the readout choice is less independent of the A test material than the split suggests.
  • TiRex-2, a third-party model, was dropped with the 0.9.4.1 board known, where it ranked 8 in tier 1.
  • FactoryNet's README warns that recording context partly predicts fault labels, so real fault evaluation should stay within one recording session. mv06/voraus and the other pooled C datasets mix sessions, and a voraus split tests settings not seen in training.
  • voraus-AD comes from FactoryNet's copy, not the publisher's files, under CC BY-NC-SA 4.0. Forgis is a company, so CAFE publishes scores only, and a legal reading is still open.
  • The weights of the Forgis rows are not public. Each carries a sha256 under Models, so a later release can be checked against it, and until then outsiders cannot rerun those rows.
  • At least 66 distinct Saturn-family checkpoints, including the five ranked Forgis rows and two HEPA-lineage precursors, have CAFE or PrecursorBench 1.4 Eval scores on datasets of the 0.9.3.1 board, with records dated from 2026-08-04 to 2026-10-28. Before its submission, each ranked row had at least this many other variants scored: LeSaturn-warppool-factorized-7.4M 43, pjgood-warp-xview-combo-10M 59, pj_better_3p7m and pj_better_10m 64, and pj_better_1m 65. These are lower bounds counted from repository records, because some run trees and lane outputs are unavailable, and they exclude readout variants, controls, evaluation seeds, PrecursorBench v1 runs and development-harness runs.
  • MantisV2 is read through the sweep's adapter, and its m0 is the sweep's released-readout rule, not independently confirmed.
  • Hill of Towie labels are inferred stops, with rules made without any score. cdip_waves_c was rebuilt because series.npy differs from the pinned file; every ranked row was recomputed on the rebuilt file.
  • The near-duplicate rule clusters SMAP series with long constant stretches although their correlation is near zero, and four UKWIND turbines have identical series that still need checking at the source.
  • Mantis and NuTime were pretrained on data that includes UCR and UEA training splits. Whether a Forgis checkpoint was pretrained on FactoryNet data was not established.
  • Some unranked reference and tabular rows have no cell on a new C dataset, so they have no C score: CatBoost (Selected) on mv06/aursad095 and mv06/voraus095; XGBoost (Selected) on mv06/voraus095. These tabular runs hit the one-hour cap per dataset and mode (Amendment 3). No ranked row is affected.
  • The reference rows raw-window LR, catch22 + LR and majority class on mv06/voraus095, and MiniRocket and MultiROCKET-Hydra on the three new C datasets, were computed on 4 November after the board was seen (x86 CPU, c_rows06.py unchanged; MiniRocket had failed earlier on a thread-count setting). They are unranked and change no ranked row.
  • The m0 candidate of the five Forgis rows pools over channels in this version (320 values for pj_better_10m on the 14-channel mv06/hydraulic), against the C head's one block per channel, and on the Fixed (m0) board the Forgis rows and their control are pooled differently. No Forgis row picked the pooled m0, but the per-channel m0 is a new candidate: on C it equals m2, and on FE it differs from m2, so the readout choice of a Forgis row, and with it the main board, may change in 0.9.5.1. The per-channel m0 and the readout choice redone with it are pending, to be added in 0.9.5.1 (PREREG09 note of 2026-11-04 ~22:05Z items 3 and 4).
  • The C head charges for embedding width, not only for uninformative columns (found by Pratik Jawahar of Forgis, in an internal note). Appending 128 columns of pure noise to the m0 embedding of each of six Forgis rows lowered their training-split cross-validated balanced accuracy on C by 0.063 to 0.093. The cause is the head's single shared L2 penalty, chosen from four values (C in 0.01, 0.1, 1, 10): it cannot keep the informative columns while it shrinks the rest. Below the cap of 256 values per channel, models of different native width therefore face different effective penalties. The head (c_head.py, sha256 0cc2a4bd) is the same in this version and nothing was rescored. The fix is planned for the next version as a head change registered before it is used and chosen without reading test scores. The options are a noise-column acceptance control (k junk columns may move the C score by no more than the fold-seed SD), a finer L2 grid or nested cross-validation, an elastic-net penalty, or a fixed-width PCA fitted on the training split.
  • Pending, to be added in 0.9.5.1: the A board at w = 512 with each model's readout, a sensitivity (Amendment 7; PREREG09 note of 2026-11-04 ~22:05Z items 2 and 4, and its addition of ~23:05Z). Its cells were queued on 4 November and had not run by the release.
  • Retired by the PREREG09 note of 2026-11-04 ~22:05Z, reporting only: the board under the 0.9.3.1 rules, SKAB in its 28-series form, the Selected, Oracle and method-board comparisons, and the 0.9.1 KPI-pool SNR; see Sensitivities.
  • Wall times are not comparable across jobs: the C and FE jobs that started from 14:45 UTC on 4 November ran with three workers per GPU (twelve per node) instead of one, with the same code, settings and thread counts per job, so their wall times are inflated against those of the earlier jobs. No score depends on wall time.

How to submit a model

CAFE has no upload form. To propose a model, open a discussion on the dataset page with a public checkpoint pinned to a commit, its licence, code that turns an array of shape (samples, channels, T) into an embedding, with the largest T it accepts, the list of readouts it exposes, and the number of variants you scored on CAFE datasets before submitting, which the protocol publishes with the row. Forgis then runs its cells under the rules above, and the row appears with its marks in a dated version.

Datasets and models

Datasets and licences

CAFE redistributes no data.

Models

Every model is frozen.

Version history

Protocol · Changelog · leaderboard.json

Figures and tables for reports

Every figure is a file in this Space. Use the links under each one. Tables are below in a form you can copy, and each also exists as a CSV file. Version 0.9.5.

Elo per model, one colour for every family; the CAFE score and its tiers are the board.
Elo per model, one colour for every family; the CAFE score and its tiers are the board.PNG
Elo against the recorded wall hours of each model's jobs; a star marks the front. Time is reported, never scored.
Elo against the recorded wall hours of each model's jobs; a star marks the front. Time is reported, never scored.PNG
The main board with intervals, one panel, drawn for this page.
The main board with intervals, one panel, drawn for this page.SVG
Heat map of C on the main board, drawn for this page. Colour runs from 0.5 or lower to the highest score on the task.
Heat map of C on the main board, drawn for this page. Colour runs from 0.5 or lower to the highest score on the task.SVG
Heat map of A on the main board, drawn for this page. Colour runs from 0.5 or lower to the highest score on the task.
Heat map of A on the main board, drawn for this page. Colour runs from 0.5 or lower to the highest score on the task.SVG
Heat map of FE on the main board, drawn for this page. Colour runs from 0.5 or lower to the highest score on the task.
Heat map of FE on the main board, drawn for this page. Colour runs from 0.5 or lower to the highest score on the task.SVG

Tables

Glossary

A
Anomaly detection: find the abnormal stretches in a series. Scored by VUS-PR after the prefix.
AUROC
The chance that a randomly picked positive case gets a higher score than a randomly picked negative one. FE uses a stratified version, compared within fold, unit and month.
balanced accuracy
Accuracy averaged over classes, so a large class does not dominate. C rescales it so that chance is 0.5.
baseline
A row with no learned encoder: ZERO on every task, and current value on FE. Shown on every board, never ranked. The random-init control and the other references are listed beside them.
best baseline
On one dataset, the highest-scoring of the baselines the board compares with.
bootstrap
Drawing the test material again with replacement to see how far a score moves. CAFE uses 10,000 draws.
C
Classification: say what a recording shows. Scored by balanced accuracy.
CAFE score
The mean of the task scores that count on this release: C, A and FE.
cell
One model's score on one dataset, stored with its bootstrap draws.
chance-normalised
Rescaled so that random output gives 0.5 and a perfect result gives 1.
conflict of interest
Forgis runs CAFE and also builds some of the models it ranks. Those rows carry the mark ◊.
embedding
The vector of numbers a frozen model returns for a window. It is all a head ever sees.
Eval series
The series of an A dataset that are scored. Tuning series are kept apart.
FE
Forecasting events: say whether an event will happen within the next lead time. Scored by AUROC.
foundation model
A network pretrained on many time series and then used for jobs it did not see.
frozen
The weights are not changed for CAFE. No fine-tuning on any dataset.
head
The small model fitted on the embedding for one task. It is the same for every model.
Holm
A step-down correction that keeps the error rate over a whole family of pair tests at the stated level.
input rules
What each encoder gets: on C the whole recording (block-averaged to 512 for fixed-length models; stretched to 512 when it is 512 samples or shorter), on A a window of 256 real samples, on FE the last 512 samples. No padding, no mask.
Kendall tau
Agreement between two orderings: 1 means the same order, 0 means no relation.
lead time
How far ahead an FE head has to warn.
Mahalanobis distance
Distance that takes account of the spread and correlation of the normal windows.
near-duplicate cluster
Eval series joined by a rule on the data alone and resampled as one block, so that copies do not narrow the interval.
null
A score that reads no model: elapsed time rising, elapsed time falling, or a random number per window.
null floor
A dataset's highest null. A model at or below it has shown nothing the clock or chance could not.
One readout
The one readout a model uses on C, A and FE, picked by the highest validation CAFE score without reading any test value. This is the main board's rule.
paired
Every model is scored on the same random draws, so a difference between two models does not depend on which material a draw picked.
practically equal
A verdict: not resolved, and the 95% interval of the difference lies inside plus or minus 0.01.
prefix
The normal stretch at the start of an A series, used to fit the head.
readout
Which internal tensor of a model is taken as its embedding.
reference
A hand-made row that embeds nothing, such as max-|z| or current value. Shown, never ranked.
tabular row
A gradient-boosted or MLP learner on hand-written statistics of the window. Shown, never ranked.
tier
Models in score order. Tier 1 holds the models above the first one resolved below the top model; the next tier starts there and is built the same way, so a model in a lower tier can still be unresolved against the top one.
Tuning series
Series of an A dataset kept out of scoring. Only readout selection reads them.
unresolved
A verdict: the data do not separate the two models, and the interval is too wide to call them equal.
VUS-PR
Volume under the precision-recall surface, the metric for A.
within seed noise
A pair of single-seed models closer than 0.009 on the CAFE score or on a task board, 1.96 times the total SD of a single-seed difference in the 0.9.2 noise budget (0.0044, of which pretraining seed is 0.0018), a normal approximation.
ZERO
A fixed random projection of the raw window with no learning. The no-encoder reference.
†
A mean over fewer datasets than the view has, because some cells do not exist in this readout mode.
◊
A model developed by Forgis with access to CAFE Eval scores.

Scores with 95% intervals

Each bar runs from chance (0.5) to the model's score on the main board. The whisker is its 95% interval, and the colour is its tier: models in the same tier are not resolved from one another. The CAFE score is the mean of C, A and FE. Baselines, references and tabular rows are unranked and drawn in grey. The row switches above the board apply here too.

CAFE score
C · classification
A · anomaly detection
FE · forecasting events