GridPulse is an end-to-end energy data analytics project that analyzes historical electricity demand in the Southwest Power Pool (SWPP) region.
The project retrieves historical electricity demand data from the U.S. Energy Information Administration (EIA), processes and validates the data with Python, performs exploratory analysis, and presents the results through an interactive Power BI dashboard.
The analysis currently focuses on 2024 and 2025 electricity demand patterns.
The project was developed to:
- Build an automated pipeline for extracting historical electricity demand data.
- Clean and transform raw EIA data into an analysis-ready dataset.
- Validate the historical dataset for data quality and continuity.
- Analyze hourly, daily, monthly, weekday, and weekend demand patterns.
- Compare electricity demand between 2024 and 2025.
- Identify peak and minimum electricity demand.
- Measure year-over-year changes in average demand.
- Create an interactive Power BI dashboard for communicating the findings.
The Power BI dashboard provides an interactive view of historical SWPP electricity demand for 2024–2025.
The overview summarizes average, peak, and minimum electricity demand, together with hourly, monthly, weekday/weekend, and day-of-week demand patterns.
The heat map shows how average electricity demand changes across hours of the day and months of the year, making seasonal and intraday demand patterns easier to identify.
The complete interactive Power BI report is available in:
powerbi/GridPulse_SWPP_Demand_Analysis.pbix
Data is obtained from the U.S. Energy Information Administration (EIA) API.
Region analyzed:
Southwest Power Pool (SWPP)
The dataset contains historical electricity demand observations used to examine how electricity consumption changes across hours, days, months, and years.
- Python
- Pandas
- EIA API
- Power BI
- DAX
- Git
- GitHub
- Visual Studio Code
The project follows the workflow:
EIA API
↓
Python Data Extraction
↓
Raw Historical Data
↓
Data Cleaning and Transformation
↓
Data Validation
↓
Exploratory Analysis
↓
Power BI Dataset Preparation
↓
Interactive Power BI Dashboard
The main Python scripts include:
Retrieves historical SWPP electricity demand data from the EIA API and stores the raw observations locally.
Cleans and transforms the historical data into an analysis-ready format and performs data-range and continuity validation.
Performs analytical processing and produces summary datasets used to investigate electricity demand patterns.
Prepares the processed electricity demand dataset for use in Power BI.
The Power BI report contains four analytical pages:
Provides a high-level summary of SWPP electricity demand, including:
- Average Demand
- Peak Demand
- Minimum Demand
- Peak-to-Average Ratio
- Average Demand Year-over-Year Change
- Weekday Premium
- Monthly demand comparison
- Hourly demand profile
- Weekday versus weekend demand
- Demand by day of week
Shows how average electricity demand changes throughout a 24-hour period.
Displays average electricity demand by month and hour, making it easier to identify periods of relatively high and low demand.
Compares average electricity demand between weekdays and weekends.
The analysis shows several clear demand patterns:
- Electricity demand varies substantially throughout the day.
- Demand generally falls during the morning hours before increasing later in the day.
- Summer months show some of the highest electricity demand levels.
- Weekday demand is higher than weekend demand.
- Average electricity demand increased from 2024 to 2025.
- The 2025 average demand is approximately 3.7% higher than the 2024 average demand.
For the selected year, the dashboard dynamically calculates:
- Average Demand
- Peak Demand
- Minimum Demand
- Peak-to-Average Ratio
- Year-over-Year Average Demand Change
- Weekday Premium
Users can select 2024 or 2025 to examine year-specific demand behavior.
GridPulse/
│
├── data/
├── notebooks/
├── powerbi/
├── reports/
├── sql/
├── src/
│ ├── extract_historical_eia.py
│ ├── transform_historical_eia.py
│ ├── analyze_historical_eia.py
│ └── prepare_powerbi_data.py
│
├── .env
├── .gitignore
├── README.md
└── requirements.txt
-
Clone the repository.
-
Create and activate a Python virtual environment.
-
Install dependencies:
pip install -r requirements.txt
