International AI Builders Congress 2026 · Idea to Unicorn · ClimateSphere AI → Climate Shield · Team Quantum Builders

Flash-flood warnings that reach every household in time.

In August 2024, record rain in Tripura sent flash floods into Feni, Cumilla and Noakhali within hours — 5.8 million people affected, 71 dead, and no forecast of a flood that severe. The rain was visible across the border hours before the water came. Agam watches it every hour, judges it against each location's own 30-year history, and turns risk into verified, plain-Bangla voice calls and SMS that a local officer approves — reaching the most vulnerable first.

15
upstream rain points across the border, checked hourly
24
flood-prone upazilas monitored
20/35
documented area-floods with Danger on or before onset (30-yr backtest)
0.6
median Danger episodes per area per year — no alarm fatigue

Prototype for research and demonstration — not an official warning service. Demo households are synthetic, and demo mode can never send to a real phone (officer PIN 0000).

System dashboard

Live system status

These cards call Agam's own risk API from your browser right now: the same engine the dashboard, the background worker and the MCP server use.

Live today

Open-Meteo rain, river and tide right now + residents' reports

checking…

Feni flood, 20 Aug 2024 12:00

Only the data that existed at that hour

checking…

Why this matters

The problem

Floods arrive in hours

Water from Tripura reached Feni in 5–8 hours in August 2024 (FFWC staff, Prothom Alo). Upstream rain data from India is shared irregularly.

Forecasts missed it

We checked four global models as issued. One day ahead they predicted 24–35 mm at Udaipur, Tripura for 20 Aug; ECMWF's own analysis showed 176 mm.

Warnings don't reach the last household

Existing warnings are technical (water levels in metres), in standard Bangla, and spread by TV and word of mouth. The elderly, disabled, phone-less and people on chars hear last.

FFWC and Google Flood Hub forecast major rivers well, with days of lead time. Small flashy cross-border rivers — Muhuri, Gumti, Khowai, Someshwari — are not resolved by global models, and no existing tool turns a warning into a prioritised, household-level outreach plan.

Solution

How Agam works

  1. 1

    Watch upstream

    15 rain points in Tripura, Meghalaya, Assam, West Bengal and the Chittagong hills, plus local rain, 9 river points and 4 river mouths (tides) — every hour.

  2. 2

    Judge against local history

    2/5/10-year levels per location from 30 yrs of rain, 40 yrs of river flow, 2.5 yrs of tides. Residents' “water rising” reports count too.

  3. 3

    Explain the risk

    Normal / Watch / Warning / Danger, with the evidence, the estimated arrival time and today's official FFWC/BMD status.

  4. 4

    Write & verify the alert

    An AI model (free Google Gemini by default) writes a plain-Bangla SMS, voice call and loudspeaker script from verified facts; 7 automatic checks; an officer approves (two for Danger).

  5. 5

    Reach everyone

    Voice calls + SMS (retry → backup number), volunteer door-knocks for homes without a phone, mosque/CPP loudspeakers. Residents reply “1 safe / 2 need help”.

Technical whitepaper

Architecture

Input → processing → output

Inputs: Open-Meteo live rain, river (GloFAS) and tide; precomputed thresholds; area/station graph with travel times; residents' reports via Telegram and SMS.

Processing: a transparent rule-based risk engine (src/lib/risk.ts) compares rolling 24 h / 72 h / 5-day totals against each location's return levels, with a per-location bias factor between datasets.

Output: a level per area with evidence → verified alert facts → AI-written Bangla messages → officer approval → five delivery channels → replies and rescue list.

Components

  • Web app — Next.js 16 + React 19: map, replays, alert drafting, approval, outbox, uploads, audit log.
  • Worker (scripts/worker.mts) — detection every 15 min, escalation, call retries, Telegram bot.
  • Channels — any Bangladeshi SMS/IVR HTTP gateway or Twilio; Telegram; test mode by default.
  • MCP server (mcp/server.mts) — the engine as tools for any AI assistant.
  • Hosting — Vercel for the public demo; Docker Compose (web + worker + data volume) for pilots.
PathWhat it is
src/lib/risk.tsRisk engine: upstream rain, local rain, forecast, river flow, tides and community reports → level
src/lib/alerts.tsAlert facts, Bangla templates, loudspeaker script, volunteer SMS and the 7 safety checks
src/lib/ai-writer.tsAI writes the alert from verified facts (Gemini free tier → Groq free tier → optional Claude); falls back to the template if any check fails
src/lib/alert-flow.tsDraft → approve (1 or 2 officers) → send on every channel → outbox + audit log
src/lib/escalation.tsOfficer notification, escalation, SMS approvals, Danger auto-send policy
src/lib/deliveries.tsCall retries → backup number → volunteer hand-off

