Workspace

Tornado

Identify the sensitivities with the greatest influence on value and risk.

Workflow step 5 of 8FScenario workspace

Workspace

Tornado

Current route

Scenario Summary

Tornado reads the same shared scenario already used by Core Analysis and Monte Carlo. Assumptions stay read-only here so the sensitivity view remains anchored to Scenario Setup.

Scenario source: Scenario SetupRead-only on this pageComplete Scenario Setup firstCore context optional

Project

Not set

Location

n/a

Frequency

monthly

Analysis Years

n/a

Capex

n/a

Revenue / Year

n/a

Opex / Year

n/a

Discount Rate

n/a

Shared Source Context

This page does not create a separate assumptions source. To change project, timing, or financing inputs, return to Scenario Setup.

Prompt present: NoScenario present: NoSession source: n/aLast updated: n/a

A deterministic Core run is not required first. Tornado runs directly from the current shared Scenario Setup state.

Blocking issues

Analysis years must be greater than 0.

Construction periods must be 0 or greater.

COD period must be 0 or greater.

Discount rate must be entered in decimal form between 0 and 1.

Total capex must be greater than 0.

Annual revenue must be 0 or greater.

Annual opex must be 0 or greater.

Run Tornado

Configure the returned metric, select the value drivers to test, override ranges where needed, and run the current shared scenario.

Waiting on Scenario Setup

Run Status

Scenario not ready

Latest Tornado Run

No run yet

Latest Core Reference

None

Tornado stays idle until the shared Scenario Setup state is complete and supported sensitivity inputs are available.

Selected Result Metric

Project NPV

Returned metric for the current Tornado run.

Selected Drivers

4

One or more supported value drivers can be included in the same run.

Range Behaviour

Default ranges can be overridden

Each selected driver uses the standard range unless custom bounds are enabled for that driver.

Authoring Controls

Choose the result metric and the supported drivers to include in the next Tornado run.

Selected Drivers

Choose one or more supported drivers. Debt-linked inputs remain available only when financing inputs are present in the shared scenario.

Base value: n/a
ApplicableSelected
Base value: n/a
ApplicableSelected
Base value: n/a
ApplicableSelected
Base value: n/a
ApplicableSelected
Base value: n/a
WeakIndirectAvailable

Current Setup

Compact summary of the next run configuration.

DriverRange
Selected metricProject NPV
CapexDefault: -10% to +10%
RevenueDefault: -10% to +10%
OpexDefault: -10% to +10%
Discount RateDefault: -10% to +10%

Only enabled drivers affect the current Tornado run.

Per-Driver Range Controls

Ranges define +/- shocks applied to each driver for sensitivity analysis.

Driver nameEnabledModeLow valueHigh valueReset

Tornado Results

Main readout shell for the latest returned Tornado outputs. This section remains read-only and presents the latest successful run in a committee-readable format.

No Tornado result yetSelected metric: Project NPVLatest run: No run yet

idle

Tornado Status

Scenario not ready. Tornado stays idle until the shared Scenario Setup state is complete and supported sensitivity inputs are available.

Run Tornado to populate the returned summary cards for the selected metric and driver set.

Key Drivers / Tornado Visual

The main one-way sensitivity visual will appear here after the current shared scenario is run.

Run Tornado to populate the ranked driver visual using the returned backend sensitivity results.

Debug

Advanced / Technical Diagnostics

Collapsed by default

Technical Run Path

Technical diagnostics stay here so the main Tornado workflow remains focused on scenario context, configuration, and returned results.

POST /api/tornado/runhttps://fscenario-api.onrender.com/api/tornado/runScenario source: Scenario SetupSession source: n/aLatest Core reference: None

Request

Request Preview / Request Sent

Debug JSON
{
  "driver_configs": [
    {
      "driver_name": "capex",
      "high_value": 0.1,
      "low_value": -0.1,
      "mode": "relative"
    },
    {
      "driver_name": "revenue",
      "high_value": 0.1,
      "low_value": -0.1,
      "mode": "relative"
    },
    {
      "driver_name": "opex",
      "high_value": 0.1,
      "low_value": -0.1,
      "mode": "relative"
    },
    {
      "driver_name": "discount_rate",
      "high_value": 0.1,
      "low_value": -0.1,
      "mode": "relative"
    }
  ],
  "metric": "Project NPV",
  "scenario": {
    "construction": {
      "capex_mode": "explicit_schedule"
    },
    "financing": {
      "capex_basis": "construction_total",
      "debt_enabled": false,
      "debt_type": "level",
      "payments_per_year": 12
    },
    "meta": {
      "source": "manual"
    },
    "operations": {},
    "risk": {},
    "timeline": {
      "frequency": "monthly"
    }
  },
  "settings": {
    "compounding": "discrete_annual",
    "payments_per_year": 12,
    "timing": "end"
  }
}

Validation

Validation Issues

Debug JSON
[]