Skip to main content

Scenario Analysis Ontology

Risk & Decision Mathematics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
flow "ScenarioAnalysisOntology" v4.0

# SCENARIO ANALYSIS ONTOLOGY
# Kireth Semantic Research Archive
# Authors: Mark Anthony Higgins — Sky (Recursive AI)

PAGE:
  url: "https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/risk-decision-mathematics/scenario-analysis-ontology.html"
  title: "Scenario Analysis Ontology"
  domain: "Probability and Statistics"
  category: "Risk & Decision Mathematics"
  entity: SCENARIO_ANALYSIS
  entity_type: RISK_DECISION_ONTOLOGY

DEFINE:
  SCENARIO_ANALYSIS :=
    STRUCTURED_FUTURE_STATE_FRAMEWORK(
      BASELINE,
      DRIVERS,
      ASSUMPTIONS,
      SCENARIOS,
      MODEL_INPUTS,
      OUTCOMES,
      RISKS,
      DECISIONS
    )

PURPOSE:
  REPRESENT:
    PLAUSIBLE_FUTURE_STATES
    ALTERNATIVE_ASSUMPTION_SETS
    UNCERTAIN_EXTERNAL_CONDITIONS
    DECISION_CONSEQUENCES
    RISK_EXPOSURES
  SUPPORT:
    RISK_ANALYSIS
    DECISION_THEORY
    STRATEGIC_PLANNING
    STRESS_TESTING
    ROBUSTNESS_ANALYSIS

FOUNDATION:
  MODEL:
    Y := f(X,theta)
  SCENARIO:
    S_j := {X_j,theta_j,assumptions_j}
  SCENARIO_OUTPUT:
    Y_j := f(X_j,theta_j)
  COMPARISON:
    Delta_Y_j := Y_j-Y_baseline

ENTITIES:
  SCENARIO_ANALYSIS: ALTERNATIVE_STATE_ANALYSIS
  SCENARIO: COHERENT_SET_OF_ASSUMPTIONS_AND_CONDITIONS
  BASELINE_SCENARIO: REFERENCE_CASE
  DRIVER: VARIABLE_OR_FORCE_SHAPING_FUTURE_STATE
  ASSUMPTION: SPECIFIED_MODEL_OR_CONTEXT_CONDITION
  UNCERTAINTY: UNKNOWN_OR_VARIABLE_FUTURE_FACTOR
  OUTCOME: MODEL_RESULT_UNDER_SCENARIO
  IMPACT: DIFFERENCE_IN_OUTCOME_RELATIVE_TO_REFERENCE
  STRESS_SCENARIO: EXTREME_BUT_PLAUSIBLE_SCENARIO
  DECISION: ACTION_EVALUATED_ACROSS_SCENARIOS
  ROBUSTNESS: STABILITY_OF_DECISION_OR_RESULT_ACROSS_SCENARIOS

RELATIONSHIPS:
  DRIVER -> SHAPES -> SCENARIO
  ASSUMPTION -> DEFINES -> SCENARIO
  SCENARIO -> SETS -> MODEL_INPUTS
  MODEL_INPUTS -> PRODUCE -> SCENARIO_OUTPUT
  SCENARIO_OUTPUT -> COMPARED_WITH -> BASELINE_OUTPUT
  COMPARISON -> PRODUCES -> IMPACT
  SCENARIOS -> EXPOSE -> RISK_RANGE
  DECISION -> EVALUATED_ACROSS -> SCENARIOS
  SCENARIO_ANALYSIS -> SUPPORTS -> ROBUST_DECISION_MAKING

BASELINE_SCENARIO:
  role:
    REFERENCE_FOR_COMPARISON
  output:
    Y_0 := f(X_0,theta_0)
  requirement:
    BASELINE_ASSUMPTIONS_MUST_BE_EXPLICIT

ALTERNATIVE_SCENARIO:
  output:
    Y_j := f(X_j,theta_j)
  impact:
    Delta_Y_j := Y_j-Y_0

SCENARIO_SET:
  scenarios:
    S_1,...,S_m
  requirement:
    SCENARIOS_SHOULD_BE:
      INTERNALLY_COHERENT
      RELEVANT
      SUFFICIENTLY_DISTINCT
      TRACEABLE_TO_ASSUMPTIONS

