{
  "schema_version": "1.0",
  "generated_at": "2026-08-04T18:53:47.813764Z",
  "country_code": "UA",
  "country": "Ukraine",
  "reference_system": {
    "installedKwp": 10,
    "orientation": "S",
    "tiltDeg": 35,
    "systemLossPct": 14
  },
  "city_count": 8,
  "summary": {
    "tomorrow_average_kwh": 51.2625,
    "tomorrow_min_kwh": 48.8,
    "tomorrow_max_kwh": 53.7,
    "typical_annual_average_kwh": 11591.71,
    "typical_annual_min_kwh": 10836.46,
    "typical_annual_max_kwh": 12631.1
  },
  "cities": [
    {
      "city_id": "kyiv",
      "city": "Kyiv",
      "latitude": 50.4547,
      "longitude": 30.5238,
      "forecast": {
        "cityId": "kyiv",
        "name": "Kyiv",
        "lat": 50.4547,
        "lon": 30.5238,
        "timezone": "Europe/Kyiv",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 48.8,
        "lowKwh": 38.2,
        "highKwh": 55.9,
        "bestWindowStart": "2026-08-05T11:00:00+03:00",
        "bestWindowEnd": "2026-08-05T15:00:00+03:00",
        "confidence": "medium",
        "fetchedAt": "2026-08-04T18:53:47.216764Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 11140.39,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 11.63,
          "monthlyKwh": 360.4,
          "variabilityKwh": 59.07
        },
        {
          "month": 2,
          "averageDailyKwh": 19.8,
          "monthlyKwh": 554.48,
          "variabilityKwh": 116.02
        },
        {
          "month": 3,
          "averageDailyKwh": 30.57,
          "monthlyKwh": 947.73,
          "variabilityKwh": 191.77
        },
        {
          "month": 4,
          "averageDailyKwh": 39.59,
          "monthlyKwh": 1187.78,
          "variabilityKwh": 203.31
        },
        {
          "month": 5,
          "averageDailyKwh": 44.14,
          "monthlyKwh": 1368.46,
          "variabilityKwh": 147.25
        },
        {
          "month": 6,
          "averageDailyKwh": 46.95,
          "monthlyKwh": 1408.48,
          "variabilityKwh": 69.68
        },
        {
          "month": 7,
          "averageDailyKwh": 45.63,
          "monthlyKwh": 1414.45,
          "variabilityKwh": 81.04
        },
        {
          "month": 8,
          "averageDailyKwh": 43.89,
          "monthlyKwh": 1360.7,
          "variabilityKwh": 116.42
        },
        {
          "month": 9,
          "averageDailyKwh": 37.19,
          "monthlyKwh": 1115.81,
          "variabilityKwh": 199.61
        },
        {
          "month": 10,
          "averageDailyKwh": 25.57,
          "monthlyKwh": 792.63,
          "variabilityKwh": 177.64
        },
        {
          "month": 11,
          "averageDailyKwh": 11.74,
          "monthlyKwh": 352.18,
          "variabilityKwh": 77.58
        },
        {
          "month": 12,
          "averageDailyKwh": 8.94,
          "monthlyKwh": 277.27,
          "variabilityKwh": 72.07
        }
      ]
    },
    {
      "city_id": "lviv",
      "city": "Lviv",
      "latitude": 49.8383,
      "longitude": 24.0232,
      "forecast": {
        "cityId": "lviv",
        "name": "Lviv",
        "lat": 49.8383,
        "lon": 24.0232,
        "timezone": "Europe/Kyiv",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 53.7,
        "lowKwh": 47.2,
        "highKwh": 55.4,
        "bestWindowStart": "2026-08-05T12:00:00+03:00",
        "bestWindowEnd": "2026-08-05T16:00:00+03:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:47.297838Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 10836.46,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 12.54,
          "monthlyKwh": 388.77,
          "variabilityKwh": 91.64
        },
        {
          "month": 2,
          "averageDailyKwh": 20.06,
          "monthlyKwh": 561.59,
          "variabilityKwh": 109.46
        },
        {
          "month": 3,
          "averageDailyKwh": 29.98,
          "monthlyKwh": 929.3,
          "variabilityKwh": 146.81
        },
        {
          "month": 4,
          "averageDailyKwh": 38.14,
          "monthlyKwh": 1144.19,
          "variabilityKwh": 159
        },
        {
          "month": 5,
          "averageDailyKwh": 40.44,
          "monthlyKwh": 1253.65,
          "variabilityKwh": 165.07
        },
        {
          "month": 6,
          "averageDailyKwh": 42.47,
          "monthlyKwh": 1274.02,
          "variabilityKwh": 114.34
        },
        {
          "month": 7,
          "averageDailyKwh": 43.07,
          "monthlyKwh": 1335.12,
          "variabilityKwh": 87.89
        },
        {
          "month": 8,
          "averageDailyKwh": 42.28,
          "monthlyKwh": 1310.7,
          "variabilityKwh": 128.23
        },
        {
          "month": 9,
          "averageDailyKwh": 35.54,
          "monthlyKwh": 1066.22,
          "variabilityKwh": 175.05
        },
        {
          "month": 10,
          "averageDailyKwh": 26.66,
          "monthlyKwh": 826.56,
          "variabilityKwh": 166.53
        },
        {
          "month": 11,
          "averageDailyKwh": 14.25,
          "monthlyKwh": 427.54,
          "variabilityKwh": 72.1
        },
        {
          "month": 12,
          "averageDailyKwh": 10.28,
          "monthlyKwh": 318.79,
          "variabilityKwh": 113.11
        }
      ]
    },
    {
      "city_id": "odesa",
      "city": "Odesa",
      "latitude": 46.4857,
      "longitude": 30.7438,
      "forecast": {
        "cityId": "odesa",
        "name": "Odesa",
        "lat": 46.4857,
        "lon": 30.7438,
        "timezone": "Europe/Kyiv",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 53.5,
        "lowKwh": 45.3,
        "highKwh": 57.4,
        "bestWindowStart": "2026-08-05T11:00:00+03:00",
        "bestWindowEnd": "2026-08-05T15:00:00+03:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:47.270618Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 12631.1,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 16.2,
          "monthlyKwh": 502.06,
          "variabilityKwh": 106.76
        },
        {
          "month": 2,
          "averageDailyKwh": 23.05,
          "monthlyKwh": 645.42,
          "variabilityKwh": 137.52
        },
        {
          "month": 3,
          "averageDailyKwh": 34.53,
          "monthlyKwh": 1070.45,
          "variabilityKwh": 137.61
        },
        {
          "month": 4,
          "averageDailyKwh": 42.57,
          "monthlyKwh": 1277.04,
          "variabilityKwh": 172.7
        },
        {
          "month": 5,
          "averageDailyKwh": 47.05,
          "monthlyKwh": 1458.56,
          "variabilityKwh": 117.38
        },
        {
          "month": 6,
          "averageDailyKwh": 48.52,
          "monthlyKwh": 1455.52,
          "variabilityKwh": 98.78
        },
        {
          "month": 7,
          "averageDailyKwh": 50.18,
          "monthlyKwh": 1555.72,
          "variabilityKwh": 83.1
        },
        {
          "month": 8,
          "averageDailyKwh": 49.4,
          "monthlyKwh": 1531.3,
          "variabilityKwh": 94.21
        },
        {
          "month": 9,
          "averageDailyKwh": 42.37,
          "monthlyKwh": 1271.04,
          "variabilityKwh": 155.04
        },
        {
          "month": 10,
          "averageDailyKwh": 31.08,
          "monthlyKwh": 963.38,
          "variabilityKwh": 162.76
        },
        {
          "month": 11,
          "averageDailyKwh": 16.37,
          "monthlyKwh": 491.17,
          "variabilityKwh": 92.21
        },
        {
          "month": 12,
          "averageDailyKwh": 13.21,
          "monthlyKwh": 409.43,
          "variabilityKwh": 123.98
        }
      ]
    },
    {
      "city_id": "chernivtsi",
      "city": "Chernivtsi",
      "latitude": 48.2904,
      "longitude": 25.9324,
      "forecast": {
        "cityId": "chernivtsi",
        "name": "Chernivtsi",
        "lat": 48.2904,
        "lon": 25.9324,
        "timezone": "Europe/Kyiv",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 51.7,
        "lowKwh": 44.7,
        "highKwh": 56.4,
        "bestWindowStart": "2026-08-05T12:00:00+03:00",
        "bestWindowEnd": "2026-08-05T16:00:00+03:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:47.516021Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 11496.46,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 14.67,
          "monthlyKwh": 454.67,
          "variabilityKwh": 97.25
        },
        {
          "month": 2,
          "averageDailyKwh": 21.96,
          "monthlyKwh": 614.84,
          "variabilityKwh": 130.65
        },
        {
          "month": 3,
          "averageDailyKwh": 31.67,
          "monthlyKwh": 981.85,
          "variabilityKwh": 125.75
        },
        {
          "month": 4,
          "averageDailyKwh": 39.41,
          "monthlyKwh": 1182.4,
          "variabilityKwh": 167.64
        },
        {
          "month": 5,
          "averageDailyKwh": 42.59,
          "monthlyKwh": 1320.44,
          "variabilityKwh": 122.83
        },
        {
          "month": 6,
          "averageDailyKwh": 43.63,
          "monthlyKwh": 1308.87,
          "variabilityKwh": 120.59
        },
        {
          "month": 7,
          "averageDailyKwh": 45.43,
          "monthlyKwh": 1408.22,
          "variabilityKwh": 98.55
        },
        {
          "month": 8,
          "averageDailyKwh": 44.26,
          "monthlyKwh": 1372.2,
          "variabilityKwh": 150.82
        },
        {
          "month": 9,
          "averageDailyKwh": 38,
          "monthlyKwh": 1139.93,
          "variabilityKwh": 163.61
        },
        {
          "month": 10,
          "averageDailyKwh": 28.16,
          "monthlyKwh": 872.88,
          "variabilityKwh": 162.56
        },
        {
          "month": 11,
          "averageDailyKwh": 15.35,
          "monthlyKwh": 460.61,
          "variabilityKwh": 80.83
        },
        {
          "month": 12,
          "averageDailyKwh": 12.24,
          "monthlyKwh": 379.55,
          "variabilityKwh": 105.7
        }
      ]
    },
    {
      "city_id": "dnipro",
      "city": "Dnipro",
      "latitude": 48.4666,
      "longitude": 35.0407,
      "forecast": {
        "cityId": "dnipro",
        "name": "Dnipro",
        "lat": 48.4666,
        "lon": 35.0407,
        "timezone": "Europe/Kyiv",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 49.1,
        "lowKwh": 40,
        "highKwh": 56.8,
        "bestWindowStart": "2026-08-05T10:00:00+03:00",
        "bestWindowEnd": "2026-08-05T14:00:00+03:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:47.368461Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 11894.02,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 12.67,
          "monthlyKwh": 392.77,
          "variabilityKwh": 86.49
        },
        {
          "month": 2,
          "averageDailyKwh": 21.47,
          "monthlyKwh": 601.09,
          "variabilityKwh": 124.01
        },
        {
          "month": 3,
          "averageDailyKwh": 31.59,
          "monthlyKwh": 979.2,
          "variabilityKwh": 189.24
        },
        {
          "month": 4,
          "averageDailyKwh": 39.66,
          "monthlyKwh": 1189.66,
          "variabilityKwh": 187.56
        },
        {
          "month": 5,
          "averageDailyKwh": 45.29,
          "monthlyKwh": 1403.87,
          "variabilityKwh": 131.84
        },
        {
          "month": 6,
          "averageDailyKwh": 47.88,
          "monthlyKwh": 1436.35,
          "variabilityKwh": 98.65
        },
        {
          "month": 7,
          "averageDailyKwh": 48.42,
          "monthlyKwh": 1501.15,
          "variabilityKwh": 72.78
        },
        {
          "month": 8,
          "averageDailyKwh": 48.4,
          "monthlyKwh": 1500.38,
          "variabilityKwh": 99.64
        },
        {
          "month": 9,
          "averageDailyKwh": 40.74,
          "monthlyKwh": 1222.34,
          "variabilityKwh": 175.23
        },
        {
          "month": 10,
          "averageDailyKwh": 28.9,
          "monthlyKwh": 895.82,
          "variabilityKwh": 170.89
        },
        {
          "month": 11,
          "averageDailyKwh": 15.5,
          "monthlyKwh": 464.94,
          "variabilityKwh": 97.64
        },
        {
          "month": 12,
          "averageDailyKwh": 9.89,
          "monthlyKwh": 306.45,
          "variabilityKwh": 84.41
        }
      ]
    },
    {
      "city_id": "kharkiv",
      "city": "Kharkiv",
      "latitude": 49.9818,
      "longitude": 36.2548,
      "forecast": {
        "cityId": "kharkiv",
        "name": "Kharkiv",
        "lat": 49.9818,
        "lon": 36.2548,
        "timezone": "Europe/Kyiv",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 51.1,
        "lowKwh": 42,
        "highKwh": 58.5,
        "bestWindowStart": "2026-08-05T10:00:00+03:00",
        "bestWindowEnd": "2026-08-05T14:00:00+03:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:47.243807Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 11323.53,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 13.04,
          "monthlyKwh": 404.39,
          "variabilityKwh": 127.14
        },
        {
          "month": 2,
          "averageDailyKwh": 20.62,
          "monthlyKwh": 577.26,
          "variabilityKwh": 160.08
        },
        {
          "month": 3,
          "averageDailyKwh": 29.68,
          "monthlyKwh": 919.97,
          "variabilityKwh": 165.16
        },
        {
          "month": 4,
          "averageDailyKwh": 38.41,
          "monthlyKwh": 1152.33,
          "variabilityKwh": 154.64
        },
        {
          "month": 5,
          "averageDailyKwh": 44.29,
          "monthlyKwh": 1372.91,
          "variabilityKwh": 117.7
        },
        {
          "month": 6,
          "averageDailyKwh": 47.43,
          "monthlyKwh": 1422.89,
          "variabilityKwh": 90.28
        },
        {
          "month": 7,
          "averageDailyKwh": 47.01,
          "monthlyKwh": 1457.44,
          "variabilityKwh": 70.36
        },
        {
          "month": 8,
          "averageDailyKwh": 46.32,
          "monthlyKwh": 1435.82,
          "variabilityKwh": 112.78
        },
        {
          "month": 9,
          "averageDailyKwh": 38.4,
          "monthlyKwh": 1151.97,
          "variabilityKwh": 200.59
        },
        {
          "month": 10,
          "averageDailyKwh": 25.68,
          "monthlyKwh": 796.14,
          "variabilityKwh": 191.66
        },
        {
          "month": 11,
          "averageDailyKwh": 12.83,
          "monthlyKwh": 384.81,
          "variabilityKwh": 100.59
        },
        {
          "month": 12,
          "averageDailyKwh": 7.99,
          "monthlyKwh": 247.59,
          "variabilityKwh": 45.1
        }
      ]
    },
    {
      "city_id": "vinnytsia",
      "city": "Vinnytsia",
      "latitude": 49.2322,
      "longitude": 28.4687,
      "forecast": {
        "cityId": "vinnytsia",
        "name": "Vinnytsia",
        "lat": 49.2322,
        "lon": 28.4687,
        "timezone": "Europe/Kyiv",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 48.9,
        "lowKwh": 38.5,
        "highKwh": 57.1,
        "bestWindowStart": "2026-08-05T12:00:00+03:00",
        "bestWindowEnd": "2026-08-05T16:00:00+03:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:47.458614Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 11263.9,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 11.56,
          "monthlyKwh": 358.32,
          "variabilityKwh": 81.44
        },
        {
          "month": 2,
          "averageDailyKwh": 18.68,
          "monthlyKwh": 523.11,
          "variabilityKwh": 119.74
        },
        {
          "month": 3,
          "averageDailyKwh": 29.53,
          "monthlyKwh": 915.35,
          "variabilityKwh": 175.48
        },
        {
          "month": 4,
          "averageDailyKwh": 39.57,
          "monthlyKwh": 1187.02,
          "variabilityKwh": 190.85
        },
        {
          "month": 5,
          "averageDailyKwh": 43.97,
          "monthlyKwh": 1362.98,
          "variabilityKwh": 142.3
        },
        {
          "month": 6,
          "averageDailyKwh": 46.55,
          "monthlyKwh": 1396.41,
          "variabilityKwh": 74.29
        },
        {
          "month": 7,
          "averageDailyKwh": 46,
          "monthlyKwh": 1426.02,
          "variabilityKwh": 67.87
        },
        {
          "month": 8,
          "averageDailyKwh": 45.02,
          "monthlyKwh": 1395.72,
          "variabilityKwh": 122.33
        },
        {
          "month": 9,
          "averageDailyKwh": 37.82,
          "monthlyKwh": 1134.68,
          "variabilityKwh": 197.95
        },
        {
          "month": 10,
          "averageDailyKwh": 27.59,
          "monthlyKwh": 855.18,
          "variabilityKwh": 176.57
        },
        {
          "month": 11,
          "averageDailyKwh": 13.17,
          "monthlyKwh": 395.12,
          "variabilityKwh": 66.36
        },
        {
          "month": 12,
          "averageDailyKwh": 10.13,
          "monthlyKwh": 313.99,
          "variabilityKwh": 79.46
        }
      ]
    },
    {
      "city_id": "zaporizhzhia",
      "city": "Zaporizhzhia",
      "latitude": 47.1521,
      "longitude": 35.7425,
      "forecast": {
        "cityId": "zaporizhzhia",
        "name": "Zaporizhzhia",
        "lat": 47.1521,
        "lon": 35.7425,
        "timezone": "Europe/Kyiv",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 53.3,
        "lowKwh": 44.1,
        "highKwh": 58.2,
        "bestWindowStart": "2026-08-05T10:00:00+03:00",
        "bestWindowEnd": "2026-08-05T14:00:00+03:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:47.397462Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 12147.82,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 12.21,
          "monthlyKwh": 378.41,
          "variabilityKwh": 133.44
        },
        {
          "month": 2,
          "averageDailyKwh": 20.47,
          "monthlyKwh": 573.03,
          "variabilityKwh": 149.27
        },
        {
          "month": 3,
          "averageDailyKwh": 32.32,
          "monthlyKwh": 1002.06,
          "variabilityKwh": 183.25
        },
        {
          "month": 4,
          "averageDailyKwh": 40.28,
          "monthlyKwh": 1208.41,
          "variabilityKwh": 197.44
        },
        {
          "month": 5,
          "averageDailyKwh": 45.59,
          "monthlyKwh": 1413.17,
          "variabilityKwh": 114.5
        },
        {
          "month": 6,
          "averageDailyKwh": 47.46,
          "monthlyKwh": 1423.85,
          "variabilityKwh": 95.15
        },
        {
          "month": 7,
          "averageDailyKwh": 48.74,
          "monthlyKwh": 1510.86,
          "variabilityKwh": 72.97
        },
        {
          "month": 8,
          "averageDailyKwh": 48.89,
          "monthlyKwh": 1515.48,
          "variabilityKwh": 98.16
        },
        {
          "month": 9,
          "averageDailyKwh": 42.13,
          "monthlyKwh": 1263.87,
          "variabilityKwh": 141.92
        },
        {
          "month": 10,
          "averageDailyKwh": 31.19,
          "monthlyKwh": 967.04,
          "variabilityKwh": 159.48
        },
        {
          "month": 11,
          "averageDailyKwh": 18.67,
          "monthlyKwh": 560.08,
          "variabilityKwh": 74.7
        },
        {
          "month": 12,
          "averageDailyKwh": 10.7,
          "monthlyKwh": 331.56,
          "variabilityKwh": 86.67
        }
      ]
    }
  ],
  "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/"
}
