Stage 1 — Evidence extraction from observation
Stage 2 — Evidence quality assessment
Stage 3 — Spatial & temporal corroboration
Stage 4 — Signal detection & priority scoring
Stage 5 — Routing to researcher queue
FIELD ACTION CARD — generated by HydroTriage
Field Investigation Required
✕
Done
IEEE OneAquaHealth 2026 · Track 2: Data-to-Insight · Track 3: AI-Supported Assessment

From citizen observations
to actionable water intelligence.

An AI-assisted human-in-the-loop platform for converting fragmented freshwater observations into explainable, spatial, and temporal environmental signals — that help researchers decide what deserves attention next.

🤖
AI ASSISTS
structures & prioritizes
👩‍🔬
SCIENTISTS VALIDATE
human judgment required
🏘
COMMUNITIES PARTICIPATE
observations close the loop
7
Reports in system · DEMO DATA
1
Active cluster signal
6
Reports in 72h window
74
Avg EQS (cluster zone)
ONE HEALTH CONTEXT — environmental signals connect ecosystems, animals, and communities
🌿 Environmental
Water body condition · Ecosystem integrity · Discharge patterns · Algal signals · Habitat change
Evidence level: CITIZEN OBSERVATION
🦅 Animal / Ecological
Wildlife stress signals · Fish mortality · Aquatic biodiversity · Migratory species behavior
Evidence level: OBSERVATION PROXY
👥 Human / Community
Recreational exposure awareness · Community concern · Water-use context · Downstream communities
Evidence level: CONTEXTUAL ONLY
⚠ Environmental signals can support earlier investigation and awareness of conditions relevant to ecosystem and community wellbeing. HydroTriage does not infer disease, human illness, or confirmed contamination from citizen observations.
Evidence pipeline — every stage is visible
👁
Citizen
Observation
Photo + structured form
🔬
Evidence
Extraction
Visual proxy signals + NLP
📊
Evidence Quality
Assessment
EQS — not pollution score
🗺
Spatial + Temporal
Corroboration
Cluster detection 72h window
⚡
Signal
Detection
Environmental signal, not finding
🏷
Priority
Score
High / Standard / Low
👩‍🔬
Researcher
Review
Validate · Escalate · Dismiss
✓
Outcome
Validated / Rejected / Field check needed
01–03
Evidence in
Photo + observation form → AI extracts signals → EQS scores evidence quality (not water quality).
04–05
Corroboration
Spatial cluster detection (1.8 km / 72 h) and temporal trend analysis flag emerging environmental signals.
06–07
Priority routing
AI assigns a priority score. Researcher dashboard shows structured summary — never a conclusion.
08–09
Close the loop
Researcher validates or escalates. Citizen sees their report's impact. Field verification closes the chain.
SIGNAL JOURNEY — HOW ONE CITIZEN OBSERVATION BECOMES AN ACTIONABLE SIGNAL
Click any stage to explore the output at that step
⬤ DEMO DATA — simulated for illustration
👁
1 · Citizen Observation Ulsoor Lake · Sep 22 · 07:14
"Something unusual here — green-brown water, strong smell, foam on surface near the boat jetty."
▼
🔬
2 · Evidence Extraction AI-assisted
4 anomaly signals extracted from observation. Photo analyzed for visual proxies.
▼
📊
3 · Evidence Quality Score 82/100
High evidence weight — photo + 4 anomaly signals + precise GPS. Evidence quality ≠ water quality.
▼
🗺
4 · Spatial Engine 6 reports · 1.8 km
Cluster detected: 6 independent observations within 1.8 km during the past 72 hours. Pattern warrants investigation.
▼
⏱
5 · Temporal Engine 6× spike Sep 22–26
Report frequency increased 5× above baseline during Sep 22–26. Repeated observation pattern warrants investigation — not a confirmed environmental event.
▼
🚨
6 · Priority Score PRIORITY FOR INVESTIGATION
EQS 82 + spatial cluster + temporal spike → routed to high-priority researcher queue. Not a pollution finding.
▼
👩‍🔬
7 · Researcher Review ● PENDING HUMAN VALIDATION
Researcher reviews AI summary, evidence trace, and spatial/temporal context. AI does not replace expert judgment.
▼
✓
8 · Outcome & Citizen Feedback VALIDATED FOR FIELD CHECK
Citizen notified: "Your observation contributed to an active environmental review. Field verification scheduled."
▼
⚠ HydroTriage measures the quality of citizen observations, not water quality itself. Every AI output is labeled as an estimate and requires expert human validation before any conclusion is drawn. No public health advisory is ever generated automatically.
Report a water observation
Your report takes under 2 minutes. A researcher will review it — and you'll hear back.
📸 Photo evidence
📷
Tap to photograph the water
JPG · PNG · HEIC · Max 10 MB
● Photos provide AI-estimated visual proxy signals only — not laboratory measurements.
📍 Location & time
🔍 What do you observe?
Report goes to researcher queue after scoring
Evidence Quality Score
● Observed ● Estimated ● Contextual ● Unverified
⚠ EQS measures evidence quality, not water quality or pollution severity. This is not a water safety assessment.
0
EQS
EVIDENCE PIPELINE — your report's journey
✓
Observation received
✓
Evidence extracted
✓
Quality scored
✓
Spatial corroboration
✓
Signal detection
✓
Priority assigned
●
Researcher review
○
Validated / Field check
Evidence Quality Score breakdown measures evidence quality — NOT water safety
Why this score?
    AI Interpretation claude-sonnet-4-6 🟡 Estimated · Unverified
    Waiting for submission…

    Researcher dashboard
    Report review queue
    🚨
    Emerging Environmental Signal — Ulsoor Lake
    Detected by Haversine spatial algorithm · Reports warrant field verification · Not a confirmed pollution event
    6
    Reports in cluster
    72 h
    Time window
    1.8 km
    Radius
    74
    Avg EQS
    Moderate
    Confidence
    Common observations: unusual discoloration odor surface foam algae mats
    Cluster confidence: Moderate REQUIRES FIELD VERIFICATION
    Ulsoor Lake 12.9784° N · 77.6408° E Cubbon Park Pond HT-001 82 HT-002 78 HT-003 61 HT-005 71 HT-006 69 HT-007 77 HT-004 44 ⬤ CLUSTER ZONE · 6 reports · 1.8 km · 72h High priority Standard Low ⟳ cluster boundary · tap pins for details
    TEMPORAL PATTERN · Report frequency over 7 days
    ⚠ Frequency spike on Sep 22 is consistent with an environmental event warranting investigation — not a confirmed contamination finding.
    Your contribution
    My reports
    4
    Reports submitted
    66
    Average EQS
    2
    Clusters triggered
    Technical design
    System Architecture
    HydroTriage is designed as an API-first, modular intelligence pipeline. Every layer is independently replaceable.
    CITIZEN LAYER AI + PROCESSING ANALYTICS RESEARCHER LAYER Citizen App Photo · Location · Form HTML/JS · Offline-first Pseudonymous citizen ID Privacy Layer Consent · Data minimisation No PII stored · Pseudonymous ID HTTPS Observation API REST · JSON Schema Rate-limited · Validated WQX-compatible fields† Evidence Layer EQS scoring (5-factor) Completeness · GPS check Anomaly extraction AI Structuring Layer claude-sonnet-4-6 NLP · Pattern detection Explainable output [OBSERVED][ESTIMATED][UNVERIFIED] Spatial Analytics Haversine clustering Distance-time window Cluster confidence score SVG map · GeoJSON ready Temporal Analytics 7-day / 30-day aggregation Frequency baseline comparison Spike detection SVG trend chart Priority Engine EQS + cluster + temporal Transparent scoring formula Priority for Investigation Standard Review · Monitor Researcher Console Evidence triage queue Validate · Escalate · Dismiss Field Action Card generation Human judgment — not replaced Field Investigation Visual inspection · Sampling Laboratory confirmation Citizen feedback loop — outcome visible in My Reports Environmental Data Layer Weather context (OpenWeatherMap†) Seasonal baseline · DEMO fallback † WQX-compatible fields: design intent only — no live WQX integration in this prototype. Weather API: demo fallback active if unavailable.
    FRONTEND
    HTML5 · Vanilla JS (ES6+)
    CSS Custom Properties
    SVG (map + charts)
    Offline-first · No build step
    Single-file deployable
    AI LAYER
    Anthropic claude-sonnet-4-6
    Structured prompt engineering
    [OBSERVED][ESTIMATED] tags
    Explainability by design
    Human-in-the-loop required
    ANALYTICS
    Haversine spatial clustering
    Temporal frequency analysis
    Weighted EQS formula
    In-browser · No server needed
    GeoJSON-ready data model
    STANDARDS ALIGNMENT
    WQX field mapping (design)
    ISO 19156 observation model
    FAIR data principles
    Privacy by Design (GDPR)
    One Health framework
    EQS FORMULA — fully transparent, not a black box
    EQS = (Visual Evidence × 0.25)
        + (Observation Completeness × 0.20)
        + (Location Precision × 0.15)
        + (Independent Corroboration × 0.25)
        + (Temporal Relevance × 0.15)

    Visual Evidence: 80 (photo) | 28 (no photo)
    Completeness: min(100, fields_filled × 19)
    Location Precision: 85 (GPS captured)
    Corroboration: 80 (2+ anomalies) | 55 (1) | 28 (none)
    Temporal Relevance: 72 (event context) | 50 (baseline)
    ⚠ EQS measures evidence quality. It does not indicate water safety, pollution severity, or health risk. Weights are documented and adjustable by researchers.
    SPATIAL CLUSTERING ALGORITHM — calculated from dataset, not hardcoded
    function haversineKm(lat1, lon1, lat2, lon2)
      → returns great-circle distance in km

    clusterReports(reports, radiusKm=1.8, windowHours=72)
      → for each report pair: if distance ≤ radiusKm
        AND time difference ≤ windowHours → same cluster
      → returns: { members[], centroid, avgEQS, confidence }

    Confidence: HIGH (≥8 reports) | MODERATE (4–7) | LOW (2–3)
    Transparency & interoperability
    Data Model & FAIR Principles
    Every observation is a structured, traceable, reusable data object. HydroTriage is designed to be FAIR by default.
    🔍
    Findable
    Unique observation_id per report. Indexed by location, timestamp, type, and priority. Machine-readable metadata attached to every observation.
    🔓
    Accessible
    Export as JSON or CSV. Researcher-level data access controlled. Citizen data pseudonymised — no PII in exports. Open observation schema.
    🔗
    Interoperable
    Fields mapped to WQX observation vocabulary. ISO 19156 compatible observation model. GeoJSON-ready coordinates. Designed for FHIR-compatible extension†.
    ♻️
    Reusable
    Full provenance chain: citizen_id → observation → AI processing → researcher action. Validation status tracks data lifecycle. Export includes full audit trail.
    OBSERVATION DATA SCHEMA — JSON
    ⬤ DEMO · Simulated records
    {
      "observation_id": "HT-001",
      "timestamp_utc": "2026-09-22T02:44:00Z",
      "latitude": 12.9784,
      "longitude": 77.6408,
      "location_name": "Ulsoor Lake — North Bank",
      "observation_type": "surface_condition",
      "reported_features": {
        "colour": "green-brown",
        "surface": "algae_mats",
        "odor": "mild",
        "wildlife": "less_visible"
      },
      "evidence_type": ["photo", "structured_form"],
      "eqs": 82,
      "eqs_factors": {
        "visual_evidence": 85,
        "completeness": 90,
        "location_precision": 80,
        "corroboration": 85,
        "temporal_relevance": 70
      },
      "priority": "high",
      "cluster_id": "CLU-001",
      "citizen_pseudonym": "CitizenObserver_7a3f",
      "validation_status": "pending_review",
      "ai_interpretation": "Observed pattern consistent with...",
      "ai_confidence": "moderate-estimated",
      "source_type": "citizen_science",
      "wqx_characteristic": "Surface appearance"
    }
    PRIVACY BY DESIGN
    ✓Data minimisation
    Only observation data collected — no name, email, or device ID stored
    ✓Pseudonymous ID
    Citizens assigned a random token (e.g. CitizenObserver_7a3f) at session start
    ✓Explicit consent
    Observation form includes consent checkbox before submission
    ✓Researcher access control
    Raw citizen notes accessible only to authenticated researchers
    EXPORT DEMO DATASET
    Export the current observation dataset as structured JSON. Includes all observation fields, EQS scores, AI interpretations, and validation status. Pseudonymised — no PII included.
    ⬤ DEMO DATA — all records are simulated for prototype demonstration purposes
    † WQX (Water Quality Exchange) and FHIR (Fast Healthcare Interoperability Resources) integrations are architectural design goals — not implemented in this prototype. Field naming is compatible by design.