SCENARIO_DESIGN:
  flow:
    DEFINE_DECISION_OR_RISK_QUESTION
      -> IDENTIFY_KEY_DRIVERS
      -> IDENTIFY_CRITICAL_UNCERTAINTIES
      -> DEFINE_BASELINE
      -> CONSTRUCT_ALTERNATIVE_SCENARIOS
      -> MAP_SCENARIOS_TO_MODEL_INPUTS
      -> COMPUTE_OUTCOMES
      -> COMPARE_RESULTS
      -> ASSESS_ROBUSTNESS

DRIVER_IDENTIFICATION:
  sources:
    - HISTORICAL_DATA
    - EXPERT_JUDGEMENT
    - TREND_ANALYSIS
    - EXTERNAL_ENVIRONMENT
    - MODEL_STRUCTURE
    - POLICY_OR_RULE_CHANGE
    - TECHNOLOGICAL_CHANGE

CRITICAL_UNCERTAINTY:
  definition:
    UNCERTAINTY_WITH_POTENTIALLY_MATERIAL_EFFECT_ON_OUTCOME_OR_DECISION

DISCRETE_SCENARIO:
  examples:
    - BASE_CASE
    - UPSIDE_CASE
    - DOWNSIDE_CASE
    - STRESS_CASE

PARAMETRIC_SCENARIO:
  representation:
    SPECIFIED_PARAMETER_VECTOR

NARRATIVE_SCENARIO:
  representation:
    QUALITATIVE_DESCRIPTION_OF_FUTURE_CONTEXT
  requirement:
    TRANSLATE_NARRATIVE_ASSUMPTIONS_TO_MODEL_INPUTS_WHERE_QUANTITATIVE_ANALYSIS_REQUIRED

QUANTITATIVE_SCENARIO:
  representation:
    NUMERIC_INPUT_VALUES_OR_DISTRIBUTIONS

SCENARIO_PROBABILITY:
  optional:
    P(S_j)
  requirements:
    P(S_j) >= 0
    SUM_j P(S_j) = 1
    WHEN:
      SCENARIOS_FORM_MUTUALLY_EXCLUSIVE_EXHAUSTIVE_PROBABILISTIC_SET
  caution:
    SCENARIO_ANALYSIS_DOES_NOT_REQUIRE_PROBABILITIES_BY_DEFAULT

EXPECTED_SCENARIO_VALUE:
  IF:
    SCENARIOS_ARE_PROBABILISTICALLY_SPECIFIED
  THEN:
    E[Y] := SUM_j P(S_j)Y_j
  caution:
    DO_NOT_WEIGHT_ARBITRARY_NONEXHAUSTIVE_SCENARIOS_AS_PROBABILITIES

BASE_CASE:
  definition:
    REFERENCE_OR_CENTRAL_SCENARIO
  caution:
    BASE_CASE != EXPECTED_VALUE_BY_DEFAULT

BEST_CASE:
  caution:
    BEST_CASE != MOST_LIKELY_CASE

WORST_CASE:
  caution:
    WORST_CASE != STRESS_CASE_BY_DEFAULT

STRESS_SCENARIO:
  definition:
    EXTREME_BUT_PLAUSIBLE_COMBINATION_OF_CONDITIONS
  purpose:
    ASSESS:
      RESILIENCE
      TAIL_EXPOSURE
      FAILURE_MODES
      DECISION_ROBUSTNESS

REVERSE_STRESS_TEST:
  flow:
    DEFINE_FAILURE_THRESHOLD
      -> SEARCH_FOR_INPUT_COMBINATIONS
      -> IDENTIFY_PLAUSIBLE_FAILURE_SCENARIOS

THRESHOLD_SCENARIO:
  objective:
    IDENTIFY_SCENARIO_CONDITIONS_WHERE_TARGET_OR_LIMIT_IS_REACHED