Where AI is used — and where it is not

AI design

Rules decide the risk

The alert level comes from a transparent engine with thresholds derived from data. No LLM decides whether people evacuate, so every level can be explained and audited.

AI writes the words — on free APIs

Google Gemini (free tier: Flash-Lite, then Flash) writes the SMS, a 60–100 word voice script, an optional dialect version, a checklist and an English summary in one structured-JSON call. If Gemini is rate-limited, Groq's free tier (gpt-oss-120b) takes over; Claude is an optional paid upgrade. Identical facts reuse the earlier verified draft, and calls are capped per hour.

Geospatial ML spots risky days

A logistic-regression model trained on 30 years of rain and river data reads each area's whole upstream network and estimates the chance a flood starts within 72 hours (held-out AUC 0.912). It can raise an area to Watch, never Warning or Danger — and it caught 3 past floods the rules missed.

Code verifies everything

Every draft passes 7 automatic checks or the verified template is used. The AI may only use numbers from an allow-list built from the facts. Agam works fully without an API key.

The 7 safety checks (validateAlert)

  1. Alert level stated in SMS and voice call, with the action that matches it (and no false reassurance)
  2. Area named correctly in both
  3. No numbers that are not in the verified facts — including the English summary for officials
  4. SMS fits 3 Bangla SMS parts (≤ 200 characters)
  5. Emergency number 999 included for Warning and Danger
  6. Action checklist has at least 3 items
  7. Voice call names the sender — the local disaster committee

Prompt design

  • Role and context: who listens (rural, elderly, low-literacy) and why accuracy matters.
  • Hard rules: only given facts; exact level word, area name and sender; 999 for Warning/Danger.
  • One-shot grounding: the verified template is sent as a reference.
  • Structured facts in (compact JSON), structured JSON out.
  • Failure path: one retry, then the template, and the officer sees which check failed.
System prompt used in production (read from the code)
You write flood early-warning messages for rural Bangladesh on behalf of a local disaster-management committee. Your words will be read out by phone to people who may have little schooling, including elderly people, so lives depend on them being clear, calm and correct.

Write in simple, everyday Bangla (standard চলিত ভাষা) that a class-5 student understands. Short sentences. No English words.

Hard rules:
- Use ONLY the facts provided. Never invent numbers, places, rivers, shelters, phone numbers, dates or organisations. Every number you write must come from the "allowed numbers" list (Bangla digits are fine).
- Always state the alert level word exactly as given (levelBn) and the area name exactly as given (areaBn) in both sms_bn and voice_bn.
- For Warning (সতর্কতা) and Danger (বিপদ), include the national emergency number ৯৯৯ in both sms_bn and voice_bn.
- Give the action that matches the level, in both sms_bn and voice_bn: for Danger (বিপদ), go now to the shelter (আশ্রয়কেন্দ্র) or high ground (উঁচু স্থান); for Warning (সতর্কতা), get ready — pack documents, medicine and dry food (গুছিয়ে রাখুন) and move livestock to high ground; for Watch (সতর্ক নজর), keep watching the river (নজর রাখুন) and keep phones on. Never tell people there is nothing to worry about.
- Do not exaggerate or downplay. Do not promise that a flood will or will not happen; say what may happen and what to do.

Fields:
- sms_bn: at most 200 characters, most important action first.
- voice_bn: 60–100 words, spoken style, starts by addressing the residents of the area, explains the cause in one sentence, gives the arrival time if known, gives the main action, and repeats the main action once at the end.
- dialect_voice: if a dialect is requested, the same voice message in that regional dialect written in Bangla script; otherwise null.
- checklist_bn: 3–6 short practical actions appropriate to the alert level, no numbers.
- official_summary_en: at most 60 words in English for government officials: level, area, cause, expected arrival. The allowed-numbers rule applies here too; describe rarity as "about once in N years".

The message comes from the local disaster-management committee, not from an app: end voice_bn with the sentence "বার্তাটি পাঠিয়েছে <senderBn>।" using senderBn exactly as given.

We report our misses as clearly as our hits

Evaluation

1. Did forecasts see the Feni 2024 rain? (Udaipur, Tripura, 20 Aug)

ModelIssued 1 day earlierIssued 2 days earlierModel's own analysis
ECMWF IFS 0.25°29 mm37 mm176 mm
GFS35 mm14 mm15 mm
DWD ICON24 mm15 mm27 mm
JMA30 mm24 mm56 mm
Open-Meteo best match24 mm15 mm197 mm

