Noise And Model Coverage
This page explains how the model adds extra uncertainty when the spreadsheet says that the model does not capture all of an organization's true uncertainty.
Goal
Model Coverage lets the user say how much of an organization's uncertainty is already represented in the model.
Examples:
1.0means full coverage: no extra uncertainty is added.0.6means the model captures only 60% of the organization's true uncertainty, so the engine adds extra noise to bring the total variance up.
This adjustment is applied separately for each organization.
Where The Input Lives
Two spreadsheet inputs control this feature:
orgmetacontainsModel Coveragefor each organization.covcan optionally contain correlations between organization noise modifiers by using the vertical correlation format withType = Noise.
When Noise Is Applied
Noise is added after the engine computes the base expected values for organizations and simulations, but before later-year propagation and downstream portfolio steps are completed.
At a high level:
- Compute base expected values from multipliers and organization characteristics.
- Measure the existing uncertainty of each organization's expected value distribution.
- Build one lognormal noise multiplier per organization.
- Multiply expected values by those noise multipliers.
- Continue with later-year propagation and portfolio construction.
Why Lognormal Noise
The current implementation uses lognormal noise because expected values are typically positive and multiplicative lognormal noise preserves that general shape.
The engine measures uncertainty using:
sigma = SD(log(EV))
for each organization's expected value distribution across simulations.
Noise Formula
If:
sigmais the standard deviation oflog(EV), andpisModel Coverage,
then the engine sets:
sdlog = sigma * sqrt((1 - p) / p)
and draws a noise multiplier from:
Lognormal(meanlog = 0, sdlog = sdlog)
Then it updates expected value as:
EV_post = EV_pre * NoiseModifier
This matches the core design in the specification.
Worked Intuition
Suppose an organization has:
- base expected values already computed across simulations,
sigma = SD(log(EV)) = 0.5,Model Coverage = 0.8.
Then:
sdlog = 0.5 * sqrt((1 - 0.8) / 0.8) = 0.25
So the engine draws a lognormal noise multiplier with meanlog = 0 and sdlog = 0.25, and multiplies the base expected values by that draw.
If instead Model Coverage = 1, then:
sdlog = 0
and the noise multiplier is effectively 1, so no extra variance is added.
Correlated Noise
The model supports correlations between noise modifiers.
To specify them:
- Use the
covsheet in vertical format. - Set
Type = Noise. - Use organization names in
Variable1andVariable2.
Example:
| Variable1 | Variable2 | Correlation | Type |
|---|---|---|---|
| OrgA | OrgB | 0.4 | Noise |
| OrgA | OrgC | 0.2 | Noise |
Implementation details:
- If no noise correlation is supplied, each organization's noise is drawn independently.
- If a noise correlation matrix is supplied, the engine uses a Gaussian copula to generate correlated uniforms and transforms them into lognormal noise multipliers.
- The row and column names of the noise correlation matrix must match organization names exactly after parsing.
Practical Constraints And Defaults
The current implementation enforces:
Model Coveragemust not beNA.Model Coveragemust be<= 1.- very small coverage values are internally capped at
0.01when generating noise, to avoid degenerate behavior. - missing
Model Coveragevalues are filled with1during input parsing.
So in practice:
- full coverage means no extra noise,
- lower coverage means more extra variance,
- extremely small positive coverage still works but is regularized by the
0.01floor.
How Noise Shows Up Later
The engine generates one noise modifier per organization.
These noise modifiers are exposed downstream as analysis variables with the prefix:
Noise:
This allows them to appear in sensitivity-analysis and related multiplier-importance workflows alongside ordinary multipliers.
Related Pages
- Input-side definition of
Model Coverage: Organization Funding - Input-side definition of
Noisecorrelations: Correlation Matrix - Base expected-value calculation before noise is applied: Expected Value Computation