Issue Nº 01 — October 15, 2026

@readmodelmag
MODEL

Follow MODEL on X @readmodelmag

Tools

Stop asking a chatbot to forecast your numbers. A 21 MB model on a CPU does it.

SummaryMistral's Timestral forecasts traffic, sales or sensor data with no GPU. Here is the install, the five lines that matter, how it did on a real series in our test, and the licence clause to read before you ship it.

· MODEL Editors · 3 min read

Some links may be affiliate links. Disclosure

Programming source code on a computer monitor.
Source code on a monitor. This is not a Timestral screenshot. Photograph by Markus Spiske, via Wikimedia Commons. CC0. Image source.

If you've been pasting a column of numbers into a chatbot and asking "what happens next month?", there is now a better tool for that job, and it runs on a laptop CPU. Mistral released Timestral on October 15: four time-series models (5M, 28M, 123M and 209M parameters) that take a history of numbers and return a forecast with uncertainty bands. It was near the top of Hacker News today.

Step 1: install. Python 3.10 or newer and PyTorch 2.4 or newer:

  • pip install git+https://github.com/mistralai/timestral.git

The package needs only PyTorch, NumPy, safetensors and huggingface_hub. On a machine with no GPU, install the CPU build of PyTorch first and you skip the big CUDA download.

Step 2: forecast. This is the shape of Mistral's own example:

  • from timestral import TimestralForecaster
  • f = TimestralForecaster.from_pretrained("mistralai/Timestral-28M")
  • fc = f.forecast(history, prediction_length=28)
  • fc.median is the forecast; fc.quantile(0.1) and fc.quantile(0.9) give an 80% band.

history can be a single NumPy array of past values. Mark gaps with NaN rather than zero. You get 21 quantiles per step, from 0.01 to 0.99.

Step 3: use the band, not just the line. Alert when a real value lands above quantile(0.9), or plan capacity for the 0.9 line instead of the median. That's the part a chatbot answer can't give you.

What we ran. We fed the 5M and 28M models daily English Wikipedia pageviews for the "Large language model" article (January 2024 to October 18, 2026, about 3,700 views a day lately) and forecast 28 days ahead from eight different starting points, comparing each against the real numbers and against "same as last week", repeated. On a 4-thread Xeon CPU:

  • Timestral-28M: average error 269 views a day vs 392 for "same as last week", about 31% lower. It won at all 8 starting points. About 22 ms per forecast.
  • Timestral-5M (a 21 MB file): average error 280 views a day, about 28% lower, also 8 of 8. About 9 ms per forecast.
  • The 10%-90% band held the real value on about 84-85% of days, close to the 80% it's meant to cover.

That's one series, so treat it as a sanity check, not a benchmark. Mistral's own benchmark claims (first among zero-shot models on GIFT-Eval, TIME and fev-bench for the 209M model) are Mistral's.

Useful knobs. past_covariates and known_covariates let you pass drivers such as a launch calendar or a planned price change (known covariates need values for the forecast horizon too). Pass revision= with a commit hash to pin the weights, and set HF_HUB_OFFLINE=1 once they're cached so production never reaches out to the Hub. The loader reads config.json and model.safetensors, not pickle files.

Who it's for: anyone forecasting API traffic, token spend, signups, sales or sensor readings who doesn't want to train a model per series.

The catches. Read the weights licence: the code is Apache 2.0, but the weights are under a "Modified MIT" licence that gives no rights at all if your company's (or your employer's) global consolidated monthly revenue exceeded $20 million in the preceding month; those users need a commercial licence from Mistral or its hosted service. The context is capped at 32,768 steps. Forecasts longer than 1,024 steps are built block by block, feeding each block's median back in, so uncertainty in long horizons deserves less trust. And the model only knows your history: if a stock-out or an outage pushed numbers down, it will learn that as normal unless you mark those points NaN.

Our verdict: worth ten minutes if you forecast anything. Start with the 28M model, check it against "same as last week" on your own data, and use the 0.9 band for alerts.

What we did and didn't do: MODEL installed the package and ran the 5M and 28M models on CPU against public Wikipedia data on October 19, 2026, as described above. We did not test the 123M or 209M models, covariates, or fine-tuning. Everything else comes from Mistral's blog post, GitHub repository, model card and licence, read on October 19, 2026, and linked below. This is not sponsored and has no affiliate links.

MODEL Editors

Sources

  1. Introducing Timestral (Oct 15, 2026)

    Mistral AI

  2. timestral: standalone inference code and README

    Mistral AI (GitHub)

  3. Timestral-28M model card

    Mistral AI (Hugging Face)

  4. Timestral weights licence (Modified MIT)

    Mistral AI (Hugging Face)

  5. Timestral: Mistral's time-series foundation models (discussion)

    Hacker News

  6. Pageviews API (test data: Large language model article, daily)

    Wikimedia

FREE · EVERY WEEK

The top AI tools this week, tested.

Every week MODEL's editors pick the AI tools worth your time, try them hands-on, and tell you what's good, what's not, and who it's for. Free, in your inbox.

Free. Unsubscribe anytime. Our picks are editorial and can't be bought.

The weekly three is editorial. A subscription does not buy a place in it.

  • Programming source code on a computer monitor.

    The test

    KiviDB, on the stand

    The new Rust rival to Redis matched 87 of our 88 Redis replies, ran 2.4 to 3.9 times faster on our box and found the right neighbours in vector search. Then it read our Redis snapshot and turned a hash into a set of junk.

    · MODEL Editors

  • MODEL hot take card titled Slop doesn't need a label. It needs an owner. Left panel, The label: a mock commit with an Assisted-by: LLM line crossed out; about 10% of 18,533 Linux 7.3 commits through rc7 carried it, and a patch removing it was applied on October 14. Right panel, The owner: a tall leaning stack of pull requests towering over one small maintainer at a desk; Paul Battley archived his Ruby gems on October 18, including htmlentities with 246 million downloads, writing You want changes? Go ask your agent or something. Footer rule: if you can't explain the diff, it isn't ready to ship.

    Hot take

    Slop doesn't need a label. It needs an owner.

    Linux just dropped its AI disclosure tag because almost nobody used it. A Ruby maintainer with a 246-million-download gem archived his work. And today's top Ask HN is about shipping AI code you don't understand. The fix is not a label.

    · MODEL Editors