2. Honest hourly replays — only data that existed at each hour

ReplayFirst WatchFirst WarningFirst DangerTrigger
Feni, Aug 202417 Aug 06:0017 Aug 18:0019 Aug 12:00 (Feni Sadar, Sonagazi)192 mm in 72 h at Belonia + spring tide at the river mouth
20 Aug 12:00 (Parshuram, Fulgazi, …)172 mm in 24 h at Santirbazar (5-yr level 124 mm)
Sylhet, Jun 202413 Jun 18:0016 Jun 06:0018 Jun 18:00Extreme rain over Meghalaya; Surma above 5-yr flow
Jamuna, Jul 202430 Jun 24:001 Jul 24:003 Jul 24:00Brahmaputra–Jamuna above 5-yr flood flow
Chattogram, Jul 20265 Jul 06:008 Jul 18:0010 Jul 06:00Partial miss — blocked sluices; now covered by residents' reports

3. 30-year backtest (1994–2023, observations only)

20/35
Danger on or before onset (57%)
4
more caught within 3 days after onset
11
missed — published with causes
0.6
median Danger episodes / area / year (upper bound on false alarms)

Misses come from pre-monsoon flash floods over Meghalaya (ERA5's ~25 km grid under-represents orographic rain), a slow basin-wide 2007 Brahmaputra flood, and very local storms. Fixes: satellite rain (GPM IMERG), IMD/BMD gauges, more upstream points. Full method and tables: EVALUATION.md.

4. Geospatial ML model (out of sample: trained on some years, scored on others)

0.912
held-out ROC AUC over 262,800 area-days
28/35
documented floods flagged Watch in time (median 3 days ahead)
29/35
floods with early attention from rules or ML (rules alone 26)
66 h
earlier than the rules on the unseen Jamuna 2024 flood

At the same alarm rate as the rules' Watch level, ML flags 29 documented floods versus 26; at the Danger level the rules are far better (20 vs 10) — which is why ML only ever raises Watch. Method, weights and every flood: ML-EVAL.md.

5. AI alert writer, live (72 real calls to the free Gemini API)

63/72
AI drafts passing all 7 safety checks first time
3 s
median time to write a draft
0
unchecked drafts that could reach residents (the rest used the verified template)
$0
AI cost — Gemini free tier, Groq free tier as backup

Next: resident comprehension tests with the /field-test page (target ≥ 80% understand what, when, what to do and who sent it). Full alert-writer results: AI-EVAL.md.

Ethical AI compliance

Responsible AI, safety & privacy

Human in the loop

Nothing is sent without a signed-in officer's approval; optional two-person rule for Danger. The only exception is opt-in and Danger-only: after 45 minutes of escalation with no answer, the verified template — never AI text — is sent.

No hallucinated numbers

Every number in an AI draft must come from the verified facts. No resident free text reaches the model, so the prompt-injection surface is minimal.

Fairness & inclusion

Each area is judged against its own history, not one national threshold. Outreach is ordered most vulnerable first (elderly, disabled, pregnant, no phone); voice calls and loudspeakers reach people who cannot read. Dialect output is flagged experimental.

Privacy

Demo data is synthetic. Real household lists need recorded consent (rows without it are skipped), stay on the committee's server, are visible only to signed-in officers and are deleted after the pilot. No personal data is sent to the LLM. Field-test answers are anonymous.

Accountability & security

Hashed, unique PINs with guessing limits per device and in total; Telegram approvals linked by one-time codes (never PINs) and only from the officer's own chat; per-phone limits on SMS approval codes; one locked write per approval, so an alert can never be sent twice. Every sign-in, draft, approval, upload and send is in the audit log.

Fail-safe operations

If live rain data stops for 30 minutes, every officer is told to rely on the official bulletin until it returns. When the danger passes, officers send an all-clear (always the verified template) that tells residents it is safe to return and what to watch for.

Transparency

Prompts are published, misses are published, data limitations are documented, and every message is sent in the local committee's name. Agam supports official BMD/FFWC/DDM warnings; it does not replace them.

All open data

Data & provenance

DataSourceUsed for
Daily rain 1994–2023 (ERA5)Open-Meteo Historical Weather API · Copernicus · CC BY 4.0Local 2/5/10-year thresholds for 39 points; 30-year backtest
Daily river flow 1984–2023 (GloFAS v4)Open-Meteo Flood API · Copernicus · CC BY 4.0River thresholds for 9 points; replays
Archived forecasts 2020–2023Open-Meteo Historical Forecast APIPer-location bias factor between datasets
Hourly analysis and forecasts as issuedOpen-Meteo Previous Runs APIHonest hourly replays
Sea level incl. tides, Jul 2023 – Dec 2025Open-Meteo Marine APITide thresholds at 6 coastal areas
Live rain, river and tideOpen-Meteo Forecast, Flood and Marine APIsLive mode
Residents' “water rising” reportsTelegram, SMS “PANI <area>”, officersCommunity signal: 3 reporters in 6 h → Warning
Map© OpenStreetMap contributors (ODbL)Background map
Demo householdsSynthetic (src/lib/households.ts)Demo of prioritisation and dispatch only

Known limitations — coarse grids, estimated travel times, short tide record — are listed in DATA_PROVENANCE.md.

Citizens never pay

Business model & global readiness

CustomerWhat they buyWhy
NGOs / donors running anticipatory actionObjective, auditable triggers per upazila + household outreach + delivery recordsThey must justify releasing cash before a flood
Union / Upazila Disaster Management Committees (via DDM, donor projects)Per-area subscription: dashboard, alerts, dispatch, audit logTurns a warning into documented action
Microfinance institutions and insurersEarly flood signals for borrowers' areas; parametric triggersProtect clients and portfolios
Telecom operatorsPartnership: voice/SMS capacity, Cell BroadcastCSR + traffic

Unit cost (assumptions to replace with real quotes)

About Tk 50,000 per union per monsoon (≈ Tk 10 per household) for 5,000 households — mostly SMS and voice calls. AI alert writing is under US$0.05 per alert. Pricing is a hypothesis to validate in the pilot.

Global by design

Every data source (ERA5, GloFAS, Open-Meteo forecasts) is global and free. A new region is a config entry in geo.json plus a ~15-minute calibration. The same cross-border flash-flood problem exists from Nepal into Bihar, Northeast India, Myanmar, Pakistan and East Africa.

From demo to pilot

Scalability, deployment & MCP

Cloud-ready

Public demo on Vercel. Pilots run with docker compose up -d --build: web server + worker + persistent data volume on any small server, shared by many unions.

Modular

Engine, alert writer, channels, escalation and bot are separate modules behind one engine; SMS/IVR providers are swappable HTTP gateways; the LLM is optional.

Open standards

Agam ships an MCP server (stdio) so any AI assistant can ask for verified flood risk instead of guessing.
MCP toolWhat it returns
list_areasMonitored upazilas, rivers, upstream stations (many in India) and travel times
get_flood_riskLive or replayed level per area, with evidence and expected arrival window
draft_alertVerified Bangla SMS, voice script and checklist + safety-check results (read-only: never sends)
{
  "mcpServers": {
    "agam": { "command": "npx", "args": ["tsx", "C:/path/to/agam/mcp/server.mts"] }
  }
}

Quantum Builders

Team & roadmap

Team

  • MD Samir Hossan — Team Leader: project, build, pitch and submission.
  • Nadia Islam Priya — Team Coordinator: team, outreach and partners.
  • Seeking an NRB collaborator in hydrology, disaster risk or climate data to review the method and open international networks.

Next steps

  1. Pilot with one Union Disaster Management Committee in Feni or Sunamganj.
  2. Validate travel times with BWDB/FFWC hourly gauge records.
  3. Add satellite rain (GPM IMERG Early) and BMD/IMD gauges.
  4. Field comprehension tests with residents; 72-case alert-writer evaluation.
  5. Telecom partner for Bangla IVR capacity; remote MCP endpoint for NGOs.

Mapped to the Congress criteria

For judges: where to find the evidence

CriterionEvidence in Agam
Innovation (20)Watches rain across the border instead of forecasting rivers; per-location history instead of national thresholds; a geospatial ML model over the upstream network next to transparent rules; AI for last-mile language, rules for decisions.
Technical execution (20)Explainable engine plus a validated geospatial ML model (AUC 0.912), bias correction between datasets, free-tier AI (Gemini → Groq) with structured outputs and 7 checks, MCP server, worker with escalation and retries — open source.
Business model + global readiness (20)Four paying customer types, unit costs, global open data and a config-file path to new countries — Business.
Real-world impact + ethical AI (20)Feni 2024 replay, 20/35 backtest, human approval, consent-based data, published misses — Responsible AI.
Scalability + NRB collaboration (10)Docker pilot hosting, modular channels, MCP; NRB collaborator being recruited — Scale.
Presentation (10)3-minute video, live replay demo and this page.