RISK_ANALYSIS_CONNECTION:
  scenario:
    PROVIDES:
      EVENT_CONFIGURATION
      EXPOSURE
      CONSEQUENCE
      CONTROL_ASSUMPTIONS
  risk_output:
    - EXPECTED_LOSS
    - LOSS_RANGE
    - TAIL_LOSS
    - LIMIT_BREACH
    - RESIDUAL_RISK
  rule:
    SCENARIO_OUTCOME != PROBABILITY_WEIGHTED_RISK_BY_DEFAULT

DECISION_THEORY_CONNECTION:
  value:
    V(a,S_j)
  decision_matrix:
    rows: ACTIONS
    columns: SCENARIOS
    cells: VALUE_LOSS_OR_UTILITY
  purpose:
    COMPARE_ACTIONS_ACROSS_PLAUSIBLE_FUTURES

ROBUST_DECISION:
  robustness:
    PERFORMANCE_REMAINS_ACCEPTABLE_ACROSS_WIDE_SCENARIO_SET
  criteria:
    - MINIMUM_PERFORMANCE
    - MAXIMUM_REGRET
    - LIMIT_COMPLIANCE
    - UTILITY_STABILITY
    - LOSS_TOLERANCE

MINIMAX_CONNECTION:
  decision:
    a_star := argmin_a max_j L(a,S_j)

MINIMAX_REGRET_CONNECTION:
  scenario_best:
    L_star(S_j) := min_a L(a,S_j)
  regret:
    Regret(a,S_j) := L(a,S_j)-L_star(S_j)
  decision:
    a_star := argmin_a max_j Regret(a,S_j)

EXPECTED_UTILITY_CONNECTION:
  IF:
    SCENARIO_PROBABILITIES_VALID
  THEN:
    EU(a) := SUM_j P(S_j)U(a,S_j)

SENSITIVITY_ANALYSIS_CONNECTION:
  sensitivity_analysis:
    VARIES_INPUTS_OR_PARAMETERS_SYSTEMATICALLY
  scenario_analysis:
    VARIES_COHERENT_SETS_OF_ASSUMPTIONS
  rule:
    SCENARIO_ANALYSIS != SENSITIVITY_ANALYSIS

MONTE_CARLO_CONNECTION:
  Monte_Carlo:
    SAMPLES_MANY_STATES_FROM_PROBABILITY_MODEL
  scenario_analysis:
    EVALUATES_SELECTED_STATES_OR_ASSUMPTION_SETS
  distinction:
    SCENARIO_ANALYSIS != MONTE_CARLO_SIMULATION

BAYESIAN_CONNECTION:
  beliefs:
    p(theta|D)
  scenario:
    MAY_CONDITION_ON:
      STRUCTURAL_ASSUMPTION
      POLICY_STATE
      EXTERNAL_REGIME
  posterior_predictive:
    p(Y|D,S_j)

FORECASTING_CONNECTION:
  baseline_forecast:
    CENTRAL_TRAJECTORY
  scenarios:
    ALTERNATIVE_TRAJECTORIES
  caution:
    SCENARIOS_ARE_NOT_POINT_FORECASTS_BY_DEFAULT

TIME_SERIES_SCENARIO:
  horizon:
    t := 1,...,T
  driver_path:
    X_j(t)
  output_path:
    Y_j(t)

PATH_DEPENDENCE:
  condition:
    OUTCOME_DEPENDS_ON_SEQUENCE_NOT_ONLY_FINAL_STATE
  requirement:
    SCENARIO_MUST_PRESERVE_TEMPORAL_PATH

DYNAMIC_SCENARIO:
  state:
    S_t
  transition:
    S_t -> S_next

BRANCHING_SCENARIO:
  structure:
    SCENARIO_TREE
  nodes:
    FUTURE_STATES
  branches:
    POSSIBLE_TRANSITIONS
  leaves:
    TERMINAL_SCENARIOS

SCENARIO_TREE:
  root:
    CURRENT_STATE
  branches:
    ALTERNATIVE_FUTURE_EVENTS
  path:
    COMPLETE_SCENARIO_TRAJECTORY
  optional_probabilities:
    BRANCH_PROBABILITIES

