{
  "schema_version": "1.0",
  "generated_at": "2026-08-04T18:53:47.813764Z",
  "country_code": "RS",
  "country": "Serbia",
  "reference_system": {
    "installedKwp": 10,
    "orientation": "S",
    "tiltDeg": 35,
    "systemLossPct": 14
  },
  "city_count": 5,
  "summary": {
    "tomorrow_average_kwh": 53.720000000000006,
    "tomorrow_min_kwh": 52.2,
    "tomorrow_max_kwh": 55.4,
    "typical_annual_average_kwh": 12609.604000000001,
    "typical_annual_min_kwh": 12360.64,
    "typical_annual_max_kwh": 12805.99
  },
  "cities": [
    {
      "city_id": "belgrade",
      "city": "Belgrade",
      "latitude": 44.7866,
      "longitude": 20.4489,
      "forecast": {
        "cityId": "belgrade",
        "name": "Belgrade",
        "lat": 44.7866,
        "lon": 20.4489,
        "timezone": "Europe/Belgrade",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 53.9,
        "lowKwh": 47.4,
        "highKwh": 58.1,
        "bestWindowStart": "2026-08-05T11:00:00+02:00",
        "bestWindowEnd": "2026-08-05T15:00:00+02:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:46.135436Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 12564.75,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 18.15,
          "monthlyKwh": 562.76,
          "variabilityKwh": 128.31
        },
        {
          "month": 2,
          "averageDailyKwh": 24.88,
          "monthlyKwh": 696.69,
          "variabilityKwh": 164.22
        },
        {
          "month": 3,
          "averageDailyKwh": 34.8,
          "monthlyKwh": 1078.94,
          "variabilityKwh": 178.13
        },
        {
          "month": 4,
          "averageDailyKwh": 40.85,
          "monthlyKwh": 1225.61,
          "variabilityKwh": 170.8
        },
        {
          "month": 5,
          "averageDailyKwh": 42.78,
          "monthlyKwh": 1326.29,
          "variabilityKwh": 149.41
        },
        {
          "month": 6,
          "averageDailyKwh": 45.09,
          "monthlyKwh": 1352.64,
          "variabilityKwh": 137.17
        },
        {
          "month": 7,
          "averageDailyKwh": 47.98,
          "monthlyKwh": 1487.27,
          "variabilityKwh": 100.66
        },
        {
          "month": 8,
          "averageDailyKwh": 45.95,
          "monthlyKwh": 1424.42,
          "variabilityKwh": 128.15
        },
        {
          "month": 9,
          "averageDailyKwh": 39.3,
          "monthlyKwh": 1178.87,
          "variabilityKwh": 148.36
        },
        {
          "month": 10,
          "averageDailyKwh": 33.02,
          "monthlyKwh": 1023.47,
          "variabilityKwh": 156.03
        },
        {
          "month": 11,
          "averageDailyKwh": 23.47,
          "monthlyKwh": 704.1,
          "variabilityKwh": 114.42
        },
        {
          "month": 12,
          "averageDailyKwh": 16.25,
          "monthlyKwh": 503.68,
          "variabilityKwh": 128.07
        }
      ]
    },
    {
      "city_id": "nis",
      "city": "Nis",
      "latitude": 43.3209,
      "longitude": 21.8958,
      "forecast": {
        "cityId": "nis",
        "name": "Nis",
        "lat": 43.3209,
        "lon": 21.8958,
        "timezone": "Europe/Belgrade",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 52.2,
        "lowKwh": 44.1,
        "highKwh": 58.5,
        "bestWindowStart": "2026-08-05T10:00:00+02:00",
        "bestWindowEnd": "2026-08-05T14:00:00+02:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:46.167753Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 12805.99,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 18.97,
          "monthlyKwh": 588.12,
          "variabilityKwh": 142.52
        },
        {
          "month": 2,
          "averageDailyKwh": 26.94,
          "monthlyKwh": 754.33,
          "variabilityKwh": 185
        },
        {
          "month": 3,
          "averageDailyKwh": 34.87,
          "monthlyKwh": 1081.04,
          "variabilityKwh": 191.41
        },
        {
          "month": 4,
          "averageDailyKwh": 40.42,
          "monthlyKwh": 1212.74,
          "variabilityKwh": 156.1
        },
        {
          "month": 5,
          "averageDailyKwh": 41.74,
          "monthlyKwh": 1294,
          "variabilityKwh": 144.86
        },
        {
          "month": 6,
          "averageDailyKwh": 45.68,
          "monthlyKwh": 1370.36,
          "variabilityKwh": 126.1
        },
        {
          "month": 7,
          "averageDailyKwh": 49.13,
          "monthlyKwh": 1522.92,
          "variabilityKwh": 103.92
        },
        {
          "month": 8,
          "averageDailyKwh": 48.08,
          "monthlyKwh": 1490.47,
          "variabilityKwh": 111.32
        },
        {
          "month": 9,
          "averageDailyKwh": 40.01,
          "monthlyKwh": 1200.2,
          "variabilityKwh": 137.07
        },
        {
          "month": 10,
          "averageDailyKwh": 33.68,
          "monthlyKwh": 1044.02,
          "variabilityKwh": 192.37
        },
        {
          "month": 11,
          "averageDailyKwh": 23.92,
          "monthlyKwh": 717.52,
          "variabilityKwh": 118.61
        },
        {
          "month": 12,
          "averageDailyKwh": 17.11,
          "monthlyKwh": 530.27,
          "variabilityKwh": 124.13
        }
      ]
    },
    {
      "city_id": "novi-sad",
      "city": "Novi Sad",
      "latitude": 45.2671,
      "longitude": 19.8335,
      "forecast": {
        "cityId": "novi-sad",
        "name": "Novi Sad",
        "lat": 45.2671,
        "lon": 19.8335,
        "timezone": "Europe/Belgrade",
        "featured": true,
        "targetDate": "2026-08-05",
        "expectedKwh": 53.5,
        "lowKwh": 47.1,
        "highKwh": 57.3,
        "bestWindowStart": "2026-08-05T11:00:00+02:00",
        "bestWindowEnd": "2026-08-05T15:00:00+02:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:46.225932Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 12671.59,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 18.1,
          "monthlyKwh": 560.98,
          "variabilityKwh": 122.22
        },
        {
          "month": 2,
          "averageDailyKwh": 25.18,
          "monthlyKwh": 705.02,
          "variabilityKwh": 149.6
        },
        {
          "month": 3,
          "averageDailyKwh": 35.66,
          "monthlyKwh": 1105.36,
          "variabilityKwh": 182.82
        },
        {
          "month": 4,
          "averageDailyKwh": 41.35,
          "monthlyKwh": 1240.45,
          "variabilityKwh": 157.18
        },
        {
          "month": 5,
          "averageDailyKwh": 43.08,
          "monthlyKwh": 1335.51,
          "variabilityKwh": 129.11
        },
        {
          "month": 6,
          "averageDailyKwh": 45.45,
          "monthlyKwh": 1363.56,
          "variabilityKwh": 118.89
        },
        {
          "month": 7,
          "averageDailyKwh": 48.6,
          "monthlyKwh": 1506.51,
          "variabilityKwh": 92.03
        },
        {
          "month": 8,
          "averageDailyKwh": 46.66,
          "monthlyKwh": 1446.45,
          "variabilityKwh": 131.59
        },
        {
          "month": 9,
          "averageDailyKwh": 39.75,
          "monthlyKwh": 1192.64,
          "variabilityKwh": 148.42
        },
        {
          "month": 10,
          "averageDailyKwh": 33.18,
          "monthlyKwh": 1028.47,
          "variabilityKwh": 132.73
        },
        {
          "month": 11,
          "averageDailyKwh": 23.13,
          "monthlyKwh": 693.88,
          "variabilityKwh": 101.83
        },
        {
          "month": 12,
          "averageDailyKwh": 15.9,
          "monthlyKwh": 492.78,
          "variabilityKwh": 113.65
        }
      ]
    },
    {
      "city_id": "kragujevac",
      "city": "Kragujevac",
      "latitude": 44.0167,
      "longitude": 20.9167,
      "forecast": {
        "cityId": "kragujevac",
        "name": "Kragujevac",
        "lat": 44.0167,
        "lon": 20.9167,
        "timezone": "Europe/Belgrade",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 55.4,
        "lowKwh": 48.6,
        "highKwh": 59.3,
        "bestWindowStart": "2026-08-05T11:00:00+02:00",
        "bestWindowEnd": "2026-08-05T15:00:00+02:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:46.196769Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 12360.64,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 18.42,
          "monthlyKwh": 571.08,
          "variabilityKwh": 138.86
        },
        {
          "month": 2,
          "averageDailyKwh": 24.86,
          "monthlyKwh": 696.18,
          "variabilityKwh": 153.22
        },
        {
          "month": 3,
          "averageDailyKwh": 33.57,
          "monthlyKwh": 1040.52,
          "variabilityKwh": 171.8
        },
        {
          "month": 4,
          "averageDailyKwh": 39.22,
          "monthlyKwh": 1176.65,
          "variabilityKwh": 177.96
        },
        {
          "month": 5,
          "averageDailyKwh": 40.75,
          "monthlyKwh": 1263.37,
          "variabilityKwh": 164.09
        },
        {
          "month": 6,
          "averageDailyKwh": 43.55,
          "monthlyKwh": 1306.53,
          "variabilityKwh": 133.71
        },
        {
          "month": 7,
          "averageDailyKwh": 47.19,
          "monthlyKwh": 1463.04,
          "variabilityKwh": 115.51
        },
        {
          "month": 8,
          "averageDailyKwh": 45.9,
          "monthlyKwh": 1422.88,
          "variabilityKwh": 121.81
        },
        {
          "month": 9,
          "averageDailyKwh": 38.62,
          "monthlyKwh": 1158.66,
          "variabilityKwh": 151.91
        },
        {
          "month": 10,
          "averageDailyKwh": 32.32,
          "monthlyKwh": 1001.8,
          "variabilityKwh": 179.51
        },
        {
          "month": 11,
          "averageDailyKwh": 24.02,
          "monthlyKwh": 720.62,
          "variabilityKwh": 120.04
        },
        {
          "month": 12,
          "averageDailyKwh": 17.4,
          "monthlyKwh": 539.31,
          "variabilityKwh": 130.05
        }
      ]
    },
    {
      "city_id": "subotica",
      "city": "Subotica",
      "latitude": 46.1,
      "longitude": 19.6667,
      "forecast": {
        "cityId": "subotica",
        "name": "Subotica",
        "lat": 46.1,
        "lon": 19.6667,
        "timezone": "Europe/Belgrade",
        "featured": false,
        "targetDate": "2026-08-05",
        "expectedKwh": 53.6,
        "lowKwh": 47.2,
        "highKwh": 55.8,
        "bestWindowStart": "2026-08-05T11:00:00+02:00",
        "bestWindowEnd": "2026-08-05T15:00:00+02:00",
        "confidence": "high",
        "fetchedAt": "2026-08-04T18:53:46.253927Z",
        "freshness": "fresh",
        "stale": false
      },
      "typical_annual_kwh": 12645.05,
      "typical_monthly": [
        {
          "month": 1,
          "averageDailyKwh": 16.79,
          "monthlyKwh": 520.38,
          "variabilityKwh": 120.85
        },
        {
          "month": 2,
          "averageDailyKwh": 24.29,
          "monthlyKwh": 680.06,
          "variabilityKwh": 196.53
        },
        {
          "month": 3,
          "averageDailyKwh": 35.59,
          "monthlyKwh": 1103.44,
          "variabilityKwh": 209.02
        },
        {
          "month": 4,
          "averageDailyKwh": 43.24,
          "monthlyKwh": 1297.34,
          "variabilityKwh": 156.79
        },
        {
          "month": 5,
          "averageDailyKwh": 43.59,
          "monthlyKwh": 1351.25,
          "variabilityKwh": 131.68
        },
        {
          "month": 6,
          "averageDailyKwh": 46.21,
          "monthlyKwh": 1386.45,
          "variabilityKwh": 115.15
        },
        {
          "month": 7,
          "averageDailyKwh": 48.7,
          "monthlyKwh": 1509.82,
          "variabilityKwh": 93.51
        },
        {
          "month": 8,
          "averageDailyKwh": 46.77,
          "monthlyKwh": 1449.95,
          "variabilityKwh": 128.61
        },
        {
          "month": 9,
          "averageDailyKwh": 39.85,
          "monthlyKwh": 1195.39,
          "variabilityKwh": 145.73
        },
        {
          "month": 10,
          "averageDailyKwh": 33.06,
          "monthlyKwh": 1024.96,
          "variabilityKwh": 135.36
        },
        {
          "month": 11,
          "averageDailyKwh": 21.89,
          "monthlyKwh": 656.65,
          "variabilityKwh": 96.99
        },
        {
          "month": 12,
          "averageDailyKwh": 15.14,
          "monthlyKwh": 469.35,
          "variabilityKwh": 121.59
        }
      ]
    }
  ],
  "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/"
}
