Last Updated June 6, 2026
Scenario modeling and simulation is a methodological approach for exploring how complex systems may evolve under different assumptions about future conditions, policies, behaviors, uncertainties, and external shocks. Rather than attempting to predict a single outcome, scenario modeling examines multiple possible futures by varying key parameters, structural conditions, policy choices, environmental assumptions, behavioral responses, or disruption events within a formal model.
This makes scenario modeling one of the most important practices in systems modeling. Complex systems rarely move along one predictable path. They contain uncertainty, feedback loops, nonlinear dynamics, threshold effects, path dependence, institutional constraints, adaptation, and interacting disturbances. Scenario modeling helps analysts compare how system trajectories change when assumptions change.
Scenario analysis is therefore not primarily a tool of deterministic prediction. It is a tool of structured exploration. It asks what may happen if a system continues along a baseline path, if a policy intervention is introduced, if a shock occurs, if technology changes faster or slower than expected, if institutions fail to adapt, or if social behavior shifts in response to risk. By comparing these trajectories, analysts can identify vulnerabilities, robust strategies, tipping points, intervention windows, and possible pathways under uncertainty.

This article explains scenario modeling and simulation as a major analytical practice within systems modeling. It covers the shift from prediction to exploration, scenario types, scenario design, assumptions, simulation ensembles, policy comparison, stress testing, robustness, sustainability applications, mathematical foundations, professional workflows, Python and R examples, strengths, limitations, ethics, responsible interpretation, and authoritative references.
What Is Scenario Modeling and Simulation?
Scenario modeling and simulation is the use of formal models to compare how a system may evolve under alternative assumptions. A scenario is not simply a story about the future. In systems modeling, a scenario is a structured configuration of assumptions, inputs, parameter values, policy choices, external conditions, behavioral responses, or shocks that can be run through a model.
For example, a climate-energy model may compare high-emissions, rapid-decarbonization, delayed-transition, and adaptation-focused scenarios. An infrastructure model may compare baseline demand, climate-stress, maintenance-deferral, and resilience-investment scenarios. A public-health model may compare different vaccination rates, contact patterns, hospital capacities, behavioral responses, and intervention timings. A supply-chain model may compare normal operation, supplier disruption, port congestion, transport failure, and inventory-buffer scenarios.
The purpose is not to declare which single future will occur. The purpose is to examine how the system behaves under different conditions and to identify which conclusions are robust, fragile, surprising, or assumption-dependent.
| Scenario modeling element | Meaning | Example |
|---|---|---|
| Scenario | A structured set of assumptions used to run a model. | Baseline, policy intervention, climate stress, demand surge. |
| Driver | A factor that shapes system behavior over time. | Population growth, energy price, technology cost, rainfall, demand. |
| Uncertainty | A factor whose future value or behavior is not known. | Policy adoption, economic growth, climate hazard intensity. |
| Policy lever | A decision variable or intervention that can be changed. | Investment level, subsidy, regulation, capacity expansion. |
| External shock | A disturbance imposed on the system. | Flood, cyberattack, supply disruption, epidemic wave. |
| Trajectory | The simulated path of the system over time. | Emissions pathway, queue length, adoption curve, failure rate. |
| Outcome metric | A value used to compare scenarios. | Cost, resilience, service level, emissions, risk, equity. |
Scenario modeling turns uncertainty into an object of analysis. Instead of asking the model to remove uncertainty, analysts ask how uncertainty changes possible system behavior.
From Prediction to Exploration
Traditional forecasting often seeks to estimate a single expected future outcome based on historical trends, statistical regularities, or extrapolated relationships. Forecasts can be useful when time horizons are short, data are strong, system structure is stable, and uncertainty is limited.
Scenario modeling adopts a different stance. It assumes that many important systems cannot be understood through a single forecast. The future may depend on policy choices, institutional capacity, social behavior, technological change, ecological response, geopolitical events, infrastructure constraints, market dynamics, or nonlinear feedback. When those forces are uncertain and interacting, the most useful model may be one that compares possible futures rather than predicting one.
This shift is especially important for complex systems. In complex systems, uncertainty is often not merely a temporary data gap. It may be structural. The system may adapt. Feedback loops may amplify small differences. Delays may hide consequences. Thresholds may generate abrupt change. Actors may respond to the model itself. Institutions may change the rules. External shocks may reorganize the system.
| Forecasting orientation | Scenario modeling orientation |
|---|---|
| Seeks one expected future. | Explores multiple plausible futures. |
| Emphasizes prediction accuracy. | Emphasizes structured comparison. |
| Often relies on historical continuity. | Allows structural change and discontinuity. |
| Asks what is most likely. | Asks what could happen under different assumptions. |
| Often produces a point estimate or confidence interval. | Produces trajectories, ensembles, scenario ranges, and decision tradeoffs. |
| Useful when systems are stable and near-term. | Useful when systems are uncertain, adaptive, nonlinear, and long-term. |
Scenario modeling does not reject forecasting. It places forecasting inside a broader discipline of exploratory analysis. A forecast may be one scenario. But in complex systems, it is rarely enough.
Why Scenario Modeling Matters
Scenario modeling matters because many decisions must be made before the future is knowable. Infrastructure investments, climate adaptation, public-health preparedness, energy transitions, urban planning, resource management, defense planning, institutional reform, and sustainability strategy all require action under uncertainty.
Waiting for certainty is often impossible. But acting as if one forecast is certain can be dangerous. Scenario modeling provides a middle path. It allows analysts and decision-makers to reason systematically about possible futures, compare strategies, identify vulnerabilities, and recognize conditions under which a plan may fail.
Scenario modeling is especially useful when the system contains:
- long time horizons;
- deep uncertainty;
- feedback loops and delayed effects;
- nonlinear thresholds or tipping points;
- competing policy objectives;
- behavioral adaptation;
- institutional or political uncertainty;
- external shocks;
- path dependence and lock-in;
- irreversible or high-cost decisions.
Under these conditions, the central question is not simply “What will happen?” It is “Which strategies perform acceptably across a wide range of plausible conditions, and where are they vulnerable?”
Types of Scenarios
Scenario modeling frameworks often distinguish among several scenario types. These types are not mutually exclusive. A mature scenario exercise may use several of them to examine baseline conditions, policy alternatives, adverse shocks, desired futures, and structural uncertainty.
Baseline Scenarios
Baseline scenarios represent a continuation of current trends, institutions, policies, or system structures. They provide a reference path against which alternative futures can be compared. A baseline is not necessarily the most likely future; it is a structured comparison point.
Policy Scenarios
Policy scenarios examine the effects of deliberate interventions such as carbon pricing, infrastructure investment, regulatory reform, vaccination campaigns, capacity expansion, conservation incentives, or technology subsidies.
Stress Scenarios
Stress scenarios test how systems behave under adverse or extreme conditions. These may include financial crises, climate shocks, supply disruptions, infrastructure failure, disease outbreaks, institutional breakdown, or cyber disruption.
Exploratory Scenarios
Exploratory scenarios investigate how systems may evolve under uncertain structural conditions. They often vary demographic, technological, institutional, environmental, economic, or geopolitical drivers to map a broader possibility space.
Normative Scenarios
Normative scenarios begin with a desired outcome, such as net-zero emissions, universal access, resilient infrastructure, biodiversity recovery, or equitable service provision. The model then explores pathways that could plausibly reach that outcome.
Wild-Card Scenarios
Wild-card scenarios examine low-probability but high-consequence disruptions that could reorganize the system unexpectedly. They are useful for stress-testing institutional imagination and identifying fragile dependencies.
| Scenario type | Primary question | Example use |
|---|---|---|
| Baseline | What happens if current assumptions continue? | Reference emissions, demand, cost, or service trajectory. |
| Policy | What changes if an intervention is introduced? | Carbon price, resilience investment, capacity expansion. |
| Stress | How does the system behave under adverse conditions? | Supply disruption, climate shock, demand surge, outage. |
| Exploratory | What futures emerge under uncertain drivers? | Technology cost, demographic shift, economic growth, migration. |
| Normative | What pathway could reach a desired outcome? | Net-zero, universal access, resilience target, biodiversity recovery. |
| Wild-card | What happens under low-probability high-impact events? | Systemic cyber failure, abrupt ecological change, geopolitical rupture. |
Strong scenario design does not simply multiply futures. It selects scenario types that illuminate the system question.
Scenario Design and Model Assumptions
Scenario modeling depends on assumptions. Analysts must decide which variables to vary, which parameters to hold constant, what range of uncertainty to examine, which shocks to include, what policies to compare, and how to define plausibility.
These choices shape the scenario space. A narrow scenario set may hide important vulnerabilities. A scenario set based only on familiar futures may miss structural disruption. A scenario set that varies too many assumptions at once may become difficult to interpret. A scenario set that varies only easy-to-measure parameters may ignore the uncertainties that matter most.
Good scenario design requires both analytical structure and substantive judgment. It should identify assumptions that are consequential, uncertain, theoretically meaningful, and relevant to the decision. It should also distinguish between uncertainties outside the decision-maker’s control and policy levers that decision-makers can influence.
| Scenario design decision | Question | Risk if neglected |
|---|---|---|
| System boundary | What system components and external conditions are included? | Important drivers may be left outside the model. |
| Uncertainty selection | Which uncertain factors are varied? | Scenarios may explore the wrong possibility space. |
| Policy lever definition | Which decisions can be changed? | The model may fail to support actual decision-making. |
| Parameter range | How wide are the plausible values? | Ranges may be too narrow, too speculative, or poorly justified. |
| Scenario coherence | Do assumptions fit together logically? | Scenario combinations may be internally inconsistent. |
| Time horizon | How far into the future does the model run? | The horizon may miss delayed consequences or overstate precision. |
| Outcome metrics | How will scenarios be compared? | Important tradeoffs may be hidden. |
Scenario design should be documented as carefully as model equations. The credibility of the exercise depends not only on the model, but also on the logic used to define the futures being compared.
Drivers, Uncertainties, and Policy Levers
Scenario modeling is clearer when it distinguishes among drivers, uncertainties, and policy levers. These categories are often blurred in weaker scenario exercises.
Drivers are forces that shape the system. They may include population growth, income, technology cost, land use, climate exposure, consumer behavior, institutional capacity, or geopolitical conditions. Uncertainties are drivers or parameters whose future values are not known. Policy levers are choices that can be changed by decision-makers, such as investment, regulation, pricing, capacity, standards, incentives, or timing.
The distinction matters because scenario analysis is most useful when it separates what decision-makers can control from what they must prepare for. A robust strategy should perform reasonably well across uncertain external conditions, not only under the future it prefers.
| Category | Definition | Example | Scenario role |
|---|---|---|---|
| Driver | A force that shapes system behavior. | Population growth, energy price, technology cost. | Defines major sources of system change. |
| Deep uncertainty | A condition where probabilities, model structure, or future states are contested or unknown. | Future climate response, migration, political stability, technology adoption. | Motivates exploratory scenario comparison. |
| Policy lever | A decision variable under some institutional control. | Investment level, subsidy, service capacity, regulation. | Defines intervention alternatives. |
| Shock | An adverse or disruptive event imposed on the system. | Flood, outage, supply disruption, epidemic wave. | Tests resilience and fragility. |
| Performance metric | An outcome used to compare futures. | Emissions, cost, service level, inequality, recovery time. | Supports decision evaluation. |
Scenario modeling becomes more useful when the scenario structure makes these categories visible. Otherwise, decision-makers may confuse exogenous uncertainty with controllable choice.
Simulation as Computational Experiment
Scenario modeling is often implemented through computational simulation. Analysts run a model repeatedly while varying assumptions, policy levers, initial conditions, stochastic inputs, or external shocks. Each run generates a trajectory showing how the system evolves under a particular scenario configuration.
This turns the model into a computational laboratory. Instead of observing only one historical path, analysts can compare many possible paths generated under different assumptions. They can examine how outcomes differ, when trajectories diverge, which parameters matter most, and which policies are robust across futures.
Simulation experiments may be small and interpretable, with a handful of carefully designed scenarios. They may also be large and exploratory, with hundreds or thousands of model runs across uncertain parameter ranges. The appropriate scale depends on the purpose of the analysis.
| Simulation experiment type | Purpose | Example |
|---|---|---|
| Scenario comparison | Compare a small number of named futures. | Baseline, policy, stress, rapid-transition scenarios. |
| Sensitivity sweep | Vary one or more parameters systematically. | Test how outcomes change across energy prices or arrival rates. |
| Monte Carlo ensemble | Run many stochastic futures across random draws. | Estimate distribution of final costs, failures, or emissions. |
| Stress test | Push the system into adverse or extreme conditions. | Demand surge, infrastructure failure, climate shock. |
| Robust policy comparison | Compare interventions across many futures. | Identify strategies that perform acceptably across uncertainty. |
| Pathway exploration | Compare sequences of decisions over time. | Adaptive policy pathways, staged investment, trigger-based action. |
The experimental logic is central. Scenario modeling does not merely produce outputs. It structures inquiry into how assumptions shape outcomes.
Scenario Ensembles and Robust Strategies
A scenario ensemble is a collection of model runs organized around one or more scenario assumptions. Ensembles are useful when a single run cannot represent uncertainty. Instead of asking what one trajectory shows, analysts examine the distribution of outcomes across many plausible runs.
For example, a policy may perform well on average but fail badly in tail-risk scenarios. Another policy may not maximize expected performance but may avoid catastrophic failure across a broader range of futures. Scenario ensembles make these tradeoffs visible.
This is why scenario modeling is closely connected to robust decision-making. A robust strategy is not necessarily the strategy that performs best in one expected future. It is a strategy that performs acceptably across many plausible futures, including difficult ones.
| Evaluation concept | Meaning | Scenario modeling use |
|---|---|---|
| Expected performance | Average outcome across scenarios or simulations. | Useful but may hide tail risk. |
| Worst-case performance | Minimum or most adverse outcome. | Highlights vulnerability under severe futures. |
| Regret | Loss relative to the best strategy in each future. | Useful for comparing strategies when the future is uncertain. |
| Robustness | Acceptable performance across many futures. | Supports decisions under deep uncertainty. |
| Adaptivity | Ability to change strategy as conditions unfold. | Supports staged pathways and trigger-based decisions. |
| Resilience | Ability to absorb, recover, or transform under disturbance. | Supports stress testing and recovery analysis. |
Scenario ensembles are especially useful when decision-makers care about avoiding unacceptable outcomes rather than maximizing one expected value.
Stress Testing, Thresholds, and Tipping Points
Scenario modeling is powerful for stress testing because it allows analysts to examine how systems behave under adverse conditions. Stress tests may impose demand surges, resource loss, climate hazards, market shocks, supply disruptions, institutional delays, behavioral shifts, or infrastructure failures.
Stress scenarios are valuable because complex systems may respond nonlinearly. A small increase in demand may produce little effect until capacity is nearly saturated. A modest environmental disturbance may have limited impact until a threshold is crossed. A network may remain connected under random failure but fragment when key nodes fail. A policy may work under ordinary conditions but fail under combined stress.
Scenario modeling helps identify these nonlinear points of concern. It can reveal thresholds, tipping points, fragility, policy resistance, and delayed consequences that are difficult to see from baseline analysis alone.
| Stress-test focus | Scenario question | Example metric |
|---|---|---|
| Capacity stress | When does demand exceed service capacity? | Queue length, service failure, utilization, waiting time. |
| Network stress | Which failures fragment the system? | Largest component size, connectivity, flow loss. |
| Climate stress | How does hazard intensity change system outcomes? | Damage, outage duration, recovery time, exposed population. |
| Economic stress | How does financial pressure alter system behavior? | Cost, default, investment delay, affordability. |
| Institutional stress | How do delays or weak implementation affect policy? | Time to target, service gap, compliance, unmet need. |
| Compound stress | What happens when multiple shocks interact? | Cascading failure, resilience loss, distributional harm. |
A strong scenario model does not only compare attractive futures. It also tests uncomfortable futures where assumptions break, systems saturate, and policies are forced to operate under stress.
Applications in Sustainability and Policy
Scenario modeling plays a central role in sustainability research and long-term policy analysis because many sustainability problems are shaped by deep uncertainty, long time horizons, interacting social–ecological systems, and contested values.
Climate science uses scenario analysis to examine alternative emissions pathways, warming trajectories, adaptation responses, and energy transitions. Infrastructure planning uses scenarios to evaluate service continuity under climate hazards, population growth, maintenance backlogs, and investment choices. Economic and development models use scenarios to explore productivity, inequality, resource constraints, fiscal exposure, and institutional adaptation.
Climate Pathways
Scenario modeling compares emissions, mitigation, adaptation, warming, and exposure trajectories under different socioeconomic and policy assumptions.
Energy Transitions
Scenarios explore technology costs, adoption rates, grid constraints, storage needs, policy incentives, and emissions consequences.
Infrastructure Resilience
Simulation scenarios test how roads, water systems, power grids, ports, and public services respond to hazards, failures, and investment pathways.
Urban Planning
Scenarios compare population growth, housing patterns, transit investment, land use, climate exposure, and public-service demand.
Food and Water Systems
Scenario modeling examines drought, irrigation demand, land-use change, supply-chain disruption, price pressure, and ecological limits.
Public Health Preparedness
Scenarios test disease transmission, capacity constraints, intervention timing, behavioral response, and resource allocation under uncertainty.
Biodiversity and Ecosystems
Scenarios compare habitat loss, restoration, climate stress, species interactions, land-use change, and conservation pathways.
Public Finance and Governance
Scenarios explore fiscal exposure, investment timing, service obligations, institutional capacity, and long-term policy tradeoffs.
Across these domains, scenario modeling provides a disciplined way to think about futures that cannot be reduced to one trend line.
Scenario Modeling and Strategic Decision-Making
Scenario modeling supports decision-making under uncertainty by helping decision-makers compare strategies across multiple futures. Instead of asking only which future is most likely, scenario analysis asks which strategies remain useful, robust, adaptable, or acceptable across different futures.
This is especially important when decisions are expensive, irreversible, politically difficult, ethically consequential, or exposed to long-term uncertainty. A city deciding whether to invest in flood infrastructure, a utility planning grid upgrades, a health agency preparing for surge capacity, or a government designing climate policy cannot rely on one forecast alone.
Scenario modeling can support several forms of strategic reasoning:
- Robustness: Which strategies perform acceptably across many futures?
- Flexibility: Which strategies preserve options as uncertainty unfolds?
- Timing: When should action occur, and when is waiting valuable?
- Trigger points: What signals indicate that a pathway should change?
- Regret reduction: Which strategies avoid severe losses if assumptions are wrong?
- Resilience: Which strategies reduce vulnerability to shocks?
- Equity: How do scenario outcomes differ across groups, places, or institutions?
In this sense, scenario modeling is not merely a modeling technique. It is a bridge between formal systems analysis and practical judgment.
Relationship to Other Modeling Approaches
Scenario modeling is not a standalone modeling paradigm in the same sense as system dynamics, agent-based modeling, network models, or discrete event simulation. Rather, it is a cross-cutting research practice that can be applied within many kinds of models.
A system dynamics model may generate alternative policy trajectories. An agent-based model may simulate how behavioral adaptation differs under alternative institutional environments. A network model may test how structural resilience changes under different disruption scenarios. A discrete event simulation may compare operational performance across different demand, staffing, or capacity assumptions. A hybrid model may combine several of these methods to explore futures across interacting system layers.
| Modeling approach | Scenario modeling role | Example |
|---|---|---|
| System dynamics | Vary policy, feedback, stocks, flows, and delays. | Compare emissions pathways or resource depletion scenarios. |
| Agent-based modeling | Vary agent rules, thresholds, networks, and institutional settings. | Compare technology adoption under different incentives. |
| Network modeling | Vary topology, disruption, dependency, and propagation assumptions. | Compare random failures with targeted infrastructure disruption. |
| Discrete event simulation | Vary arrival rates, staffing, service times, priorities, and capacity. | Compare hospital surge, warehouse flow, or port congestion scenarios. |
| Hybrid modeling | Vary assumptions across multiple connected model layers. | Compare climate adaptation pathways linking exposure, behavior, infrastructure, and policy. |
| Integrated assessment | Vary socioeconomic, energy, climate, land, and policy pathways. | Compare mitigation pathways and long-term sustainability outcomes. |
Scenario modeling activates a model’s exploratory potential. It turns a model from a static representation into a structured environment for comparing alternative futures.
Interpretation, Sensitivity, and Validation
Because scenario outcomes depend strongly on assumptions, interpretation requires methodological discipline. Scenario results should not be read as predictions unless the model is explicitly designed and validated for forecasting. In most systems modeling contexts, they are conditional outcomes: if these assumptions hold, the model generates this trajectory.
Analysts must therefore examine whether conclusions are robust across alternative assumptions, whether the scenario set is sufficiently diverse, whether the model behaves plausibly under different conditions, and whether key results are driven by one fragile parameter.
This makes scenario modeling closely connected to Sensitivity Analysis in Systems Models, Calibration and Validation of Models, and Uncertainty and Model Interpretation.
| Credibility check | Question | Example practice |
|---|---|---|
| Scenario plausibility | Are assumptions defensible and coherent? | Document scenario logic, sources, and consistency. |
| Model validity | Does the model represent relevant system mechanisms? | Validate structure, parameters, and behavior against evidence. |
| Sensitivity analysis | Which assumptions drive results? | Vary uncertain parameters and compare outcome changes. |
| Extreme-condition testing | Does the model behave plausibly under stress? | Test zero demand, high shock, capacity collapse, or extreme growth. |
| Scenario diversity | Does the set cover meaningfully different futures? | Include baseline, stress, policy, and exploratory alternatives. |
| Outcome robustness | Do conclusions hold across many futures? | Compare strategies across scenario ensembles. |
| Stakeholder review | Do affected groups recognize missing assumptions? | Use participatory review, expert validation, and boundary critique. |
Without discipline, scenario analysis can become speculation with numbers. With discipline, it becomes a rigorous method for exploring system behavior under uncertainty.
Implications for Sustainability and Resilience
Scenario modeling is especially important for sustainability and resilience because many defining challenges of the twenty-first century involve long-term systemic interaction under deep uncertainty. Climate adaptation, decarbonization, food security, biodiversity protection, infrastructure resilience, public-health preparedness, and social equity all require decisions whose consequences unfold across decades.
Scenario modeling helps decision-makers avoid two common mistakes. The first mistake is assuming that current trends will continue smoothly. The second is assuming that one preferred future can be planned as if uncertainty does not exist. Scenario analysis instead supports structured preparedness across multiple futures.
For resilience analysis, scenario modeling can test how systems absorb shocks, recover from disruption, reorganize under stress, or transform after crossing thresholds. For sustainability analysis, it can compare pathways toward long-term goals while making tradeoffs visible.
| Sustainability or resilience concern | Scenario modeling contribution | Possible output |
|---|---|---|
| Climate adaptation | Compares exposure, investment, and protection pathways. | Damage avoided, adaptation cost, residual risk. |
| Decarbonization | Compares technology, policy, adoption, and emissions futures. | Emissions trajectory, cost, reliability, transition speed. |
| Infrastructure resilience | Tests service continuity under hazards and failures. | Recovery time, outage duration, critical node vulnerability. |
| Food and water security | Explores drought, demand, production, and supply disruption. | Shortfall, price pressure, resource stress, vulnerability. |
| Public health preparedness | Compares intervention timing, capacity, behavior, and surge demand. | Hospital overload, infection burden, unmet need. |
| Equity and justice | Reveals distributional consequences across groups and places. | Unequal exposure, access, service loss, recovery gap. |
Scenario modeling is therefore one of the most important bridges between systems modeling and responsible long-term strategy.
Software Tools and Implementation
Scenario modeling can be implemented in many environments. The appropriate tool depends on model type, data requirements, reproducibility needs, team skills, visualization needs, and whether the purpose is research, stakeholder engagement, operational planning, or policy analysis.
Small scenario models may be built in R, Python, Julia, spreadsheets, or system dynamics software. Large scenario exercises may use integrated assessment models, geospatial pipelines, agent-based platforms, discrete event simulation tools, databases, workflow managers, or high-performance computing environments. Scenario models used for public decision-making should prioritize reproducibility, transparent assumptions, versioned inputs, and clear documentation.
| Implementation approach | Useful for | Professional caution |
|---|---|---|
| R or Python workflow | Reproducible scenario ensembles, analysis, visualization, reporting. | Requires clear data and run management. |
| System dynamics platform | Feedback-driven scenarios, policy pathways, long-term behavior. | Model structure and assumptions must be documented. |
| Agent-based platform | Behavioral adaptation, heterogeneous response, diffusion. | Calibration and validation can be difficult. |
| Discrete event simulation software | Operational scenarios, queues, resources, process flow. | Scenario outputs may depend heavily on service-time assumptions. |
| Geospatial workflow | Spatial exposure, access, hazards, infrastructure geography. | Data quality and resolution can strongly affect conclusions. |
| Integrated assessment model | Long-term energy, climate, economy, land, and policy scenarios. | Model complexity requires careful interpretation and documentation. |
Implementation choices should follow the scenario question. A strong scenario model is not defined by software sophistication. It is defined by whether the model structure, assumptions, and outputs support disciplined comparison.
Mathematical Lens: Branching Futures, Scenario Ensembles, and Policy Comparison
A simple scenario model can be written as:
x_{t+1}^{(s)} = f\!\left(x_t^{(s)}, \theta^{(s)}, u_t^{(s)}, e_t^{(s)}\right)
\]
Interpretation: The system state \(x\) evolves under scenario \(s\), where \(\theta^{(s)}\) is a scenario-specific parameter set, \(u_t^{(s)}\) represents policy or intervention choices, and \(e_t^{(s)}\) represents external conditions such as shocks, prices, climate forcing, or demand change.
A baseline scenario may hold policy choices fixed while allowing current trends to continue. A policy scenario may alter \(u_t\). A stress scenario may impose adverse disturbances through \(e_t\). An exploratory scenario may vary multiple uncertain parameters \(\theta\) across plausible ranges.
Scenario ensembles can be represented as collections of outcomes:
\mathcal{Y}^{(s)} = \left\{ y_1^{(s)}, y_2^{(s)}, \dots, y_N^{(s)} \right\}
\]
Interpretation: Each element represents one run within scenario \(s\), allowing analysts to compare distributions rather than single outputs.
Policy comparison can be expressed as a performance function:
J(u,s)=\sum_{t=1}^{T} w_t \, g\!\left(x_t^{(s,u)}\right)
\]
Interpretation: The performance of policy \(u\) under scenario \(s\) is evaluated over time using outcome function \(g\) and weights \(w_t\).
A robust policy criterion may focus on acceptable performance across scenarios:
u^\*=\arg\max_u \min_s J(u,s)
\]
Interpretation: This maximin criterion selects the policy whose worst-case scenario performance is strongest.
Another criterion may minimize regret:
R(u,s)=J(u_s^\*,s)-J(u,s)
\]
Interpretation: Regret measures how much worse policy \(u\) performs in scenario \(s\) compared with the best policy for that specific scenario.
The formal distinction matters. Forecasting seeks one expected path. Scenario modeling maps a structured set of possible paths generated by different assumptions, then compares strategies across that possibility space.
The Scenario Modeling Workflow
Professional scenario modeling requires more than running a model several times. It requires disciplined problem framing, uncertainty selection, scenario construction, simulation design, validation, sensitivity analysis, interpretation, and communication.
1. Define the Decision or Research Question
Start with the system behavior the scenario exercise is meant to illuminate: emissions, resilience, service failure, adoption, cost, capacity, equity, collapse risk, or policy robustness.
2. Establish the System Boundary
Define what is inside the model, what is outside it, which actors and processes matter, and which external conditions will be represented as scenario assumptions.
3. Identify Drivers and Uncertainties
List major forces that shape system behavior and distinguish uncertain external drivers from controllable policy levers.
4. Select Scenario Types
Choose baseline, policy, stress, exploratory, normative, or wild-card scenarios based on the analytical purpose.
5. Define Scenario Assumptions
Specify parameter values, policy settings, shock timing, external conditions, behavioral assumptions, and time horizons. Document the rationale for each assumption.
6. Run Simulations and Ensembles
Execute model runs across scenario configurations. Use replications when stochastic processes matter and preserve run-level outputs for diagnostics.
7. Compare Outcomes Across Metrics
Evaluate scenarios using relevant performance measures such as cost, emissions, waiting time, service level, risk, resilience, equity, or regret.
8. Test Sensitivity and Robustness
Identify which assumptions drive conclusions and which strategies remain acceptable across many plausible futures.
9. Validate Scenario Logic and Model Behavior
Check that scenario assumptions are coherent, model behavior is plausible, and results are not artifacts of arbitrary parameter choices.
10. Communicate Conditional Findings
Explain that scenario outputs are conditional trajectories, not predictions. Report uncertainty, assumptions, tradeoffs, vulnerabilities, and interpretation limits.
Strengths and Limitations
Scenario modeling offers a powerful framework for exploring uncertainty, long-term dynamics, policy tradeoffs, and system resilience. By comparing multiple plausible futures, analysts can identify strategies that remain useful across a range of conditions rather than optimized for one fragile forecast.
However, scenario results are not predictions. They depend on model structure, scenario design, parameter choices, uncertainty ranges, and assumptions about plausibility. If the model is unrealistic or if the scenario space is poorly designed, the simulations may misrepresent the system.
| Strength | Why it matters | Limitation to watch |
|---|---|---|
| Explores uncertainty | Allows comparison across multiple futures. | Scenario range may omit important uncertainties. |
| Supports robust strategy | Identifies policies that perform acceptably across conditions. | Robustness depends on the scenario set tested. |
| Reveals vulnerabilities | Stress scenarios expose fragile assumptions and weak points. | Stress tests can be arbitrary if not grounded. |
| Clarifies tradeoffs | Compares cost, risk, resilience, equity, and performance. | Metrics may underrepresent values not included in the model. |
| Supports long-term thinking | Helps analyze delayed consequences and path dependence. | Long horizons can create false precision if uncertainty is hidden. |
| Encourages transparency | Forces assumptions to be named and compared. | Scenario narratives can still smuggle in bias. |
A weak scenario exercise can create the illusion of foresight without improving understanding. A strong one makes assumptions explicit, exposes system vulnerabilities, and clarifies the range of futures that decision-makers should take seriously.
R Workflow: Comparing Alternative Futures in a Dynamic System
The R workflow below uses base R. It simulates a simple dynamic system under baseline, policy, stress, rapid-growth, and resilience-investment scenarios, then writes scenario trajectories and summary outputs.
# scenario_modeling_diagnostics.R
# Base R workflow:
# comparing alternative futures in a dynamic system.
#
# Suggested repository placement:
# articles/scenario-modeling-and-simulation/r/scenario_modeling_diagnostics.R
args <- commandArgs(trailingOnly = FALSE)
file_arg <- grep("^--file=", args, value = TRUE)
if (length(file_arg) > 0) {
script_path <- normalizePath(sub("^--file=", "", file_arg[1]), mustWork = TRUE)
article_root <- normalizePath(file.path(dirname(script_path), ".."), mustWork = TRUE)
} else {
article_root <- normalizePath(getwd(), mustWork = TRUE)
}
tables_dir <- file.path(article_root, "outputs", "tables")
figures_dir <- file.path(article_root, "outputs", "figures")
dir.create(tables_dir, recursive = TRUE, showWarnings = FALSE)
dir.create(figures_dir, recursive = TRUE, showWarnings = FALSE)
simulate_scenario <- function(
scenario,
growth,
policy_drag,
shock_time = NA,
shock_size = 0,
resilience_investment = 0,
steps = 80,
x0 = 20
) {
state <- numeric(steps)
capacity_buffer <- numeric(steps)
stress_index <- numeric(steps)
state[1] <- x0
capacity_buffer[1] <- 5 + resilience_investment
for (t in 2:steps) {
shock_effect <- 0
if (!is.na(shock_time) && t == shock_time) {
shock_effect <- shock_size / max(1, capacity_buffer[t - 1])
}
state[t] <- state[t - 1] +
growth * state[t - 1] -
policy_drag * state[t - 1] -
shock_effect
capacity_buffer[t] <- capacity_buffer[t - 1] +
0.04 * resilience_investment -
0.01 * max(state[t] - 40, 0)
capacity_buffer[t] <- max(capacity_buffer[t], 1)
state[t] <- max(state[t], 0)
stress_index[t] <- state[t] / capacity_buffer[t]
}
data.frame(
scenario = scenario,
time = seq_len(steps),
state = state,
capacity_buffer = capacity_buffer,
stress_index = stress_index,
growth = growth,
policy_drag = policy_drag,
shock_time = shock_time,
shock_size = shock_size,
resilience_investment = resilience_investment
)
}
all_data <- rbind(
simulate_scenario("baseline", growth = 0.045, policy_drag = 0.000),
simulate_scenario("policy_intervention", growth = 0.045, policy_drag = 0.020),
simulate_scenario("stress_shock", growth = 0.045, policy_drag = 0.000, shock_time = 42, shock_size = 22),
simulate_scenario("rapid_growth", growth = 0.065, policy_drag = 0.000),
simulate_scenario("resilience_investment", growth = 0.045, policy_drag = 0.012, shock_time = 42, shock_size = 22, resilience_investment = 8)
)
scenario_names <- unique(all_data$scenario)
summary_rows <- data.frame()
for (scenario_name in scenario_names) {
subset_data <- all_data[all_data$scenario == scenario_name, ]
summary_rows <- rbind(summary_rows, data.frame(
scenario = scenario_name,
final_state = tail(subset_data$state, 1),
maximum_state = max(subset_data$state),
minimum_state = min(subset_data$state),
final_capacity_buffer = tail(subset_data$capacity_buffer, 1),
maximum_stress_index = max(subset_data$stress_index),
final_stress_index = tail(subset_data$stress_index, 1),
diagnostic = ifelse(
max(subset_data$stress_index) > 10,
"high stress under scenario assumptions",
"stress contained under scenario assumptions"
)
))
}
write.csv(all_data, file.path(tables_dir, "r_scenario_trajectories.csv"), row.names = FALSE)
write.csv(summary_rows, file.path(tables_dir, "r_scenario_summary.csv"), row.names = FALSE)
png(file.path(figures_dir, "r_scenario_state_trajectories.png"), width = 1200, height = 700)
plot(
NA,
xlim = range(all_data$time),
ylim = range(all_data$state),
xlab = "Time",
ylab = "System State",
main = "Scenario Modeling Across Alternative Futures"
)
for (scenario_name in scenario_names) {
subset_data <- all_data[all_data$scenario == scenario_name, ]
lines(subset_data$time, subset_data$state, lwd = 2)
}
legend("topleft", legend = scenario_names, lwd = 2, bty = "n", cex = 0.75)
grid()
dev.off()
print(summary_rows)
cat("R scenario modeling diagnostics complete.\n")
This workflow demonstrates scenario comparison in a dynamic model. The baseline, policy, stress, rapid-growth, and resilience-investment scenarios generate different trajectories because their assumptions differ.
Python Workflow: Policy Robustness Across Scenario Ensembles
The Python workflow below uses only the standard library. It compares policy strategies across many uncertain futures, calculates outcome distributions, estimates regret, and reports robustness diagnostics.
#!/usr/bin/env python3
"""
Scenario modeling workflow.
Dependency-light workflow demonstrating:
1. Scenario ensembles
2. Policy comparison
3. External shocks
4. Outcome distributions
5. Regret analysis
6. Robustness diagnostics
7. Synthetic validation checks
All data are synthetic.
"""
from __future__ import annotations
from pathlib import Path
import csv
import random
from statistics import mean, quantiles
ARTICLE_ROOT = Path(__file__).resolve().parents[1]
TABLES = ARTICLE_ROOT / "outputs" / "tables"
def write_csv(path: Path, rows: list[dict[str, object]]) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
if not rows:
raise ValueError(f"No rows to write: {path}")
with path.open("w", newline="", encoding="utf-8") as handle:
writer = csv.DictWriter(handle, fieldnames=list(rows[0].keys()))
writer.writeheader()
writer.writerows(rows)
def simulate_policy(
growth: float,
policy_drag: float,
external_shock: float,
shock_time: int,
resilience_buffer: float,
steps: int = 60,
initial_state: float = 20.0
) -> dict[str, float]:
state = initial_state
cumulative_cost = 0.0
maximum_state = state
minimum_state = state
for time in range(1, steps + 1):
state = state + growth * state - policy_drag * state
if time == shock_time:
state = max(0.0, state - external_shock / max(1.0, resilience_buffer))
policy_cost = 4.0 * policy_drag
stress_cost = 0.03 * max(state - 35.0, 0.0) ** 2
cumulative_cost += policy_cost + stress_cost
maximum_state = max(maximum_state, state)
minimum_state = min(minimum_state, state)
return {
"final_state": state,
"maximum_state": maximum_state,
"minimum_state": minimum_state,
"cumulative_cost": cumulative_cost,
"resilience_score": final_resilience_score(state, maximum_state, cumulative_cost),
}
def final_resilience_score(final_state: float, maximum_state: float, cumulative_cost: float) -> float:
return max(0.0, 100.0 - 0.8 * final_state - 0.3 * maximum_state - 0.2 * cumulative_cost)
def percentile(values: list[float], q: float) -> float:
if not values:
return 0.0
ordered = sorted(values)
index = int(round((len(ordered) - 1) * q))
return ordered[index]
def main() -> None:
rng = random.Random(42)
policies = [
{"policy": "Policy_A_low_intervention", "policy_drag": 0.010, "resilience_buffer": 4.0},
{"policy": "Policy_B_moderate_intervention", "policy_drag": 0.025, "resilience_buffer": 7.0},
{"policy": "Policy_C_high_resilience", "policy_drag": 0.020, "resilience_buffer": 12.0},
]
scenario_rows: list[dict[str, object]] = []
outcome_rows: list[dict[str, object]] = []
n_scenarios = 400
for scenario_id in range(1, n_scenarios + 1):
growth = rng.uniform(0.030, 0.075)
external_shock = rng.uniform(0.0, 18.0)
shock_time = rng.randint(20, 45)
scenario_rows.append({
"scenario_id": scenario_id,
"growth": round(growth, 6),
"external_shock": round(external_shock, 6),
"shock_time": shock_time,
})
scenario_policy_results = []
for policy in policies:
result = simulate_policy(
growth=growth,
policy_drag=policy["policy_drag"],
external_shock=external_shock,
shock_time=shock_time,
resilience_buffer=policy["resilience_buffer"],
)
row = {
"scenario_id": scenario_id,
"policy": policy["policy"],
"policy_drag": policy["policy_drag"],
"resilience_buffer": policy["resilience_buffer"],
"growth": round(growth, 6),
"external_shock": round(external_shock, 6),
"shock_time": shock_time,
"final_state": round(result["final_state"], 6),
"maximum_state": round(result["maximum_state"], 6),
"minimum_state": round(result["minimum_state"], 6),
"cumulative_cost": round(result["cumulative_cost"], 6),
"resilience_score": round(result["resilience_score"], 6),
}
scenario_policy_results.append(row)
outcome_rows.append(row)
best_score = max(float(row["resilience_score"]) for row in scenario_policy_results)
for row in scenario_policy_results:
row["regret"] = round(best_score - float(row["resilience_score"]), 6)
summary_rows: list[dict[str, object]] = []
for policy in [policy["policy"] for policy in policies]:
subset = [row for row in outcome_rows if row["policy"] == policy]
scores = [float(row["resilience_score"]) for row in subset]
regrets = [float(row["regret"]) for row in subset]
final_states = [float(row["final_state"]) for row in subset]
summary_rows.append({
"policy": policy,
"mean_resilience_score": round(mean(scores), 6),
"p10_resilience_score": round(percentile(scores, 0.10), 6),
"p90_resilience_score": round(percentile(scores, 0.90), 6),
"worst_resilience_score": round(min(scores), 6),
"mean_final_state": round(mean(final_states), 6),
"worst_final_state": round(max(final_states), 6),
"mean_regret": round(mean(regrets), 6),
"maximum_regret": round(max(regrets), 6),
"robustness_diagnostic": (
"strong robust performance"
if percentile(scores, 0.10) >= 40 and mean(regrets) <= 10
else "scenario-sensitive performance"
),
})
validation_rows: list[dict[str, object]] = []
for row in summary_rows:
for metric, low, high in [
("mean_resilience_score", 0.0, 100.0),
("p10_resilience_score", 0.0, 100.0),
("p90_resilience_score", 0.0, 100.0),
("mean_regret", 0.0, 100.0),
("maximum_regret", 0.0, 100.0),
]:
value = float(row[metric])
validation_rows.append({
"policy": row["policy"],
"metric": metric,
"value": round(value, 6),
"target_low": low,
"target_high": high,
"passed": low <= value <= high,
})
write_csv(TABLES / "python_scenario_driver_inventory.csv", scenario_rows)
write_csv(TABLES / "python_policy_scenario_ensemble.csv", outcome_rows)
write_csv(TABLES / "python_policy_robustness_summary.csv", summary_rows)
write_csv(TABLES / "python_scenario_validation.csv", validation_rows)
print("Scenario modeling workflow complete.")
print(TABLES / "python_policy_robustness_summary.csv")
if __name__ == "__main__":
main()
This workflow shows how scenario modeling supports robust decision analysis. Instead of comparing policies in one assumed future, it evaluates policies across many uncertain futures and measures resilience, regret, and worst-case performance.
GitHub Repository
Complete Code Repository
Companion repository for the article, including scenario ensemble workflows, policy robustness simulations, stress-test diagnostics, regret analysis, alternative-future comparisons, validation checks, synthetic datasets, documentation assets, and multi-language examples for professional systems modeling.
Ethics and Responsible Use
Scenario modeling can influence public investment, climate policy, infrastructure planning, health preparedness, risk governance, and institutional strategy. That makes responsible use essential. Scenarios can clarify uncertainty, but they can also frame imagination, exclude alternatives, privilege some values, or make contested assumptions appear technical and neutral.
Scenario exercises are not value-free. Choosing which futures to model, which uncertainties matter, which metrics count, which groups are represented, and which outcomes are considered acceptable are all normative decisions. Scenario modeling should make those choices visible.
| Responsible-use issue | Risk | Better practice |
|---|---|---|
| False prediction | Users interpret scenarios as forecasts. | State clearly that outputs are conditional trajectories. |
| Narrow scenario space | Important futures are excluded. | Use diverse scenarios, boundary critique, and stakeholder review. |
| Hidden value choices | Metrics privilege some outcomes over others. | Include equity, distributional, ecological, and social metrics where relevant. |
| Technocratic authority | The model substitutes for public judgment. | Use scenarios to inform deliberation, not replace it. |
| False robustness | A strategy looks robust only because scenarios are too narrow. | Stress test across wider assumptions and adverse cases. |
| Data and model opacity | Assumptions cannot be inspected or challenged. | Document scenario logic, data, parameters, and code. |
A responsible scenario model should expand decision-makers’ understanding of uncertainty. It should not manufacture confidence or narrow the future to what is convenient to model.
Common Pitfalls
Scenario modeling can fail when it is treated as a storytelling exercise without modeling discipline, or as a modeling exercise without interpretive humility. The strongest scenario work combines structured imagination with rigorous analysis.
| Pitfall | Why it matters | Correction |
|---|---|---|
| Confusing scenarios with predictions | Creates false certainty about futures. | Describe scenario results as conditional outcomes. |
| Using too few scenarios | May hide vulnerability and uncertainty. | Include baseline, policy, stress, and exploratory cases where relevant. |
| Varying assumptions incoherently | Produces futures that do not make sense. | Check internal consistency and causal logic. |
| Ignoring sensitivity | Important results may depend on fragile assumptions. | Run sensitivity tests and scenario ensembles. |
| Overemphasizing averages | Tail risks and worst cases may disappear. | Report distributions, percentiles, regret, and worst-case outcomes. |
| Neglecting distributional impacts | A scenario may improve totals while harming vulnerable groups. | Include subgroup, regional, and equity metrics. |
| Publishing opaque scenarios | Users cannot inspect assumptions. | Document parameters, data, model code, and scenario rationale. |
Good scenario modeling makes uncertainty more structured, not less visible.
Conclusion
Scenario modeling and simulation is one of the most important practices in systems modeling because it allows analysts to reason formally about futures that cannot be reduced to one forecast. Its value lies not in prophecy, but in disciplined comparison. Alternative assumptions, policies, shocks, uncertainties, and structural conditions are translated into trajectories that can be examined, contrasted, and debated.
For complex systems research, that function is indispensable. Systems shaped by uncertainty, feedback, adaptation, path dependence, thresholds, and long time horizons rarely permit exact prediction, yet they still require structured reasoning. Scenario modeling provides one of the main ways that formal models become useful under those conditions.
Used well, scenario modeling helps decision-makers identify vulnerabilities, compare strategies, test stress conditions, understand tradeoffs, and prepare for multiple futures. Used poorly, it can create false confidence or narrow imagination. The difference lies in transparent assumptions, credible models, diverse scenario design, sensitivity analysis, validation, and responsible interpretation.
Scenario modeling turns uncertainty from a barrier into an object of analysis.
Related Articles
- What Is Systems Modeling?
- Systems Thinking vs Systems Modeling
- Why Complex Systems Require Models
- Core Principles of Systems Modeling
- System Dynamics Modeling
- Agent-Based Modeling
- Network Models
- Discrete Event Simulation
- Hybrid Modeling Approaches
- Sensitivity Analysis in Systems Models
- Calibration and Validation of Models
- Uncertainty and Model Interpretation
Further Reading
- Intergovernmental Panel on Climate Change. Reports. Available at: https://www.ipcc.ch/reports/.
- IIASA. Shared Socioeconomic Pathways Scenario Database. Available at: https://iiasa.ac.at/models-tools-data/ssp.
- RAND Corporation. Robust Decision Making. Available at: https://www.rand.org/pubs/tools/TL320/tool/robust-decision-making.html.
- RAND Corporation. Decision Making under Deep Uncertainty. Available at: https://www.rand.org/global-and-emerging-risks/centers/pardee/dmdu-decision-making-under-deep-uncertainty.html.
- OECD. Strategic Foresight. Available at: https://www.oecd.org/en/about/programmes/strategic-foresight.html.
- OECD Observatory of Public Sector Innovation. Futures and Foresight. Available at: https://oecd-opsi.org/guide/futures-and-foresight/.
- MIT System Dynamics Group. Home. Available at: https://systemdynamics.mit.edu/.
- Santa Fe Institute. What is Complex Systems Science? Available at: https://www.santafe.edu/what-is-complex-systems-science.
- Schoemaker, P.J.H. (1995) ‘Scenario planning: A tool for strategic thinking’, MIT Sloan Management Review, 36(2), pp. 25–40.
- Schwartz, P. (1991) The Art of the Long View. New York: Doubleday.
- van der Heijden, K. (2005) Scenarios: The Art of Strategic Conversation, 2nd edn. Chichester: Wiley.
- Sterman, J.D. (2000) Business Dynamics: Systems Thinking and Modeling for a Complex World. Boston: Irwin/McGraw-Hill.
- Walker, W.E., Haasnoot, M. and Kwakkel, J.H. (2013) ‘Adapt or perish: A review of planning approaches for adaptation under deep uncertainty’, Sustainability, 5(3), pp. 955–979. Available at: https://doi.org/10.3390/su5030955.
- Lempert, R.J., Popper, S.W. and Bankes, S.C. (2003) Shaping the Next One Hundred Years: New Methods for Quantitative, Long-Term Policy Analysis. Santa Monica, CA: RAND Corporation.
References
- Intergovernmental Panel on Climate Change. (n.d.) Reports. Available at: https://www.ipcc.ch/reports/.
- IIASA. (n.d.) Shared Socioeconomic Pathways Scenario Database. Available at: https://iiasa.ac.at/models-tools-data/ssp.
- Lempert, R.J., Popper, S.W. and Bankes, S.C. (2003) Shaping the Next One Hundred Years: New Methods for Quantitative, Long-Term Policy Analysis. Santa Monica, CA: RAND Corporation.
- OECD. (n.d.) Strategic Foresight. Available at: https://www.oecd.org/en/about/programmes/strategic-foresight.html.
- OECD Observatory of Public Sector Innovation. (n.d.) Futures and Foresight. Available at: https://oecd-opsi.org/guide/futures-and-foresight/.
- RAND Corporation. (n.d.) Decision Making under Deep Uncertainty. Available at: https://www.rand.org/global-and-emerging-risks/centers/pardee/dmdu-decision-making-under-deep-uncertainty.html.
- RAND Corporation. (n.d.) Robust Decision Making. Available at: https://www.rand.org/pubs/tools/TL320/tool/robust-decision-making.html.
- Schoemaker, P.J.H. (1995) ‘Scenario planning: A tool for strategic thinking’, MIT Sloan Management Review, 36(2), pp. 25–40.
- Schwartz, P. (1991) The Art of the Long View. New York: Doubleday.
- Sterman, J.D. (2000) Business Dynamics: Systems Thinking and Modeling for a Complex World. Boston: Irwin/McGraw-Hill.
- van der Heijden, K. (2005) Scenarios: The Art of Strategic Conversation, 2nd edn. Chichester: Wiley.
- Walker, W.E., Haasnoot, M. and Kwakkel, J.H. (2013) ‘Adapt or perish: A review of planning approaches for adaptation under deep uncertainty’, Sustainability, 5(3), pp. 955–979. Available at: https://doi.org/10.3390/su5030955.
- Wilkinson, A. and Kupers, R. (2013) ‘Living in the futures’, Harvard Business Review, 91(5), pp. 118–127.
