WaterMatica Q-Flood
1

What did we do?

We computed the flood probability for the next 3 days for Malaysia's 16 states. Inputs: open weather/rainfall data, GloFAS discharge forecasts at 34 river points (51-member ensemble) and an observed flood catalogue of 239 rows (GDACS 100 + compiled 139). The model was built and calibrated only on the years 2001-01-01 → 2019-12-31 (111 024 state-days); the period 2020-01-01 → 2026-10-01 was tested once, never seen before. Today we compared yesterday's forecast with official/public flood reports. The quantum layer was tested only in shadow mode against its classical twins on the same data; no quantum component that fails the acceptance gate enters the forecast.

1

Data

Rainfall/temperature forcing, 34 GloFAS stations, 239-row flood catalogue

2

GloFAS 51 members

River discharge ensemble: how many members exceed the 2/5/20-year discharge

3

Calibration

Raw score → probability; only 2001-01-01 → 2019-12-31 (111 024 state-days)

4

Alert

16 states × 3 days: P(1 d), P(1–3 d), river colour

5

Verification

Yesterday's forecast ↔ today's official/public flood reports, evidence-linked log

6

Quantum shadow gate

VQC/QUBO vs classical twin; no acceptance unless the CI excludes zero

5 Nov 2026 06:09 TRT (5 Nov 11:09 MYT)
Run started
Source: 00_panel/calisma.json
5 Nov 2026 06:37 TRT (5 Nov 11:37 MYT)
Last section finished
Source: 10_dogrulama/summary.json
Q-Flood Engine 3.3.1
Engine
model 3.3.9-W
Source: 00_panel/summary.json

Data sources and freshness

DATAFRESHNESSFILE
Rainfall/temperature forcing (engine)observations end 4 November 202607_alert/motor_kosusu.json
Numerical weather predictionOpen-Meteo best_match hourly — forecast 5 Nov 2026 06:14 TRT (5 Nov 11:14 MYT)07_alert/tahmin_2026-11-05.json
River dischargeGloFAS v4 reanalysis + forecast (Open-Meteo flood API) — 51 members07_alert/tahmin_2026-11-05.json
Flood catalogue (training/test ground truth)239 rows, compiled 26 October 202601_envanter/gercek_kaynaklari.json
Verification sources for yesterday's forecastJKM InfoBencana, GDACS, news/Bernama — fetched 5 Nov 2026 06:29 TRT (5 Nov 11:29 MYT)10_dogrulama/kaynaklar_2026-11-04.json
Note: The gap between the last observed day of the forcing data and the forecast day is filled with numerical weather prediction; this increases forecast uncertainty.
2

What did we forecast?

In the 5 November 2026 forecast the highest 3-day flood probability is Kedah, at 0.6%. Next: Perak, Pahang. Probability is low in the other states. These numbers say how often flooding was seen on days with the same signal in the calibration period; they are not a yes/no decision.

