Development of an AI system for predicting energy consumption
Electricity consumption forecasting is necessary at all levels of the energy system: the facility (industrial plant, building), the distribution network, and the system operator. Forecast accuracy directly impacts the cost of balancing: every 1 percent error costs grid companies millions of rubles per year.
Hierarchy of forecasting problems
Object level:
- Forecasting building/business consumption for peak load management
- BEMS (Building Energy Management System): optimization of HVAC and lighting operation
- Horizon: 15 minutes - 24 hours
Distribution network level:
- Load forecast for transformer substations
- Load balancing between feeders
- Horizon: 1-7 days
System level (SO UES):
- Forecast of consumption by the UES (unified energy systems)
- Planning of dispatch power plants
- Horizon: 1-7 days, quarterly and annual
Key factors
Weather (40-60% of consumption variability):
- Temperature: the main driver. Heating Degree Days (HDD) and Cooling Degree Days (CDD).
- Temperature-Load curve: U-shaped for residential applications (heating + air conditioning)
- Humidity: apparent temperature, affects air conditioning
- Solar radiation: direct influence on building cooling
Time patterns:
- Daily profile: weekdays (office peak), weekends (residential peak)
- Seasonal: summer vs. winter vs. transitional period
- Holidays: industry is at a standstill, the residential sector consumes differently
Structural changes:
- Commissioning of new businesses/shopping centers
- Electrification of transport: EV charging creates new peak profiles
- Heat pumps: consumption increases in winter
Models for different horizons
Very Short-Term (15 min - 4 hours):
- LSTM with a sequence of the last 24-48 hours
- Feature: recent load, weather (actual + forecast)
- Metrics: MAPE < 3%
Short-Term (1-7 days):
import lightgbm as lgb
features = {
'load_lag_24h': load_yesterday_same_hour,
'load_lag_168h': load_last_week_same_hour,
'temp_forecast': temperature_forecast,
'hdd': max(0, 18 - temp_forecast), # Heating Degree Days base 18°C
'cdd': max(0, temp_forecast - 22), # Cooling Degree Days
'hour': hour_of_day,
'dow': day_of_week,
'is_holiday': holiday_flag,
'sunrise_hour': astronomical_sunrise,
'ghi_forecast': global_horizontal_irradiance
}
model = lgb.LGBMRegressor(n_estimators=500)
Medium-Term (month - year):
- Seasonal decomposition + trend model
- Macroeconomic indicators (GDP → industrial production → energy consumption)
- MAPE 3-7%
Consumption Anomaly Detection
Baseline + anomaly:
def detect_consumption_anomaly(actual, predicted, window=168):
# Normalized residual
residuals = actual - predicted
baseline_std = residuals.rolling(window).std()
z_score = residuals / baseline_std
return z_score.abs() > 3.0
# High z-score → possible leak, equipment not working properly
# Low z-score → equipment is stopped (holiday, breakdown)
Abnormal consumption → automatic notification to the enterprise energy manager.
Demand Response integration
The forecast allows for automated demand response:
If there is an expected shortage in the network:
- SO UES announces a price signal in DAM (Day Ahead Market)
- The object's BEMS receives a signal
- Automatic: Flexible load shifting (EV charging, heat storage tank heating)
- Reducing the peak by 10-20%
For industrial consumers (RTE / KOM): DR contract: you agree to reduce the load by X MW when the signal is given → you receive a bonus. The ML system accurately determines the flexible load (can be transferred without damage to production).
Integration with management systems
- SCADA ACS TP: obtaining actual load data in real time
- ASKUE (Automated System of Commercial Electricity Metering): data from metering devices
- BI systems: Power BI / Tableau dashboards for energy managers
- ERP SAP IS-U: integration for energy supply companies
Metrics:
- MAPE of the daily forecast: < 5% for the system operator, < 3% for the object
- Peak Load Accuracy: peak forecast error < 2%
- Cost savings: reduction of off-balance sheet value
Timeframe: Basic short-term forecasting model for a single object: 3-4 weeks. Hierarchical network-level system with anomaly detection and demand response: 3-4 months.