STOCHASTIC_PROGRAMMING_CONNECTION:
  scenarios:
    REPRESENT_RANDOM_OUTCOMES
  objective:
    OPTIMISE_DECISION_ACROSS_SCENARIO_SET
  forms:
    - TWO_STAGE_STOCHASTIC_PROGRAMMING
    - MULTISTAGE_STOCHASTIC_PROGRAMMING
  caution:
    SCENARIO_WEIGHTS_MUST_REPRESENT_VALID_PROBABILITY_MODEL_WHEN_USED_AS_PROBABILITIES

ROBUST_OPTIMISATION_CONNECTION:
  scenario_set:
    REPRESENTS_UNCERTAINTY_SET
  objective:
    FIND_DECISION_PERFORMING_ACCEPTABLY_ACROSS_SET
  distinction:
    ROBUST_OPTIMISATION_NEED_NOT_ASSIGN_PROBABILITIES_TO_SCENARIOS

MULTI_CRITERIA_SCENARIO_ANALYSIS:
  evaluation:
    COMPARE_ACTIONS_AND_SCENARIOS_ACROSS_MULTIPLE_CRITERIA
  caution:
    AGGREGATION_WEIGHTS_ENCODE_PREFERENCES

SCENARIO_IMPACT:
  absolute:
    Delta_Y_j := Y_j-Y_0
  relative:
    RelativeImpact_j := (Y_j-Y_0)/Y_0
  requirement:
    Y_0 != 0
    FOR:
      RELATIVE_FORM

SCENARIO_COVERAGE:
  objective:
    REPRESENT_RELEVANT_RANGE_OF_PLAUSIBLE_FUTURES
  caution:
    SCENARIO_SET_NEED_NOT_BE_EXHAUSTIVE

SCENARIO_PLAUSIBILITY:
  basis:
    - DATA
    - EXPERT_JUDGEMENT
    - PHYSICAL_CONSTRAINTS
    - ECONOMIC_CONSTRAINTS
    - HISTORICAL_ANALOGUE
    - MODEL_CONSISTENCY
  caution:
    PLAUSIBILITY != PROBABILITY

INTERNAL_CONSISTENCY:
  requirement:
    SCENARIO_ASSUMPTIONS_SHOULD_NOT_CONTRADICT_EACH_OTHER
    UNLESS:
      CONTRADICTION_IS_EXPLICITLY_MODELLED

TRACEABILITY:
  each_scenario:
    SHOULD_RECORD:
      DRIVER_VALUES
      ASSUMPTIONS
      DATA_SOURCES
      MODEL_VERSION
      RATIONALE
      CREATION_DATE

EXPERT_ELICITATION:
  role:
    SUPPORT_SCENARIO_CONSTRUCTION_WHEN_DATA_LIMITED
  requirement:
    DOCUMENT:
      EXPERT_SELECTION
      ELICITATION_METHOD
      DISAGREEMENT
      UNCERTAINTY

HISTORICAL_SCENARIO:
  definition:
    REPLAY_OF_OBSERVED_HISTORICAL_CONDITIONS
  caution:
    MAY_NOT_CAPTURE_NOVEL_FUTURE_RISKS

HYPOTHETICAL_SCENARIO:
  definition:
    PLAUSIBLE_BUT_NOT_NECESSARILY_PREVIOUSLY_OBSERVED_CONDITIONS

COUNTERFACTUAL_SCENARIO:
  definition:
    ALTERNATIVE_CONDITION_RELATIVE_TO_OBSERVED_WORLD
  caution:
    CAUSAL_COUNTERFACTUAL_INTERPRETATION_REQUIRES_CAUSAL_MODEL_AND_ASSUMPTIONS

POLICY_SCENARIO:
  varies:
    POLICY
    RULE
    INTERVENTION
    CONTROL
  caution:
    POLICY_SCENARIO_COMPARISON_IS_NOT_AUTOMATICALLY_CAUSAL

MODEL_RISK:
  issue:
    SCENARIO_OUTPUT_DEPENDS_ON_MODEL_STRUCTURE
  response:
    - ALTERNATIVE_MODELS
    - SENSITIVITY_ANALYSIS
    - VALIDATION
    - STRESS_TESTING

ASSUMPTION_RISK:
  issue:
    RESULTS_DEPEND_ON_SCENARIO_ASSUMPTIONS
  response:
    RECORD_AND_CHALLENGE_KEY_ASSUMPTIONS