Validity window: 6 Nov 00:00 MYT → 9 Nov 00:00 MYT (Malaysia time) = 5 Nov 19:00 TRT → 8 Nov 19:00 TRT (Istanbul). P(1 d) applies only to the first day (6 November 2026, 00:00–24:00 MYT).
0.6%in 3 days
#1 Kedah
Day 1 0.2% · river none (P(>Q2) 0%, 51 members) · confidence high
0.4%in 3 days
#2 Perak
Day 1 0.2% · river none (P(>Q2) 0%, 51 members) · confidence high
0.2%in 3 days
#3 Pahang
Day 1 0.1% · river none (P(>Q2) 0%, 51 members) · confidence high
Selangor: P(1–3 g) 0.1%Johor: P(1–3 g) 0.2%Kuala Lumpur: P(1–3 g) 0.1%Melaka: P(1–3 g) 0.1%Negeri Sembilan: P(1–3 g) 0.1%Sabah: P(1–3 g) 0.1%Sarawak: P(1–3 g) 0.1%Kelantan: P(1–3 g) 0.2%Putrajaya: P(1–3 g) 0.1%Terengganu: P(1–3 g) 0.2%Pahang: P(1–3 g) 0.2%Kedah: P(1–3 g) 0.6%Perlis: P(1–3 g) 0.1%Perak: P(1–3 g) 0.4%Pulau Pinang: P(1–3 g) 0.1%Labuan: P(1–3 g) 0.1%1Kedah2Perak3PahangBorneo states shifted west for display
< 1%1%–33%–55%–10≥ 10%(colour = P(1–3 d) display bin)
Interactive map (internet required): 07_alert/alert_2026-11-05_harita.html
Kedah#1
0.6%1–3 d
Day 1 0.2%
river none · P(>Q2) 0%
confidence: high
Perak#2
0.4%1–3 d
Day 1 0.2%
river none · P(>Q2) 0%
confidence: high
Johor
0.2%1–3 d
Day 1 0.1%
river none · P(>Q2) 0%
confidence: high
Kelantan
0.2%1–3 d
Day 1 0.1%
river none · P(>Q2) 0%
confidence: high
Pahang#3
0.2%1–3 d
Day 1 0.1%
river none · P(>Q2) 0%
confidence: high
Terengganu
0.2%1–3 d
Day 1 0.1%
river none · P(>Q2) 0%
confidence: high
Kuala Lumpur
0.1%1–3 d
Day 1 0%
river none · P(>Q2) 0%
confidence: high
Labuan
0.1%1–3 d
Day 1 0%
river none · P(>Q2) —
confidence: high
Melaka
0.1%1–3 d
Day 1 0%
river none · P(>Q2) 0%
confidence: high
Negeri Sembilan
0.1%1–3 d
Day 1 0.1%
river none · P(>Q2) 0%
confidence: high
Perlis
0.1%1–3 d
Day 1 0%
river none · P(>Q2) 2%
confidence: high
Pulau Pinang
0.1%1–3 d
Day 1 0.1%
river none · P(>Q2) 0%
confidence: high
Putrajaya
0.1%1–3 d
Day 1 0%
river none · P(>Q2) 0%
confidence: high
Sabah
0.1%1–3 d
Day 1 0%
river none · P(>Q2) 0%
confidence: high
Sarawak
0.1%1–3 d
Day 1 0%
river none · P(>Q2) 0%
confidence: high
Selangor
0.1%1–3 d
Day 1 0%
river none · P(>Q2) 0%
confidence: high
purple — ≥ 30% of the ensemble exceeds the 20-year dischargered — ≥ 30% exceeds the 5-year dischargeyellow — ≥ 30% exceeds the 2-year dischargeno colour — below thresholdno river data
“above threshold” = P(1 d) ≥ 0.0171 (action threshold corresponding to the top 2% of days in the calibration years); verification uses the same threshold.
All states table
STATEP(1 D)P(1–3 D)RIVER COLOURP(>Q2)P(>Q5)STATIONCONFIDENCE
Kedah0.2%0.6%none0%0%Sg Kedah Alor Setarhigh
Perak0.2%0.4%none0%0%Sg Perak Teluk Intanhigh
Johor0.1%0.2%none0%0%Sg Muar Buloh Kasaphigh
Kelantan0.1%0.2%none0%0%Sg Kelantan Guillemardhigh
Pahang0.1%0.2%none0%0%Sg Pahang Temerlohhigh
Terengganu0.1%0.2%none0%0%Sg Terengganuhigh
Kuala Lumpur0%0.1%none0%0%Sg Klang KLhigh
Labuan0%0.1%none——high
Melaka0%0.1%none0%0%Sg Melakahigh
Negeri Sembilan0.1%0.1%none0%0%Sg Linggihigh
Perlis0%0.1%none2%0%Sg Perlis Kangarhigh
Pulau Pinang0.1%0.1%none0%0%Sg Juru/Peraihigh
Putrajaya0%0.1%none0%0%Sg Langat Putrajayahigh
Sabah0%0.1%none0%0%Sg Padas Beauforthigh
Sarawak0%0.1%none0%0%Batang Rajang Sibuhigh
Selangor0%0.1%none0%0%Sg Klang Klanghigh
Sources: 07_alert/alert_2026-11-05.json, 07_alert/summary.json, 07_alert/alert_2026-11-05.geojson
3

