Introduction
Extreme weather events are the single largest cause of power outages in the United States, costing an estimated $20 to $55 billion annually. For utility operators like San Diego Gas & Electric (SDG&E), the challenge is not just preventing these outages, but responding to them efficiently when they inevitably occur. Currently, the industry standard for severe weather response is largely reactive: utilities often wait for a customer to report a "lights out" event before a repair crew is assigned and dispatched.
This "wait-and-see" approach creates significant operational bottlenecks. If an operator underestimates a storm's severity, crews are scrambled at the last minute, delaying restoration and increasing safety risks for the public. Conversely, if they overestimate the danger, contract crews sit idle on standby, racking up unnecessary costs that are ultimately passed on to the community.
While recent advancements in machine learning have successfully modeled where and when an outage might occur, there is a massive gap in the research regarding the "input side" of the restoration equation: the specific human labor resources required to fix it. Existing models can predict a grid failure, but they fail to quantify how many people need to be sent in the truck.
To address this gap, we created PREVAIL (Predictive Response for Emergency Volume Assessment in Incident Locations). PREVAIL transitions the decision-making process from reactive to proactive. By explicitly predicting the specific crew size required for impending weather-driven outages over a weekly planning window, we aim to optimize resource allocation before the weather event even makes landfall.

Geospatial distribution of historical power outages across the SDG&E service territory, color-coded by primary cause. The density and variety of these events illustrate the logistical complexity of coordinating a proactive emergency response.
Methods
To build a system capable of predicting crew sizes before a storm hits, we designed an intelligent data pipeline. This required a robust engineering process to combine millions of weather data points with years of historical human dispatch records into a single, unified "truth."
Data Collection & Preparation
Our project integrates three high-volume datasets provided by SDG&E, spanning from 2021 to 2025. We combined outage records (the "where"), resource logs (the "who"), and weather sensor data (the "why") to see how the environment dictates the human response.
Because weather stations and dispatch logs use different formats, we mapped everything to a uniform "honeycomb" grid using H3 hexagons. We even "imputed" or filled in missing time gaps in the records to ensure our dataset was as complete and dense as possible.
Technical Details: Data Cleaning & Merging
• Normalization: All timestamps were converted to UTC for consistency across disparate data sources.
• Aggregation: We used a unique pair-ID strategy (outage + station) to account for multiple sensors recording the same event, taking the maximum duration to plan for "worst-case" scenarios.
• Keyword Parsing: We scanned thousands of text descriptions for keywords like "wind," "storm," and "lightning" to verify that outages were truly weather-driven.
Feature Engineering: Teaching the AI "Context"
An AI is only as good as the features it learns from. We didn't just look at the current temperature; we engineered specialized features that capture the physics of the grid. For example, we calculated "Lag" features to tell the model what the weather was like 1, 6, and 24 hours before a failure, capturing the cumulative stress on a power line.
- Thermal Stress: Tracking how much the temperature changed in 24 hours.
- The "Galloping" Effect: Combining wind speed and heat to predict when power lines might sag and sway into each other.
- Neighbor Awareness: Looking at weather in surrounding areas to recognize widespread storm fronts.
Predicting Crew Size: Our Three-Stage AI
We built our final engine by combining the strengths of different modeling approaches into a Stacking Ensemble. This allows our system to be stable during normal days but flexible enough to react to violent, unpredictable storms.
1. The Baseline
A linear model (LASSO) to filter through 200+ variables and find the most important drivers.
2. The Refinement
A non-linear model (XGBoost) using a "Poisson" approach to understand that crews come in whole numbers (1, 2, 3), not decimals.
3. The Ensemble
A final "meta-learner" that combines both predictions to give us our most accurate result.

Regression parity plot for the LASSO model. The results demonstrate high precision for standard, low-volume crew dispatches, while showing increased variance and a tendency to underestimate for rare, high-capacity emergency events.
From Code to Control Room
To prove our system works in the real world, we built an interactive dashboard using Next.js. Because our dataset covers 2021 to 2025, the dashboard currently acts as a powerful retrospective tool.
Users can select past storm weeks to see exactly how our model would have performed. The system processes those historical weather logs and generates a color-coded map, allowing us to validate our "high-risk" red hexagons against actual past dispatches. This proves that the framework is ready to be connected to live weather APIs for real-time, life-saving logistical planning in the future.
What We Built vs. What We Reused
PREVAIL is built on a foundation of industry-standard open-source tools, but the core intellectual contribution — the data pipeline, feature engineering, modeling strategy, and dashboard — was designed and implemented entirely by our team.
Built by Our Team
- • End-to-end ETL pipeline merging outage, dispatch, and weather datasets.
- • H3 hexagon grid mapping strategy to spatially unify disparate data sources.
- • 200+ engineered features. (Lag windows, thermal stress, neighbor aggregation, etc.)
- • Stacking ensemble architecture. (LASSO + XGBoost Meta-Learner)
- • Interactive Next.js dashboard with week selection, hex map, and dispatch cards.
- • Color-coded Mapbox visualization layer with per-hex drill-down.
Tools & Libraries Reused
- • Scikit-Learn — LASSO Regression and Stacking Ensemble Framework
- • XGBoost — Gradient boosted tree model with Poisson objective function.
- • Pandas / NumPy — Data cleaning and feature computation.
- • H3 (Uber) — Hexagonal hierarchical geospatial indexing.
- • Mapbox GL JS — Interactive map rendering.
- • Next.js / React — Dashboard Frontend Framework
- • Tailwind CSS — UI Styling
Results
PREVAIL isn't just a set of numbers; it's a living tool. We’ve turned our complex machine learning models into an interactive dashboard that helps utility managers "see" into the past to better plan for the future. By validating our model against real-world historical storms, we’ve proven that data-driven staging is ready for the real world.
0.89
Crew Members
Final MAE
>70%
Within ±1 Person
Operational Accuracy
1,500+
Storm Responses
Training Samples
75M+
Hourly Records
Weather Readings
1. The "Bird's Eye" View
Managers start by picking a historical storm week, from 2021 to 2024. The dashboard instantly summarizes the total crew count needed for the entire region.
Think of this as an early warning validation tool. It lets leadership see exactly how many people they would have needed to call in before a weather event hit the grid.

