Free for research and teaching · runs in your browser · your data never leave it
Does your forecast beat persistence?
FrugalCast runs 30 frugal forecasting models on your own time series and scores them honestly: same samples, same cross-validation, prediction intervals for all, and every metric that matters.
For any time series with a regular time step: solar or wind power, electricity load, temperature, river flow, traffic, sales, prices, stock indices, macroeconomic indicators… If the series has a period (a day, a week, a year), give its number of steps; otherwise write none, and the models use the past values only.
Data
one value per line, or separated by; or spaces · decimal comma acceptedBefore you paste, check three rules. The tool cannot see time stamps, so it trusts the order of the values. 1. No gap: one value for every time step, night included, with the same step everywhere. 2. No missing value: no NaN, NA or empty line; fill or remove the period yourself first. 3. Start exactly at the beginning of a period: for a daily cycle in hourly data, the first value is the first hour of a day (for instance 00:00), so that the phase of every value is right for the cyclic models, the time inputs and the per-phase intervals. The forecast series follows the learning series directly, with no step missing in between.
At most 10,000 values (50,000 in a job file or link). Every fit, every choice of setting and every interval comes from it.
At most 10,000 values (50,000 in a job file or link). It follows the learning series directly; it is used only to score the forecasts.
Mean and standard deviation of the learning series. Forecasts and intervals are mapped back to the units of the series.
Keep every time step, including night. Where the observation is 0, the forecast and its limits are written as 0: not causal (retrospective view). In real use, filtering the night is your job. Scores on positive targets do not depend on it.
Use the standard deviation, or none, when the mean is close to zero (returns, anomalies, centred series).
Settings
Period and horizon
From 1 to 100 steps ahead.
Search
Ticked: chosen by cross-validation on the learning series. Unticked: the fixed value.
30 random hidden layers per setting; expanding-window cross-validation over the whole learning series (5 blocks, 4 folds).
Fixed values
A searched setting cannot be fixed: its box is greyed. ELM variants search their own grid, the one of their reference script.
Prediction interval
From the out-of-sample validation errors of each model. Limits and centiles never go below 0 when "Clip forecasts at 0" applies.
Models
choose four among 30 · a model that cannot run on the series is set aside, with the reasonHow the bench works
- Samples. At each issue time t, the inputs are the last values of the series, centred and scaled with the learning series (optionally reduced by PCA), plus sin/cos clock inputs of the target time when the series has a period. The target is the value h steps later. All models are scored on the same issue times.
- Fit and choice of settings. Only the learning series is used. Settings are chosen by expanding-window cross-validation: fit on the beginning, validate on what follows, four times with a longer fitting window. The best setting is then refitted on the whole learning series.
- Intervals. The residuals of the four validation blocks are out of sample. Their quantiles (conformal) or their mean and standard deviation (Gaussian) give the lower and upper limits. The complex-valued AR scales them by its own forecast volatility, as in its paper.
- Scores. Each forecast uses data available at its issue time. The target supplies the observed value for scoring. With Clip forecasts at 0, forecasts below zero are clipped when the learning series is nonnegative. For solar series, keep the regular grid and select the targets to score.
The metrics
Assumptions and limits
- The series to forecast must follow the learning series directly, with the same time step and no gap. Missing values are not accepted: fill or remove them first.
- Models written for solar irradiance use a clear-sky model in their papers; here the series itself (or its mean profile per phase) takes that place, so they apply to any series.
- The intervals assume that the errors seen in validation stay representative of the errors on the series to forecast.
- Trending series (prices, indices): models fitted on levels cannot extrapolate beyond the range of the learning series; the ELM fails there and persistence is hard to beat (NICE ≈ 1 is the expected answer). Forecasting returns or differences is often the right question.
- A learning and comparison tool: it gives no investment, trading or operational advice.
Models and references
How to cite · BibTeX
If FrugalCast helps your work, please cite the tool and the papers of the models and metrics you use. Tick what you used, then download one .bib file.
All of Cyril Voyant's papers: bibliography (BibTeX, RIS, CSL-JSON).
Send a job to this page
A notebook or a script can prepare a JSON job (series and settings) for this page, in two ways: a link ending in #job=… (button Share settings), or a .json file opened with Open settings or dropped on the page. The page fills in, and computes in the reader's browser when they click Run. A job may hold up to 50,000 values in each series. The format and examples are in API.md. To automate forecasts (scheduled runs, saved models, several horizons, forecasts of the future), use FrugalCast Local, the Windows kit.
{ "learn": [/* values */], "forecast": [/* values */], "period": 24, "horizon": 1,
"models": ["cliper", "artu", "arma", "elm"], "interval": { "kind": "conformal", "coverage": 80 } }
FrugalCast Local: offline, on your own machine (in preparation)
Every model and every horizon in one run, on your own computer, with nothing sent anywhere. FrugalCast Local is the same engine as this page, packaged as a Windows kit run from PowerShell. It is built for data that cannot leave the premises, and for computers close to where the data are measured (edge computing): a plant, a substation, a lab server, a laptop in the field.
- Data sovereignty. No cloud, no account, no network connection: the series, the fitted models and the forecasts stay on your disk. Suited to confidential, personal or critical-infrastructure data.
- Edge and frugal. Thirty light models, from persistence to extreme learning machines, that run on an ordinary PC without a GPU.
- One run, everything. All 30 models and all horizons (for example 1 to 24 steps) in a single command, with every configuration tested, its validation error, and 20 metrics on the test period.
- Operational forecasting. Fitted models are saved and reloaded without refitting: forecasts of the future, with intervals, from your latest data, run by the Windows Task Scheduler. Refit when you choose.
- Traceable. Each model follows its paper or manual exactly; a reloaded model gives the same forecasts, bit for bit, as the session that fitted it.
- Free. Free for research, teaching and other non-commercial use, with a personal key: 30-day trial, then free 3-month keys from the Collaborate page. Please cite it.
Not available yet. The local kit and any programmatic access (API) are not available for now. To be told when it is, or to test it with your data, write through the Collaborate page.
| This page | FrugalCast Local | |
|---|---|---|
| Where the data go | nowhere: computed in your browser | nowhere: computed on your computer, offline |
| Series length | 10,000 values by hand | no fixed limit (memory and time only) |
| Models per run | 4 | all 30, or any list |
| Horizons per run | 1 | several at once (for example 1 to 24) |
| Fitted models | refitted at every run | saved, reloaded without refitting; refit when you choose |
| Forecasts of the future | no | yes, from your latest data, with intervals |
| Scheduled runs | no | yes, with the Windows Task Scheduler |
| Outputs | plots, CSV, JSON of one horizon | every configuration tested, test metrics, every forecast (CSV, JSON), log |
| Time stamps | none | required: gaps, duplicates and shifted series are detected |
| Long runs | stop button | Ctrl+C, time limit or STOP file; finished models are kept |