How well did we do?

a) Real-time verification live · operational

We compared the day-1 forecast issued on the morning of 4 November 2026 with official and public flood reports published for 5 November 2026 (checked: 5 Nov 2026 06:29 TRT (5 Nov 11:29 MYT)). There was flooding in 32 states: 4 hits, 28 misses; we also raised a false alarm in 2 states.

STATEWE SAID YESTERDAY: P(1 D)ALARM?OBSERVEDOUTCOMESTATUSEVIDENCE
Selangor0%—floodMissverifiedJKM InfoBencana (updated 2026-11-05T11:01:00+08:00): Banjir PPS 1 open, Kuala Selangor, victims 642, opened 2026-11-02 | JKM InfoBencana (updated 2026-11-05T11:01:00+08:00): Banjir PP…
infobencanajkmv2.jkm.gov.my
Kelantan0%—floodMissverifiedJKM InfoBencana (updated 2026-11-05T11:01:00+08:00): Banjir PPS 1 open, Gua Musang, victims 22, opened 2026-11-04
infobencanajkmv2.jkm.gov.my
14 states with no flood and no alarm from us (correct silence)
STATEWE SAID YESTERDAY: P(1 D)ALARM?OBSERVEDOUTCOMESTATUSEVIDENCE
Perak0.2%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Kedah0.1%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Negeri Sembilan0.1%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Johor0.1%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Pulau Pinang0.1%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Perlis0.1%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Pahang0.1%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Kuala Lumpur0%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Putrajaya0%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Melaka0%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Terengganu0%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Sabah0%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Sarawak0%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Labuan0%—no flood reportCorrect silenceprovisional (day not closed)no flood report (JKM national table + scanned news); day not closed yet (11:29 MYT) — will recheck on next run
infobencanajkmv2.jkm.gov.my
Sources: 10_dogrulama/dogrulama_2026-11-04_gun1.json, 10_dogrulama/verif_log.json
0.19694
Brier score (day 1)
climatology reference 0.19958 → skill (BSS) 0.013; lower Brier is better
Source: 10_dogrulama/operasyonel_skorlar.json
4 / 28 / 2
Hits / misses / false alarms
correct silence 126
Source: 10_dogrulama/operasyonel_skorlar.json
0.125
POD (probability of detection)
95% CI [0.0497 – 0.2807]
Source: 10_dogrulama/operasyonel_skorlar.json
0.3333
FAR (false alarm ratio)
95% CI [0.0968 – 0.7]
Source: 10_dogrulama/operasyonel_skorlar.json
160
Scored state-days
10 forecast days · 32 floods · 146 verified, 14 provisional
Source: 10_dogrulama/operasyonel_skorlar.json
0.0
Persistence reference Brier
“flood today wherever there was flood yesterday” rule: 2 hits, 0 misses, 0 false alarms — beat us yesterday
Source: 10_dogrulama/operasyonel_skorlar.json
48
Pending state-days
1–3 day window not yet closed (46 open windows); not counted as no-flood
Source: 10_dogrulama/operasyonel_skorlar.json
In plain words:
  • This is only 10 day(s) of forecasts × 160 states. Far too small to judge skill; that is why the confidence intervals are so wide.
  • State-days of the same storm are not independent of each other; a single weather system determines the whole result.
  • “Provisional” rows were checked before the day closed; they are re-checked in the next run.
  • The simple persistence rule did better than us yesterday: flooding continued in states that were already flooded.
Caveat in the file: “tiny sample: one issue x 16 states is far too small for skill statistics; state-days of one storm are not independent; Brier/POD/FAR here are bookkeeping, not evidence of skill. Real-time scores are kept apart from the 2020-2026 hindcast.”

b) 2020–2026 held-out period hindcast hindcast · kept separate

In the period 2020-01-01 → 2026-10-01, the model caught 30 of 117 flood events it had never seen. Detection score CSI 0.179 (95% confidence interval 0.128–0.243).

