{"schemaVersion":"projection-lens-payload-v1","methodVersion":"projection-lens-v1","frameworkVersion":"projective-layers-v1","generatedAt":"2026-09-23T13:24:17.099Z","serving":"Published snapshot","status":"published","homepage":"https://solaranalytica.com/projection-lens","license":"Free to use with attribution to Solar Analytica (solaranalytica.com). The envelope is a conditional planning range under declared assumptions; it is not a probability, a forecast of returns or investment advice.","claimBoundary":["The envelope is a conditional planning range under the declared assumptions. It is not a probability, a confidence interval, a forecast of returns, or a recommendation.","The reference case is an analytical planning case, not a most-likely outcome. Every bound names the case that produced it, and nothing between the bounds is weighted.","The value is what one kilowatt of panels displaces at the pinned retail price. It is not what any household, business or investor will receive, and it names no counterfactual beyond that price.","A crossed trigger opens a review. It never rewrites a published edition, and a later edition supersedes an earlier one only by declaring which input moved."],"earthBaseline":{"edition":1,"methodVersion":"location-yield-baseline-offrepo-ceres-merged-2026-07","windows":{"merra2Temperature":"1994-2024","merra2Irradiance":"1994-2024","ceresIrradiance":"2005-07..2015-06","resourceVariability":"2001-2023","windClimatology":"2001-2020"},"seedPins":{"location_yield_baseline":[{"file":"20260709043549_create_location_yield_baseline.sql","vintage":"2026-07-09","sha256":"5c49267b12b657aeae67724a1a7d33f530f46e7052066a27fef2f255c57a22d2"}],"market_resource_variability":[{"file":"20260728081645_market_resource_variability_power_derived_iav.sql","vintage":"2026-07-28","sha256":"8cf03fd575fa3d8c274ec955c14d0e2186b145c7c248457b93021a6dd6fc040a"}],"soiling_baseline":[{"file":"20260709132258_create_soiling_baseline.sql","vintage":"2026-07-09","sha256":"991d3d5319ed59569be2a94451da7355bdc4767265237075b8a86197b0edefda"}],"spectral_baseline":[{"file":"20260710112631_create_seed_spectral_baseline_part10.sql","vintage":"2026-07-10","sha256":"8cd81c08f3c014ecc69ab3dd5285f8dbecb27afd6edf2169eaf97236cca3a52f"}],"albedo_bifacial_baseline":[{"file":"20260710103053_create_seed_albedo_bifacial_baseline.sql","vintage":"2026-07-10","sha256":"f47baa148406c58be7dd2defcb035bd72ef4a5a3d960a923531545b2d086eabf"}],"degradation_baseline":[{"file":"20260710114313_create_seed_degradation_baseline_part11.sql","vintage":"2026-07-10","sha256":"b59a589b9f48d3b0943555a5b4dafaf34fc3d5ee855b3cb421e1510eb45b94e2"}],"capex_baseline":[{"file":"20260710122847_create_seed_capex_baseline_and_rewire_value_surface.sql","vintage":"2026-07-10","sha256":"f769e37a9f112f5f02809b08823fe0b5d0300b84d5952776272f7f6f045cd40b"}],"subsidy_baseline":[{"file":"20260710124831_create_subsidy_baseline_and_net_economics.sql","vintage":"2026-07-10","sha256":"ffe4b94e0b1765b6e63706f0dabec6ba2735de13e4672a15043f261b439b29b0"}],"electricity_prices_annual":[{"file":"20260709062627_create_electricity_prices_annual_p1.sql","vintage":"2026-07-09","sha256":"4718313987d9fbc12228437cc503885c54ef4b46a5f52a6b57c52f25b383cfc3"},{"file":"20260709062918_electricity_prices_annual_p2.sql","vintage":"2026-07-09","sha256":"f9b61ac6d3f81de52e03590d63ffbc86c7740dd3ee81da70808e1aa84ac8b4f4"},{"file":"20260709063402_electricity_prices_annual_p3.sql","vintage":"2026-07-09","sha256":"ebffb77bc7f843637845b6c8af911104fa232ec9bbdbfb3fbe58c5429282db8b"},{"file":"20260709063552_electricity_prices_annual_p4.sql","vintage":"2026-07-09","sha256":"ccfd4761a423beb0a1ea6c8b08739d000f6fed25ecbac99d222e18f7d566bc65"}]}},"markets":[{"schemaVersion":"projection-lens-payload-v1","methodVersion":"projection-lens-v1","frameworkVersion":"projective-layers-v1","forecastFamily":"projection-lens","forecastKey":"projection-lens:de-lu-berlin","lensKey":"de-lu-berlin","marketCode":"EU-DE","system":"eu","zoneCode":"DE_LU","currency":"EUR","editionVersion":"2026-09-23.2","publishedOn":"2026-09-23","baselinePeriod":"2026","horizonPeriods":["2027","2031","2036","2051"],"envelope":{"technology":"topcon","metrics":[{"key":"specific-yield-kwh-kwp","title":"Specific yield","unit":"kWh per kWp per year","decimals":0,"direction":"higher_is_better","baseline":1043,"lower":985,"reference":1049,"upper":1090,"baselineCase":"unrated topcon yield from the CERES climatology, before soiling, spectral, bifacial and degradation factors","lowerCase":"P90 resource year (factor 0.9391) with no constraint exposure assumed","referenceCase":"bifacial topcon, 25-year average after degradation","upperCase":"bifacial topcon, year one before degradation"},{"key":"energy-value-usd-kwp-yr","title":"Energy value displaced","unit":"USD per kWp per year","decimals":0,"direction":"higher_is_better","baseline":455,"lower":325,"reference":457,"upper":489,"baselineCase":"unrated yield at the pinned 2025 retail price, before any real-world derate","lowerCase":"P90 resource year (factor 0.9391) with no constraint exposure assumed; retail price at its 2016 to 2025 minimum","referenceCase":"reference yield at the city 2025 retail price (0.4358 USD per kWh)","upperCase":"bifacial topcon, year one before degradation; retail price at its 2016 to 2025 maximum"},{"key":"lcoe-usd-kwh","title":"Levelised cost of energy","unit":"USD per kWh","decimals":4,"direction":"lower_is_better","baseline":0.127,"lower":0.0867,"reference":0.1029,"upper":0.1654,"baselineCase":"gross capex before subsidy at the 5% discount over the reference yield","lowerCase":"3% discount, module degradation basis, capex net of 19% subsidy","referenceCase":"5% discount, module degradation basis, capex net of 19% subsidy (baseline is gross capex)","upperCase":"8% discount, 2% per year degradation, capex net of subsidy"},{"key":"simple-payback-years","title":"Simple payback","unit":"years","decimals":1,"direction":"lower_is_better","baseline":3.4,"lower":2.6,"reference":2.6,"upper":3.9,"baselineCase":"gross capex before subsidy over the unrated-yield value","lowerCase":"capex net of subsidy over the upper year-one value","referenceCase":"capex net of subsidy over year-one value at the pinned price","upperCase":"capex net of subsidy over the lower value"}],"constraintExposure":{"regimeKind":"none","exposure":0},"priceCase":"retail price at its 2016 to 2025 minimum and maximum; wholesale prices are watched only to decide when a review opens and never set a published figure","market":"de-lu-berlin","yieldPath":[{"year":1,"yieldKwhKwp":1090},{"year":5,"yieldKwhKwp":1076},{"year":10,"yieldKwhKwp":1059},{"year":25,"yieldKwhKwp":1008}],"yieldPathCase":"module degradation basis: retention falls in a straight line from year one to the end of life, the same model the reference case averages; derived from the year-one yield and the life average, not observed and not forecast"},"triggers":[{"key":"grid-price-average-moved","label":"The average wholesale price over the window moved by more than a quarter against the pinned window","metric":"priceAvg","comparator":"abs_delta_pct_gt","threshold":25,"windowDays":90,"appliesTo":["nem","eu"],"cadence":"Daily","source":"eu_daily_operations:DE_LU"},{"key":"negative-price-intervals-doubled","label":"Negative-price intervals per day over the window are more than double the pinned window","metric":"negativePriceIntervalsPerDay","comparator":"abs_delta_pct_gt","threshold":100,"windowDays":90,"appliesTo":["nem","eu"],"cadence":"Daily","source":"eu_daily_operations:DE_LU"},{"key":"solar-share-moved","label":"Solar share of generation over the window moved by more than five points against the pinned window","metric":"solarSharePct","comparator":"abs_delta_gt","threshold":5,"windowDays":90,"appliesTo":["gb","us","eu"],"cadence":"Daily","source":"eu_daily_operations:DE_LU"}],"pins":{"earthBaseline":{"ref":"location_yield_baseline:Berlin, Germany","vintage":"2026-07-09","sha256":"c21ea77d211d0f6d4666568d93f6ae7288ef22eafec81558361fafe36bf394ea"},"resourceVariability":{"ref":"market_resource_variability:Berlin, Germany","vintage":"2026-07-28","sha256":"750c9109d34516d8bf33dd48863562074823c6f1921752d11ac9ed789ba46222"},"yieldStack":{"ref":"real_world_yield_stack:Berlin, Germany:topcon","vintage":"2026-07-09","sha256":"1b421f6af453d5fc10514931df301571c22124affae1a85affb65764184bed93"},"retailPrice":{"ref":"electricity_prices_annual:Berlin:2025:city","vintage":"2025","sha256":"2a666dff0833d350a131513c9d6bcf2832b59073316e36b1e938e6776dfce16e"},"retailPriceHistory":{"ref":"electricity_prices_annual:Berlin:history","vintage":"2016-2025","sha256":"3a1905e533debb09539c2aed5efbc136cfd825b1b45a03ec769d4d0129877f04"},"capex":{"ref":"capex_baseline:Germany","vintage":"2026-07-10","sha256":"daa5fc1a613be5d8eb7e7c0bc1e3c59ec3af79f4488754a4928b79d5a7bf56cc"},"subsidy":{"ref":"subsidy_baseline:Germany","vintage":"2026-07-10","sha256":"23b79b15537fd5d14f1de37b3069e65ff1a8d7a80adcccacabc90e7d33967343"},"degradation":{"ref":"degradation_baseline:Berlin, Germany","vintage":"2026-07-10","sha256":"6f8afe0b809a2c7e0735c208d1f3ffcf5a79a4a915cb9ebea9364c651f2bcba6"},"tariffEdition":{"ref":"tariff-edition","vintage":null,"sha256":"5ad38304b535c2987dbd24657c1a11b884984ff600d9f389deb0d4e634fee792","absent":"no versioned retail tariff register for this market; the annual retail price row stands in"},"gridWindow":{"ref":"grid-window:eu:DE_LU","vintage":null,"sha256":"3c67d1866439bad203be3bb1c0b2205fc4d40e85a5d5901b51eb9e12c68bb277","absent":"no published edition uses the grid's operating record; the live record is used only to test the review triggers"},"constraintRegime":{"ref":"export-constraint-regime:DE_LU","vintage":null,"sha256":"5ad38304b535c2987dbd24657c1a11b884984ff600d9f389deb0d4e634fee792","absent":"no reviewed export-constraint regime for this zone; no exposure is assumed"},"assumptionSet":{"ref":"assumption-set:projection-lens-reference-assumptions","vintage":"2026-09-22.1","sha256":"8f01dc1e29296fd4caf77d5f13418deec6fe5f29a7e346d5ddd5ae31a59643bf"}},"pinsSha256":"5080a11cdb345fa88898f49ca52b67fa972271719249ee91381d9992d644a8d9","editionPinsSha256":"351c007ab9774296bf69c188fa4588313a94633b32e5a4abe9fc71f910ee302e","vintageStamps":{"earthBaselineVerifiedOn":"2026-07-09","earthBaselineEdition":1,"earthBaselineMethod":"location-yield-baseline-offrepo-ceres-merged-2026-07","gridWindowStart":null,"gridWindowEnd":null,"gridWindowRows":0,"retailPriceYear":2025,"retailPriceMatch":"city","tariffEdition":null},"boundaries":["The envelope is a conditional planning range under the declared assumptions. It is not a probability, a confidence interval, a forecast of returns, or a recommendation.","The reference case is an analytical planning case, not a most-likely outcome. Every bound names the case that produced it, and nothing between the bounds is weighted.","The value is what one kilowatt of panels displaces at the pinned retail price. It is not what any household, business or investor will receive, and it names no counterfactual beyond that price.","A crossed trigger opens a review. It never rewrites a published edition, and a later edition supersedes an earlier one only by declaring which input moved."],"editionSha256":"cc5336b8ac629f841b2b13f75da70d1c74e85bf7966f91a427e969bec8c7f671","triggerState":[{"key":"grid-price-average-moved","label":"The average wholesale price over the window moved by more than a quarter against the pinned window","metric":"priceAvg","comparator":"abs_delta_pct_gt","threshold":25,"thresholdUpper":null,"windowDays":90,"cadence":"Daily","evaluatedOn":null,"evaluable":false,"observed":null,"pinned":null,"crossed":false,"windowStart":null,"windowEnd":null},{"key":"negative-price-intervals-doubled","label":"Negative-price intervals per day over the window are more than double the pinned window","metric":"negativePriceIntervalsPerDay","comparator":"abs_delta_pct_gt","threshold":100,"thresholdUpper":null,"windowDays":90,"cadence":"Daily","evaluatedOn":null,"evaluable":false,"observed":null,"pinned":null,"crossed":false,"windowStart":null,"windowEnd":null},{"key":"solar-share-moved","label":"Solar share of generation over the window moved by more than five points against the pinned window","metric":"solarSharePct","comparator":"abs_delta_gt","threshold":5,"thresholdUpper":null,"windowDays":90,"cadence":"Daily","evaluatedOn":null,"evaluable":false,"observed":null,"pinned":null,"crossed":false,"windowStart":null,"windowEnd":null}],"status":"current","supersedesEditionVersion":"2026-09-23.1"}]}