Guide
Scenarios & Resilience
Explicit scenarios name the alternative futures a plan has to survive. Once a model has them, it can answer three distinct questions: what the best response would be, whether the current committed plan still works, and what to commit to before the outcome is known.
Two kinds of what-if
SSPLAX has two scenario mechanisms, and they answer different questions. It is worth being clear which one a task calls for.
Lives in the Compare tab. One staged alternative, solved beside the baseline, with a diff. Suited to testing a single idea. See Decision Workflow.
Named, saved, weighted futures the solver reasons about as a set. They persist with the model, export with it, and drive the resilience and robust analyses described on this page.
Writing a scenario
On the Constraints screen, open Scenarios & commitments. Each scenario carries a name, an optional description, its weighting, and any number of overrides:
| Override | What it changes |
|---|---|
| Constraint value | A limit takes a different value in this scenario, either scalar or one value per period. |
| Flow minimum / maximum | The feasible range for a flow path changes. |
| Flow cost rate | That path costs more or less in this scenario. |
| Conversion minimum / maximum | A transformation is restricted or expanded. |
| Conversion cost rate | The economics of that transformation change. |
Set the affected flow or conversion maximum to 0. A partial outage is a reduced maximum, and a more expensive workaround is a raised cost rate. There is no separate outage object; it is expressed as an override.
In multi-period models, constraint values and flow or conversion bounds can be authored period by period rather than as a single number.
Weighting the set
Scenario weighting applies to the whole set rather than to individual scenarios:
| Mode | When to use it |
|---|---|
| Equal weighting | There is no basis for treating one future as likelier than another. |
| Probabilities | A real likelihood can be stated for each. They must form a valid total. |
| Relative weights | Importance can be ranked but not assigned a probability. At least one must be positive. |
Probabilities and weights are all or none. Supply them for every scenario or for none. A partial set is rejected before solving rather than being filled in, and no scenario may carry both a probability and a weight.
Cloning splits rather than duplicates. Cloning a scenario weighted at 40% produces two at 20% each, so the branch keeps its total weighting and splitting a scenario into finer variants does not inflate its influence.
Which value applies
When a scenario override meets a baseline schedule, precedence is explicit. The highest available source wins:
| Priority | Source |
|---|---|
| 1 | Scenario value for that period |
| 2 | Scenario scalar value |
| 3 | Baseline value for that period |
| 4 | Baseline scalar value |
The practical consequence: a scalar scenario override replaces the entire baseline period schedule for that field. For a scenario that should keep a shape over time, give it its own period series.
Effective bounds are checked in every period. A scenario whose effective minimum ends up above its effective maximum is rejected in advance rather than being coerced into a result that appears feasible.
Three questions, three modes
These run from the Results screen, under Robustness, in Explicit scenario evidence.
Each scenario is solved independently, and anything marked adaptive is free to change.
If this happens and replanning is allowed, what is the best available response?
Committed values stay frozen at their baseline, and only adaptive values may move. Before solving, committed flows and conversions are checked against what the scenario leaves available. A commitment that requires capacity the scenario removes is reported as an availability conflict rather than a bare infeasible result.
Does the plan already committed to still work, and what does that commitment cost?
One plan optimized across the whole scenario set at once. Committed decisions are shared, while adaptive decisions remain scenario-specific. Choose Expected value for a probability-weighted result or Worst case for the weakest scenario, then select Run scenario-aware optimization.
What should be committed to now, given that the future cannot be chosen?
Adaptive and fixed-plan analysis run together from Evaluate plans and report side by side, each with the number of scenarios that stayed feasible, the worst-case and expected outcome, the target success rate, and, for the fixed plan, the value lost to commitments in each scenario.
Reading a robust result
Scenario-aware optimization returns the robust objective, each scenario's outcome, and the committed plan shared across all of them, labeled with your flow, conversion, and decision names rather than solver variables.
In robust mode the headline number is the expected-value or worst-case objective, while the detailed operational views for flows, capacity, decisions, and bottlenecks show the limiting scenario. This keeps those views concrete and internally consistent. The flow table should not be read as an average across scenarios.
If a scenario with positive weight is infeasible, the expected and worst-case outcomes are reported as undefined rather than computed over the feasible subset alone, since an average that silently excludes the failing branch would be misleading.
What is rejected before solving
Scenario problems surface in the editor rather than after an expensive solve. The checks include:
- -A scenario with no name.
- -A scenario with a blank identifier, or an identifier already used by another scenario.
- -A scenario carrying both a probability and a weight.
- -Probabilities or weights supplied for some scenarios but not all.
- -Invalid probability totals, or weights that are all zero.
- -Overrides pointing at constraints, flows, conversions, or resources that do not exist.
- -The same field overridden twice within one scenario.
- -Constraint values outside their authored range.
- -Period lists that do not hold exactly one finite value per period.
- -Effective bounds that are out of order in any period.
Practical limits
Scenario-aware optimization builds one combined model containing a block per scenario, so its size grows with the scenario count. SSPLAX estimates the expanded size first and declines an oversized run in advance rather than failing partway through. When that limit is reached, reduce the number of scenarios or simplify the model.
One capability is not yet in the scenario editor: scenario-specific resource-rate overrides. The model and solver support them, but they are supplied through a spreadsheet import. See Import Model Data.
Scenarios and uncertainty ranges
These are separate tools. Uncertainty ranges feed stochastic feasibility, sampling many random variations around your inputs and reporting how often the plan survives. Explicit scenarios are a small number of specific, named futures that can be described, weighted, and planned against.
Use ranges when the question is how much variation the plan absorbs. Use scenarios when the question concerns a particular event, such as a named site going offline.