Run a full calibration and prediction from the webapp with alphagen-3, using the bundled sample dataset (TTF futures + IFS weather forecast).
Your first calibration
This page walks you through the exact UI steps to calibrate an
alphagen-3 model on a real example (TTF gas futures driven by
German weather variables), then to run a prediction on top of it. No
code, no notebook — everything happens in the webapp.
alphagen-3 is the model selected by default, and the one every plan
can run. This guide covers the standard calibration path; the
wizard's Advanced section (walkforward validation) is deliberately
left untouched here and documented separately.
Team & seat prerequisites
The project you create and every calibration/prediction you launch live inside the team currently active in the top-right team switcher.
- You need a
builderormanagerseat in that team to create projects, calibrations and predictions. The + New buttons appear disabled with a403seat message otherwise.- Every row you create records who launched it (
Created by (email)column — hidden by default, toggle it from the column-visibility menu of any calibration/prediction table).- If you belong to several teams, switch to the right one before clicking + New project — a project name is unique per team, not globally.
Download the sample data
Two Excel files. Save them anywhere on your machine.
TTF futures prices — ttf.xlsxttf.xlsx
| File | Columns used |
|---|---|
ttf.xlsx | date, nearby (price), px_delta (price change) |
forecast_ifs_allemagne_step_24.xlsx | Date, Temperature (Celcius), Wind speed (m/s), Precipitation rate (mm/h) |
You'll load ttf.xlsx as the price, then pull three explanatory
variables out of the IFS file: temperature, wind speed and
precipitation rate.
1. Create a project
A project is a container for related calibrations and predictions (e.g. "EU power", "Brent crude", "TTF").
- Open My projects (/dashboard).
- Click + New project (top-right).
- Give it a name — for this walkthrough, use
DEMO_PROJECT. Add a one-line description if you want. - Click Create.
The new project appears in the table. Click its name to enter it.
Note — deleting a project is reserved to the
managerseat. Abuildercan create projects and calibrate inside them, but the delete action is hidden and the endpoint answers403. The deletion cascades to every calibration and prediction the project holds, for every member of the team — hence the narrower gate.
2. Launch the calibration wizard
On the project page, click + New calibration (top-right). The wizard opens with five steps. The progress bar at the top lets you jump back to any step you've already passed.
The Model card just above the progress bar lets you pick the
algorithm. It already reads AlphaGen v3 — leave it there.
The picker only lists models your team is entitled to, so what you see depends on your plan and subscriptions:
| Model | Who can run it |
|---|---|
alphagen-3 | Every plan. The default, and the subject of this guide. |
impromai-models | Teams with the matching product subscription. Its wizard starts with a Product step instead of a price upload. |
alphagen-2 | AlphaGen administrators only. |
alphagen-1 | Retired — no plan carries it. Existing calibrations still open and display normally; new ones cannot be created. |
Step 1 — Price data
- Drag-and-drop
ttf.xlsxon the upload zone (or click to pick). - The wizard previews the file and auto-fills the column mapping. If it
doesn't, set them yourself:
- Date →
date - Value →
nearby - Delta (optional) →
px_delta
- Date →
- You should see a green confirmation:
✓ N points recognized as a valid time series.
Tip — providing the Delta column is recommended whenever your file has it: the backtest uses it directly instead of recomputing returns, which avoids rounding artefacts on illiquid contracts.
Click Next →.
Step 2 — Explanatory variables
This is where the IFS weather file becomes three separate variables.
-
Drag-and-drop
forecast_ifs_allemagne_step_24.xlsxon the upload zone. The wizard creates one variable per file by default, so you start with a single entry. -
Configure that first entry:
- Variable name →
Temperature - Dataset →
dataset_1 - Technical key →
temperature - Date column →
Date - Value column →
Temperature (Celcius)
The card shows the Final identifier
dataset_1.temperature— this is the handle the model uses internally. - Variable name →
-
Drop the same file again on the upload zone twice more to create two additional entries, and map them as follows:
Variable name Dataset Technical key Value column Wind Speed dataset_2wind_speedWind speed (m/s)Precipitation Rate dataset_2precip_ratePrecipitation rate (mm/h)The Date column is
Datefor both.
You should end up with three variables grouped into two datasets:
dataset_1
└─ dataset_1.temperature
dataset_2
├─ dataset_2.wind_speed
└─ dataset_2.precip_rate
Note — the dataset field is just a label that groups variables sharing the same source. The model can mix variables from different datasets freely. Use it for clarity (e.g.
weather,fundamentals,satellite) — it does not affect the math.
Click Next →.
Step 3 — Series editing
The wizard plots each series, highlights gaps and outliers, and lets you edit cells in place if you want to clean the data. For this walkthrough you can leave everything as-is and just click Next →.
If you do want to try the editor: open one of the variable cards, use the toolbar to fill missing values (forward-fill, linear interpolation), clip outliers, or edit individual rows in the inline table.
Step 4 — Parameters
Two layers of parameters. Sensible defaults are pre-filled — for this walkthrough the only thing worth tuning is the Expected impact direction on each variable.
Backtest parameters (shared by all variables)
These parameters drive the simulator that turns the model's signal into a NAV curve. Defaults are tuned for daily commodity-futures backtests on a single instrument — you can change them, but the values below work out of the box for the demo data.
| Field | Default | What it controls |
|---|---|---|
| Backtest start date | 2023-01-01 | The signal is still fitted on the whole price history (everything before this date acts as the training window). PnL accounting and the statistics in the dashboard only start counting from this date onwards. |
| Initial capital | 10,000,000 | Starting NAV of the simulated portfolio, in the same currency unit as the price series. |
| Contract size | 1 | Futures-contract multiplier (USD/€ per point). The position size in the backtest is number_of_contracts × contract_size × price. Set to your instrument's official contract size (e.g. 1000 for a TTF lot). |
| Max Value-at-Risk | 10,000 | Daily VaR budget (in NAV currency, 95% confidence, computed from a 75-day EWMA of log-returns). The Target VaR allocator sizes each day's position so the resulting one-day VaR is bounded by this number — it caps potential daily loss, not the cumulative drawdown. |
| Signal activation model | Sign | The model first centres the intensity (0–100) into a signal in [-1, +1], then applies one of three activation functions: Sign → snaps to {-1, 0, +1} (binary full-short / flat / full-long); Linear → identity, signal stays proportional; Tanh → soft saturation near ±1, less binary than sign but bounded. |
| Activation slope | 1.0 | Only read when the activation is Tanh — it is ignored for Sign and Linear. Steepness of the S-curve, using the normalised form tanh(k·x) / tanh(k) so the endpoints always land exactly on ±1. k → 0 behaves like Linear, k = 1 is a soft curve, large k approaches Sign. |
| Allocation scheme | Target VaR | How position size is set day-by-day. Four schemes are exposed (a small (i) next to the label opens a recap inside the wizard): Target VaR (volatility targeting — sizes positions so the daily VaR matches the cap above), Fully invested (NAV-proportional sizing, compounds gains and losses), Fixed notional (constant number of contracts, never adjusted). Kelly fractional is reserved and disabled in the picker. Keep Target VaR for this demo — it gives the most readable backtest. |
| Return type | Absolute delta | How returns are expressed when computing PnL. Keep Absolute delta (px_delta): it uses the price change column directly and is the most numerically stable choice for futures. See the warning below before touching this field. |
| PnL from return | ON | When ON (default), the backtester consumes the delta column built by the wizard from your price file. When OFF, it ignores your delta and recomputes a percentage-change return internally from the price column. Keep ON. |
Warning — the backtester implements exactly two return types,
px_deltaandpct_change. The Log return and Simple return entries in the picker match neither: selecting one leaves the NAV column unwritten and the run produces no usable backtest. Leave Absolute delta selected.
For TTF gas with the demo data, leave every backtest parameter at its default.
Per-variable parameters
Each variable card has its own toggles. For our three weather variables, use:
| Variable | Seasonality | Trend | Positive only | NDVI | Impact |
|---|---|---|---|---|---|
temperature | ON | OFF | OFF | OFF | Negative |
wind_speed | ON | OFF | ON | OFF | Negative |
precip_rate | ON | OFF | ON | OFF | Negative |
A quick reminder of what each toggle actually does:
| Toggle | What it does |
|---|---|
| Monthly analysis | When ON, the variable is fit once per calendar month (twelve independent sub-models) instead of a single annual fit. Use it when the variable's relationship to price changes from month to month (e.g. heating-degree-days). For daily weather over a single regime, leave OFF. |
| Include weekends | When OFF, weekends are dropped from the variable's series before analysis. When ON (default), Saturdays and Sundays are kept. For weather data — which has values every day — keep ON. |
| Seasonality | When ON, a monthly seasonal pattern is extracted from the variable and removed before the analysis, so the model studies the residual (de-seasonalised) component. ON for any variable with an obvious yearly cycle — temperature, wind, precipitation all qualify. |
| Trend | When ON, an expanding linear trend is fitted on the variable's full raw history and subtracted before the analysis, so the model studies the detrended residual. The fit is expanding — at each date it only uses data up to that date, never the future. Useful for variables that drift over years (e.g. climate anomalies, stock levels). For short windows of raw weather data, leave OFF. |
| Positive values only | Declares whether the variable can take negative values. wind_speed and precip_rate are physically non-negative → ON. temperature (in Celsius) can dip below zero → OFF. This is a hint about the variable's nature, not a constraint on the model's output. |
| NDVI | Special handling reserved for satellite vegetation indexes (Normalized Difference Vegetation Index). OFF for any other variable. |
| Expected impact | Direction of the relationship between the variable and the price. Positive → when the variable rises, the price rises. Negative → when the variable rises, the price falls. For TTF, mild / windy / rainy weather depresses gas demand → price down, so Negative for all three. |
Advanced — not used here
Below the per-variable cards, alphagen-3 exposes a collapsed
Advanced section holding the walkforward mode: instead of one
fit over the whole history, the model is refitted on a rolling window
and reports out-of-sample metrics per step.
It changes what the results mean and adds its own widgets, so this guide leaves it collapsed. Everything below assumes the standard single-fit path.
Click Next →.
Step 5 — Review and launch
The review screen recaps the full configuration. Two fields at the bottom are worth filling in:
- Tag → short identifier shown in the calibrations table and
breadcrumbs. Example:
ttf_weather_baseline_v1. - Description → free text. Useful for "why this run differs from the previous one".
Click Start calibration. The wizard closes and you land on the
calibration's page. A banner shows Running… at the top.
3. Wait for completion
Calibrations run in the background. On this dataset expect well under a minute. While it's running:
- The same page polls the backend and refreshes automatically — no need to reload. A progress indicator reports the phase the worker is in (preparing, fitting each variable, aggregating, writing results).
- The Jobs entry in the left sidebar shows every active calibration and prediction across all your projects, with their elapsed time.
- An email is sent to your account address when the job finishes (or fails).
When it's done the page swaps the Running… banner for the results
dashboard. A red Failed badge appears instead if the backend rejected
the run — open the linked job page for the error message.
4. View the calibration results
The results page is a fully customizable dashboard: a grid of widgets you can resize, move, add, or remove. Two charts are shown by default:
- Intensity signal (aggregation) — the 0–100 signal over time, combining all three weather variables.
- NAV vs Benchmark (aggregation) — your simulated portfolio against a buy-and-hold of the price.
Customize the dashboard
-
Edit mode — click the Edit button (top-right). Widgets get drag handles and resize grips. Save when done.
-
+ Add widget — opens a catalogue of every widget the model exposes (36 for
alphagen-3). They're grouped by category:Category What's inside Metrics The "latest signal" card (Bullish / Neutral / Bearish), the per-variable signal card, and 9 KPI tiles (Sharpe, Hit Ratio, Max Drawdown, Annualized Return, Final NAV, Profit Factor, Volatility, Ulcer Index, Abs. Exposure Rate). Charts Aggregated intensity, NAV vs Benchmark, Drawdown, High Water Mark, Monthly heatmap (with a metric picker, customizable gradient, and yearly average column), Yearly heatmap (variables × years), intensity histogram, yearly Sharpe / PnL / Return-on-VaR bars, per-variable weights — plus per-variable versions of NAV / Drawdown / HWM / intensity / histogram / yearly Sharpe. Data Sortable / filterable tables: full statistics, yearly statistics, the complete backtest, raw intensity points — at the aggregated level and per variable. Notes A card recapping the per-variable parameters that produced this run. Two extra widgets (in-sample vs out-of-sample PnL and the walkforward steps table) belong to the walkforward mode. They stay in the catalogue on a standard run and render a "no walkforward data" placeholder — that is expected, not a failure.
-
Templates — once you've arranged a dashboard you like, save it as a template. Subsequent calibrations open with the same layout.
Export
The Export button (top-right) downloads the entire results (all
tables: backtest, intensities, statistics, yearly stats) as a
multi-sheet .xlsx.
Read the headline numbers
The two default widgets answer the two questions you'll have first:
- Did the signal capture anything? Look at the intensity chart: it should swing between ~0 and ~100 with visible regimes, not stay flat around 50.
- Did it make money on the backtest? Look at NAV vs Benchmark: the calibration NAV (blue) above the benchmark (gray) means the strategy beat buy-and-hold over the backtest window. Add the Sharpe Ratio and Max Drawdown KPI tiles for a one-glance assessment.
5. Run a prediction from this calibration
Once the calibration is done, the calibration page shows a + New prediction button. Click it.
The prediction wizard is shorter (four steps, no Parameters step): the model and its per-variable parameters are inherited from the parent calibration. You only provide fresh data.
- Price data — load
ttf.xlsxagain (same column mapping as before). In practice you'd load a more recent file here. - Variables — the wizard pre-creates one slot per variable with
the correct dataset and technical key locked in (you cannot rename
them — the backend matches on these exact identifiers). For each
slot, upload
forecast_ifs_allemagne_step_24.xlsxand re-map the columns:temperatureslot → dateDate, valueTemperature (Celcius)wind_speedslot → dateDate, valueWind speed (m/s)precip_rateslot → dateDate, valuePrecipitation rate (mm/h)
- Series editing — leave as-is.
- Review — pick a Tag (e.g.
ttf_weather_pred_2026q1), then Start prediction.
Predictions are faster than calibrations — the model is not refitted, only scored on the new data.
6. View the prediction results
The prediction page has the same dashboard structure as the calibration page, with widgets pre-set to show the prediction's signals and intensity charts. Two ways to find it again later:
- From the calibration page, the Linked predictions table at the bottom lists every prediction made from that calibration. Click a row to open it.
- From the project page, the Calibrations table → click the calibration → its predictions appear in the side panel.
The same Export button downloads the prediction's tables as
.xlsx.
Where to go next
- The API quickstart reproduces this exact flow with Python, using the bundled tutorial notebook — same model, same dataset, same parameters.
- The Jobs page in the left sidebar lists every running calibration and prediction across all your projects — handy when you have several runs going at once.
Was this article helpful?