{
  "scope": "Display changes only. Protected data, annual discount factors and results are unchanged.",
  "sources": {
    "reports/public_analysis_nordic_teacher_context_round9_2026-09-17/data/model_configuration.json": "b97f6cc79f47505f16fa1b4717c2453d779a048486605be15e211703efe34e13",
    "src/value_education/models/discount.py": "12d35493eb2ee723c63c895244d895e873a1b7b397c1fc4482aac3a78632dd92",
    "reports/public_analysis_nordic_teacher_context_round9_2026-09-17/data/chart_recovery_vertical.csv": "37a6a51e8c4ef8dbaf99ad35cfd51aee8ae39a35760731b69481542503a7f2a6",
    "reports/public_analysis_nordic_teacher_context_round9_2026-09-17/data/chart_municipal_cost_real.csv": "3f8a2d3c9ac7cd1646a0ed6f0b138f55267be0492702a18c1595afcc974597e9",
    "reports/public_analysis_nordic_teacher_context_round9_2026-09-17/data/observed_zero_rates.csv": "77e47c7c229aafe50b58a470e49703a30d2d1efce7077928f113aa09bffcec35"
  },
  "discount_display": {
    "curve": "cbi_flat_zero_10",
    "formula": "D(t) = models.discount.discount_factor(t, frozen_zeros, primary_curve); z(t) = expm1(-log(D(t))/t)",
    "interpolation": "Existing model linear interpolation of log discount factors. No linear rate interpolation.",
    "grid": "3 through 10 years inclusive in 0.025-year steps, including 3, 5 and 10",
    "tolerance": "Absolute 2e-15 for observed annual rates and reconstructed discount factors",
    "point_role": "observed_maturity identifies original quote maturities. All sampled rates are derived from the model factor. Exact quotes remain in unchanged chart_discounting.csv."
  },
  "municipal_units": "CPI-adjusted municipal operating cost per pupil, million 2025 purchasing-power-equivalent ISK. Only the y-axis wording is shortened. Standalone source note and public caption retain the price basis."
}