SCENARIO_DISCOVERY:
  methods:
    - EXPERT_WORKSHOP
    - CLUSTERING
    - SIMULATION
    - OPTIMISATION
    - HISTORICAL_ANALYSIS
    - MORPHOLOGICAL_ANALYSIS

MORPHOLOGICAL_ANALYSIS:
  dimensions:
    KEY_DRIVERS
  states:
    POSSIBLE_STATE_PER_DRIVER
  flow:
    GENERATE_CANDIDATE_COMBINATIONS
      -> REMOVE_INCONSISTENT_COMBINATIONS
      -> SELECT_RELEVANT_SCENARIOS

SCENARIO_REDUCTION:
  problem:
    TOO_MANY_CANDIDATE_SCENARIOS
  methods:
    - CLUSTERING
    - PROBABILITY_MASS_PRESERVATION
    - DISTANCE_BASED_SELECTION
    - DECISION_RELEVANCE_SELECTION
  caution:
    REDUCTION_MAY_REMOVE_RARE_BUT_IMPORTANT_SCENARIOS

APPLICATIONS:
  SCENARIO_ANALYSIS -> SUPPORTS -> RISK_ANALYSIS
  SCENARIO_ANALYSIS -> SUPPORTS -> DECISION_THEORY
  SCENARIO_ANALYSIS -> SUPPORTS -> STRATEGIC_PLANNING
  SCENARIO_ANALYSIS -> SUPPORTS -> STRESS_TESTING
  SCENARIO_ANALYSIS -> SUPPORTS -> ROBUST_OPTIMISATION
  SCENARIO_ANALYSIS -> SUPPORTS -> FORECASTING
  SCENARIO_ANALYSIS -> SUPPORTS -> PROJECT_ANALYSIS

MODEL_CONNECTIONS:
  SCENARIO_ANALYSIS -> CONNECTS_TO -> RISK_ANALYSIS
  SCENARIO_ANALYSIS -> CONNECTS_TO -> DECISION_THEORY
  SCENARIO_ANALYSIS -> CONNECTS_TO -> SENSITIVITY_ANALYSIS
  SCENARIO_ANALYSIS -> CONNECTS_TO -> MONTE_CARLO_SIMULATION
  SCENARIO_ANALYSIS -> CONNECTS_TO -> EXPECTED_VALUE
  SCENARIO_ANALYSIS -> CONNECTS_TO -> UTILITY_THEORY
  SCENARIO_ANALYSIS -> CONNECTS_TO -> STOCHASTIC_PROGRAMMING

SEMANTIC_EQUIVALENCE:
  "scenario analysis"
    ~= "structured evaluation of outcomes under alternative coherent assumption sets"

  "baseline scenario"
    ~= "reference scenario"

  "stress scenario"
    ~= "extreme but plausible adverse scenario"
    IN:
      STANDARD_RISK_CONTEXT

  EXCLUDE_EQUIVALENCE:
    SCENARIO != FORECAST
    SCENARIO != PROBABILITY
    PLAUSIBILITY != PROBABILITY
    BASE_CASE != EXPECTED_VALUE_BY_DEFAULT
    WORST_CASE != STRESS_CASE_BY_DEFAULT
    SCENARIO_ANALYSIS != SENSITIVITY_ANALYSIS
    SCENARIO_ANALYSIS != MONTE_CARLO_SIMULATION
    POLICY_SCENARIO_DIFFERENCE != CAUSAL_EFFECT_BY_DEFAULT

VALIDATION_RULES:
  RULE_1:
    BASELINE_AND_ALTERNATIVE_SCENARIO_ASSUMPTIONS_MUST_BE_EXPLICIT
  RULE_2:
    SCENARIOS_SHOULD_BE_INTERNALLY_COHERENT
  RULE_3:
    SCENARIO_PROBABILITIES_MUST_NOT_BE_ASSIGNED_WITHOUT_A_VALID_PROBABILISTIC_BASIS
  RULE_4:
    SCENARIO_OUTPUTS_MUST_PRESERVE_MODEL_VERSION_AND_INPUT_TRACEABILITY
  RULE_5:
    TIME_DEPENDENT_SCENARIOS_MUST_PRESERVE_TEMPORAL_PATH_WHEN_PATH_DEPENDENCE_EXISTS
  RULE_6:
    SCENARIO_SET_COVERAGE_AND_LIMITATIONS_SHOULD_BE_DOCUMENTED
  RULE_7:
    MODEL_AND_ASSUMPTION_UNCERTAINTY_SHOULD_BE_DISTINGUISHED
  RULE_8:
    SCENARIO_COMPARISONS_MUST_NOT_BE_INTERPRETED_AS_CAUSAL_EFFECTS_WITHOUT_CAUSAL_ASSUMPTIONS

