{
  "schema_version": "1.0",
  "generated_at": "2026-08-04T18:53:47.813764Z",
  "country_code": "NO",
  "country": "Norway",
  "reference_system": {
    "installedKwp": 10,
    "orientation": "S",
    "tiltDeg": 35,
    "systemLossPct": 14
  },
  "city_count": 7,
  "summary": {
    "tomorrow_average_kwh": 23.028571428571432,
    "tomorrow_min_kwh": 2.3,
    "tomorrow_max_kwh": 62.6,
    "typical_annual_average_kwh": 8333.99857142857,
    "typical_annual_min_kwh": 7187.61,
    "typical_annual_max_kwh": 10224
  },
  "cities": [
    {
      "city_id": "bergen",
      "city": "Bergen",
      "latitude": 60.3913,
      "longitude": 5.3221,
      "forecast": {
        "cityId": "bergen",
        "name": "Bergen",
        "lat": 60.3913,
        "lon": 5.3221,
        "timezone": "Europe/Oslo",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 6.4,
        "lowKwh": 3.6,
        "highKwh": 9.2,
        "bestWindowStart": "2026-08-05T12:00:00+02:00",
        "bestWindowEnd": "2026-08-05T16:00:00+02:00",
        "confidence": "medium",
        "fetchedAt": "2026-08-04T18:53:45.130812Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 7225.55,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 0.95,
          "monthlyKwh": 29.44,
          "variabilityKwh": 9.24
        },
        {
          "month": 2,
          "averageDailyKwh": 9.87,
          "monthlyKwh": 276.38,
          "variabilityKwh": 75.43
        },
        {
          "month": 3,
          "averageDailyKwh": 21.57,
          "monthlyKwh": 668.53,
          "variabilityKwh": 204.79
        },
        {
          "month": 4,
          "averageDailyKwh": 31.89,
          "monthlyKwh": 956.8,
          "variabilityKwh": 147.35
        },
        {
          "month": 5,
          "averageDailyKwh": 37.39,
          "monthlyKwh": 1159.18,
          "variabilityKwh": 176.31
        },
        {
          "month": 6,
          "averageDailyKwh": 38.78,
          "monthlyKwh": 1163.27,
          "variabilityKwh": 213.87
        },
        {
          "month": 7,
          "averageDailyKwh": 33.15,
          "monthlyKwh": 1027.75,
          "variabilityKwh": 170.11
        },
        {
          "month": 8,
          "averageDailyKwh": 28.23,
          "monthlyKwh": 875.17,
          "variabilityKwh": 148.96
        },
        {
          "month": 9,
          "averageDailyKwh": 19.7,
          "monthlyKwh": 590.94,
          "variabilityKwh": 147.68
        },
        {
          "month": 10,
          "averageDailyKwh": 12.34,
          "monthlyKwh": 382.55,
          "variabilityKwh": 106.02
        },
        {
          "month": 11,
          "averageDailyKwh": 2.81,
          "monthlyKwh": 84.23,
          "variabilityKwh": 22.3
        },
        {
          "month": 12,
          "averageDailyKwh": 0.36,
          "monthlyKwh": 11.31,
          "variabilityKwh": 3.02
        }
      ]
    },
    {
      "city_id": "oslo",
      "city": "Oslo",
      "latitude": 59.9139,
      "longitude": 10.7522,
      "forecast": {
        "cityId": "oslo",
        "name": "Oslo",
        "lat": 59.9139,
        "lon": 10.7522,
        "timezone": "Europe/Oslo",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 2.3,
        "lowKwh": 1.3,
        "highKwh": 3.2,
        "bestWindowStart": "2026-08-05T08:00:00+02:00",
        "bestWindowEnd": "2026-08-05T12:00:00+02:00",
        "confidence": "medium",
        "fetchedAt": "2026-08-04T18:53:45.101206Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 9477.73,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 5.18,
          "monthlyKwh": 160.57,
          "variabilityKwh": 49.02
        },
        {
          "month": 2,
          "averageDailyKwh": 14.86,
          "monthlyKwh": 416.14,
          "variabilityKwh": 104.55
        },
        {
          "month": 3,
          "averageDailyKwh": 29.89,
          "monthlyKwh": 926.61,
          "variabilityKwh": 151.8
        },
        {
          "month": 4,
          "averageDailyKwh": 39.11,
          "monthlyKwh": 1173.33,
          "variabilityKwh": 177.54
        },
        {
          "month": 5,
          "averageDailyKwh": 42.81,
          "monthlyKwh": 1327.12,
          "variabilityKwh": 169.98
        },
        {
          "month": 6,
          "averageDailyKwh": 45.48,
          "monthlyKwh": 1364.35,
          "variabilityKwh": 140.16
        },
        {
          "month": 7,
          "averageDailyKwh": 42.02,
          "monthlyKwh": 1302.75,
          "variabilityKwh": 173.59
        },
        {
          "month": 8,
          "averageDailyKwh": 36.07,
          "monthlyKwh": 1118.2,
          "variabilityKwh": 108.11
        },
        {
          "month": 9,
          "averageDailyKwh": 28.25,
          "monthlyKwh": 847.55,
          "variabilityKwh": 127.29
        },
        {
          "month": 10,
          "averageDailyKwh": 17.02,
          "monthlyKwh": 527.64,
          "variabilityKwh": 105.52
        },
        {
          "month": 11,
          "averageDailyKwh": 7.09,
          "monthlyKwh": 212.78,
          "variabilityKwh": 84.77
        },
        {
          "month": 12,
          "averageDailyKwh": 3.25,
          "monthlyKwh": 100.69,
          "variabilityKwh": 33.11
        }
      ]
    },
    {
      "city_id": "trondheim",
      "city": "Trondheim",
      "latitude": 63.4305,
      "longitude": 10.3951,
      "forecast": {
        "cityId": "trondheim",
        "name": "Trondheim",
        "lat": 63.4305,
        "lon": 10.3951,
        "timezone": "Europe/Oslo",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 36.5,
        "lowKwh": 26.4,
        "highKwh": 45.3,
        "bestWindowStart": "2026-08-05T14:00:00+02:00",
        "bestWindowEnd": "2026-08-05T18:00:00+02:00",
        "confidence": "medium",
        "fetchedAt": "2026-08-04T18:53:45.191509Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 7554.08,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 2.1,
          "monthlyKwh": 65.06,
          "variabilityKwh": 26.51
        },
        {
          "month": 2,
          "averageDailyKwh": 9.83,
          "monthlyKwh": 275.13,
          "variabilityKwh": 78.81
        },
        {
          "month": 3,
          "averageDailyKwh": 22.68,
          "monthlyKwh": 703.12,
          "variabilityKwh": 162.16
        },
        {
          "month": 4,
          "averageDailyKwh": 32.32,
          "monthlyKwh": 969.6,
          "variabilityKwh": 164.94
        },
        {
          "month": 5,
          "averageDailyKwh": 36.62,
          "monthlyKwh": 1135.21,
          "variabilityKwh": 131.05
        },
        {
          "month": 6,
          "averageDailyKwh": 37.65,
          "monthlyKwh": 1129.56,
          "variabilityKwh": 152.45
        },
        {
          "month": 7,
          "averageDailyKwh": 35.95,
          "monthlyKwh": 1114.47,
          "variabilityKwh": 151.05
        },
        {
          "month": 8,
          "averageDailyKwh": 30.72,
          "monthlyKwh": 952.25,
          "variabilityKwh": 104.01
        },
        {
          "month": 9,
          "averageDailyKwh": 21.93,
          "monthlyKwh": 657.76,
          "variabilityKwh": 122.44
        },
        {
          "month": 10,
          "averageDailyKwh": 13.16,
          "monthlyKwh": 408.03,
          "variabilityKwh": 118.27
        },
        {
          "month": 11,
          "averageDailyKwh": 4.12,
          "monthlyKwh": 123.72,
          "variabilityKwh": 38.34
        },
        {
          "month": 12,
          "averageDailyKwh": 0.65,
          "monthlyKwh": 20.17,
          "variabilityKwh": 7.37
        }
      ]
    },
    {
      "city_id": "bodo",
      "city": "Bodø",
      "latitude": 67.2827,
      "longitude": 14.3751,
      "forecast": {
        "cityId": "bodo",
        "name": "Bodø",
        "lat": 67.2827,
        "lon": 14.3751,
        "timezone": "Europe/Oslo",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 62.6,
        "lowKwh": 54.8,
        "highKwh": 66.1,
        "bestWindowStart": "2026-08-05T12:00:00+02:00",
        "bestWindowEnd": "2026-08-05T16:00:00+02:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:45.401574Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 8236.17,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 0.82,
          "monthlyKwh": 25.53,
          "variabilityKwh": 15.46
        },
        {
          "month": 2,
          "averageDailyKwh": 9.96,
          "monthlyKwh": 278.8,
          "variabilityKwh": 59.96
        },
        {
          "month": 3,
          "averageDailyKwh": 25.93,
          "monthlyKwh": 803.91,
          "variabilityKwh": 139.97
        },
        {
          "month": 4,
          "averageDailyKwh": 38.71,
          "monthlyKwh": 1161.3,
          "variabilityKwh": 153.68
        },
        {
          "month": 5,
          "averageDailyKwh": 44.42,
          "monthlyKwh": 1377.15,
          "variabilityKwh": 117.92
        },
        {
          "month": 6,
          "averageDailyKwh": 41.28,
          "monthlyKwh": 1238.45,
          "variabilityKwh": 162.77
        },
        {
          "month": 7,
          "averageDailyKwh": 38.67,
          "monthlyKwh": 1198.86,
          "variabilityKwh": 170.36
        },
        {
          "month": 8,
          "averageDailyKwh": 33.36,
          "monthlyKwh": 1034.1,
          "variabilityKwh": 116.7
        },
        {
          "month": 9,
          "averageDailyKwh": 22.43,
          "monthlyKwh": 672.98,
          "variabilityKwh": 137.54
        },
        {
          "month": 10,
          "averageDailyKwh": 12.22,
          "monthlyKwh": 378.93,
          "variabilityKwh": 101.61
        },
        {
          "month": 11,
          "averageDailyKwh": 2.21,
          "monthlyKwh": 66.18,
          "variabilityKwh": 28.22
        },
        {
          "month": 12,
          "averageDailyKwh": 0,
          "monthlyKwh": 0,
          "variabilityKwh": 0
        }
      ]
    },
    {
      "city_id": "kristiansand",
      "city": "Kristiansand",
      "latitude": 58.1467,
      "longitude": 7.9956,
      "forecast": {
        "cityId": "kristiansand",
        "name": "Kristiansand",
        "lat": 58.1467,
        "lon": 7.9956,
        "timezone": "Europe/Oslo",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 6.4,
        "lowKwh": 3.8,
        "highKwh": 8.7,
        "bestWindowStart": "2026-08-05T17:00:00+02:00",
        "bestWindowEnd": "2026-08-05T21:00:00+02:00",
        "confidence": "medium",
        "fetchedAt": "2026-08-04T18:53:45.372812Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 10224,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 7.12,
          "monthlyKwh": 220.83,
          "variabilityKwh": 62.83
        },
        {
          "month": 2,
          "averageDailyKwh": 14.11,
          "monthlyKwh": 395.03,
          "variabilityKwh": 104.04
        },
        {
          "month": 3,
          "averageDailyKwh": 28.94,
          "monthlyKwh": 897.15,
          "variabilityKwh": 117.87
        },
        {
          "month": 4,
          "averageDailyKwh": 42.34,
          "monthlyKwh": 1270.17,
          "variabilityKwh": 160.77
        },
        {
          "month": 5,
          "averageDailyKwh": 47.22,
          "monthlyKwh": 1463.83,
          "variabilityKwh": 167.2
        },
        {
          "month": 6,
          "averageDailyKwh": 49.56,
          "monthlyKwh": 1486.93,
          "variabilityKwh": 142.77
        },
        {
          "month": 7,
          "averageDailyKwh": 46.39,
          "monthlyKwh": 1438.15,
          "variabilityKwh": 144.62
        },
        {
          "month": 8,
          "averageDailyKwh": 40.49,
          "monthlyKwh": 1255.24,
          "variabilityKwh": 86.68
        },
        {
          "month": 9,
          "averageDailyKwh": 28.96,
          "monthlyKwh": 868.82,
          "variabilityKwh": 112.84
        },
        {
          "month": 10,
          "averageDailyKwh": 16.89,
          "monthlyKwh": 523.64,
          "variabilityKwh": 87.94
        },
        {
          "month": 11,
          "averageDailyKwh": 8.25,
          "monthlyKwh": 247.5,
          "variabilityKwh": 89.34
        },
        {
          "month": 12,
          "averageDailyKwh": 5.06,
          "monthlyKwh": 156.72,
          "variabilityKwh": 42.38
        }
      ]
    },
    {
      "city_id": "stavanger",
      "city": "Stavanger",
      "latitude": 58.9701,
      "longitude": 5.7333,
      "forecast": {
        "cityId": "stavanger",
        "name": "Stavanger",
        "lat": 58.9701,
        "lon": 5.7333,
        "timezone": "Europe/Oslo",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 7.9,
        "lowKwh": 4.6,
        "highKwh": 11.2,
        "bestWindowStart": "2026-08-05T09:00:00+02:00",
        "bestWindowEnd": "2026-08-05T13:00:00+02:00",
        "confidence": "medium",
        "fetchedAt": "2026-08-04T18:53:45.160432Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 8432.85,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 5.28,
          "monthlyKwh": 163.54,
          "variabilityKwh": 57.03
        },
        {
          "month": 2,
          "averageDailyKwh": 13.24,
          "monthlyKwh": 370.65,
          "variabilityKwh": 85.51
        },
        {
          "month": 3,
          "averageDailyKwh": 23.85,
          "monthlyKwh": 739.44,
          "variabilityKwh": 166.72
        },
        {
          "month": 4,
          "averageDailyKwh": 35.85,
          "monthlyKwh": 1075.64,
          "variabilityKwh": 153.82
        },
        {
          "month": 5,
          "averageDailyKwh": 40.33,
          "monthlyKwh": 1250.3,
          "variabilityKwh": 188.72
        },
        {
          "month": 6,
          "averageDailyKwh": 42.2,
          "monthlyKwh": 1265.87,
          "variabilityKwh": 190.77
        },
        {
          "month": 7,
          "averageDailyKwh": 35.68,
          "monthlyKwh": 1106.02,
          "variabilityKwh": 177.99
        },
        {
          "month": 8,
          "averageDailyKwh": 31.25,
          "monthlyKwh": 968.81,
          "variabilityKwh": 116.98
        },
        {
          "month": 9,
          "averageDailyKwh": 22.99,
          "monthlyKwh": 689.81,
          "variabilityKwh": 95.29
        },
        {
          "month": 10,
          "averageDailyKwh": 15.1,
          "monthlyKwh": 468.17,
          "variabilityKwh": 97.17
        },
        {
          "month": 11,
          "averageDailyKwh": 7.68,
          "monthlyKwh": 230.53,
          "variabilityKwh": 57.57
        },
        {
          "month": 12,
          "averageDailyKwh": 3.36,
          "monthlyKwh": 104.08,
          "variabilityKwh": 29.86
        }
      ]
    },
    {
      "city_id": "tromso",
      "city": "Tromsø",
      "latitude": 69.6489,
      "longitude": 18.9551,
      "forecast": {
        "cityId": "tromso",
        "name": "Tromsø",
        "lat": 69.6489,
        "lon": 18.9551,
        "timezone": "Europe/Oslo",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 39.1,
        "lowKwh": 27.3,
        "highKwh": 49.6,
        "bestWindowStart": "2026-08-05T15:00:00+02:00",
        "bestWindowEnd": "2026-08-05T19:00:00+02:00",
        "confidence": "medium",
        "fetchedAt": "2026-08-04T18:53:45.251604Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 7187.61,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 0.02,
          "monthlyKwh": 0.57,
          "variabilityKwh": 0.16
        },
        {
          "month": 2,
          "averageDailyKwh": 5.28,
          "monthlyKwh": 147.96,
          "variabilityKwh": 45.12
        },
        {
          "month": 3,
          "averageDailyKwh": 22.42,
          "monthlyKwh": 695.11,
          "variabilityKwh": 111.25
        },
        {
          "month": 4,
          "averageDailyKwh": 38.66,
          "monthlyKwh": 1159.7,
          "variabilityKwh": 147.21
        },
        {
          "month": 5,
          "averageDailyKwh": 42.56,
          "monthlyKwh": 1319.46,
          "variabilityKwh": 138.52
        },
        {
          "month": 6,
          "averageDailyKwh": 36.69,
          "monthlyKwh": 1100.74,
          "variabilityKwh": 176.7
        },
        {
          "month": 7,
          "averageDailyKwh": 34.31,
          "monthlyKwh": 1063.5,
          "variabilityKwh": 141.38
        },
        {
          "month": 8,
          "averageDailyKwh": 28.46,
          "monthlyKwh": 882.38,
          "variabilityKwh": 105.44
        },
        {
          "month": 9,
          "averageDailyKwh": 19.2,
          "monthlyKwh": 575.94,
          "variabilityKwh": 113.82
        },
        {
          "month": 10,
          "averageDailyKwh": 7.48,
          "monthlyKwh": 231.77,
          "variabilityKwh": 59.34
        },
        {
          "month": 11,
          "averageDailyKwh": 0.35,
          "monthlyKwh": 10.48,
          "variabilityKwh": 4.96
        },
        {
          "month": 12,
          "averageDailyKwh": 0,
          "monthlyKwh": 0,
          "variabilityKwh": 0
        }
      ]
    }
  ],
  "sources": {
    "tomorrow": {
      "weather": {
        "source_id": "OPEN_METEO",
        "name": "Open-Meteo weather forecast",
        "public_display_allowed": true,
        "requires_commercial_license": true,
        "terms_url": "https://open-meteo.com/en/terms",
        "pricing_url": "https://open-meteo.com/en/pricing"
      },
      "model": {
        "source_id": "GRIDPASSPORT_PV_PUBLIC_V1",
        "name": "GridPassport public PV forecast model",
        "description": "Weather-based physical PV estimate with public-safe inputs."
      },
      "attribution": {
        "text": "Weather forecast by Open-Meteo, PV estimate by GridPassport.",
        "transformation_notes": "GridPassport projects irradiance onto the configured PV array and applies public lead-magnet loss assumptions."
      }
    },
    "typical_year": {
      "name": "European Commission Joint Research Centre PVGIS 5.3",
      "url": "https://joint-research-centre.ec.europa.eu/photovoltaic-geographical-information-system-pvgis_en",
      "api": "https://re.jrc.ec.europa.eu/api/v5_3/PVcalc",
      "method": "Monthly average fixed-system output calculated from a multi-year solar radiation and climate series."
    }
  },
  "methodology_url": "https://gridpassport.com/solar-forecast/methodology/"
}
