{
  "slug": "solar-variable-years",
  "title": "The Variable Years: Why Output Swings, and What P90 Really Means",
  "url": "https://solaranalytica.com/solar-variable-years",
  "summary": "No year delivers the quoted yield. Twenty-one years of NASA and NOAA driver data show why: El Nino and La Nina redistribute cloud across hemispheres, pushing the ocean index to a record +2.75 in 2015-16. Interannual irradiance variability runs from 2.5% in deserts to 8% in the monsoon, which is exactly what the P90 figure on a proposal is protecting you from.",
  "license": "Free to use with attribution to Solar Analytica (solaranalytica.com). Underlying figures are named to their public sources below.",
  "csv": "https://solaranalytica.com/reports/solar-variable-years/data.csv",
  "datePublished": "2026-04-30",
  "lastReviewed": "2026-04-30",
  "sources": [
    {
      "title": "NOAA Climate Prediction Center: Oceanic Nino Index (ONI)",
      "url": "https://origin.cpc.ncep.noaa.gov/products/analysis_monitoring/ensostuff/ONI_v5.php"
    },
    {
      "title": "Australian Bureau of Meteorology: the Indian Ocean Dipole",
      "url": "http://www.bom.gov.au/climate/enso/indices/about.shtml"
    },
    {
      "title": "NOAA / BAS: the Southern Annular Mode (Marshall index)",
      "url": "https://legacy.bas.ac.uk/met/gjma/sam.html"
    },
    {
      "title": "NASA GISTEMP v4 global surface temperature",
      "url": "https://data.giss.nasa.gov/gistemp/"
    },
    {
      "title": "NASA / GPCP global precipitation record",
      "url": "https://gpcp.umd.edu/"
    },
    {
      "title": "Vignola et al. / SolarGIS: interannual variability of solar resource",
      "url": "https://solargis.com/resources/blog/best-practices/how-to-calculate-p90-or-other-pxx-pv-energy-yield-estimates"
    }
  ],
  "figures": [
    {
      "id": "peak-oni-per-year",
      "title": "The ENSO oscillation. Peak ONI per year, 2005-2025; 2015 the record",
      "unit": "peak Oceanic Nino Index per season",
      "caption": "The engine of the variable year: peak Oceanic Nino Index per season, 2005 to 2025 (years with a defined peak shown). Right of zero is El Nino, left is La Nina; the 2015-16 event is the record. NOAA CPC, from the Solar Analytica climate-signals record.",
      "series": [
        {
          "label": "2005",
          "value": -0.84
        },
        {
          "label": "2007",
          "value": -1.6
        },
        {
          "label": "2009",
          "value": 1.56
        },
        {
          "label": "2010",
          "value": -1.64
        },
        {
          "label": "2015",
          "value": 2.75
        },
        {
          "label": "2016",
          "value": 2.63
        },
        {
          "label": "2019",
          "value": 0.89
        },
        {
          "label": "2020",
          "value": -1.2
        },
        {
          "label": "2021",
          "value": -0.91
        },
        {
          "label": "2022",
          "value": -0.97
        },
        {
          "label": "2023",
          "value": 2.06
        },
        {
          "label": "2024",
          "value": 1.92
        },
        {
          "label": "2025",
          "value": -0.55
        }
      ]
    },
    {
      "id": "ghi-variability-by-climate",
      "title": "How wide the swing is. Interannual variability of annual GHI by climate type",
      "unit": "%",
      "caption": "How much one year departs from the long-run mean: interannual coefficient of variation of annual GHI by climate type, from the published solar-resource literature (SolarGIS, Vignola, Meteonorm). Representative bands, not our per-site figures, since the yield baseline is a climatology.",
      "series": [
        {
          "label": "Hyper-arid desert",
          "value": 2.5
        },
        {
          "label": "Subtropical arid",
          "value": 3
        },
        {
          "label": "Mediterranean",
          "value": 3.5
        },
        {
          "label": "Continental",
          "value": 4.5
        },
        {
          "label": "Maritime",
          "value": 5.5
        },
        {
          "label": "Monsoon / tropical",
          "value": 8
        }
      ]
    }
  ]
}