- Book: System Design Pocket Guide: Fundamentals
- Also by me: Thinking in Go (2-book series) — Complete Guide to Go Programming + Hexagonal Architecture in Go
- My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools
- Me: xgabriel.com | GitHub
Mistral's new model doesn't write a single word. Timestral, released on October 15, 2026, reads a column of numbers and tells you where it is likely to go next, with a range around the guess. Mistral says its largest version, at 209M parameters, "ranks first on all three of the field's main public benchmarks," and that it "does not need a GPU at inference" (Mistral).
If you run capacity planning, cost forecasts or anomaly alerts off a metrics table, that is a useful release. Then you open the license. The weights ship under what Mistral calls a Modified MIT license, and the modification is a revenue cap: if your company's global monthly revenue went past $20 million in the preceding month, you are not authorized to use it.
What Mistral shipped on October 15
Timestral is a family of four time-series foundation models that share one architecture and training recipe (Mistral). "Foundation model" here means zero-shot: you hand it history and it forecasts, with no training on your data first. The GitHub README lists the checkpoints:
| Model | Hub repo | fp32 weights |
|---|---|---|
| Timestral-5M | mistralai/Timestral-5M |
21 MB |
| Timestral-28M | mistralai/Timestral-28M |
111 MB |
| Timestral-123M | mistralai/Timestral-123M |
490 MB |
| Timestral-209M | mistralai/Timestral-209M |
837 MB |
The 209M model card gives the shape of the thing. It reads up to 32,768 past steps and forecasts up to 1,024 steps per forward pass. Every forecast is 21 quantiles, from 0.01 to 0.99, which gives each step a band of likely values. It takes one series or several at once, plus covariates that are either known only for the past or known into the future (holidays, planned promotions, a scheduled deploy). Missing values go in as NaN.
On a server CPU with 8 threads, forecasting one day ahead from three weeks of 15-minute history, Mistral reports 10 ms for the 5M model and 140 ms for the 209M, with the 28M five times faster than the 209M (Mistral). Mistral's docs list Timestral 1.0 as a "Public Preview" and name no API price, so for now you download it and run it yourself.
The benchmark claims, and who made them
Every number below comes from Mistral. The model card says a tech report is "coming soon," and until it lands you can't check the method.
On the card's comparison table, Timestral-209M scores a MASE of 0.658 on GIFT-Eval, against 0.661 for t0-gamma, 0.667 for TimesFM-3 and 0.698 for Chronos-2 (lower is better). On fev-bench's SQL skill score it posts 50.39, against 49.42 for t0-gamma and 47.28 for Chronos-2 (higher is better). It leads every row, but the margins over the runner-up are small (model card).
The smaller models are the more interesting part for most teams. The 28M scores 0.678 on GIFT-Eval MASE and 0.638 on TIME MASE, both ahead of Chronos-2's 0.698 and 0.662, though behind t0-gamma and TimesFM-3 on GIFT-Eval and a hair behind t0-gamma's 0.637 on TIME (model card). Mistral describes Chronos-2 as about four times larger (Mistral).
Mistral says the results come from a single checkpoint with no ensembling, submitted to the GIFT-Eval and TIME leaderboards, and that most training data is synthetic, so "nothing we backtest was seen during pre-training" (Mistral). That addresses leakage, the usual worry with forecasting benchmarks. The tech report still has to back it.

Timestral returns a band of 21 quantiles per step, and Mistral says it needs no GPU to do it.
The "MIT" in Modified MIT
The inference code is Apache 2.0. The weights are not. The README says they are "distributed separately on the Hugging Face Hub under a Modified MIT license," and that license is where the catch sits.
The grant reads like MIT: use, copy, modify, merge, publish, distribute, sublicense and sell. Then the license file adds that you are "not authorized to exercise any rights under this license if the global consolidated monthly revenue of your company" (or your employer's) "exceeds $20 million (or its equivalent in another currency) for the preceding month." The restriction covers the model "and any derivatives, modifications, or combined works." Companies above the line can ask Mistral for a commercial license, which it may grant at its sole discretion, or use Mistral's hosted services. The 5M model's license carries the same $20 million cap, so a smaller checkpoint isn't a way around it.
How that plays out, as I read it (I'm not a lawyer):
- It is measured monthly. A company near the line can be inside the license one month and outside it the next.
- It follows the weights into derivatives, modifications and combined works based on them, including a fine-tuned copy.
- It counts your whole employer's revenue, however small your team's budget is.
Mistral's announcement pitches Timestral for on-prem, VPC and air-gapped deployment (Mistral). Read that next to the cap. The large enterprises most likely to want air-gapped forecasting are often the ones above $20 million a month, so they need the commercial license. That's my reading of the two documents, not something Mistral has said.

The weights are free to use until your company's monthly revenue crosses $20 million.
Try it on a week of traffic
If you're under the line, trying it is short. The package isn't on PyPI. The README installs it from GitHub and asks for Python 3.10+ and torch 2.4+:
pip install git+https://github.com/mistralai/timestral.git
Here's a capacity-planning version of the README's quickstart. It takes hourly request counts and forecasts the next 168 hours with the 28M model:
import numpy as np
from timestral import TimestralForecaster
# One value per line: requests per hour, oldest first.
history = np.loadtxt("requests_per_hour.txt")
model = TimestralForecaster.from_pretrained(
"mistralai/Timestral-28M"
)
week = model.forecast(history, prediction_length=168)
p50 = week.median
p90 = week.quantile(0.9)
print("peak p50:", p50.max())
print("peak p90:", p90.max())
Size servers for the p90, not the median. Actual load lands above the median half the time.
A few options from the README are worth knowing before you put this in a job. from_pretrained takes a revision argument, so pin a commit while the model is in public preview. local_files_only=True (or HF_HUB_OFFLINE=1) makes it read only from the local cache, which suits a locked-down box. Known future events go in known_covariates, shaped (B, C_known, T + prediction_length), and a row of only 0s and 1s is treated as an indicator, which is how you'd flag a launch day.
Where it stops
The README is direct about the limits. Context above 32,768 steps is cut, keeping the most recent. Horizons past 1,024 steps are forecast block by block, and "each block's median is fed back as context," so the far end of a long forecast is built on earlier guesses. Covariates condition the forecast and are never forecast themselves. The project doesn't accept pull requests; issues are handled "on a best-effort basis" (README).
I haven't run Timestral myself, so I can't tell you how it does on your metrics. The fair test is cheap, though: backtest it on a month of your own history against whatever you use now, then check whether your company sits under the $20 million line before anyone builds on it.
Would a revenue cap on "MIT" weights stop you from adopting a model at work, or does a free tier for smaller companies seem like a fair trade? Tell me in the comments.
If this was useful
Forecasting load is only half of capacity planning. The other half is knowing what to do with the number: where to cache, when to shard, how much headroom a p90 should buy you. The System Design Pocket Guide: Fundamentals covers those building blocks in a short, practical format.
I also build Hermes IDE, a free, source-available IDE that runs Claude Code, Codex and other coding agents side by side, where each task can get its own branch and worktree, on macOS, Windows and Linux. Star it on GitHub if that sounds useful.

Top comments (0)