{
  "reviewedAt": "2026-09-22",
  "profiles": [
    {
      "id": "AWS",
      "label": "Sites chosen for winter",
      "capacity_gwp": 117.88480970023578,
      "yield_kwh_kwp": 296.9,
      "capacity_claim": "solar-winter-aws-capacity"
    },
    {
      "id": "ZWB",
      "label": "Site mix built as before",
      "capacity_gwp": 135.76415826221876,
      "yield_kwh_kwp": 257.8,
      "capacity_claim": "solar-winter-zwb-capacity"
    }
  ],
  "installation": [
    {
      "price": 800,
      "label": "Large-roof price",
      "cases": [
        {
          "target": 120,
          "cost": 88.40112,
          "claim": "solar-winter-capex-120-800"
        },
        {
          "target": 140,
          "cost": 104.40111999999999,
          "claim": "solar-winter-capex-140-800"
        }
      ]
    },
    {
      "price": 1428,
      "label": "Medium-roof price",
      "cases": [
        {
          "target": 120,
          "cost": 157.79599919999998,
          "claim": "solar-winter-capex-120-1428"
        },
        {
          "target": 140,
          "cost": 186.35599919999999,
          "claim": "solar-winter-capex-140-1428"
        }
      ]
    },
    {
      "price": 1911,
      "label": "Small-roof price",
      "cases": [
        {
          "target": 120,
          "cost": 211.1681754,
          "claim": "solar-winter-capex-120-1911"
        },
        {
          "target": 140,
          "cost": 249.38817539999997,
          "claim": "solar-winter-capex-140-1911"
        }
      ]
    }
  ],
  "seasonal": [
    {
      "id": "roof-very-large",
      "label": "Large roof · CHF 800/kWp",
      "cases": [
        {
          "summer_value": 0,
          "price": 301.9044011709163,
          "claim": "solar-winter-price-roof-very-large-0"
        },
        {
          "summer_value": 50,
          "price": 165.6298913669947,
          "claim": "solar-winter-price-roof-very-large-50"
        }
      ]
    },
    {
      "id": "roof-large",
      "label": "Commercial roof · CHF 1,102/kWp",
      "cases": [
        {
          "summer_value": 0,
          "price": 386.18103445156646,
          "claim": "solar-winter-price-roof-large-0"
        },
        {
          "summer_value": 50,
          "price": 249.9065246476449,
          "claim": "solar-winter-price-roof-large-50"
        }
      ]
    },
    {
      "id": "roof-small",
      "label": "Small roof · CHF 1,911/kWp",
      "cases": [
        {
          "summer_value": 0,
          "price": 651.2694701753891,
          "claim": "solar-winter-price-roof-small-0"
        },
        {
          "summer_value": 50,
          "price": 514.9949603714675,
          "claim": "solar-winter-price-roof-small-50"
        }
      ]
    },
    {
      "id": "alpine-reference",
      "label": "Alpine study reference",
      "cases": [
        {
          "summer_value": 0,
          "price": 481.63865121860437,
          "claim": "solar-winter-price-alpine-reference-0"
        },
        {
          "summer_value": 50,
          "price": 415.6386512186044,
          "claim": "solar-winter-price-alpine-reference-50"
        }
      ]
    },
    {
      "id": "madrisa-budget",
      "label": "Madrisa project budget",
      "cases": [
        {
          "summer_value": 0,
          "price": 782.0585895567689,
          "claim": "solar-winter-price-madrisa-budget-0"
        },
        {
          "summer_value": 50,
          "price": 707.0585895567689,
          "claim": "solar-winter-price-madrisa-budget-50"
        }
      ]
    },
    {
      "id": "new-nuclear-reference",
      "label": "New nuclear reference",
      "cases": [
        {
          "summer_value": 0,
          "price": 216.00866193059744,
          "claim": "solar-winter-price-new-nuclear-reference-0"
        },
        {
          "summer_value": 50,
          "price": 175.09957102150653,
          "claim": "solar-winter-price-new-nuclear-reference-50"
        }
      ]
    },
    {
      "id": "wind-grenchen-budget",
      "label": "Grenchen wind budget",
      "cases": [
        {
          "summer_value": 0,
          "price": 173.39618360011718,
          "claim": "solar-winter-price-wind-grenchen-budget-0"
        },
        {
          "summer_value": 50,
          "price": 148.39618360011715,
          "claim": "solar-winter-price-wind-grenchen-budget-50"
        }
      ]
    }
  ],
  "assumptions": {
    "as_of": "2026-09-22",
    "classification": "Analyst scenarios informed by catalogued evidence; not quotes or a full-system optimum",
    "money_basis": "Constant 2025 CHF for our comparative calculations. Observed roof prices are 2025 ex-VAT; Axpo CHF2024 inputs use the BFS annual CPI ratio 1.002. EBP mixed-vintage O&M/cost inputs and undated project budgets are expressly carried at their printed numbers as 2025-price scenario assumptions, not claimed inflation-normalised observations.",
    "cpi_2024_to_2025": 1.002,
    "real_discount_rates": [
      0.03,
      0.05,
      0.07
    ],
    "comparison_horizon_years_from_first_cod": 60,
    "summer_effective_value_chf_per_potential_mwh": [
      0,
      20,
      50
    ],
    "summer_value_boundary": "Net value after unsold energy, curtailment, export limits, losses and transaction costs; not a forecast or an assumption that all summer output sells at a given spot price. Applied symmetrically to each generator. Winter output is all counted usable for this energy-only screen.",
    "existing_pv_end_2025_gwp": 9.4986,
    "common_portfolio_pv_gwp": 53,
    "total_pv_targets_gwp": [
      70,
      120,
      140
    ],
    "national_unit_capex_sensitivities_chf_kwp": [
      800,
      1102,
      1428,
      1911,
      2497
    ],
    "national_cost_boundary": "Mechanical all-at-one-unit-price envelopes, not a plausible site mix. Subtract existing capacity for net additions; replacement/cohort examples separate. External design, roof works, off-site networks, storage and financing excluded from overnight table.",
    "historical_pv_stock_gwp": {
      "2010": 0.125,
      "2011": 0.223,
      "2012": 0.437,
      "2013": 0.756,
      "2014": 1.061,
      "2015": 1.394,
      "2016": 1.664,
      "2017": 1.906,
      "2018": 2.173,
      "2019": 2.498,
      "2020": 2.973,
      "2021": 3.655,
      "2022": 4.737,
      "2023": 6.375,
      "2024": 8.1701,
      "2025": 9.4986
    },
    "historical_cohort_boundary": "Approximate cohorts from rounded net capacity increments in BFE12679 p6, not gross commissioning/retirement records. Pre-2010 stock lumped into 2010. Used only for transparent replacement/age sensitivity.",
    "pv_lifetime_sensitivities_years": [
      25,
      30
    ],
    "pv_degradation_sensitivities": [
      0,
      0.0015,
      0.005
    ],
    "cohort_boundary": "Uniform annual gross commissioning 2026–2050. Retire at age >= life. No cost learning. Effective target is first-year-equivalent capacity at end-2050 under one common PV yield, not a geographical solar design. Gross builds include replacing any lost cohorts. No inherited capital is charged again.",
    "pv_default_life_years": 30,
    "pv_default_degradation": 0.005,
    "pv_construction_carry_years": 0.5,
    "pv_end_of_life_fraction": 0.05,
    "pv_end_of_life_boundary": "Unverified 5% removal/site-restoration allowance at each retirement, not the recycling charge already paid with compliant modules. Sensitivity, no Swiss national demolition quote. No salvage credit.",
    "nuclear": {
      "source_id": "axpo-nuclear-existing",
      "overnight_chf2024_kw": 8530,
      "overnight_sensitivity_chf2024_kw": [
        7100,
        8530,
        10830,
        15000
      ],
      "availability": 0.85,
      "winter_fraction": 0.55,
      "life_years": 60,
      "construction_spend_fractions": [
        0.03,
        0.06,
        0.1,
        0.14,
        0.17,
        0.17,
        0.14,
        0.1,
        0.06,
        0.03
      ],
      "years_before_cod": [
        10,
        9,
        8,
        7,
        6,
        5,
        4,
        3,
        2,
        1
      ],
      "opex_chf2024_mwh": 16,
      "fuel_chf2024_mwh": 7.3,
      "waste_and_decommission_chf2024_mwh": 12.7,
      "refurbishment_chf2024_kw_at_year30": 1000,
      "additional_insurance_budget_chf2025_kw_year": 10,
      "insurance_boundary": "Conservative additional allowance because exact cover/premium and overlap with published O&M remain unresolved; do not claim an observed cost. Test zero if proven included in O&M.",
      "boundary": "Reconstruction using reference assumptions, not Axpo's exact model. Off-site grid and site-specific extra development unpriced. Included 15% contingency not added again. Waste/decommission allowance not duplicated with terminal decommission capex. Overnight sensitivities change only cost, not lifetime/output simultaneously. Largest-unit outages still require separate system coverage."
    },
    "wind": {
      "source_id": "grenchen-owner",
      "budget_chf": 34000000,
      "capacity_kw": 16000,
      "annual_generation_mwh": 30000,
      "winter_fraction": 0.6666666666666666,
      "life_years": 30,
      "construction_carry_years": 1,
      "fixed_om_chf_kw_year": 70,
      "fixed_om_sensitivity_chf_kw_year": [
        40,
        70,
        100
      ],
      "end_of_life_fraction": 0.05,
      "boundary": "Current owner project budget/output expectation, not operating results or a national wind supply curve. O&M/removal are analyst allowances. Owner page now targets 2029 and ~30GWh; do not mix with older 2025 factsheet's 2027/32GWh."
    },
    "battery": {
      "installed_chf_per_usable_ac_kwh": [
        250,
        375,
        500
      ],
      "energy_gwh": [
        40,
        80,
        160
      ],
      "duration_hours": 4,
      "life_years": 15,
      "annual_om_and_augmentation_fraction": 0.04,
      "roundtrip_efficiency": 0.85,
      "cycles_per_year": [
        50,
        150,
        300
      ],
      "charging_price_chf_mwh": [
        0,
        30,
        60
      ],
      "boundary": "Cost envelope inherited from battery research and restated as a 2025-price assumption, not an FX-converted quote. MW = MWh/4: largest cases entail enormous power. Constant AC-usable capacity maintained through O&M/augmentation; no second augmentation charge. Full replacement every 15 years, zero salvage. Grid and construction finance extra. Duration and annual cycles are service assumptions, not demonstrated charging opportunities."
    },
    "hydro_shift": {
      "source_id": "hydro-owner-existing",
      "grimselsee_capex_chf2025": 307000000,
      "seasonal_shift_gwh": 240,
      "life_years": 60,
      "wear_om_chf_mwh": 10,
      "summer_opportunity_cost_chf_mwh": [
        0,
        30,
        70
      ],
      "boundary": "One additional seasonal shift per year assumed; not extra natural generation. Price foregone summer sales plus capital/wear. No extrapolation of this reservoir's CHF/kWh to unbuilt national potential; water, concessions and completion date conditional."
    },
    "network_sensitivity": {
      "incremental_investment_chf_bn": [
        5,
        10,
        20,
        40
      ],
      "life_years": 40,
      "boundary": "Unpriced nodal difference represented as a sensitivity, not derived from BFE study totals. Existing replacements and demand-driven reinforcement common to portfolios must not all be assigned to PV."
    }
  },
  "winter_inputs": {
    "as_of": "2026-09-22",
    "winter_definition": "October–March energy total; the cited BFE report groups Jan–Mar and Oct–Dec in a calendar year. No chronological adequacy claim.",
    "published_pv_profiles": [
      {
        "id": "ZWB",
        "name": "Build as before",
        "capacity_gwp": 30.9,
        "annual_twh": 30,
        "winter_twh_rounded": 8.0,
        "winter_specific_kwh_per_kwp": 257.8,
        "djf_specific_kwh_per_kwp": 84.8,
        "status": "published_model_output",
        "source_id": "bfe-9825",
        "locator": "printed p21, Table 3; PDF p25"
      },
      {
        "id": "AWS",
        "name": "Winter incentives",
        "capacity_gwp": 30.6,
        "annual_twh": 30,
        "winter_twh_rounded": 9.1,
        "winter_specific_kwh_per_kwp": 296.9,
        "djf_specific_kwh_per_kwp": 104.3,
        "status": "published_model_output",
        "source_id": "bfe-9825",
        "locator": "printed p21, Table 3; PDF p25"
      },
      {
        "id": "MWP",
        "name": "Maximum winter share at fixed annual energy",
        "capacity_gwp": 38.7,
        "annual_twh": 30,
        "winter_twh_rounded": 10.6,
        "winter_specific_kwh_per_kwp": 273.1,
        "djf_specific_kwh_per_kwp": 107.1,
        "status": "published_theoretical_model_output",
        "source_id": "bfe-9825",
        "locator": "printed pp1 and 21, Table 3; PDF pp5 and 25",
        "limitation": "Authors describe the facade-heavy siting as economically and architecturally undesirable. Higher winter fraction does not mean higher winter yield per kWp."
      }
    ],
    "official_zero_basis_2050": {
      "capacity_gw": 37.5,
      "annual_pv_twh_before_aggregate_curtailment": 33.6,
      "winter_pv_fraction": 0.31,
      "winter_net_imports_twh_approx": 9,
      "status": "published_model_output",
      "source_refs": [
        {
          "source_id": "bfe-10323",
          "locator": "printed p55 Table 11 and p60 Table 12; PDF pp67 and 72"
        },
        {
          "source_id": "bfe-10641",
          "locator": "printed pp1, 9 and 13; PDF pp9, 17 and 21"
        }
      ],
      "limitation": "ZERO Basis, balanced annual electricity balance in 2050. Not an autonomous supply scenario. Table 12 reports curtailment separately across new renewables. Counterfactual scaling assumes unchanged usable marginal winter yield and unchanged other supply/demand."
    },
    "seasonal_example": {
      "winter_demand_twh_at_generation_bus": 55,
      "winter_hydro_twh_excluding_pumped_energy_recycling": 20,
      "status": "analyst_assumptions",
      "demand_rationale": "Rounded illustration informed by existing programme 2050 cases: approximately 54.6–56.3 TWh winter generation-bus demand for selected 2012, 2017 and 2022 weather cases. This is not a forecast or an all-weather bound.",
      "hydro_rationale": "Illustrative natural-water contribution, not a secured dispatch schedule, dry-year guarantee or owner contract. Do not add pumped generation without its charging demand and losses.",
      "additional_storage_losses_and_curtailment_twh": 0,
      "loss_boundary": "55 TWh includes model grid losses; setting additional storage losses/curtailment to zero makes this an optimistic energy screen, not a complete system balance.",
      "other_non_solar_supply_twh": 0,
      "other_supply_boundary": "Nuclear, wind, biomass and imports deliberately omitted from this PV-plus-hydro illustration. Positive contributions reduce PV requirements."
    },
    "observed_2025_context": {
      "year_end_capacity_gwp": 9.4986,
      "net_capacity_addition_gwp": 1.3285,
      "representative_grid_pv_specific_yield_kwh_per_kw": 900,
      "previous_year_specific_yield_kwh_per_kw": 820,
      "status": "official_statistics_based_on_sales_and_representative_production_sample",
      "source_id": "bfe-12679-existing",
      "locator": "printed pp6–7, installed capacity and section 2.3"
    },
    "limitations": [
      "Linear scaling of 30 TWh model portfolios to much larger capacity does not establish availability of equivalent sites, marginal yields, grid connection, build rate, cost or permits.",
      "Profiles use 2004–2018 weather and modelled orientations/snow. They are not measured outputs of an already installed 2050 fleet.",
      "December–February is much weaker than the full winter half-year. Seasonal surpluses do not establish monthly or hourly adequacy.",
      "An additional winter kWh can increase exports or curtailment instead of replacing imports. The official-baseline counterfactual is an energy-equivalence calculation, not a dispatch rerun.",
      "Hydro release must respect energy stocks, inflows, turbine capacity, cascades, concessions, maintenance, environmental duties and owner economics."
    ]
  },
  "battery": [
    {
      "usable_energy_gwh": 40,
      "power_gw": 10.0,
      "installed_chf_usable_kwh": 250,
      "capex_chf_bn": 10.0,
      "real_discount_rate": 0.05,
      "annual_capital_om_chf_bn": 1.3634228760924434,
      "cycles": 300,
      "annual_discharge_twh": 12.0,
      "annual_charging_twh": 14.117647058823529,
      "charging_price_chf_mwh": 30,
      "storage_service_chf_mwh": 113.61857300770362,
      "including_charging_chf_mwh": 148.91269065476246,
      "undiscounted_60year_replacement_capex_chf_bn": 40.0
    },
    {
      "usable_energy_gwh": 40,
      "power_gw": 10.0,
      "installed_chf_usable_kwh": 500,
      "capex_chf_bn": 20.0,
      "real_discount_rate": 0.05,
      "annual_capital_om_chf_bn": 2.726845752184887,
      "cycles": 300,
      "annual_discharge_twh": 12.0,
      "annual_charging_twh": 14.117647058823529,
      "charging_price_chf_mwh": 30,
      "storage_service_chf_mwh": 227.23714601540723,
      "including_charging_chf_mwh": 262.5312636624661,
      "undiscounted_60year_replacement_capex_chf_bn": 80.0
    }
  ],
  "hydro": {
    "real_discount_rate": 0.05,
    "shift_gwh": 240,
    "annual_capital_recovery_chf": 16218252.649863405,
    "capital_and_wear_chf_per_shifted_mwh": 77.57605270776419,
    "foregone_summer_sale_chf_mwh": 30,
    "winter_receipt_hurdle_chf_mwh": 107.57605270776419
  },
  "claim_ids": [
    "solar-winter-demand",
    "solar-winter-hydro",
    "solar-winter-pv-energy",
    "solar-winter-aws-capacity",
    "solar-winter-zwb-capacity",
    "solar-winter-capex-120-800",
    "solar-winter-capex-140-800",
    "solar-winter-capex-120-1428",
    "solar-winter-capex-140-1428",
    "solar-winter-capex-120-1911",
    "solar-winter-capex-140-1911",
    "solar-winter-increment-120",
    "solar-winter-ageing-120",
    "solar-winter-increment-140",
    "solar-winter-ageing-140",
    "solar-winter-price-roof-very-large-0",
    "solar-winter-price-roof-very-large-50",
    "solar-winter-price-roof-large-0",
    "solar-winter-price-roof-large-50",
    "solar-winter-price-roof-small-0",
    "solar-winter-price-roof-small-50",
    "solar-winter-price-alpine-reference-0",
    "solar-winter-price-alpine-reference-50",
    "solar-winter-price-madrisa-budget-0",
    "solar-winter-price-madrisa-budget-50",
    "solar-winter-price-new-nuclear-reference-0",
    "solar-winter-price-new-nuclear-reference-50",
    "solar-winter-price-wind-grenchen-budget-0",
    "solar-winter-price-wind-grenchen-budget-50",
    "solar-winter-summer-threshold",
    "solar-winter-nuclear-delay",
    "solar-winter-battery-capex-250",
    "solar-winter-battery-service-250",
    "solar-winter-battery-capex-500",
    "solar-winter-battery-service-500",
    "solar-winter-hydro-receipt",
    "solar-winter-madrisa-actual",
    "solar-winter-madrisa-budget",
    "solar-winter-grenchen-budget",
    "solar-winter-grenchen-output",
    "solar-winter-grenchen-date",
    "solar-winter-grimselsee-budget"
  ],
  "full_system_price": null,
  "source_mapping": {
    "winter-yields-existing": "winter-pv-yields-2021",
    "pv-potential-existing": "solar-potential-reference",
    "axpo-nuclear-existing": "axpo-nuclear-cost-reference",
    "madrisa-owner": "madrisa-project-2026",
    "madrisa-winter-actual": "madrisa-winter-2026",
    "grenchen-owner": "grenchen-plan-2026",
    "hydro-owner-existing": "grimselsee-owner-cost",
    "bfe-11205": "distribution-grid-study-2022",
    "battery-method-existing": "battery-atb-method-2025",
    "bfs-cpi-2025": "bfs-price-index-2025"
  }
}
