Skip to content

Impact Multipliers - imp

This sheet defines the impact multipliers used by the model: their names, ranges, sampling distributions, and the operation used to combine each multiplier with organization characteristics.

Terminology

Term Meaning
Impact Differentiator The multiplier name defined in this sheet.
SOW State of the World. In implementation terms, this is the sampled multiplier value for a given differentiator and simulation.
OC Organization Characteristic. This is the organization-specific value from the fos sheet for the same differentiator.

Accepted Structure

Example:

Impact Differentiator Min Max Distribution Weight Type Category
Hedginess 0.2 2.5 lognormal OC ^ SOW WorldModel
FundingAdditionality 0.4 2.0 lognormal SOW x OC Funding
PolicyAdditionality 0.6 1.4 normal SOW x OC Intervention
DiscountAllYears 0.95 0.95 normal TempModifier-Compounded Time
CruxMultiplier 1.0 1.0 unity SOW x OC Derived

Recognized columns:

Column Required Meaning
Impact Differentiator Yes Multiplier name. Spaces and dots are removed internally for matching.
Min Yes Lower numeric input used by the distribution. Its exact meaning depends on Distribution.
Max Yes Upper numeric input used by the distribution. Its exact meaning depends on Distribution.
Distribution Yes Distribution family. See supported values below.
Weight Type No User-facing alias for the internal Type column.
Category No Optional metadata used by some downstream grouping utilities and plots; it is not part of the core sampling logic.

Supported Distributions

The current parser accepts these distribution labels:

Distrib name Description Min/Max application
normal Samples from a normal distribution whose 5th percentile is Min and 95th percentile is Max. Interpreted as p05 and p95, not as hard bounds.
lognormal Samples from a lognormal distribution whose 5th percentile is Min and 95th percentile is Max. Interpreted as p05 and p95 on the original scale, not as hard bounds. Bounds must be strictly positive unless Min = Max, in which case the row is treated as a constant.
uniform Samples uniformly between two endpoints. Used as literal lower and upper bounds.
custom Reads empirical values from a separate sheet whose name matches the normalized Impact Differentiator, then samples from that empirical distribution. Used only to filter the empirical values before sampling.
formula Placeholder distribution for multipliers computed from the formulas sheet rather than sampled directly. Not used for formula-based multipliers.
unity Always returns 1. Ignored.

Important note:

  • If Min = Max for a sampled distribution such as normal, lognormal, or uniform, the engine treats the multiplier as a constant internally. This does not apply to custom, formula, or unity.
  • For normal, the engine solves for mean and sd so that qnorm(0.05, mean, sd) = Min and qnorm(0.95, mean, sd) = Max.
  • For lognormal, the engine solves for meanlog and sdlog so that qlnorm(0.05, meanlog, sdlog) = Min and qlnorm(0.95, meanlog, sdlog) = Max.

Supported Weight Types

The current parser accepts these multiplier types:

  • SOW x OC
  • OC ^ SOW
  • SOW ^ OC
  • TempModifier-Compounded
  • TempModifier-SingleYear
  • UtilityDeclineParameter

How these types are used:

Type Role in the model
SOW x OC Used in the base expected-value calculation.
OC ^ SOW Used in the base expected-value calculation.
SOW ^ OC Used in the base expected-value calculation.
TempModifier-Compounded Applied later when expected values are propagated across years.
TempModifier-SingleYear Applied later as a year-specific adjustment when expected values are propagated across years.
UtilityDeclineParameter Used later in bracket-level utility adjustment for portfolio optimization.

See Expected Value Computation for a fuller explanation of:

  • how SOW x OC, OC ^ SOW, and SOW ^ OC feed into base expected values,
  • how temporal modifiers affect later years, and
  • how UtilityDeclineParameter interacts with bracket-level utility adjustment.

Defaults And Backward Compatibility

  • If Weight Type is missing, the parser defaults non-temporal rows to SOW x OC.
  • The parser accepts several user-written aliases such as OC x SOW, sow*oc, Multiplier, and Exponent, then normalizes them to the current internal type labels.
  • Older templates may still use Class; the parser recognizes temporal modifier values there and maps them into Weight Type with a warning.
  • If no compounded temporal modifier exists, the engine adds a default row equivalent to TempModifier-Compounded = 1.
  • If an unknown weight type is supplied, the parser warns and replaces it with SOW x OC.

Validation Behavior

The parser currently does the following:

  • Removes duplicate Impact Differentiator rows, keeping the first occurrence and recording an error.
  • Rejects multiple TempModifier-Compounded rows.
  • Rejects multiple UtilityDeclineParameter rows.
  • Reads custom distributions only for rows where Distribution = custom.
  • Keeps Category if it exists.

Notes For Agents

  • Internal matching is name-normalized: spaces and dots are removed from Impact Differentiator values.
  • Category is preserved in multiplier_range and is used by some category-based helper functions and plots, but not by the core multiplier-generation logic.
  • For custom, the engine looks for a separate sheet with name equal to the normalized Impact Differentiator.
  • Formula-generated multipliers can be added later if they are referenced from the fos sheet; if a formula-generated multiplier reuses an existing multiplier name, the formula overrides the original distribution.
  • The app preview shows this sheet under the Multipliers section