How we measure which engine wins
This benchmark measures 7 engines on 40 public datasets, with one rule sealed before a single number was measured. Passing it is required to enter MatrixAI Studio’s engine portfolio, but it is not enough: CatBoost passed it in the September 16, 2026 measurement but not in the September 22, 2026 one, and is not in the portfolio. Today it holds LightGBM and scikit-learn HGB. Since v2.8, MatrixAI’s new network also competes in the Studio’s study, in both packages, as one more engine. In the GPU package our previous network also competes, as an experimental engine; in the CPU package it no longer appears. This page shows exactly how that is checked.
Measured October 1, 2026
The new MatrixAI network, on the field of the other engines
MatrixAI’s network meets the bar on 38 of 40 datasets, and is the best engine on 23.
These figures are from Phase 0, not what you get in the product. In the product, this network has been in the Studio since v2.8.
Measured in the Studio’s study, on 13 public datasets, without a GPU and with 6 GB of memory for the container. CPU package: The champion improves on 2 of 13 datasets (difference in points of its test score: dresses-sales +4.4, pc1 +1.6), drops on none and none stops completing. On 2 the study did not end with a champion, with the network or without it. On 2 the estimated memory exceeded the container’s and the network did not compete (Allstate_Claims_Severity: 15.3 GB estimated against 6 GB; KDDCup09_appetency: 7.8 GB estimated against 6 GB).
GPU package: The champion improves on 3 of 13 datasets (difference in points of its test score: dresses-sales +4.4, house_16H +1.8, pc1 +1.6), drops on none and none stops completing. On 3 the study did not end with a champion, with the network or without it. This run was also done without a GPU: what it does on a GPU has not been measured.
And since v2.9 you can choose it in the expert mode, as a single-engine study measured against the reference. It is recommended for tables after a confirmation run on 8 datasets: it came within 2 points of the best of the three networks in 7 of them (the exception: climate-model-simulation-crashes, where the network of the core study beat it by 2.1 points). Its time is measured, not promised; the time limit cut 1 of the 22 measured folds (mfeat-factors).
The records of this measurement ↓
Same Phase 0 rule as everyone else: within 2 points of the best engine on each dataset. It is a result under its protocol, not a claim about every dataset.
Our previous network, on the September 22, 2026 table, met it on 16 of 40.
The field: the other engines come from the frozen September 22, 2026 measurement (v2) and were not measured again; the new network, measured on September 30, 2026 (32 datasets) and October 1, 2026 (the 8 sealed ones), takes the place of the previous dense network.
For each engine, on how many of the 40 datasets it ends within 2 points of the best one. The two counts differ in who is on the field.
| Engine | Without the new network (v2) | With the new network on the field | Best on |
|---|---|---|---|
| MatrixAI network | — | 38/40 (95%) | 23 |
| LightGBM | 33/40 (82.5%) | 26/40 (65%) | 2 |
| CatBoost | 29/40 (72.5%) | 25/40 (62.5%) | 8 |
| scikit-learn HGB | 33/40 (82.5%) | 25/40 (62.5%) | 2 |
| XGBoost | 29/40 (72.5%) | 24/40 (60%) | 3 |
| scikit-learn (linear) | 14/40 (35%) | 13/40 (32.5%) | 2 |
| MatrixAI previous network | 16/40 (40%) | — | — |
Without the new network: the frozen September 22, 2026 measurement, where LightGBM meets the bar on 33/40 datasets and scikit-learn HGB on 33/40. The previous network competes there.
With the new network: the same engines and the same figures, recounted with the same functions but with the new network on the field. Being the best on a dataset moves from one engine to another, so everybody else’s count goes down. Nothing was measured again to make it.
The previous network only has the first count: on the new field it is replaced.
Placed next to the counts on purpose, with the same weight — not a footnote at the bottom of the page.
- The intervals measure how much the result changes when RETRAINING on other splits of the same dataset, not how the engine would do on another data sample.
- “2 points” does not weigh the same in every metric: 2 points of R² are not 2 of AUROC.
- Each engine runs with its default values, with no hyperparameter search: with a search, the order could change.
- A one-dataset difference in the count does not tell two engines apart.
- It does not say the new network beats LightGBM or any other engine in general. It says that, on these 40 public datasets and under this rule, it ends within the bar more often than the others do.
- Being within the bar is not being the best: it was the best engine on 23 of the 40 datasets and close behind on others; 2 datasets stay outside the bar.
What "the best engine" means here
On each dataset, every engine is trained with its default settings — no hyperparameter search — and scored with the metric that task uses. The engine with the best average is the winner of that dataset; any other engine that lands within a fixed number of points of that winner still counts as having met the bar there. A crash or a timeout counts as a lost dataset for that engine, not as a zero.
the engine with the best mean over the fits on THAT dataset, excluding the dummy baseline; a failure (timeout/crash) counts as a lost dataset for that engine
| Task | Metric |
|---|---|
| Binary classification | AUROC |
| Multiclass classification | accuracy or macro-F1 |
| Regression | R² |
kc2 — Binary classification
Worked from the same JSON this whole page reads — nothing here is typed by hand. · 522×22 · OpenML ↗
| Engine | Score | Distance from best | Meets the bar? |
|---|---|---|---|
| MatrixAI network(ours)★ | 0.919 | 0 | Yes |
| scikit-learn HGB | 0.913 | 0.61 | Yes |
| CatBoost | 0.903 | 1.63 | Yes |
| XGBoost | 0.891 | 2.88 | No |
| LightGBM | 0.888 | 3.16 | No |
| scikit-learn (linear) | 0.862 | 5.79 | No |
| MatrixAI previous network | 0.915 | — | not on this field |
The previous network is shown for reference only: on the new field it is replaced, so it has no distance to the best here.
On kc2, the best engine was MatrixAI network, at 0.919. Of the 6 engines that competed, 3 stayed within 2 points of the best and so meet the rule on this dataset.
Who builds the model: MatrixAI directs, the engines learn
The general downloadable package never carries ONNX. Only when the winner is LightGBM, on a binary classification with its decision already chosen, can MatrixAI also generate a page that predicts in the browser with no server, in ONNX format, with its parity checked against real rows before it is published — neither the baseline nor the dense net export to ONNX.
What it learned from the training rows: LightGBM’s or scikit-learn’s trees, the dense net’s weights.
How the data goes in, how the winner is picked, which probability can be trusted, where the threshold sits, what got measured at the end, and how all of it is checked.
The table below measures exactly the engine’s part: every engine learns with the same prepared data, the same split and the same time, and MatrixAI does the rest the same way for all of them.
One case is entirely MatrixAI’s own: our neural network. It is not a third-party library — MatrixAI’s core generates it and trains it. Its architecture builds on TabM; the section on the new network below says so.
40 datasets × 7 engines
Same field as the counts above. Filter by task or by dataset size. On a phone the table keeps its own horizontal scroll — the page itself never scrolls sideways.
This table is Phase 0: every engine got 4 threads and between 120 and 600 s per attempt, measured on each dataset’s own test set. A study in the Studio gives each attempt 1 thread and at most about 22 s, and picks its champion by cross-validation on the data of whoever runs it — so when the gaps are small, it can pick a different engine than this table, and both measurements are right about what they measure.
Two of these datasets, which are also Studio examples, were measured with columns that their source marks to be ignored (OpenML) or does not count among the predictive ones (UCI). The sealed figures are not touched; this is what they were measured with:
- climate-model-simulation-crashes was measured with its 20 input columns, “Study” and “Run” included, which OpenML marks to be ignored.
- us_crime was measured with its 126 input columns, “state”, “county”, “community” and “fold” included, which UCI, the original source, does not count among the predictive columns.
A later evaluation already drops what OpenML marks to be ignored, but it does not include these two datasets; and the four us_crime columns are not marked by OpenML but by UCI’s original listing. Several later passes, including the one of the new network in the Studio’s study that this page cites, measured them again WITH those columns, and the controls still measure them that way so they stay comparable. The Studio’s examples no longer have them. No pass has measured them WITHOUT those columns, so we cannot say how much their figures would change, or whether any verdict would.
- ✓ meets the bar (within 2 points of the best on that dataset)
- ★ best engine on that dataset, on the new field (the baseline never competes)
- — crashed or timed out (counted as a lost dataset, not a zero)
| Dataset | Task | Size | Baseline (dummy) | CatBoost | LightGBM | MatrixAI network | scikit-learn HGB | scikit-learn (linear) | XGBoost | Previous network (v2, off this field) |
|---|---|---|---|---|---|---|---|---|---|---|
| Allstate_Claims_Severity ↗ | Regression | Large | -0 | 0.561 ✓ | 0.562 ✓ | 0.576 ✓ ★ | 0.562 ✓ | 0.509 | 0.568 ✓ | — |
| Amazon_employee_access ↗ | Binary classification | Large | 0.5 | 0.776 | 0.823 ✓ | 0.827 ✓ ★ | 0.82 ✓ | 0.545 | 0.818 ✓ | 0.635 |
| APSFailure ↗ | Binary classification | Large | 0.5 | 0.995 ✓ ★ | 0.993 ✓ | 0.994 ✓ | 0.992 ✓ | 0.978 ✓ | 0.995 ✓ | 0.99 |
| balance-scale ↗ | Multiclass classification | Small | 0.46 | 0.901 | 0.872 | 0.966 ✓ ★ | 0.863 | 0.865 | 0.866 | 0.946 |
| SEALEDbanknote-authentication ↗ | Binary classification | Small | 0.5 | 1 ✓ | 1 ✓ | 1 ✓ ★ | 1 ✓ | 1 ✓ | 1 ✓ | 0.999 |
| climate-model-simulation-crashes ↗ | Binary classification | Small | 0.5 | 0.96 ✓ ★ | 0.949 ✓ | 0.93 | 0.936 | 0.949 ✓ | 0.937 | 0.932 |
| connect-4 ↗ | Multiclass classification | Large | 0.658 | 0.759 | 0.792 | 0.847 ✓ ★ | 0.806 | 0.662 | 0.78 | 0.764 |
| diabetes ↗ | Binary classification | Small | 0.5 | 0.799 ✓ ★ | 0.764 | 0.797 ✓ | 0.757 | 0.784 ✓ | 0.775 | 0.789 |
| SEALEDdiamonds ↗ | Regression | Large | -0 | 0.979 ✓ | 0.981 ✓ | 0.981 ✓ | 0.981 ✓ | 0.918 | 0.981 ✓ ★ | 0.979 |
| dresses-sales ↗ | Binary classification | Small | 0.5 | 0.518 | 0.58 ✓ ★ | 0.574 ✓ | 0.541 | 0.555 | 0.524 | 0.554 |
| house_16H ↗ | Regression | Large | -0 | 0.646 | 0.662 | 0.723 ✓ ★ | 0.662 | 0.264 | 0.658 | 0.497 |
| house_prices_nominal ↗ | Regression | Small | -0 | 0.916 ✓ | 0.902 | 0.929 ✓ ★ | 0.903 | 0.886 | 0.913 ✓ | 0.797 |
| house_sales ↗ | Regression | Large | -0.001 | 0.851 | 0.868 | 0.911 ✓ ★ | 0.87 | 0.681 | 0.862 | 0.853 |
| Internet-Advertisements ↗ | Binary classification | Medium | 0.5 | 0.98 ✓ | 0.976 ✓ | 0.97 ✓ | 0.975 ✓ | 0.988 ✓ ★ | 0.978 ✓ | 0.973 |
| jm1 ↗ | Binary classification | Medium | 0.5 | 0.737 ✓ | 0.743 ✓ | 0.733 ✓ | 0.744 ✓ ★ | 0.556 | 0.742 ✓ | 0.717 |
| kc2 ↗ | Binary classification | Small | 0.5 | 0.903 ✓ | 0.888 | 0.919 ✓ ★ | 0.913 ✓ | 0.862 | 0.891 | 0.915 |
| KDDCup09_appetency ↗ | Binary classification | Large | 0.5 | 0.817 ✓ ★ | 0.736 | 0.812 ✓ | 0.775 | 0.596 | 0.752 | — |
| kick ↗ | Binary classification | Large | 0.5 | 0.766 ✓ | 0.759 ✓ | 0.762 ✓ | 0.766 ✓ ★ | 0.622 | 0.762 ✓ | 0.743 |
| SEALEDkr-vs-kp ↗ | Binary classification | Medium | 0.5 | 0.999 ✓ | 1 ✓ ★ | 1 ✓ | 1 ✓ | 0.994 ✓ | 1 ✓ | 0.999 |
| SEALEDletter ↗ | Multiclass classification | Medium | 0.041 | 0.842 | 0.952 | 0.976 ✓ ★ | 0.953 | 0.761 | 0.939 | 0.818 |
| mfeat-factors ↗ | Multiclass classification | Small | 0.1 | 0.958 | 0.977 ✓ | 0.982 ✓ ★ | 0.977 ✓ | 0.979 ✓ | 0.97 ✓ | 0.95 |
| micro-mass ↗ | Multiclass classification | Small | 0.106 | 0.794 | 0.864 | 0.886 ✓ ★ | 0.865 | 0.815 | 0.838 | 0.594 |
| Moneyball ↗ | Regression | Small | -0.002 | 0.933 ✓ | 0.933 ✓ | 0.939 ✓ ★ | 0.934 ✓ | 0.873 | 0.925 ✓ | 0.871 |
| okcupid-stem ↗ | Multiclass classification | Large | 0.716 | 0.756 ✓ | 0.755 ✓ | 0.756 ✓ ★ | 0.755 ✓ | 0.737 ✓ | 0.755 ✓ | 0.737 |
| optdigits ↗ | Multiclass classification | Medium | 0.101 | 0.967 | 0.988 ✓ | 0.991 ✓ ★ | 0.989 ✓ | 0.969 | 0.981 ✓ | 0.98 |
| ozone-level-8hr ↗ | Binary classification | Medium | 0.5 | 0.917 ✓ | 0.934 ✓ | 0.932 ✓ | 0.935 ✓ | 0.918 ✓ | 0.937 ✓ ★ | 0.912 |
| pc1 ↗ | Binary classification | Small | 0.5 | 0.811 ✓ ★ | 0.781 | 0.797 ✓ | 0.78 | 0.601 | 0.781 | 0.765 |
| SEALEDpc3 ↗ | Binary classification | Small | 0.5 | 0.81 ✓ ★ | 0.802 ✓ | 0.784 | 0.802 ✓ | 0.743 | 0.807 ✓ | 0.764 |
| pc4 ↗ | Binary classification | Small | 0.5 | 0.936 ✓ | 0.931 ✓ | 0.941 ✓ ★ | 0.932 ✓ | 0.867 | 0.928 ✓ | 0.911 |
| pendigits ↗ | Multiclass classification | Medium | 0.104 | 0.971 | 0.989 ✓ | 0.992 ✓ ★ | 0.988 ✓ | 0.941 | 0.985 ✓ | 0.983 |
| PhishingWebsites ↗ | Binary classification | Medium | 0.5 | 0.994 ✓ | 0.994 ✓ | 0.997 ✓ ★ | 0.994 ✓ | 0.98 ✓ | 0.994 ✓ | 0.99 |
| SEALEDpol ↗ | Regression | Medium | -0 | 0.974 | 0.982 ✓ | 0.996 ✓ ★ | 0.982 ✓ | 0.457 | 0.982 ✓ | 0.996 |
| SAT11-HAND-runtime-regression ↗ | Regression | Medium | -0.003 | 0.61 | 0.735 | 0.804 ✓ ★ | 0.746 | 0.5 | 0.752 | 0.688 |
| SEALEDSatellite ↗ | Binary classification | Medium | 0.5 | 0.947 | 0.971 ✓ | 0.974 ✓ | 0.973 ✓ | 0.976 ✓ ★ | 0.956 | 0.992 |
| sick ↗ | Binary classification | Medium | 0.5 | 0.995 ✓ | 0.994 ✓ | 0.998 ✓ ★ | 0.994 ✓ | 0.959 | 0.992 ✓ | 0.934 |
| SEALEDsplice ↗ | Multiclass classification | Medium | 0.519 | 0.944 ✓ | 0.956 ✓ | 0.951 ✓ | 0.955 ✓ | 0.93 | 0.957 ✓ ★ | 0.935 |
| us_crime ↗ | Regression | Small | -0 | 0.722 ✓ ★ | 0.715 ✓ | 0.716 ✓ | 0.715 ✓ | 0.704 ✓ | 0.716 ✓ | 0.708 |
| wilt ↗ | Binary classification | Medium | 0.5 | 0.998 ✓ | 0.996 ✓ | 0.999 ✓ ★ | 0.997 ✓ | 0.984 ✓ | 0.998 ✓ | 0.966 |
| wine_quality ↗ | Regression | Medium | -0 | 0.417 | 0.43 | 0.496 ✓ ★ | 0.429 | 0.304 | 0.431 | 0.375 |
| yeast ↗ | Multiclass classification | Small | 0.312 | 0.604 ✓ ★ | 0.579 | 0.588 ✓ | 0.576 | 0.551 | 0.579 | 0.582 |
| Datasets met (of all 40) | — | 25/40 | 26/40 | 38/40 | 25/40 | 13/40 | 24/40 | 16/40 | ||
| Best on (★, of all 40) | — | 8 | 2 | 23 | 2 | 2 | 3 | — | ||
Datasets marked SEALED are the portfolio’s final exam: they are never used to pick or tune anything, only to grade the result once, at the end.
Baseline is a dummy predictor shown for reference only — it never competes for "the best" and is excluded from every verdict below.
The last column is the previous network as measured in the frozen v2 table. On this field it is replaced by the new network, so it carries no ✓ or ★ here.
The two bottom rows count all 40 datasets, whatever the filter above. For the previous network, the count in its own v2 field.
MatrixAI’s new neural network, measured
It is a neural network built for tabular data, like a spreadsheet. Each row goes through several small networks that share most of their weights, and their answers are averaged. Before that, every numeric value is turned into a small vector of sines and cosines whose frequencies the network learns, so that it reads numbers well.
It runs on a CPU, with no GPU (a GPU is not required), and it is the engine that replaces our previous dense network in this measurement.
Its architecture builds on TabM with PLR embeddings (Gorishniy et al., Yandex Research, 2022 and 2025). The CPU adaptation, its integration into MatrixAI, the protocol and the measurement are ours.
31 of 32 on the datasets we could tune against, plus 7 of 8 on the sealed ones. The previous network: 11 of 32, plus 5 of 8.
The 8 sealed datasets were measured one single time: no second try, no adjustments afterwards.
The records of this measurement ↓
It does not pass the rule: it met the bar on 15/40 datasets in the September 16, 2026 measurement and on 16/40 in the September 22, 2026 one, where it was the best engine on 4. On the field above it no longer competes: the new network takes its place.
In the downloadable Studio, since v2.8: in the GPU package the previous network keeps competing, as an experimental engine, and it only wins when it is the best on that dataset; in the CPU package the new network takes its place and the previous one no longer appears.
- Allstate_Claims_Severity trains only 5 epochs: the time limit cuts it short, well below the 17 the rule asks for as a minimum. It counts as measured, with that handicap.
- In classification, early stopping uses the log-loss of the ensemble, not the accuracy that the original source of the method uses. It changes which epoch is kept, so it changes the numbers; the protocol was already sealed, so it was not changed.
- The other networks and engines come from the frozen table of September 22, 2026 (v2); they were not measured again with the new network.
- The sealed datasets were measured once (110 runs, none repeated).
The original wording in the sealed record (Spanish)
Allstate_Claims_Severity entrena las épocas que quepan en el plazo (≈10, menos que las 17 de la regla) y se queda con la mejor época vista: el plazo lo corta, como a la densa de hoy. La paciencia (16) casi no podrá actuar. Se declara en el resultado de C3 junto a su cifra.la fuente para en clasificación con la ACCURACY del ensamblado (accuracy_score de la media de las k predicciones), que tiene mesetas y empates que cuenta como «sin mejora»; este motor para con la LOG-LOSS de las probabilidades promediadas, que no los tiene. Cambia qué época se guarda y cuándo actúa la paciencia, o sea los números. El código cumple lo REGISTRADO (el v4 decía validation_loss); lo que no es cierto es el «como la fuente» de la enmienda 2 en clasificación. No se cambia: la enmienda va sellada y cambiar la parada después de auditar sería otra recetaUnder our own decision rule, a network that meets the bar on at least 32 of 40 datasets joins the Phase 0 portfolio of engines, and this one does.
That is a Phase 0 statement: 4 threads per attempt and between 120 and 600 s each. In the downloadable Studio every attempt gets 1 thread and about 22 s, and that is where it was measured on October 1, 2026, on 13 datasets, with the rule written before measuring: it completes 18 of 26 attempts, it is within 2 points or less of the best on 4 of 13 datasets, and it loses to the previous network on 5 (the limit was 2). It did not pass the rule, so on that date the downloadable Studio kept the previous network. That is history: see the next paragraph for what changed.
Then contract 120 put the new network into the study as one more engine, with its own time (60 s per attempt, added to the budget: no other engine loses a second), and measured it that way. It only competes if it was measured on every part of the cross-validation, and the study picks per dataset: it only wins where it is the best. It ships in the Studio since v2.8.
Measured in the Studio’s study, on 13 public datasets, without a GPU and with 6 GB of memory for the container. CPU package: The champion improves on 2 of 13 datasets (difference in points of its test score: dresses-sales +4.4, pc1 +1.6), drops on none and none stops completing. On 2 the study did not end with a champion, with the network or without it. On 2 the estimated memory exceeded the container’s and the network did not compete (Allstate_Claims_Severity: 15.3 GB estimated against 6 GB; KDDCup09_appetency: 7.8 GB estimated against 6 GB).
GPU package: The champion improves on 3 of 13 datasets (difference in points of its test score: dresses-sales +4.4, house_16H +1.8, pc1 +1.6), drops on none and none stops completing. On 3 the study did not end with a champion, with the network or without it. This run was also done without a GPU: what it does on a GPU has not been measured.
It competes in both packages. The CPU package downloads PyTorch for CPU (about 200 MB) on its first start, on the computer that installs it, like the GPU package already did; later starts download nothing. If the study’s estimated memory (about 1 GB plus half a GB per million cells, with a 15 % margin) exceeds the container’s, the network does not compete in that study and Results says so, with both figures. The hosted demo does not carry it.
Asked directly, Jev wins on fake news (AUROC 0.885 against 0.724 with no text); as a column generator, it does not help.
Jev (TypeSafe) is not in the table above: it does not learn from labelled rows — it answers questions about a piece of text — and it does not do regression, while these 40 datasets are tables with no free text. We measured it two ways instead: turning Spanish free text into columns for the same supervised model, and asking it the task's question directly, with no training at all.
As a column generator
In both public tasks measured this way, its answers did not improve on ignoring the text in any practical way. In public procurement, with topical questions: RMSE 0.648 against 0.653 with no text — practically equivalent. The whole measurement cost $0.60.
Asked directly, untrained
Asked the task's own question directly — with no training on any of our data — Jev improves on ignoring the text in fake news (AUROC 0.885 against 0.724 with no text), but is inconclusive on whether a piece of Spanish legislation is still in force (AUROC 0.828 against 0.855). Caution: both corpora are old public data, so this cannot tell reading the text apart from remembering it from training, and AUROC only says Jev ranks well — not that its 0–1 score is calibrated.
The free-text measurement, with Jev →Where each figure comes from, and whether it can be anchored to one exact commit
Three sources make up the field. The other engines come from the frozen table of the September 22, 2026 measurement. The new network comes from two sealed records, measured on September 30, 2026 and October 1, 2026, each tied to an exact commit; their seals were recomputed before publishing this page.
110 of the 3,479 attempts in this run were measured with the matrixAI tree dirty after a restart — they do not come from a clean commit, so this run is NOT fully anchorable to one exact point in history.
| Source | Measured | Attempts | Repository state |
|---|---|---|---|
| Other engines · frozen v2 table | September 21, 2026 | 3,369 | clean |
| Other engines · frozen v2 table | September 22, 2026 | 110 | dirty: matrixAI |
| New network · 32 datasets (119-C3) | September 30, 2026 | 387 | clean · seal verified |
| New network · 8 sealed datasets (119-C4) | October 1, 2026 | 110 | clean · seal verified |
Measurement seals (JCS): C3 640137070dc30a28 · C4 a44a38c0e1a1fac4 · v2 600ebdaad2ca206e
These are seals of the content, not file hashes; see the explanation in the downloads below.
The protocols and the raw artefacts
This page does not redistribute the datasets — each row of the table links out to its own page on OpenML. What you can download here are the sealed records: first those of the 38/40 measurement of the new network, then those of the frozen v2 table — the base of the field — each with the digest that proves it has not been touched.
Some files here carry two fingerprints, and they do not match on purpose. The file SHA-256 is what sha256sum prints on the download: it changes with any byte (a space, the order of the keys). The measurement seal (for a result) and the registered protocol digest (for a protocol) identify the CONTENT in its canonical form (JCS, RFC 8785): the seal is what the measurement sealed when it finished, and the protocol digest is what was registered before measuring. The provenance cites those, not the file hash.
To recompute the seal of a result: pip install matrixai-core, then python3 -c "import json; from matrixai.estudio.validacion import digest_canonico as h; d=json.load(open('FILE.json')); d.pop('digest_resultados_crudos'); print(h(d))"
The digest of an earlier protocol is recomputed with the core repository (benchmarks/fase0/protocolo.py, ProtocoloExploratorio.desde_json(...).digest()); the published package alone is not enough.
The records of the 38/40 measurement (the new network)
The protocol, the amendments and the results of the measurement, together with two later amendments identified separately. Each one is listed with its size and the SHA-256 computed from the file itself — what sha256sum prints on the download. The two results also show their measurement seal, which is the one the provenance above cites.
The protocol (v4), sealed before measuring: which datasets, the split, the budget per attempt, the closing rule, the metric per task.
Size: 50,469 bytes
File SHA-256 8ec2e05bed0db6f8e38c99c6b5da4dc9f1097579bc55065a998b2813c3582cd3
This protocol was registered by the hash of its file, so its registered digest IS the file SHA-256 above.
protocolo_119_v4.json ↓Check: sha256sum protocolo_119_v4.json must print the file SHA-256 above.
Amendment 1: the configuration of the network body for every dataset (k=8, d_block=256), written after the cost probe and before building the engine.
Size: 1,915 bytes
File SHA-256 665c1c83b7b80ca8d49bcbd0f314a470902c8d76c9985e3527e3fae93d088d3bprotocolo_119_v4_enmienda_1.json ↓
Check: sha256sum protocolo_119_v4_enmienda_1.json must print the file SHA-256 above.
Amendment 2: how failures count, the early-stopping metric and what is declared about epochs, written after two audits and before measuring any accuracy.
Size: 3,520 bytes
File SHA-256 fcb154c67e2d7f0e06ec62d9ba843de4766b76d50fa1f622cb94032eace4d118protocolo_119_v4_enmienda_2.json ↓
Check: sha256sum protocolo_119_v4_enmienda_2.json must print the file SHA-256 above.
Amendment 3: two corrections to the network’s categorical preparation, proposed for a later version of the engine (1.2.0) and its re-measure.
Registered on October 2, 2026, after this measurement: it does not support the 38/40 — the sealed datasets keep the figure of the version that was measured.
Size: 3,183 bytes
File SHA-256 7b300b179ffd210163f52764778b8a51ef1c39e607328490dffa871e2f31ee57protocolo_119_v4_enmienda_3.json ↓
Check: sha256sum protocolo_119_v4_enmienda_3.json must print the file SHA-256 above.
Amendment 4: what that re-measure counts and how it is launched.
Registered on October 2, 2026, after this measurement: it does not support the 38/40 — the sealed datasets keep the figure of the version that was measured.
Size: 2,245 bytes
File SHA-256 efce65c3b74bfd762e7c911c1f3a996632789b1e50c4107cc49537889711a27bprotocolo_119_v4_enmienda_4.json ↓
Check: sha256sum protocolo_119_v4_enmienda_4.json must print the file SHA-256 above.
Artefact 119-C3: the raw result on the 32 datasets we could tune against (every attempt of every engine run).
Size: 1,328,664 bytes
File SHA-256 40029421c095292fd77490cca4ac8c664df797cd3b1424c931a3826806537912
Measurement seal 640137070dc30a282a1cfc4d7702fd5f06b4e24ca9e2d720950b0c0b8bd995ce
Check: sha256sum resultado_pasada_119_c3.json must print the file SHA-256 above.
Artefact 119-C4: the raw result on the 8 sealed datasets, measured one single time, and the 38/40 verdict itself.
Size: 414,661 bytes
File SHA-256 c8fdf337184f236d6874e8f72711e92828352fac0643dbd219cabb9b6e60cca4
Measurement seal a44a38c0e1a1fac450d958bfdec6d5a3153c84edb65d2d88cf6f73c31471e078
Check: sha256sum resultado_pasada_119_c4.json must print the file SHA-256 above.
The previous measurement and the base of the field
These are the records of the earlier measurements — the previous network and the frozen v2 table the field is built on — not those of the 38/40, which are listed above.
The protocol sealed before measuring: what counts as "the best", the point bar, the pass fraction, the metric per task.
Protocol version: 113-C0.v2 · September 21, 2026
File SHA-256 40ef7614d12bc5f727779d878ad430db9eb340b79d40894e4f174125d1f85b22
Registered protocol digest 1b4e902e61e06edcfda8e9f4ccef1232a233d46718089c5f0a2f814feb9dc878
The raw result of the run: every attempt, every engine, every dataset — this is what the JSON on this page is generated from.
File SHA-256 3ab8bd3589855e074f1bf21e0f82993f12c08553d8b1950396eaa8a565eecfb1
Measurement seal 600ebdaad2ca206eac148e25c38b57add8ad2d64652fafca3d8226758010c0d0
Nothing on this page redistributes a dataset — every dataset name links to its own OpenML page.
The earlier measurements, kept with their date
Until October 1, 2026 this page showed the September 16, 2026 measurement (v1). It is kept here, not erased. The September 22, 2026 measurement (v2) is the base of the field above: its counts are the first column of the two counts.
The v2 measurement was the first one with the recipe of the previous network (the one the Studio shipped until v2.7.3, and still ships in the GPU package as an experimental engine), and it decided a portfolio change on September 22, 2026. Part of it was measured with a dirty working tree (see the provenance table above), so it is not fully anchorable to one commit.
Measured September 16, 2026 · 3,479 attempts · 17.18 h of wall clock
All 3,479 attempts in this run were measured with the matrixAI and matrixai-engines repositories CLEAN — each one comes from an exact commit, so this run is fully anchorable to one specific point in history.
It is the run that backs the current engine portfolio, because it is fully anchorable to one exact commit: the portfolio’s approvals cite it. The network of that day is the previous one, not the new one.
| Engine | Datasets met | Fraction | Passes? |
|---|---|---|---|
| LightGBM | 34/40 | 85% | Passes |
| scikit-learn HGB | 34/40 | 85% | Passes |
| CatBoost | 33/40 | 82.5% | Passes |
| XGBoost | 30/40 | 75% | Does not pass |
| MatrixAI previous network(ours) | 15/40 | 37.5% | Does not pass |
| scikit-learn (linear) | 15/40 | 37.5% | Does not pass |
An engine passes when it meets the bar on at least 80% of the 40 datasets. The baseline is excluded — it never competes.
Protocol version: 101-C1.v1 · September 6, 2026
File SHA-256 cbc0f42b928df18d359cb0471b7b5741711abed429a54f4f073a3c8762e5091f
Registered protocol digest ea50ca482a815627364b3439bfcf10e78295a13ae5f821219d0fb40329e65301
File SHA-256 dfb37c28e9aca72305efee319be46e5b968f30d981aeb781e8358881d30ae2d5
Measurement seal 3646af61b155c1321ad3fd71f25e9300ed9797b9b5dec0f37ed835cd835ecf48
Every number on this page is read live from src/datos/campo_119_publico.json, fase0_publico.json and red_119_publico.json, copied byte-for-byte from the files MatrixAI generates from the sealed Phase 0 records — nothing here is typed by hand.