GeoPulseOpen app

How risk is scored

GeoPulse produces a single 0–100 situational risk score: a weighted average of the available signal sub-scores. Weights are renormalized over only the signals that resolved, so a missing one never silently counts as zero.

Signal weights

  • Population30%
  • Traffic25% (deferred)
  • Weather25%
  • Air quality20%

score = Σ(weightᵢ × sub-scoreᵢ) ÷ Σ(weightᵢ), over available signals only.

Sub-scores (each 0–100)

Population
clamp(density ÷ 15,000 × 100)
Air quality
clamp(US AQI ÷ 3)
Weather
clamp(40×rainProb + 0.6×max(0, °C−32) + 0.6×max(0, 5−°C) + 1.2×max(0, wind−25))
Traffic
congestion % from sampled routes (Phase 2, deferred)

Risk bands

Low
0–25
Moderate
26–50
Elevated
51–75
High
76–100

Constants live in one place (RISK_CONFIG) and are tuned against real data, not hardcoded magic.