2. Mapping the Danger Zones
Our map doesn't just show dots; it shows impact zones. Using a color-coded "honeycomb" grid, we highlight high-risk areas in red and lower-risk areas in yellow.
By clicking on any cell, an operator gets a localized report: the exact temperature, wind speeds, and—most importantly, how many crew members our AI recommended versus what actually happened for instant validation.

3. Clear Staging Orders
Below the map, we provide logistics cards. These aren't abstract data points; they serve as simulated "marching orders".
Each card lists the specific GPS coordinates and the exact number of personnel required. This allows a dispatcher to move from a visual map to a concrete staging plan in seconds.

How to Read the Results: Signal vs. Noise
What the map colors mean
Hex cells are colored on a gradient from light red (low predicted crew demand) to dark red (high predicted crew demand). A dark red cell is a meaningful signal, as it means the model identified a confluence of weather stressors (high winds, thermal stress, neighbor pressure) that historically required larger dispatch teams. A light red cell in an otherwise calm week is expected baseline noise and does not warrant action on its own.
When a prediction is reliable
The model performs best for standard dispatch sizes of 2–3 crew members, which account for the majority of historical events. In this range, over 70% of predictions land within ±1 person of the actual dispatch. A cluster of adjacent red hexes reinforces the signal, widespread high-risk zones are far more actionable than a single isolated red cell, which may reflect localized sensor noise or a data gap.
When to apply extra caution
For rare, high-severity events requiring 5+ crew members, the model tends to underestimate. This is a known limitation of training on historically sparse extreme events. If weather forecasts indicate an unusually severe storm (e.g., wind gusts exceeding historical norms), treat the model's crew estimate as a floor, not a ceiling, and add a buffer based on dispatcher judgment.
MAE in plain terms
An MAE of 0.89 means that on average, the model is off by less than one person. In practice, this is operationally insignificant for small crews, but for a dispatch of 8 it could mean the difference between 7 and 9 — so predictions above 4 should always be reviewed alongside weather severity and local infrastructure context before finalizing a staging order.
The Verdict
By comparing our AI's predictions to years of real SDG&E logs, we found that over 70% of our predictions land within just one person of the actual need. This confirms that PREVAIL can confidently reduce the time communities spend in the dark while saving utilities millions in standby costs.
Discussion
PREVAIL proves that we can turn weather data into a strategic roadmap for utility crews. While our AI is highly accurate, real-world engineering always comes with unique hurdles. We believe in being transparent about where our model stands today and where we plan to take it tomorrow.
Current Challenges
The Human Element
AI can predict a storm, but it can't always predict a last-minute judgment call in the dispatch room. Sometimes, human priorities change in ways that raw weather data just can't see.
Map Resolution
While our "honeycomb" grid is robust, linking ZIP-code-level logs to specific GPS stations creates a small amount of "geographic noise". This is an area we are constantly refining.
Data Privacy
To keep the grid secure, we omitted highly sensitive infrastructure details from the public dashboard. Security is our priority, even if it means showing less detail to the public.
The Road Ahead
Conclusion
PREVAIL proves that we no longer have to wait for the lights to go out before we act. By turning complex weather data into exact workforce numbers, we've built a template for a more resilient, proactive energy grid.
For the Utility
Accurate staging means drastically reducing the cost of keeping contract crews on standby. It turns a "guess" into a data-driven strategy, ensuring every dollar spent on storm response is used efficiently.
For the Community
More importantly, PREVAIL helps get the power back on faster. By having the right teams in the right place before a storm hits, we can minimize downtime for hospitals, businesses, and families.
As extreme weather becomes more frequent, tools like PREVAIL will be the backbone of a reliable society. We are proud to set a new data-driven standard—turning the "wait-and-see" approach of the past into a proactive promise for the future.