Learning layer (ours)
0.179 [0.128 – 0.243]
GloFAS ≥ 2-year discharge (alone)
0.137 [0.102 – 0.183]
00.3
CSI (1 = perfect)
Dot = value, grey line = 95% block-bootstrap confidence interval. Event-based, same held-out period.
Source: 04_manset_26yil/manset_26yil.json
30/117
Flood events caught
POD 0.256 · false alarms 51 (FAR 0.622)
Source: 04_manset_26yil/manset_26yil.json
0.01933
Brier score (held-out period)
39 456 state-days, 784 flood days; skill vs climatology (BSS) 0.02523
Source: 06_kalibrasyon/summary.json
At the operational threshold (P(1 d) ≥ 0.0171), same held-out period, per state-day: POD 0.3814 [0.348 – 0.4159], FAR 0.8086 [0.7883 – 0.8273], CSI 0.1461 (block bootstrap 95%: 0.0761–0.2266), 1562 alarm days. So most of our alarms turn out false; this threshold was kept low so as not to miss floods.
Source: 06_kalibrasyon/aksiyon_esikleri_tutulan.json
In plain words:
  • This is a hindcast: the question “what would we have said that day?” using past weather data. The rainfall input is the MERRA-2 reanalysis, not a real-time forecast; real-time performance may be lower.
  • CSI 0.179 is a detection score: caught / (caught + missed + false alarms). It is not an “accuracy percentage”; because floods are rare, an accuracy percentage comes out misleadingly high, so we never use one.
  • Difference vs GloFAS (GloFAS − ours): −0.041 [−0.100; +0.014]. The interval includes zero; so we cannot claim to be significantly better than GloFAS.
  • Probabilities stay too low in the held-out period: the observed flood frequency is 6.62–36.59 times what was forecast. Most of this comes from the post-2020 flood catalogue being 10.32 times denser (more records).
  • New label and model variants (skill_v2) were tried; decision: “NO significant gain (interval includes zero or is unfavourable)”. We do not hide the deterioration; the current model is kept.
  • Selection and tuning were done only on 2001-01-01 → 2019-12-31; the period 2020-01-01 → 2026-10-01 was reported once.
Sources: 04b_skill_v2/skill_v2_tablo.json, 06_kalibrasyon/guvenilirlik_tutulan.json, 04b_skill_v2/summary.json
Do not mix the two scores: (a) is the live scorecard of real forecasts and is still very short; (b) is a replay of past data and is long. The two are never combined.
4

Where is our edge?

Our edge is not being more accurate but being open, measured and honest: open data, calibrated probabilities with confidence intervals, testing on a never-seen period, and a public verification log every day. Although our detection score looks higher than GloFAS, the difference is not statistically significant.

We do not claim superiority over classical methods; we will say so only if a pre-registered test proves it. All of the forecast skill comes from the classical model.
  • QUBO sensor placement (simulated annealing): optimality gap vs classical MILP 0.0% — same as the classical solver, not superior; did not pass the gate (over budget; simulator result — hardware run required before operational use). Mode: shadow
Sources: 08b_qf_my/kabul_defteri.json, 08b_qf_my/summary.json
Quantum results are simulations; no real QPU run was made in this run. A simulation result is never counted as operational.
Honest position vs competitors (18 systems reviewed, qualitative comparison):
  • Resolution: we work at state scale and do not produce water-depth maps; commercial products and the national system work at basin, station or even building scale.
  • Authority and track record: the official warning authority is JPS; GloFAS and Google are operational 24/7 and have peer-reviewed publications. We do not replace JPS; we are a separate second opinion.
  • Lead time: 1–3 days for us; global systems and JPS give a longer horizon.
  • Peer review: we have no peer-reviewed publication yet.
  • None of the reviewed competitors publishes calibrated probabilities and confidence intervals for Malaysian states; that is our difference, not accuracy itself.
Source: rakipler.json (RAKIP_ANALIZI)
?

Which file is what?

Start with this page. For details see RAPOR.html. The rest is raw data.