{
 "schema": [
  "issue_date",
  "valid_date",
  "state",
  "lead",
  "p_day1",
  "p_lead",
  "p_1_3",
  "observed",
  "evidence",
  "source_urls",
  "status",
  "threshold",
  "alarm",
  "obs_rain_mm",
  "obs_rain_point_max_mm",
  "obs_qq2_max",
  "forecast_file",
  "checked_at"
 ],
 "rule_observed": "state-day flood = official/public report of inundation in the state on the MYT day (JKM InfoBencana 'Banjir' PPS open, JPBN/APM statement via Bernama/major press with URL, or a GDACS FL event covering the day with its point in the state); rain and GloFAS Q/Q2 are supporting evidence only",
 "rule_threshold": "06_kalibrasyon aksiyon_esikleri_tutulan: fit-year quantile row with fit_gun_payi = 0.02 (top 2 % of fit days), applied to P(1 g)",
 "statuses": [
  "pending",
  "unknown",
  "provisional",
  "verified"
 ],
 "note": "operational real-time forecast verification; NOT merged with the 2020-2026 hindcast (back-test) scores",
 "meta": {
  "updated": "2026-11-02T11:31+08:00",
  "last_issue": "2026-11-01",
  "threshold": 0.0171
 },
 "records": [
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Johor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.0,
   "obs_rain_point_max_mm": 12.0,
   "obs_qq2_max": 0.322,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Kedah",
   "lead": 1,
   "p_day1": 0.04,
   "p_lead": 0.04,
   "p_1_3": 0.1,
   "observed": 1,
   "evidence": "Portal Berita RTM (2026-10-27 11:24 MYT): Yan: 202 mangsa, 3 PPS acik (8:00 MYT) | The Star (2026-10-27 12:17 MYT): Yan: 202 evacuees, 3 relief centres | The Sun Malaysia (Bernama) (2026-10-27 14:07 MYT): 202 evacuees, Yan | Media Selangor (Bernama) (2026-10-27 04:03 (site time)): 202 evacuees | Media Batu (2026-10-27 12:01): 202 mangsa | JKM InfoBencana (guncel 2026-10-27T15:29:00+08:00): Banjir PPS 3 acik, Yan, mangsa 194, acilis 2026-10-25",
   "source_urls": [
    "https://berita.rtm.gov.my/nasional/senarai-berita-nasional/senarai-artikel/banjir-kedah-semakin-surut-202-penduduk-yan-masih-terjejas/",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://mediabatu.com/banjir-jumlah-mangsa-di-kedah-perlis-meningkat-pagi-ini/",
    "https://mediaselangor.com/en/2026/10/403422",
    "https://thesun.my/news/kedah-flood-evacuees-rise-perlis-numbers-climb/",
    "https://www.thestar.com.my/news/nation/2026/10/27/floods-90-areas-in-kedah-designated-as-hotspots"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 13.4,
   "obs_rain_point_max_mm": 24.9,
   "obs_qq2_max": 1.071,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-27T15:52+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Kelantan",
   "lead": 1,
   "p_day1": 0.002,
   "p_lead": 0.002,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 38.5,
   "obs_rain_point_max_mm": 109.4,
   "obs_qq2_max": 0.369,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Kuala Lumpur",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 23.1,
   "obs_rain_point_max_mm": 23.1,
   "obs_qq2_max": 0.36,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Labuan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.2,
   "obs_rain_point_max_mm": 0.2,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Melaka",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 8.1,
   "obs_rain_point_max_mm": 9.9,
   "obs_qq2_max": 0.244,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Negeri Sembilan",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 16.1,
   "obs_rain_point_max_mm": 22.0,
   "obs_qq2_max": 0.099,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Pahang",
   "lead": 1,
   "p_day1": 0.002,
   "p_lead": 0.002,
   "p_1_3": 0.004,
   "observed": 1,
   "evidence": "Harian Metro (Sekretariat JPBD Raub) (2026-10-27 (site: 'Oktober 27, 2026 @ 10:41am'; text: 'petang tadi')): Raub: banjir kilat Kg Melayu Sempalit + Jalan Tras (Sg Sempalit melimpah), PPS yok, 18:50 MYT surut | New Straits Times (2026-10-27 (site: 'October 27, 2026 @ 11:47am')): Raub flash floods (Sempalit village inundated, Jalan Tras)",
   "source_urls": [
    "https://www.hmetro.com.my/mutakhir/2026/10/1428673/hujan-lebat-cetus-banjir-kilat-di-dua-kawasan-di-raub",
    "https://www.nst.com.my/news/regional/2026/10/1565003/flash-floods-hit-two-areas-raub-after-heavy-rain"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 34.5,
   "obs_rain_point_max_mm": 89.3,
   "obs_qq2_max": 0.378,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Perak",
   "lead": 1,
   "p_day1": 0.012,
   "p_lead": 0.012,
   "p_1_3": 0.02,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 29.0,
   "obs_rain_point_max_mm": 50.0,
   "obs_qq2_max": 0.581,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Perlis",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.051,
   "observed": 1,
   "evidence": "The Sun Malaysia (Bernama) (2026-10-27 14:07 MYT): 16 flash-flood victims at Dewan Batu 5, stagnant floodwater (APM Perlis) | Media Selangor (Bernama) (2026-10-27 04:03 (site time)): 16 victims, transit centre | Media Batu (2026-10-27 12:01): 16 mangsa, banjir termenung",
   "source_urls": [
    "https://mediabatu.com/banjir-jumlah-mangsa-di-kedah-perlis-meningkat-pagi-ini/",
    "https://mediaselangor.com/en/2026/10/403422",
    "https://thesun.my/news/kedah-flood-evacuees-rise-perlis-numbers-climb/"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 15.6,
   "obs_rain_point_max_mm": 18.4,
   "obs_qq2_max": 0.603,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-27T15:52+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Pulau Pinang",
   "lead": 1,
   "p_day1": 0.026,
   "p_lead": 0.026,
   "p_1_3": 0.058,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 3.5,
   "obs_rain_point_max_mm": 3.5,
   "obs_qq2_max": 1.019,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Putrajaya",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 15.7,
   "obs_rain_point_max_mm": 15.7,
   "obs_qq2_max": 0.322,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Sabah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.7,
   "obs_rain_point_max_mm": 15.4,
   "obs_qq2_max": 0.465,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Sarawak",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 6.2,
   "obs_rain_point_max_mm": 12.6,
   "obs_qq2_max": 0.227,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Selangor",
   "lead": 1,
   "p_day1": 0.002,
   "p_lead": 0.002,
   "p_1_3": 0.008,
   "observed": 1,
   "evidence": "JKM InfoBencana (guncel 2026-10-27T15:29:00+08:00): Banjir PPS 1 acik, Kuala Langat, mangsa 20, acilis 2026-10-26",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 21.3,
   "obs_rain_point_max_mm": 36.1,
   "obs_qq2_max": 0.635,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-27T15:52+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-27",
   "state": "Terengganu",
   "lead": 1,
   "p_day1": 0.008,
   "p_lead": 0.008,
   "p_1_3": 0.02,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 39.2,
   "obs_rain_point_max_mm": 53.2,
   "obs_qq2_max": 0.575,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Johor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.7,
   "obs_rain_point_max_mm": 29.8,
   "obs_qq2_max": 0.278,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Kedah",
   "lead": 2,
   "p_day1": 0.04,
   "p_lead": 0.038,
   "p_1_3": 0.1,
   "observed": 1,
   "evidence": "JKM InfoBencana (banjir) snapshot via search index (Dikemaskini pada 28 Oct 2026, 09:19 PM (MYT)): JKM 21:19 MYT: Yan 3 PPS 128 mangsa + Pendang 1 PPS 28 mangsa | Bernama (JPBN Kedah, APM Perlis) (2026-10-28 10:59 MYT): 192 mangsa, 3 PPS Yan (08:00 MYT) | Portal Berita RTM (2026-10-28 10:10 MYT): 192 mangsa 3 PPS Yan | JKM InfoBencana (guncel 2026-10-30T10:21:00+08:00): Banjir PPS 1 acik, Pendang, mangsa 28, acilis 2026-10-28",
   "source_urls": [
    "https://berita.rtm.gov.my/nasional/senarai-berita-nasional/senarai-artikel/penduduk-terjejas-banjir-di-kedah-meningkat-192-orang/",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://infobencanajkmv2.jkm.gov.my/v3/landing/index.php?a=0&b=1",
    "https://web26.bernama.com/en/news.php?id=2626641"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 15.0,
   "obs_rain_point_max_mm": 24.4,
   "obs_qq2_max": 0.726,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Kelantan",
   "lead": 2,
   "p_day1": 0.002,
   "p_lead": 0.003,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 25.9,
   "obs_rain_point_max_mm": 41.6,
   "obs_qq2_max": 0.763,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Kuala Lumpur",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 1,
   "evidence": "Kosmo Online (2026-10-28 19:13 MYT): TTDI: jalan dinaiki air (banjir kilat, surut cepat; sumber media sosial via Kosmo/NST) | New Straits Times (2026-10-28 (site: 'October 28, 2026 @ 8:41am' [UTC stamp]; text: 'this evening')): Taman Tun Dr Ismail roads inundated (NST, social-media sourced)",
   "source_urls": [
    "https://www.kosmo.com.my/2026/10/28/video-banjir-kilat-landa-ttdi-damansara-utama/",
    "https://www.nst.com.my/news/nation/2026/10/1565719/heavy-rain-causes-fallen-trees-flash-floods-several-areas-watch"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.8,
   "obs_rain_point_max_mm": 12.8,
   "obs_qq2_max": 0.332,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Labuan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Melaka",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 16.8,
   "obs_rain_point_max_mm": 17.9,
   "obs_qq2_max": 0.225,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Negeri Sembilan",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 15.4,
   "obs_rain_point_max_mm": 22.0,
   "obs_qq2_max": 0.115,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Pahang",
   "lead": 2,
   "p_day1": 0.002,
   "p_lead": 0.002,
   "p_1_3": 0.004,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 17.0,
   "obs_rain_point_max_mm": 27.6,
   "obs_qq2_max": 0.433,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Perak",
   "lead": 2,
   "p_day1": 0.012,
   "p_lead": 0.008,
   "p_1_3": 0.02,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.6,
   "obs_rain_point_max_mm": 27.7,
   "obs_qq2_max": 0.92,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Perlis",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.051,
   "observed": 1,
   "evidence": "Bernama (JPBN Kedah, APM Perlis) (2026-10-28 10:59 MYT): 16 mangsa di pusat transit Dewan Batu 5; banjir termenung Kg Telok berterusan | Portal Berita RTM (2026-10-28 10:10 MYT): 16 mangsa transit, banjir termenung",
   "source_urls": [
    "https://berita.rtm.gov.my/nasional/senarai-berita-nasional/senarai-artikel/penduduk-terjejas-banjir-di-kedah-meningkat-192-orang/",
    "https://web26.bernama.com/en/news.php?id=2626641"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 29.3,
   "obs_rain_point_max_mm": 29.4,
   "obs_qq2_max": 0.679,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Pulau Pinang",
   "lead": 2,
   "p_day1": 0.026,
   "p_lead": 0.033,
   "p_1_3": 0.058,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 11.1,
   "obs_rain_point_max_mm": 11.1,
   "obs_qq2_max": 0.687,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Putrajaya",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 23.5,
   "obs_rain_point_max_mm": 23.5,
   "obs_qq2_max": 0.267,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Sabah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "Malay Mail (Daily Express) (2026-10-28 10:50 MYT): Beaufort/Tenom: Sg Padas melebihi paras bahaya, kampung + 2 sekolah dinaiki air; Membakut banjir (tiada angka PPS)",
   "source_urls": [
    "https://www.malaymail.com/news/malaysia/2026/10/28/sabahs-padas-river-breaches-danger-level-as-floods-hit-villages-and-schools-rescue-teams-on-standby/240898"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.8,
   "obs_rain_point_max_mm": 2.8,
   "obs_qq2_max": 0.478,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Sarawak",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.6,
   "obs_rain_point_max_mm": 11.8,
   "obs_qq2_max": 0.225,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Selangor",
   "lead": 2,
   "p_day1": 0.002,
   "p_lead": 0.005,
   "p_1_3": 0.008,
   "observed": 1,
   "evidence": "JKM InfoBencana (banjir) snapshot via search index (Dikemaskini pada 28 Oct 2026, 09:19 PM (MYT)): JKM 21:19 MYT: Kuala Langat 1 PPS 20 mangsa | The Star (Metro) (2026-10-28 19:20 MYT): banjir kilat Puchong Utama, Cyberjaya, Shah Alam i-City (Sg Rasah melimpah) | Kosmo Online (2026-10-28 19:13 MYT): Damansara Utama jalan dinaiki air | New Straits Times (2026-10-28 (site: 'October 28, 2026 @ 8:41am' [UTC stamp]; text: 'this evening')): Damansara Utama roads inundated",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/v3/landing/index.php?a=0&b=1",
    "https://www.kosmo.com.my/2026/10/28/video-banjir-kilat-landa-ttdi-damansara-utama/",
    "https://www.nst.com.my/news/nation/2026/10/1565719/heavy-rain-causes-fallen-trees-flash-floods-several-areas-watch",
    "https://www.thestar.com.my/metro/metro-news/2026/10/28/flash-flood-hits-area-near-i-city-shah-alam-again"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 19.4,
   "obs_rain_point_max_mm": 37.5,
   "obs_qq2_max": 0.619,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-28",
   "state": "Terengganu",
   "lead": 2,
   "p_day1": 0.008,
   "p_lead": 0.007,
   "p_1_3": 0.02,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 17.9,
   "obs_rain_point_max_mm": 35.1,
   "obs_qq2_max": 0.63,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Johor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 22.5,
   "obs_rain_point_max_mm": 30.8,
   "obs_qq2_max": 0.351,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Kedah",
   "lead": 3,
   "p_day1": 0.04,
   "p_lead": 0.026,
   "p_1_3": 0.1,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): PPS Bukit Raya Pendang aktif (152 mangsa pagi, 25 petang) | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): PPS Pendang aktif | JKM InfoBencana (guncel 2026-10-30T10:21:00+08:00): Banjir PPS 1 acik, Pendang, mangsa 28, acilis 2026-10-28",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 19.5,
   "obs_rain_point_max_mm": 29.2,
   "obs_qq2_max": 0.685,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Kelantan",
   "lead": 3,
   "p_day1": 0.002,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.6,
   "obs_rain_point_max_mm": 23.9,
   "obs_qq2_max": 0.77,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Kuala Lumpur",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.9,
   "obs_rain_point_max_mm": 4.9,
   "obs_qq2_max": 0.371,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Labuan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.1,
   "obs_rain_point_max_mm": 2.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Melaka",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 25.2,
   "obs_rain_point_max_mm": 32.1,
   "obs_qq2_max": 0.227,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Negeri Sembilan",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 1,
   "evidence": "New Straits Times (site stamp 'October 29, 2026 @ 9:10pm' (UTC-style stamp; text: centre opened 10.25pm 'last night', 4am 'today')): Kuala Pilah/Johol: air banjir naik, PPS SK Undang Johol dibuka 22:25 MYT (38 mangsa) | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): banjir Kuala Pilah malam 29 Okt, PPS SK Undang Johol + DOR Dangi | Lumi News (PKOB Negeri Sembilan) (2026-10-30 morning MYT (status 07:30 MYT)): banjir sejak malam 29 Okt, PPS dibuka 22:25 | JKM InfoBencana (guncel 2026-10-30T10:21:00+08:00): Banjir PPS 2 acik, Kuala Pilah, mangsa 81, acilis 2026-10-29",
   "source_urls": [
    "https://about.luminews.my/ms/news/4817671",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.nst.com.my/news/regional/2026/10/1566675/kuala-pilah-floods-displace-38-including-nine-senior-citizens"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.9,
   "obs_rain_point_max_mm": 32.1,
   "obs_qq2_max": 0.139,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Pahang",
   "lead": 3,
   "p_day1": 0.002,
   "p_lead": 0.0,
   "p_1_3": 0.004,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 21.0,
   "obs_rain_point_max_mm": 33.4,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Perak",
   "lead": 3,
   "p_day1": 0.012,
   "p_lead": 0.0,
   "p_1_3": 0.02,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): Kerian/Titi Serong: rumah dinaiki air, PPS SK Titi Serong dibuka 17:00 MYT | Media Selangor (Bernama) (2026-10-29 14:03 MYT (updated text incl. 6pm figures)): Titi Serong, Kerian banjir; PPS dibuka | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): hujan berterusan Kerian, 23 mangsa ke PPS SK Titi Serong (dibuka lewat petang 29 Okt) | JKM InfoBencana (guncel 2026-10-30T10:21:00+08:00): Banjir PPS 1 acik, Kerian, mangsa 24, acilis 2026-10-29",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://mediaselangor.com/en/2026/10/403916",
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 20.9,
   "obs_rain_point_max_mm": 38.2,
   "obs_qq2_max": 0.762,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Perlis",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.051,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): transit Dewan Batu 5 Kangar masih 9-13 mangsa banjir Kg Telok (bukan PPS rasmi)",
   "source_urls": [
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.5,
   "obs_rain_point_max_mm": 16.9,
   "obs_qq2_max": 0.659,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Pulau Pinang",
   "lead": 3,
   "p_day1": 0.026,
   "p_lead": 0.0,
   "p_1_3": 0.058,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): banjir kilat Taman Kota Permai/Bukit Mertajam/Bandar Cassia; warga emas diselamatkan | Media Selangor (Bernama) (2026-10-29 14:03 MYT (updated text incl. 6pm figures)): banjir kilat beberapa lokasi Seberang Perai Tengah | The Star (2026-10-29 14:23 MYT): Taman Kota Permai, Bukit Mertajam: banjir kilat ~07:30 MYT",
   "source_urls": [
    "https://mediaselangor.com/en/2026/10/403916",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian",
    "https://www.thestar.com.my/news/nation/2026/10/29/senior-citizen-rescued-after-being-trapped-in-flooded-bukit-mertajam-home"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 21.8,
   "obs_rain_point_max_mm": 21.8,
   "obs_qq2_max": 0.484,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Putrajaya",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.2,
   "obs_rain_point_max_mm": 4.2,
   "obs_qq2_max": 0.343,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Sabah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.0,
   "obs_rain_point_max_mm": 5.9,
   "obs_qq2_max": 0.467,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Sarawak",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.4,
   "obs_rain_point_max_mm": 7.1,
   "obs_qq2_max": 0.226,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Selangor",
   "lead": 3,
   "p_day1": 0.002,
   "p_lead": 0.001,
   "p_1_3": 0.008,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.4,
   "obs_rain_point_max_mm": 20.4,
   "obs_qq2_max": 0.635,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-26",
   "valid_date": "2026-10-29",
   "state": "Terengganu",
   "lead": 3,
   "p_day1": 0.008,
   "p_lead": 0.005,
   "p_1_3": 0.02,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 28.0,
   "obs_rain_point_max_mm": 47.9,
   "obs_qq2_max": 0.541,
   "forecast_file": "alert_2026-10-26.csv",
   "checked_at": "2026-10-30T11:37+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Johor",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.7,
   "obs_rain_point_max_mm": 29.8,
   "obs_qq2_max": 0.278,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Kedah",
   "lead": 1,
   "p_day1": 0.035,
   "p_lead": 0.035,
   "p_1_3": 0.067,
   "observed": 1,
   "evidence": "JKM InfoBencana (banjir) snapshot via search index (Dikemaskini pada 28 Oct 2026, 09:19 PM (MYT)): JKM 21:19 MYT: Yan 3 PPS 128 mangsa + Pendang 1 PPS 28 mangsa | Bernama (JPBN Kedah, APM Perlis) (2026-10-28 10:59 MYT): 192 mangsa, 3 PPS Yan (08:00 MYT) | Portal Berita RTM (2026-10-28 10:10 MYT): 192 mangsa 3 PPS Yan",
   "source_urls": [
    "https://berita.rtm.gov.my/nasional/senarai-berita-nasional/senarai-artikel/penduduk-terjejas-banjir-di-kedah-meningkat-192-orang/",
    "https://infobencanajkmv2.jkm.gov.my/v3/landing/index.php?a=0&b=1",
    "https://web26.bernama.com/en/news.php?id=2626641"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 15.0,
   "obs_rain_point_max_mm": 24.4,
   "obs_qq2_max": 0.726,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Kelantan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 25.9,
   "obs_rain_point_max_mm": 41.6,
   "obs_qq2_max": 0.763,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Kuala Lumpur",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "Kosmo Online (2026-10-28 19:13 MYT): TTDI: jalan dinaiki air (banjir kilat, surut cepat; sumber media sosial via Kosmo/NST) | New Straits Times (2026-10-28 (site: 'October 28, 2026 @ 8:41am' [UTC stamp]; text: 'this evening')): Taman Tun Dr Ismail roads inundated (NST, social-media sourced)",
   "source_urls": [
    "https://www.kosmo.com.my/2026/10/28/video-banjir-kilat-landa-ttdi-damansara-utama/",
    "https://www.nst.com.my/news/nation/2026/10/1565719/heavy-rain-causes-fallen-trees-flash-floods-several-areas-watch"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.8,
   "obs_rain_point_max_mm": 12.8,
   "obs_qq2_max": 0.332,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Labuan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Melaka",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 16.8,
   "obs_rain_point_max_mm": 17.9,
   "obs_qq2_max": 0.225,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Negeri Sembilan",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 15.4,
   "obs_rain_point_max_mm": 22.0,
   "obs_qq2_max": 0.115,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Pahang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.003,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 17.0,
   "obs_rain_point_max_mm": 27.6,
   "obs_qq2_max": 0.433,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Perak",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.6,
   "obs_rain_point_max_mm": 27.7,
   "obs_qq2_max": 0.92,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Perlis",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.051,
   "observed": 1,
   "evidence": "Bernama (JPBN Kedah, APM Perlis) (2026-10-28 10:59 MYT): 16 mangsa di pusat transit Dewan Batu 5; banjir termenung Kg Telok berterusan | Portal Berita RTM (2026-10-28 10:10 MYT): 16 mangsa transit, banjir termenung",
   "source_urls": [
    "https://berita.rtm.gov.my/nasional/senarai-berita-nasional/senarai-artikel/penduduk-terjejas-banjir-di-kedah-meningkat-192-orang/",
    "https://web26.bernama.com/en/news.php?id=2626641"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 29.3,
   "obs_rain_point_max_mm": 29.4,
   "obs_qq2_max": 0.679,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Pulau Pinang",
   "lead": 1,
   "p_day1": 0.029,
   "p_lead": 0.029,
   "p_1_3": 0.029,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 11.1,
   "obs_rain_point_max_mm": 11.1,
   "obs_qq2_max": 0.687,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Putrajaya",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 23.5,
   "obs_rain_point_max_mm": 23.5,
   "obs_qq2_max": 0.267,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Sabah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "Malay Mail (Daily Express) (2026-10-28 10:50 MYT): Beaufort/Tenom: Sg Padas melebihi paras bahaya, kampung + 2 sekolah dinaiki air; Membakut banjir (tiada angka PPS)",
   "source_urls": [
    "https://www.malaymail.com/news/malaysia/2026/10/28/sabahs-padas-river-breaches-danger-level-as-floods-hit-villages-and-schools-rescue-teams-on-standby/240898"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.8,
   "obs_rain_point_max_mm": 2.8,
   "obs_qq2_max": 0.478,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Sarawak",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.6,
   "obs_rain_point_max_mm": 11.8,
   "obs_qq2_max": 0.225,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Selangor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": 1,
   "evidence": "JKM InfoBencana (banjir) snapshot via search index (Dikemaskini pada 28 Oct 2026, 09:19 PM (MYT)): JKM 21:19 MYT: Kuala Langat 1 PPS 20 mangsa | The Star (Metro) (2026-10-28 19:20 MYT): banjir kilat Puchong Utama, Cyberjaya, Shah Alam i-City (Sg Rasah melimpah) | Kosmo Online (2026-10-28 19:13 MYT): Damansara Utama jalan dinaiki air | New Straits Times (2026-10-28 (site: 'October 28, 2026 @ 8:41am' [UTC stamp]; text: 'this evening')): Damansara Utama roads inundated",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/v3/landing/index.php?a=0&b=1",
    "https://www.kosmo.com.my/2026/10/28/video-banjir-kilat-landa-ttdi-damansara-utama/",
    "https://www.nst.com.my/news/nation/2026/10/1565719/heavy-rain-causes-fallen-trees-flash-floods-several-areas-watch",
    "https://www.thestar.com.my/metro/metro-news/2026/10/28/flash-flood-hits-area-near-i-city-shah-alam-again"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 19.4,
   "obs_rain_point_max_mm": 37.5,
   "obs_qq2_max": 0.619,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-28",
   "state": "Terengganu",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 17.9,
   "obs_rain_point_max_mm": 35.1,
   "obs_qq2_max": 0.63,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Johor",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.002,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 22.5,
   "obs_rain_point_max_mm": 30.8,
   "obs_qq2_max": 0.351,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Kedah",
   "lead": 2,
   "p_day1": 0.035,
   "p_lead": 0.033,
   "p_1_3": 0.067,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): PPS Bukit Raya Pendang aktif (152 mangsa pagi, 25 petang) | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): PPS Pendang aktif",
   "source_urls": [
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 19.5,
   "obs_rain_point_max_mm": 29.2,
   "obs_qq2_max": 0.685,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Kelantan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.005,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.6,
   "obs_rain_point_max_mm": 23.9,
   "obs_qq2_max": 0.77,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Kuala Lumpur",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.9,
   "obs_rain_point_max_mm": 4.9,
   "obs_qq2_max": 0.371,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Labuan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.1,
   "obs_rain_point_max_mm": 2.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Melaka",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 25.2,
   "obs_rain_point_max_mm": 32.1,
   "obs_qq2_max": 0.227,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Negeri Sembilan",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 1,
   "evidence": "New Straits Times (site stamp 'October 29, 2026 @ 9:10pm' (UTC-style stamp; text: centre opened 10.25pm 'last night', 4am 'today')): Kuala Pilah/Johol: air banjir naik, PPS SK Undang Johol dibuka 22:25 MYT (38 mangsa) | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): banjir Kuala Pilah malam 29 Okt, PPS SK Undang Johol + DOR Dangi | Lumi News (PKOB Negeri Sembilan) (2026-10-30 morning MYT (status 07:30 MYT)): banjir sejak malam 29 Okt, PPS dibuka 22:25 | JKM InfoBencana (guncel 2026-10-31T10:14:00+08:00): Banjir PPS 2 acik, Kuala Pilah, mangsa 87, acilis 2026-10-29",
   "source_urls": [
    "https://about.luminews.my/ms/news/4817671",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.nst.com.my/news/regional/2026/10/1566675/kuala-pilah-floods-displace-38-including-nine-senior-citizens"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.9,
   "obs_rain_point_max_mm": 32.1,
   "obs_qq2_max": 0.139,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Pahang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.002,
   "p_1_3": 0.003,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 21.0,
   "obs_rain_point_max_mm": 33.4,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Perak",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.008,
   "p_1_3": 0.009,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): Kerian/Titi Serong: rumah dinaiki air, PPS SK Titi Serong dibuka 17:00 MYT | Media Selangor (Bernama) (2026-10-29 14:03 MYT (updated text incl. 6pm figures)): Titi Serong, Kerian banjir; PPS dibuka | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): hujan berterusan Kerian, 23 mangsa ke PPS SK Titi Serong (dibuka lewat petang 29 Okt) | JKM InfoBencana (guncel 2026-10-31T10:14:00+08:00): Banjir PPS 1 acik, Kerian, mangsa 35, acilis 2026-10-29",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://mediaselangor.com/en/2026/10/403916",
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 20.9,
   "obs_rain_point_max_mm": 38.2,
   "obs_qq2_max": 0.762,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Perlis",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.051,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): transit Dewan Batu 5 Kangar masih 9-13 mangsa banjir Kg Telok (bukan PPS rasmi)",
   "source_urls": [
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.5,
   "obs_rain_point_max_mm": 16.9,
   "obs_qq2_max": 0.659,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Pulau Pinang",
   "lead": 2,
   "p_day1": 0.029,
   "p_lead": 0.0,
   "p_1_3": 0.029,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): banjir kilat Taman Kota Permai/Bukit Mertajam/Bandar Cassia; warga emas diselamatkan | Media Selangor (Bernama) (2026-10-29 14:03 MYT (updated text incl. 6pm figures)): banjir kilat beberapa lokasi Seberang Perai Tengah | The Star (2026-10-29 14:23 MYT): Taman Kota Permai, Bukit Mertajam: banjir kilat ~07:30 MYT",
   "source_urls": [
    "https://mediaselangor.com/en/2026/10/403916",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian",
    "https://www.thestar.com.my/news/nation/2026/10/29/senior-citizen-rescued-after-being-trapped-in-flooded-bukit-mertajam-home"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 21.8,
   "obs_rain_point_max_mm": 21.8,
   "obs_qq2_max": 0.484,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Putrajaya",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.2,
   "obs_rain_point_max_mm": 4.2,
   "obs_qq2_max": 0.343,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Sabah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.0,
   "obs_rain_point_max_mm": 5.9,
   "obs_qq2_max": 0.467,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Sarawak",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.4,
   "obs_rain_point_max_mm": 7.1,
   "obs_qq2_max": 0.226,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Selangor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 1,
   "evidence": "JKM InfoBencana (ulusal tablo, gunluk hattin 29 Eki canli cekimi) (2026-10-29 11:17 MYT (tablo guncelleme zamani)): JKM InfoBencana 29 Eki 11:17 MYT: Kuala Langat PPS 1 acik, 20 mangsa (acilis 2026-10-26)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.4,
   "obs_rain_point_max_mm": 20.4,
   "obs_qq2_max": 0.635,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-29",
   "state": "Terengganu",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.008,
   "p_1_3": 0.009,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 28.0,
   "obs_rain_point_max_mm": 47.9,
   "obs_qq2_max": 0.541,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Johor",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.002,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 6.0,
   "obs_rain_point_max_mm": 15.1,
   "obs_qq2_max": 0.38,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Kedah",
   "lead": 3,
   "p_day1": 0.035,
   "p_lead": 0.0,
   "p_1_3": 0.067,
   "observed": 1,
   "evidence": "Bernama (2026-10-30 13:21 MYT): PPS Bukit Raya: 25 mangsa pukul 8 pagi",
   "source_urls": [
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.4,
   "obs_rain_point_max_mm": 4.9,
   "obs_qq2_max": 0.729,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Kelantan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.0,
   "obs_rain_point_max_mm": 6.6,
   "obs_qq2_max": 0.722,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Kuala Lumpur",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.442,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Labuan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.2,
   "obs_rain_point_max_mm": 7.2,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Melaka",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.9,
   "obs_rain_point_max_mm": 11.2,
   "obs_qq2_max": 0.372,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Negeri Sembilan",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): PPS SK Undang Johol + DOR Dangi aktif sepanjang 30/10 (71-87 mangsa) | Bernama (2026-10-30 13:21 MYT): Kuala Pilah: 2 PPS dibuka awal pagi 30/10, 71 mangsa | Kosmo (2026-10-30 08:45 MYT): PPS DOR Dangi dibuka 01:00 MYT 30/10 akibat banjir | JKM InfoBencana (guncel 2026-10-31T10:14:00+08:00): Banjir PPS 2 acik, Kuala Pilah, mangsa 87, acilis 2026-10-29",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah",
    "https://www.kosmo.com.my/2026/10/30/banjir-di-kuala-pilah-61-mangsa-dipindahkan-ke-dua-pps/"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 8.7,
   "obs_rain_point_max_mm": 15.7,
   "obs_qq2_max": 0.115,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Pahang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.003,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.8,
   "obs_rain_point_max_mm": 12.6,
   "obs_qq2_max": 0.401,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Perak",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): PPS SK Titi Serong Kerian aktif 30/10 (23-35 mangsa) | Bernama (2026-10-30 13:21 MYT): Titi Serong: 23 mangsa di PPS | JKM InfoBencana (guncel 2026-10-31T10:14:00+08:00): Banjir PPS 1 acik, Kerian, mangsa 35, acilis 2026-10-29",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 10.0,
   "obs_qq2_max": 1.019,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Perlis",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.051,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.6,
   "obs_qq2_max": 0.56,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Pulau Pinang",
   "lead": 3,
   "p_day1": 0.029,
   "p_lead": 0.0,
   "p_1_3": 0.029,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.0,
   "obs_rain_point_max_mm": 2.0,
   "obs_qq2_max": 0.494,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Putrajaya",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.6,
   "obs_rain_point_max_mm": 3.6,
   "obs_qq2_max": 0.398,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Sabah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): JKM: PPS Banjir Sook dibuka 30/10/2026 (0 mangsa pada 31/10 10:14) — bukti lemah, tiada laporan berita ditemui | JKM InfoBencana (guncel 2026-10-31T10:14:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.4,
   "obs_rain_point_max_mm": 12.8,
   "obs_qq2_max": 0.46,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Sarawak",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.8,
   "obs_rain_point_max_mm": 26.6,
   "obs_qq2_max": 0.283,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Selangor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.4,
   "obs_rain_point_max_mm": 20.8,
   "obs_qq2_max": 0.604,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-27",
   "valid_date": "2026-10-30",
   "state": "Terengganu",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 6.8,
   "obs_rain_point_max_mm": 13.5,
   "obs_qq2_max": 0.421,
   "forecast_file": "alert_2026-10-27.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Johor",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 22.5,
   "obs_rain_point_max_mm": 30.8,
   "obs_qq2_max": 0.351,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Kedah",
   "lead": 1,
   "p_day1": 0.024,
   "p_lead": 0.024,
   "p_1_3": 0.024,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): PPS Bukit Raya Pendang aktif (152 mangsa pagi, 25 petang) | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): PPS Pendang aktif",
   "source_urls": [
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 19.5,
   "obs_rain_point_max_mm": 29.2,
   "obs_qq2_max": 0.685,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Kelantan",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.034,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.6,
   "obs_rain_point_max_mm": 23.9,
   "obs_qq2_max": 0.77,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Kuala Lumpur",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.9,
   "obs_rain_point_max_mm": 4.9,
   "obs_qq2_max": 0.371,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Labuan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.1,
   "obs_rain_point_max_mm": 2.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Melaka",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 25.2,
   "obs_rain_point_max_mm": 32.1,
   "obs_qq2_max": 0.227,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Negeri Sembilan",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "New Straits Times (site stamp 'October 29, 2026 @ 9:10pm' (UTC-style stamp; text: centre opened 10.25pm 'last night', 4am 'today')): Kuala Pilah/Johol: air banjir naik, PPS SK Undang Johol dibuka 22:25 MYT (38 mangsa) | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): banjir Kuala Pilah malam 29 Okt, PPS SK Undang Johol + DOR Dangi | Lumi News (PKOB Negeri Sembilan) (2026-10-30 morning MYT (status 07:30 MYT)): banjir sejak malam 29 Okt, PPS dibuka 22:25",
   "source_urls": [
    "https://about.luminews.my/ms/news/4817671",
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.nst.com.my/news/regional/2026/10/1566675/kuala-pilah-floods-displace-38-including-nine-senior-citizens"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.9,
   "obs_rain_point_max_mm": 32.1,
   "obs_qq2_max": 0.139,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Pahang",
   "lead": 1,
   "p_day1": 0.006,
   "p_lead": 0.006,
   "p_1_3": 0.007,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 21.0,
   "obs_rain_point_max_mm": 33.4,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Perak",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.042,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): Kerian/Titi Serong: rumah dinaiki air, PPS SK Titi Serong dibuka 17:00 MYT | Media Selangor (Bernama) (2026-10-29 14:03 MYT (updated text incl. 6pm figures)): Titi Serong, Kerian banjir; PPS dibuka | Newswav (Media Selangor/Bernama; data InfoBencana JKM) (2026-10-30 10:47 MYT): hujan berterusan Kerian, 23 mangsa ke PPS SK Titi Serong (dibuka lewat petang 29 Okt) | JKM InfoBencana (guncel 2026-11-01T11:23:00+08:00): Banjir PPS 1 acik, Kerian, mangsa 0, acilis 2026-10-29",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://mediaselangor.com/en/2026/10/403916",
    "https://newswav.com/article/banjir-119-mangsa-masih-berlindung-di-pps-di-tiga-negeri-A2610_tjzbwO",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 20.9,
   "obs_rain_point_max_mm": 38.2,
   "obs_qq2_max": 0.762,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Perlis",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.018,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): transit Dewan Batu 5 Kangar masih 9-13 mangsa banjir Kg Telok (bukan PPS rasmi)",
   "source_urls": [
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 14.5,
   "obs_rain_point_max_mm": 16.9,
   "obs_qq2_max": 0.659,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Pulau Pinang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "The Star (Bernama) (2026-10-29 20:20 MYT): banjir kilat Taman Kota Permai/Bukit Mertajam/Bandar Cassia; warga emas diselamatkan | Media Selangor (Bernama) (2026-10-29 14:03 MYT (updated text incl. 6pm figures)): banjir kilat beberapa lokasi Seberang Perai Tengah | The Star (2026-10-29 14:23 MYT): Taman Kota Permai, Bukit Mertajam: banjir kilat ~07:30 MYT",
   "source_urls": [
    "https://mediaselangor.com/en/2026/10/403916",
    "https://www.thestar.com.my/news/nation/2026/10/29/floods-perak-latest-state-to-be-hit-one-relief-centre-opened-in-kerian",
    "https://www.thestar.com.my/news/nation/2026/10/29/senior-citizen-rescued-after-being-trapped-in-flooded-bukit-mertajam-home"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 21.8,
   "obs_rain_point_max_mm": 21.8,
   "obs_qq2_max": 0.484,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Putrajaya",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.2,
   "obs_rain_point_max_mm": 4.2,
   "obs_qq2_max": 0.343,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Sabah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.0,
   "obs_rain_point_max_mm": 5.9,
   "obs_qq2_max": 0.467,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Sarawak",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.4,
   "obs_rain_point_max_mm": 7.1,
   "obs_qq2_max": 0.226,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Selangor",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.003,
   "observed": 1,
   "evidence": "JKM InfoBencana (ulusal tablo, gunluk hattin 29 Eki canli cekimi) (2026-10-29 11:17 MYT (tablo guncelleme zamani)): JKM InfoBencana 29 Eki 11:17 MYT: Kuala Langat PPS 1 acik, 20 mangsa (acilis 2026-10-26)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.4,
   "obs_rain_point_max_mm": 20.4,
   "obs_qq2_max": 0.635,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-29",
   "state": "Terengganu",
   "lead": 1,
   "p_day1": 0.012,
   "p_lead": 0.012,
   "p_1_3": 0.012,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 28.0,
   "obs_rain_point_max_mm": 47.9,
   "obs_qq2_max": 0.541,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Johor",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 6.0,
   "obs_rain_point_max_mm": 15.1,
   "obs_qq2_max": 0.38,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Kedah",
   "lead": 2,
   "p_day1": 0.024,
   "p_lead": 0.0,
   "p_1_3": 0.024,
   "observed": 1,
   "evidence": "Bernama (2026-10-30 13:21 MYT): PPS Bukit Raya: 25 mangsa pukul 8 pagi",
   "source_urls": [
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.4,
   "obs_rain_point_max_mm": 4.9,
   "obs_qq2_max": 0.729,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Kelantan",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.034,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.0,
   "obs_rain_point_max_mm": 6.6,
   "obs_qq2_max": 0.722,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Kuala Lumpur",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.442,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Labuan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.2,
   "obs_rain_point_max_mm": 7.2,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Melaka",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.9,
   "obs_rain_point_max_mm": 11.2,
   "obs_qq2_max": 0.372,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Negeri Sembilan",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): PPS SK Undang Johol + DOR Dangi aktif sepanjang 30/10 (71-87 mangsa) | Bernama (2026-10-30 13:21 MYT): Kuala Pilah: 2 PPS dibuka awal pagi 30/10, 71 mangsa | Kosmo (2026-10-30 08:45 MYT): PPS DOR Dangi dibuka 01:00 MYT 30/10 akibat banjir",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah",
    "https://www.kosmo.com.my/2026/10/30/banjir-di-kuala-pilah-61-mangsa-dipindahkan-ke-dua-pps/"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 8.7,
   "obs_rain_point_max_mm": 15.7,
   "obs_qq2_max": 0.115,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Pahang",
   "lead": 2,
   "p_day1": 0.006,
   "p_lead": 0.0,
   "p_1_3": 0.007,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.8,
   "obs_rain_point_max_mm": 12.6,
   "obs_qq2_max": 0.401,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Perak",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.042,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): PPS SK Titi Serong Kerian aktif 30/10 (23-35 mangsa) | Bernama (2026-10-30 13:21 MYT): Titi Serong: 23 mangsa di PPS | JKM InfoBencana (guncel 2026-11-01T11:23:00+08:00): Banjir PPS 1 acik, Kerian, mangsa 0, acilis 2026-10-29",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 10.0,
   "obs_qq2_max": 1.019,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Perlis",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.0,
   "p_1_3": 0.018,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.6,
   "obs_qq2_max": 0.56,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Pulau Pinang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.0,
   "obs_rain_point_max_mm": 2.0,
   "obs_qq2_max": 0.494,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Putrajaya",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.6,
   "obs_rain_point_max_mm": 3.6,
   "obs_qq2_max": 0.398,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Sabah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): JKM: PPS Banjir Sook dibuka 30/10/2026 (0 mangsa pada 31/10 10:14) — bukti lemah, tiada laporan berita ditemui | JKM InfoBencana (guncel 2026-11-01T11:23:00+08:00): Banjir PPS 1 acik, Sipitang, mangsa 32, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T11:23:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.4,
   "obs_rain_point_max_mm": 12.8,
   "obs_qq2_max": 0.46,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Sarawak",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.8,
   "obs_rain_point_max_mm": 26.6,
   "obs_qq2_max": 0.283,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Selangor",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.003,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.4,
   "obs_rain_point_max_mm": 20.8,
   "obs_qq2_max": 0.604,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-30",
   "state": "Terengganu",
   "lead": 2,
   "p_day1": 0.012,
   "p_lead": 0.0,
   "p_1_3": 0.012,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 6.8,
   "obs_rain_point_max_mm": 13.5,
   "obs_qq2_max": 0.421,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-10-31T11:24+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Johor",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.5,
   "obs_rain_point_max_mm": 8.0,
   "obs_qq2_max": 0.406,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Kedah",
   "lead": 3,
   "p_day1": 0.024,
   "p_lead": 0.0,
   "p_1_3": 0.024,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-10-31 18:35 MYT): PPS Bukit Raya Pendang masih menempatkan 9 mangsa banjir sehingga ditutup 10 pagi 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): PPS Pendang ditutup 10 pagi 31/10 (9 mangsa sebelum itu) | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 9 mangsa pagi 31/10",
   "source_urls": [
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.5,
   "obs_rain_point_max_mm": 8.2,
   "obs_qq2_max": 0.505,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Kelantan",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.0,
   "p_1_3": 0.034,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.2,
   "obs_rain_point_max_mm": 10.8,
   "obs_qq2_max": 0.609,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Kuala Lumpur",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.302,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Labuan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 48.1,
   "obs_rain_point_max_mm": 48.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Melaka",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.8,
   "obs_rain_point_max_mm": 1.8,
   "obs_qq2_max": 0.358,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Negeri Sembilan",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-10-31 18:35 MYT): 2 PPS Kuala Pilah (87 mangsa) aktif sehingga ditutup 4 petang 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): 2 PPS Kuala Pilah ditutup 4 petang 31/10 | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 87 mangsa pagi 31/10",
   "source_urls": [
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.1,
   "obs_rain_point_max_mm": 2.5,
   "obs_qq2_max": 0.23,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Pahang",
   "lead": 3,
   "p_day1": 0.006,
   "p_lead": 0.0,
   "p_1_3": 0.007,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.9,
   "obs_rain_point_max_mm": 13.2,
   "obs_qq2_max": 0.422,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Perak",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.009,
   "p_1_3": 0.042,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-10-31 21:30 MYT): PPS SK Titi Serong Kerian aktif sepanjang 31/10 (34 pagi -> 25 petang -> 20 pada 21:30 MYT) | Malay Mail (Bernama) (2026-10-31 18:35 MYT): SK Titi Serong Kerian 34 -> 25 mangsa pada 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): 25 mangsa SK Titi Serong | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 34 mangsa pagi 31/10 | JKM InfoBencana (guncel 2026-11-01T11:23:00+08:00): Banjir PPS 1 acik, Kerian, mangsa 0, acilis 2026-10-29",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.7,
   "obs_rain_point_max_mm": 8.1,
   "obs_qq2_max": 0.857,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Perlis",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.0,
   "p_1_3": 0.018,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.3,
   "obs_rain_point_max_mm": 6.7,
   "obs_qq2_max": 0.44,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Pulau Pinang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.1,
   "obs_rain_point_max_mm": 5.1,
   "obs_qq2_max": 0.41,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Putrajaya",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.1,
   "obs_rain_point_max_mm": 3.1,
   "obs_qq2_max": 0.261,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Sabah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-10-31 21:30 MYT): JKM: PPS Banjir Sook masih dibuka 31/10 (0 mangsa) — bukti lemah, tiada laporan berita ditemui | JKM InfoBencana (guncel 2026-11-01T11:23:00+08:00): Banjir PPS 1 acik, Sipitang, mangsa 32, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T11:23:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 20.2,
   "obs_rain_point_max_mm": 33.0,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Sarawak",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 23.5,
   "obs_rain_point_max_mm": 52.4,
   "obs_qq2_max": 0.333,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Selangor",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.003,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.4,
   "obs_rain_point_max_mm": 5.0,
   "obs_qq2_max": 0.557,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-28",
   "valid_date": "2026-10-31",
   "state": "Terengganu",
   "lead": 3,
   "p_day1": 0.012,
   "p_lead": 0.0,
   "p_1_3": 0.012,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.6,
   "obs_rain_point_max_mm": 9.1,
   "obs_qq2_max": 0.432,
   "forecast_file": "alert_2026-10-28.csv",
   "checked_at": "2026-11-01T11:26+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Johor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 6.0,
   "obs_rain_point_max_mm": 15.1,
   "obs_qq2_max": 0.38,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Kedah",
   "lead": 1,
   "p_day1": 0.01,
   "p_lead": 0.01,
   "p_1_3": 0.022,
   "observed": 1,
   "evidence": "Bernama (2026-10-30 13:21 MYT): PPS Bukit Raya: 25 mangsa pukul 8 pagi",
   "source_urls": [
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.4,
   "obs_rain_point_max_mm": 4.9,
   "obs_qq2_max": 0.729,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Kelantan",
   "lead": 1,
   "p_day1": 0.01,
   "p_lead": 0.01,
   "p_1_3": 0.01,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.0,
   "obs_rain_point_max_mm": 6.6,
   "obs_qq2_max": 0.722,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Kuala Lumpur",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.442,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Labuan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.2,
   "obs_rain_point_max_mm": 7.2,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Melaka",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.9,
   "obs_rain_point_max_mm": 11.2,
   "obs_qq2_max": 0.372,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Negeri Sembilan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): PPS SK Undang Johol + DOR Dangi aktif sepanjang 30/10 (71-87 mangsa) | Bernama (2026-10-30 13:21 MYT): Kuala Pilah: 2 PPS dibuka awal pagi 30/10, 71 mangsa | Kosmo (2026-10-30 08:45 MYT): PPS DOR Dangi dibuka 01:00 MYT 30/10 akibat banjir",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah",
    "https://www.kosmo.com.my/2026/10/30/banjir-di-kuala-pilah-61-mangsa-dipindahkan-ke-dua-pps/"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 8.7,
   "obs_rain_point_max_mm": 15.7,
   "obs_qq2_max": 0.115,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Pahang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 7.8,
   "obs_rain_point_max_mm": 12.6,
   "obs_qq2_max": 0.401,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Perak",
   "lead": 1,
   "p_day1": 0.008,
   "p_lead": 0.008,
   "p_1_3": 0.017,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): PPS SK Titi Serong Kerian aktif 30/10 (23-35 mangsa) | Bernama (2026-10-30 13:21 MYT): Titi Serong: 23 mangsa di PPS",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://prn.bernama.com/n9/news/2627682/floods-119-evacuees-remain-at-pps-in-negeri-sembilan-perak-and-kedah"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 10.0,
   "obs_qq2_max": 1.019,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Perlis",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.6,
   "obs_qq2_max": 0.56,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Pulau Pinang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.0,
   "obs_rain_point_max_mm": 2.0,
   "obs_qq2_max": 0.494,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Putrajaya",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.6,
   "obs_rain_point_max_mm": 3.6,
   "obs_qq2_max": 0.398,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Sabah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch) (snapshot 2026-10-31 10:14 MYT): JKM: PPS Banjir Sook dibuka 30/10/2026 (0 mangsa pada 31/10 10:14) — bukti lemah, tiada laporan berita ditemui | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 2 acik, Sipitang, mangsa 137, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=0",
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.4,
   "obs_rain_point_max_mm": 12.8,
   "obs_qq2_max": 0.46,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Sarawak",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 13.8,
   "obs_rain_point_max_mm": 26.6,
   "obs_qq2_max": 0.283,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Selangor",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.4,
   "obs_rain_point_max_mm": 20.8,
   "obs_qq2_max": 0.604,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-30",
   "state": "Terengganu",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 6.8,
   "obs_rain_point_max_mm": 13.5,
   "obs_qq2_max": 0.421,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-10-31T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Johor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.5,
   "obs_rain_point_max_mm": 8.0,
   "obs_qq2_max": 0.406,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Kedah",
   "lead": 2,
   "p_day1": 0.01,
   "p_lead": 0.012,
   "p_1_3": 0.022,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-10-31 18:35 MYT): PPS Bukit Raya Pendang masih menempatkan 9 mangsa banjir sehingga ditutup 10 pagi 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): PPS Pendang ditutup 10 pagi 31/10 (9 mangsa sebelum itu) | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 9 mangsa pagi 31/10",
   "source_urls": [
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.5,
   "obs_rain_point_max_mm": 8.2,
   "obs_qq2_max": 0.505,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Kelantan",
   "lead": 2,
   "p_day1": 0.01,
   "p_lead": 0.0,
   "p_1_3": 0.01,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.2,
   "obs_rain_point_max_mm": 10.8,
   "obs_qq2_max": 0.609,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Kuala Lumpur",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.302,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Labuan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 48.1,
   "obs_rain_point_max_mm": 48.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Melaka",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.8,
   "obs_rain_point_max_mm": 1.8,
   "obs_qq2_max": 0.358,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Negeri Sembilan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-10-31 18:35 MYT): 2 PPS Kuala Pilah (87 mangsa) aktif sehingga ditutup 4 petang 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): 2 PPS Kuala Pilah ditutup 4 petang 31/10 | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 87 mangsa pagi 31/10",
   "source_urls": [
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.1,
   "obs_rain_point_max_mm": 2.5,
   "obs_qq2_max": 0.23,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Pahang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.9,
   "obs_rain_point_max_mm": 13.2,
   "obs_qq2_max": 0.422,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Perak",
   "lead": 2,
   "p_day1": 0.008,
   "p_lead": 0.008,
   "p_1_3": 0.017,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-10-31 21:30 MYT): PPS SK Titi Serong Kerian aktif sepanjang 31/10 (34 pagi -> 25 petang -> 20 pada 21:30 MYT) | Malay Mail (Bernama) (2026-10-31 18:35 MYT): SK Titi Serong Kerian 34 -> 25 mangsa pada 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): 25 mangsa SK Titi Serong | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 34 mangsa pagi 31/10",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.7,
   "obs_rain_point_max_mm": 8.1,
   "obs_qq2_max": 0.857,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Perlis",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.3,
   "obs_rain_point_max_mm": 6.7,
   "obs_qq2_max": 0.44,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Pulau Pinang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.1,
   "obs_rain_point_max_mm": 5.1,
   "obs_qq2_max": 0.41,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Putrajaya",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.1,
   "obs_rain_point_max_mm": 3.1,
   "obs_qq2_max": 0.261,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Sabah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-10-31 21:30 MYT): JKM: PPS Banjir Sook masih dibuka 31/10 (0 mangsa) — bukti lemah, tiada laporan berita ditemui | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 2 acik, Sipitang, mangsa 137, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 20.2,
   "obs_rain_point_max_mm": 33.0,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Sarawak",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 23.5,
   "obs_rain_point_max_mm": 52.4,
   "obs_qq2_max": 0.333,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Selangor",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.4,
   "obs_rain_point_max_mm": 5.0,
   "obs_qq2_max": 0.557,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-10-31",
   "state": "Terengganu",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.6,
   "obs_rain_point_max_mm": 9.1,
   "obs_qq2_max": 0.432,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-01T11:27+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Johor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.4,
   "obs_rain_point_max_mm": 6.2,
   "obs_qq2_max": 0.336,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Kedah",
   "lead": 3,
   "p_day1": 0.01,
   "p_lead": 0.0,
   "p_1_3": 0.022,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 10.4,
   "obs_rain_point_max_mm": 15.2,
   "obs_qq2_max": 0.363,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Kelantan",
   "lead": 3,
   "p_day1": 0.01,
   "p_lead": 0.0,
   "p_1_3": 0.01,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.4,
   "obs_rain_point_max_mm": 18.0,
   "obs_qq2_max": 0.453,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Kuala Lumpur",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.183,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Labuan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.9,
   "obs_rain_point_max_mm": 9.9,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Melaka",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.194,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Negeri Sembilan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.8,
   "obs_rain_point_max_mm": 1.7,
   "obs_qq2_max": 0.133,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Pahang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.5,
   "obs_rain_point_max_mm": 8.2,
   "obs_qq2_max": 0.334,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Perak",
   "lead": 3,
   "p_day1": 0.008,
   "p_lead": 0.0,
   "p_1_3": 0.017,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-11-01 08:56 MYT): PPS SK Titi Serong Kerian: 18 mangsa banjir pada 8 pagi 1/11",
   "source_urls": [
    "https://www.malaymail.com/news/malaysia/2026/11/01/kerian-flood-evacuees-fall-to-18-as-situation-improves/241478"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 10.4,
   "obs_rain_point_max_mm": 16.7,
   "obs_qq2_max": 0.654,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Perlis",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.4,
   "obs_rain_point_max_mm": 6.9,
   "obs_qq2_max": 0.345,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Pulau Pinang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.1,
   "obs_rain_point_max_mm": 12.1,
   "obs_qq2_max": 0.449,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Putrajaya",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.5,
   "obs_qq2_max": 0.192,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Sabah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-11-01 15:10 MYT): JKM: 2 PPS banjir Sipitang aktif 1/11 (137 mangsa, 41 keluarga) | The Star (2026-11-01 13:36 MYT): Bomba Sipitang: 24 mangsa Kg Bebangkong Mesapol dipindahkan ~6 pagi 1/11 | Utusan Borneo (2026-11-01 11:04 MYT): 24 mangsa banjir Kg Bebangkong dipindahkan awal pagi 1/11 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 2 acik, Sipitang, mangsa 137, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://www.thestar.com.my/news/nation/2026/11/01/24-people-evacuated-as-floods-hit-sipitang-village",
    "https://www.utusanborneo.com.my/2026/11/01/24-mangsa-banjir-dipindahkan-ke-dewan-mesapol"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.1,
   "obs_rain_point_max_mm": 9.5,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Sarawak",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 17.6,
   "obs_rain_point_max_mm": 34.3,
   "obs_qq2_max": 0.244,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Selangor",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 7.4,
   "obs_qq2_max": 0.36,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-29",
   "valid_date": "2026-11-01",
   "state": "Terengganu",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.0,
   "obs_rain_point_max_mm": 13.5,
   "obs_qq2_max": 0.378,
   "forecast_file": "alert_2026-10-29.csv",
   "checked_at": "2026-11-02T11:25+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Johor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.5,
   "obs_rain_point_max_mm": 8.0,
   "obs_qq2_max": 0.406,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Kedah",
   "lead": 1,
   "p_day1": 0.019,
   "p_lead": 0.019,
   "p_1_3": 0.029,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-10-31 18:35 MYT): PPS Bukit Raya Pendang masih menempatkan 9 mangsa banjir sehingga ditutup 10 pagi 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): PPS Pendang ditutup 10 pagi 31/10 (9 mangsa sebelum itu) | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 9 mangsa pagi 31/10",
   "source_urls": [
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 1,
   "obs_rain_mm": 4.5,
   "obs_rain_point_max_mm": 8.2,
   "obs_qq2_max": 0.505,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Kelantan",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.028,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.2,
   "obs_rain_point_max_mm": 10.8,
   "obs_qq2_max": 0.609,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Kuala Lumpur",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.302,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Labuan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 48.1,
   "obs_rain_point_max_mm": 48.1,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Melaka",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.8,
   "obs_rain_point_max_mm": 1.8,
   "obs_qq2_max": 0.358,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Negeri Sembilan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-10-31 18:35 MYT): 2 PPS Kuala Pilah (87 mangsa) aktif sehingga ditutup 4 petang 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): 2 PPS Kuala Pilah ditutup 4 petang 31/10 | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 87 mangsa pagi 31/10",
   "source_urls": [
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.1,
   "obs_rain_point_max_mm": 2.5,
   "obs_qq2_max": 0.23,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Pahang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.9,
   "obs_rain_point_max_mm": 13.2,
   "obs_qq2_max": 0.422,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Perak",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.05,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-10-31 21:30 MYT): PPS SK Titi Serong Kerian aktif sepanjang 31/10 (34 pagi -> 25 petang -> 20 pada 21:30 MYT) | Malay Mail (Bernama) (2026-10-31 18:35 MYT): SK Titi Serong Kerian 34 -> 25 mangsa pada 31/10 | The Star (Bernama) (2026-10-31 18:30 MYT): 25 mangsa SK Titi Serong | Harian Metro (Bernama) (2026-10-31 00:56 MYT): 34 mangsa pagi 31/10",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://www.hmetro.com.my/mutakhir/2026/10/1430186/mangsa-banjir-di-perak-negeri-sembilan-meningkat-sedikit-kedah-kekal",
    "https://www.malaymail.com/news/malaysia/2026/10/31/all-relief-centres-closed-in-kedah-negeri-sembilan-as-floods-subside-perak-evacuees-fall-to-25/241463",
    "https://www.thestar.com.my/news/nation/2026/10/31/floods-subside-in-kedah-negri-number-of-evacuees-in-perak-drops"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.7,
   "obs_rain_point_max_mm": 8.1,
   "obs_qq2_max": 0.857,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Perlis",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.3,
   "obs_rain_point_max_mm": 6.7,
   "obs_qq2_max": 0.44,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Pulau Pinang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.1,
   "obs_rain_point_max_mm": 5.1,
   "obs_qq2_max": 0.41,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Putrajaya",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.1,
   "obs_rain_point_max_mm": 3.1,
   "obs_qq2_max": 0.261,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Sabah",
   "lead": 1,
   "p_day1": 0.005,
   "p_lead": 0.005,
   "p_1_3": 0.005,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-10-31 21:30 MYT): JKM: PPS Banjir Sook masih dibuka 31/10 (0 mangsa) — bukti lemah, tiada laporan berita ditemui | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 2 acik, Sipitang, mangsa 137, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 20.2,
   "obs_rain_point_max_mm": 33.0,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Sarawak",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": 0.333,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Selangor",
   "lead": 1,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.4,
   "obs_rain_point_max_mm": 5.0,
   "obs_qq2_max": 0.557,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-10-31",
   "state": "Terengganu",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.6,
   "obs_rain_point_max_mm": 9.1,
   "obs_qq2_max": 0.432,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-01T11:29+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Johor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.4,
   "obs_rain_point_max_mm": 6.2,
   "obs_qq2_max": 0.336,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Kedah",
   "lead": 2,
   "p_day1": 0.019,
   "p_lead": 0.0,
   "p_1_3": 0.029,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 10.4,
   "obs_rain_point_max_mm": 15.2,
   "obs_qq2_max": 0.363,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Kelantan",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.0,
   "p_1_3": 0.028,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.4,
   "obs_rain_point_max_mm": 18.0,
   "obs_qq2_max": 0.453,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Kuala Lumpur",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.183,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Labuan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.9,
   "obs_rain_point_max_mm": 9.9,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Melaka",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.194,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Negeri Sembilan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.8,
   "obs_rain_point_max_mm": 1.7,
   "obs_qq2_max": 0.133,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Pahang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.5,
   "obs_rain_point_max_mm": 8.2,
   "obs_qq2_max": 0.334,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Perak",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.05,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-11-01 08:56 MYT): PPS SK Titi Serong Kerian: 18 mangsa banjir pada 8 pagi 1/11",
   "source_urls": [
    "https://www.malaymail.com/news/malaysia/2026/11/01/kerian-flood-evacuees-fall-to-18-as-situation-improves/241478"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 10.4,
   "obs_rain_point_max_mm": 16.7,
   "obs_qq2_max": 0.654,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Perlis",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.4,
   "obs_rain_point_max_mm": 6.9,
   "obs_qq2_max": 0.345,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Pulau Pinang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.1,
   "obs_rain_point_max_mm": 12.1,
   "obs_qq2_max": 0.449,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Putrajaya",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.5,
   "obs_qq2_max": 0.192,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Sabah",
   "lead": 2,
   "p_day1": 0.005,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-11-01 15:10 MYT): JKM: 2 PPS banjir Sipitang aktif 1/11 (137 mangsa, 41 keluarga) | The Star (2026-11-01 13:36 MYT): Bomba Sipitang: 24 mangsa Kg Bebangkong Mesapol dipindahkan ~6 pagi 1/11 | Utusan Borneo (2026-11-01 11:04 MYT): 24 mangsa banjir Kg Bebangkong dipindahkan awal pagi 1/11 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 2 acik, Sipitang, mangsa 137, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://www.thestar.com.my/news/nation/2026/11/01/24-people-evacuated-as-floods-hit-sipitang-village",
    "https://www.utusanborneo.com.my/2026/11/01/24-mangsa-banjir-dipindahkan-ke-dewan-mesapol"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.1,
   "obs_rain_point_max_mm": 9.5,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Sarawak",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": 0.244,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Selangor",
   "lead": 2,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 7.4,
   "obs_qq2_max": 0.36,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-01",
   "state": "Terengganu",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.0,
   "obs_rain_point_max_mm": 13.5,
   "obs_qq2_max": 0.378,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Johor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.3,
   "obs_qq2_max": 0.357,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Kedah",
   "lead": 3,
   "p_day1": 0.019,
   "p_lead": 0.01,
   "p_1_3": 0.029,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.4,
   "obs_qq2_max": 0.292,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Kelantan",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.011,
   "p_1_3": 0.028,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.328,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Kuala Lumpur",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 4.1,
   "obs_qq2_max": 0.124,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Labuan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.0,
   "obs_rain_point_max_mm": 1.0,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Melaka",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.2,
   "obs_rain_point_max_mm": 0.2,
   "obs_qq2_max": 0.148,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Negeri Sembilan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.9,
   "obs_rain_point_max_mm": 5.6,
   "obs_qq2_max": 0.087,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Pahang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.2,
   "obs_rain_point_max_mm": 0.4,
   "obs_qq2_max": 0.296,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Perak",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.016,
   "p_1_3": 0.05,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.2,
   "obs_rain_point_max_mm": 10.6,
   "obs_qq2_max": 0.497,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Perlis",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.008,
   "p_1_3": 0.009,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.9,
   "obs_qq2_max": 0.22,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Pulau Pinang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.0,
   "obs_rain_point_max_mm": 0.0,
   "obs_qq2_max": 0.376,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Putrajaya",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.1,
   "obs_rain_point_max_mm": 2.1,
   "obs_qq2_max": 0.138,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Sabah",
   "lead": 3,
   "p_day1": 0.005,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.51,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Sarawak",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": 0.248,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Selangor",
   "lead": 3,
   "p_day1": 0.001,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.1,
   "obs_rain_point_max_mm": 2.7,
   "obs_qq2_max": 0.298,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-30",
   "valid_date": "2026-11-02",
   "state": "Terengganu",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 1.3,
   "obs_qq2_max": 0.364,
   "forecast_file": "alert_2026-10-30.csv",
   "checked_at": "2026-11-02T11:27+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Johor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.4,
   "obs_rain_point_max_mm": 6.2,
   "obs_qq2_max": 0.336,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Kedah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.008,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 10.4,
   "obs_rain_point_max_mm": 15.2,
   "obs_qq2_max": 0.363,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Kelantan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.4,
   "obs_rain_point_max_mm": 18.0,
   "obs_qq2_max": 0.453,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Kuala Lumpur",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.5,
   "obs_rain_point_max_mm": 1.5,
   "obs_qq2_max": 0.183,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Labuan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.9,
   "obs_rain_point_max_mm": 9.9,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Melaka",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.194,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Negeri Sembilan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.8,
   "obs_rain_point_max_mm": 1.7,
   "obs_qq2_max": 0.133,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Pahang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.5,
   "obs_rain_point_max_mm": 8.2,
   "obs_qq2_max": 0.334,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Perak",
   "lead": 1,
   "p_day1": 0.017,
   "p_lead": 0.017,
   "p_1_3": 0.025,
   "observed": 1,
   "evidence": "Malay Mail (Bernama) (2026-11-01 08:56 MYT): PPS SK Titi Serong Kerian: 18 mangsa banjir pada 8 pagi 1/11",
   "source_urls": [
    "https://www.malaymail.com/news/malaysia/2026/11/01/kerian-flood-evacuees-fall-to-18-as-situation-improves/241478"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 10.4,
   "obs_rain_point_max_mm": 16.7,
   "obs_qq2_max": 0.654,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Perlis",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.4,
   "obs_rain_point_max_mm": 6.9,
   "obs_qq2_max": 0.345,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Pulau Pinang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 12.1,
   "obs_rain_point_max_mm": 12.1,
   "obs_qq2_max": 0.449,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Putrajaya",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.5,
   "obs_qq2_max": 0.192,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Sabah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 1,
   "evidence": "JKM InfoBencana (direct fetch, banjir view b=1) (snapshot 2026-11-01 15:10 MYT): JKM: 2 PPS banjir Sipitang aktif 1/11 (137 mangsa, 41 keluarga) | The Star (2026-11-01 13:36 MYT): Bomba Sipitang: 24 mangsa Kg Bebangkong Mesapol dipindahkan ~6 pagi 1/11 | Utusan Borneo (2026-11-01 11:04 MYT): 24 mangsa banjir Kg Bebangkong dipindahkan awal pagi 1/11 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 2 acik, Sipitang, mangsa 137, acilis 2026-10-30 | JKM InfoBencana (guncel 2026-11-01T15:10:00+08:00): Banjir PPS 1 acik, Sook, mangsa 0, acilis 2026-10-30",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1",
    "https://www.thestar.com.my/news/nation/2026/11/01/24-people-evacuated-as-floods-hit-sipitang-village",
    "https://www.utusanborneo.com.my/2026/11/01/24-mangsa-banjir-dipindahkan-ke-dewan-mesapol"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 5.1,
   "obs_rain_point_max_mm": 9.5,
   "obs_qq2_max": 0.431,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Sarawak",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 17.6,
   "obs_rain_point_max_mm": 34.3,
   "obs_qq2_max": 0.244,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Selangor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 7.4,
   "obs_qq2_max": 0.36,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-01",
   "state": "Terengganu",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": 0,
   "evidence": "sel raporu yok (JKM ulusal tablo + taranan haberler)",
   "source_urls": [
    "https://infobencanajkmv2.jkm.gov.my/landing/index.php?a=0&b=1"
   ],
   "status": "verified",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 9.0,
   "obs_rain_point_max_mm": 13.5,
   "obs_qq2_max": 0.378,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Johor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.3,
   "obs_qq2_max": 0.357,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Kedah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.008,
   "p_1_3": 0.008,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.4,
   "obs_qq2_max": 0.292,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Kelantan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.008,
   "p_1_3": 0.009,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.328,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Kuala Lumpur",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 4.1,
   "obs_qq2_max": 0.124,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Labuan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.0,
   "obs_rain_point_max_mm": 1.0,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Melaka",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.2,
   "obs_rain_point_max_mm": 0.2,
   "obs_qq2_max": 0.148,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Negeri Sembilan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.9,
   "obs_rain_point_max_mm": 5.6,
   "obs_qq2_max": 0.087,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Pahang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.2,
   "obs_rain_point_max_mm": 0.4,
   "obs_qq2_max": 0.296,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Perak",
   "lead": 2,
   "p_day1": 0.017,
   "p_lead": 0.008,
   "p_1_3": 0.025,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.2,
   "obs_rain_point_max_mm": 10.6,
   "obs_qq2_max": 0.497,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Perlis",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.005,
   "p_1_3": 0.005,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.9,
   "obs_qq2_max": 0.22,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Pulau Pinang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.0,
   "obs_rain_point_max_mm": 0.0,
   "obs_qq2_max": 0.376,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Putrajaya",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.1,
   "obs_rain_point_max_mm": 2.1,
   "obs_qq2_max": 0.138,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Sabah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.51,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Sarawak",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.2,
   "obs_rain_point_max_mm": 12.9,
   "obs_qq2_max": 0.248,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Selangor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.1,
   "obs_rain_point_max_mm": 2.7,
   "obs_qq2_max": 0.298,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-02",
   "state": "Terengganu",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.005,
   "p_1_3": 0.005,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 1.3,
   "obs_qq2_max": 0.364,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-02T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Johor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Kedah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.008,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Kelantan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.009,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Kuala Lumpur",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Labuan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Melaka",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Negeri Sembilan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Pahang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Perak",
   "lead": 3,
   "p_day1": 0.017,
   "p_lead": 0.0,
   "p_1_3": 0.025,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Perlis",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Pulau Pinang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Putrajaya",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Sabah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Sarawak",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Selangor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-10-31",
   "valid_date": "2026-11-03",
   "state": "Terengganu",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.005,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-10-31.csv",
   "checked_at": "2026-11-01T11:30+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Johor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.3,
   "obs_qq2_max": 0.357,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Kedah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.4,
   "obs_qq2_max": 0.292,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Kelantan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.1,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.328,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Kuala Lumpur",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 4.1,
   "obs_rain_point_max_mm": 4.1,
   "obs_qq2_max": 0.124,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Labuan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.0,
   "obs_rain_point_max_mm": 1.0,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Melaka",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.2,
   "obs_rain_point_max_mm": 0.2,
   "obs_qq2_max": 0.148,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Negeri Sembilan",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.9,
   "obs_rain_point_max_mm": 5.6,
   "obs_qq2_max": 0.087,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Pahang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.2,
   "obs_rain_point_max_mm": 0.4,
   "obs_qq2_max": 0.296,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Perak",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.2,
   "obs_rain_point_max_mm": 10.6,
   "obs_qq2_max": 0.497,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Perlis",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.5,
   "obs_rain_point_max_mm": 0.9,
   "obs_qq2_max": 0.22,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Pulau Pinang",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.0,
   "obs_rain_point_max_mm": 0.0,
   "obs_qq2_max": 0.376,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Putrajaya",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 2.1,
   "obs_rain_point_max_mm": 2.1,
   "obs_qq2_max": 0.138,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Sabah",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 0.7,
   "obs_qq2_max": 0.51,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Sarawak",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 3.2,
   "obs_rain_point_max_mm": 12.9,
   "obs_qq2_max": 0.248,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Selangor",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 1.1,
   "obs_rain_point_max_mm": 2.7,
   "obs_qq2_max": 0.298,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-02",
   "state": "Terengganu",
   "lead": 1,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "kapsayan kaynak okunamadi, sel raporu yok",
   "source_urls": [],
   "status": "unknown",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": 0.4,
   "obs_rain_point_max_mm": 1.3,
   "obs_qq2_max": 0.364,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Johor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Kedah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Kelantan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Kuala Lumpur",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Labuan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Melaka",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Negeri Sembilan",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Pahang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Perak",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.002,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Perlis",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Pulau Pinang",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Putrajaya",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Sabah",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Sarawak",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Selangor",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-03",
   "state": "Terengganu",
   "lead": 2,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Johor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Kedah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Kelantan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Kuala Lumpur",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Labuan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Melaka",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Negeri Sembilan",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Pahang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Perak",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.002,
   "p_1_3": 0.002,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Perlis",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.001,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Pulau Pinang",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Putrajaya",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Sabah",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Sarawak",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Selangor",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  },
  {
   "issue_date": "2026-11-01",
   "valid_date": "2026-11-04",
   "state": "Terengganu",
   "lead": 3,
   "p_day1": 0.0,
   "p_lead": 0.0,
   "p_1_3": 0.001,
   "observed": null,
   "evidence": "gun henuz baslamadi (gelecek) — sel-yok SAYILMAZ",
   "source_urls": [],
   "status": "pending",
   "threshold": 0.0171,
   "alarm": 0,
   "obs_rain_mm": null,
   "obs_rain_point_max_mm": null,
   "obs_qq2_max": null,
   "forecast_file": "alert_2026-11-01.csv",
   "checked_at": "2026-11-02T11:31+08:00"
  }
 ]
}