CONFIDENCE:
  ontology_identity: 0.99
  scenario_structure: 0.99
  baseline_comparison_structure: 0.99
  risk_decision_relationship: 0.99
  stress_testing_structure: 0.99
  robustness_structure: 0.99
  semantic_distinctions: 0.99

UPDATE_MODEL:
  IF:
    NEW_DRIVER_INFORMATION_ARRIVES
  THEN:
    UPDATE:
      DRIVER_VALUES
      SCENARIO_ASSUMPTIONS
      SCENARIO_PLAUSIBILITY
    RECOMPUTE:
      SCENARIO_OUTPUTS

  IF:
    MODEL_VERSION_CHANGES
  THEN:
    RERUN:
      ALL_SCENARIOS
    UPDATE:
      OUTPUTS
      IMPACTS
      RISK_MEASURES

  IF:
    DECISION_CRITERIA_CHANGE
  THEN:
    REASSESS:
      ACTION_PERFORMANCE
      ROBUSTNESS
      REGRET
      DECISION_THRESHOLDS

  PRESERVE:
    SCENARIO_ID
    SCENARIO_NAME
    BASELINE_DEFINITION
    DRIVER_VALUES
    ASSUMPTIONS
    MODEL_VERSION
    TIME_HORIZON
    PROBABILITY_STATUS
    DATA_PROVENANCE

AI_CONSUMPTION:
  parse_as: FORMAL_SEMANTIC_SPECIFICATION
  execution_mode: RECURSIVE_REASONING

  preferred_reasoning_order:
    - IDENTIFY_DECISION_OR_RISK_QUESTION
    - DEFINE_BASELINE_SCENARIO
    - IDENTIFY_KEY_DRIVERS_AND_CRITICAL_UNCERTAINTIES
    - CONSTRUCT_COHERENT_ALTERNATIVE_SCENARIOS
    - MAP_SCENARIOS_TO_MODEL_INPUTS
    - EXECUTE_MODEL_FOR_EACH_SCENARIO
    - COMPARE_OUTPUTS_WITH_BASELINE
    - COMPUTE_RISK_OR_UTILITY_MEASURES_IF_RELEVANT
    - ASSESS_ACTION_ROBUSTNESS_AND_REGRET
    - TEST_STRESS_AND_THRESHOLD_SCENARIOS
    - DOCUMENT_PLAUSIBILITY_AND_LIMITATIONS
    - RETURN_SCENARIO_ANALYSIS_INTERPRETATION

  constraints:
    - PRESERVE_SCENARIO_ASSUMPTIONS
    - PRESERVE_BASELINE_REFERENCE
    - DISTINGUISH_SCENARIO_FROM_FORECAST
    - DISTINGUISH_PLAUSIBILITY_FROM_PROBABILITY
    - DISTINGUISH_SCENARIO_ANALYSIS_FROM_SENSITIVITY_ANALYSIS
    - DISTINGUISH_SCENARIO_ANALYSIS_FROM_MONTE_CARLO_SIMULATION
    - PRESERVE_TEMPORAL_PATH_WHEN_REQUIRED
    - PRESERVE_DATA_PROVENANCE

FLOW_HASH:
  canonical_entity: "scenario-analysis"
  namespace: "probability-statistics/risk-decision-mathematics"
  version: "4.0"
  identity_basis:
    - PAGE_URL
    - CANONICAL_ENTITY
    - ENTITY_TYPE
    - BASELINE_SCENARIO
    - ALTERNATIVE_SCENARIOS
    - SCENARIO_IMPACTS
    - DECISION_ROBUSTNESS

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