Skip to content

The forecasting lifecycle

You’ve seen how data flows and where config files live. This page connects them in motion: what happens, in order, when a forecast actually runs — and which config file is in charge at each moment.

A forecast run is a workflow executing its modules in sequence. A typical run looks like this:

┌─ 1 ─┐ ┌─ 2 ─┐ ┌─ 3 ─┐ ┌─ 4 ─┐ ┌─ 5 ─┐ ┌─ 6 ─┐ ┌─ 7 ─┐
│ set │──▶│import│─▶│ pre- │─▶│ run │─▶│ post-│─▶│ check│─▶│export│
│ T0 │ │ obs │ │ proc │ │ model│ │ proc │ │ thr. │ │ /show│
└─────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘

Each step maps to configuration you now recognize:

StepWhat happensGoverned by
1. Set T0Fix the forecast time zero — “now” for this run. Everything before T0 is history; everything after is forecast.The task/run definition (and system time settings).
2. Import observationsPull in the latest observed data through hops ①–③.Import modules + ID mapping.
3. Pre-processingFill gaps, convert stage→flow via rating curves, aggregate, disaggregate.Transformation modules.
4. Run the modelHand inputs to an external model (HBV, Sacramento, a hydraulic model…), run it, read results back.The General Adapter module.
5. Post-processingCombine members, apply error correction, derive secondary series.More transformation modules.
6. Check thresholdsCompare results against warning levels; raise events where exceeded.Threshold configs.
7. Export / displayWrite results to files/services and surface them in the UI.Export modules + display configs.

All seven steps are listed, in order, in a single workflow file. The workflow is the script; the modules are its lines.

T0 (time zero) is the single most important idea in a FEWS run. It’s the instant the forecast is anchored to:

◀──────────── history ────────────┼──────── forecast ────────▶
T0
observed data lives here "now" model output lives here
(imported, hop ①–③) (produced by hop ④)
  • Everything left of T0 is where FEWS expects observed data — imports fill this region.
  • Everything right of T0 is where the model writes its predictions.
  • A single time series can straddle T0: observed up to now, forecast beyond.

When people say a forecast “runs at T0 = 06:00,” they mean the whole pipeline is anchored so that 06:00 is the boundary between imported history and simulated future. Get T0 wrong and the model gets the wrong initial state — a classic source of subtly-off forecasts.

Step 4 needs the model’s state (soil moisture, storages, levels) to begin from. Where that comes from is a lifecycle choice worth knowing early:

  • Cold start — begin from a fixed, pre-defined state file (ColdStateFiles). Simple, but the state may not reflect recent conditions.
  • Warm start — begin from the state saved by a previous run. More accurate, because the model carries real recent history forward.

Operational systems run warm; you’ll often use cold starts while developing and testing.

Because a run is just a workflow anchored at a T0, you get powerful things almost for free:

  • Re-run history by setting T0 to a past time — useful for testing against events you already know the outcome of.
  • What-if scenarios by running the same workflow with modified inputs and comparing the resulting forecast series side by side.

Both reuse the exact same pipeline; only the inputs or the T0 change.

  • A forecast run is a workflow executing modules in a fixed order: set T0 → import → pre-process → model → post-process → thresholds → export.
  • T0 divides imported history from simulated future; it anchors the whole run.
  • The model starts from a statecold (fixed file) or warm (previous run’s output).
  • Reruns and what-ifs are the same pipeline with a different T0 or different inputs.

Next: keep the Glossary handy as you move into the task guides.