Storm Signal
A disaster-response monitoring dashboard that routes high-volume messages into actionable categories using a compact, auditable machine learning pipeline built for fast local deployment.
The Context
Storm Signal routes high-volume disaster messages into triage categories faster than manual review.
System context
- The core risk is signal overload. When routing slows or becomes inconsistent, medical, shelter, and rescue requests are buried or misprioritized.
- Storm Signal is designed for local deployment with low compute overhead, explicit thresholds, and auditable hierarchy rules.
Operational stakes
If routing fails at surge volume, one life-critical message can drop below lower-priority noise.
The design priority is dependable triage under load.
Design Decisions
In disaster response, bandwidth is limited, conditions change fast, and operators need consistent routing. This architecture favors compact, inspectable machine learning over larger hosted models so behavior stays predictable when the environment isn't.
Controlled Routing
Prioritizing deterministic categorization over generative flexibility. Responders need to know exactly where a message goes.
Auditability
System decisions must be traceable. Explicit thresholds and hierarchy controls ensure behavior is predictable.
Human-in-the-loop
Signals inform judgment; they do not replace it. The system exposes confidence levels to help operators make fast, informed decisions.
System Architecture
A monitoring dashboard with a constrained machine learning core. Messages are ingested, classified, triaged, and routed to human responders.
External Data Sources
High-Volume Social Data Streams
Machine Learning
Threshold Tuning (Recall-Optimized)
Sparse Text Classifier (TF-IDF + Logistic Regression)
Hierarchy Rules (Taxonomic Consistency)
Monitoring Dashboard
Signal Aggregation
Live Feed Priority Tagged Signals
Confidence Visualization
Model Dashboard
Action Layer
Human Triage & Dispatch
Deployment Constraints
From 900 MB to 4.5 MB
The initial Random Forest model generated a 900 MB model, making lightweight deployment impossible.
This was replaced with Logistic Regression. Vocabulary filtering and a 15K feature cap shrank the model from 67.7 MB to 4.5 MB while keeping the classifier practical for deployment.
