BPA Demand Forecast Accuracy: Error, Bias and Worst Miss, 28 September to 28 October 2026
The day-ahead demand forecast for BPA was off by 1.3% on average (mean absolute percentage error) over 719 hours from 28 September to 28 October 2026, and 98% of hours landed within 5% of the reading. Its bias was +0.1%: it ran close to balanced on average. The largest miss was 469 MW (6.5%) too high at 26 Oct 2026, 15:00 PDT (UTC-07:00). Dates and times are local (America/Los_Angeles).
Key Facts
- The day-ahead demand forecast for BPA was off by 1.3% on average (mean absolute percentage error) over 719 hours from 28 September to 28 October 2026, and 98% of hours landed within 5% of the reading. Its bias was +0.1%: it ran close to balanced on average. The largest miss was 469 MW (6.5%) too high at 26 Oct 2026, 15:00 PDT (UTC-07:00).
- Across 53 US grids ranked by average error over their own latest 30 day windows, BPA came 2 (1 is the smallest error).
- On average the forecast differed from reported demand by 90 MW, against average demand of 6,790 MW.
- The forecast was above reported demand in 50% of compared hours.
Forecast Error at a Glance
719 hours from 28 September to 28 October 2026Average error is the mean absolute percentage gap between the forecast and reported demand. Bias is the signed mean (+4 MW per hour on average): the forecast ran close to balanced on average. The worst miss was 469 MW (6.5%) too high at 26 Oct 2026, 15:00 PDT (UTC-07:00): forecast 7,700 MW, reported 7,231 MW.
Source: U.S. Energy Information Administration (EIA). (US Government work, public domain) Data as of 2026-10-28. Accuracy is computed by World Power Monitor from the operator's hourly forecast and reported demand.
Forecast and Reported Demand, Last 7 Days
Local time, to 28 Oct 2026, 04:00 PDT (UTC-07:00)Show the data table (168 rows)
| Local hour | Reported demand | Day-ahead forecast |
|---|---|---|
| 21 Oct, 05:00 | 7,041 MW | 6,904 MW |
| 21 Oct, 06:00 | 7,681 MW | 7,532 MW |
| 21 Oct, 07:00 | 8,086 MW | 7,939 MW |
| 21 Oct, 08:00 | 8,078 MW | 7,951 MW |
| 21 Oct, 09:00 | 7,874 MW | 7,839 MW |
| 21 Oct, 10:00 | 7,554 MW | 7,526 MW |
| 21 Oct, 11:00 | 7,310 MW | 7,292 MW |
| 21 Oct, 12:00 | 7,121 MW | 7,087 MW |
| 21 Oct, 13:00 | 7,010 MW | 6,952 MW |
| 21 Oct, 14:00 | 6,917 MW | 6,861 MW |
| 21 Oct, 15:00 | 6,912 MW | 6,832 MW |
| 21 Oct, 16:00 | 6,995 MW | 6,926 MW |
| 21 Oct, 17:00 | 7,161 MW | 7,106 MW |
| 21 Oct, 18:00 | 7,362 MW | 7,321 MW |
| 21 Oct, 19:00 | 7,393 MW | 7,356 MW |
| 21 Oct, 20:00 | 7,271 MW | 7,214 MW |
| 21 Oct, 21:00 | 7,024 MW | 6,980 MW |
| 21 Oct, 22:00 | 6,696 MW | 6,666 MW |
| 21 Oct, 23:00 | 6,372 MW | 6,411 MW |
| 22 Oct, 00:00 | 6,256 MW | 6,111 MW |
| 22 Oct, 01:00 | 6,175 MW | 6,091 MW |
| 22 Oct, 02:00 | 6,135 MW | 6,082 MW |
| 22 Oct, 03:00 | 6,238 MW | 6,148 MW |
| 22 Oct, 04:00 | 6,434 MW | 6,382 MW |
| 22 Oct, 05:00 | 6,972 MW | 6,895 MW |
| 22 Oct, 06:00 | 7,572 MW | 7,518 MW |
| 22 Oct, 07:00 | 7,898 MW | 7,906 MW |
| 22 Oct, 08:00 | 7,919 MW | 7,914 MW |
| 22 Oct, 09:00 | 7,853 MW | 7,793 MW |
| 22 Oct, 10:00 | 7,694 MW | 7,539 MW |
| 22 Oct, 11:00 | 7,531 MW | 7,352 MW |
| 22 Oct, 12:00 | 7,362 MW | 7,210 MW |
| 22 Oct, 13:00 | 7,220 MW | 7,059 MW |
| 22 Oct, 14:00 | 7,173 MW | 6,957 MW |
| 22 Oct, 15:00 | 7,140 MW | 6,929 MW |
| 22 Oct, 16:00 | 7,233 MW | 7,009 MW |
| 22 Oct, 17:00 | 7,395 MW | 7,224 MW |
| 22 Oct, 18:00 | 7,590 MW | 7,455 MW |
| 22 Oct, 19:00 | 7,599 MW | 7,487 MW |
| 22 Oct, 20:00 | 7,481 MW | 7,360 MW |
| 22 Oct, 21:00 | 7,241 MW | 7,141 MW |
| 22 Oct, 22:00 | 6,901 MW | 6,842 MW |
| 22 Oct, 23:00 | 6,598 MW | 6,580 MW |
| 23 Oct, 00:00 | 6,447 MW | 6,347 MW |
| 23 Oct, 01:00 | 6,359 MW | 6,283 MW |
| 23 Oct, 02:00 | 6,306 MW | 6,275 MW |
| 23 Oct, 03:00 | 6,381 MW | 6,353 MW |
| 23 Oct, 04:00 | 6,581 MW | 6,582 MW |
| 23 Oct, 05:00 | 6,957 MW | 7,054 MW |
| 23 Oct, 06:00 | 7,536 MW | 7,660 MW |
| 23 Oct, 07:00 | 7,949 MW | 8,043 MW |
| 23 Oct, 08:00 | 8,032 MW | 8,070 MW |
| 23 Oct, 09:00 | 7,908 MW | 7,895 MW |
| 23 Oct, 10:00 | 7,659 MW | 7,700 MW |
| 23 Oct, 11:00 | 7,430 MW | 7,508 MW |
| 23 Oct, 12:00 | 7,216 MW | 7,348 MW |
| 23 Oct, 13:00 | 7,114 MW | 7,197 MW |
| 23 Oct, 14:00 | 6,958 MW | 7,126 MW |
| 23 Oct, 15:00 | 6,913 MW | 7,115 MW |
| 23 Oct, 16:00 | 6,949 MW | 7,209 MW |
| 23 Oct, 17:00 | 7,099 MW | 7,413 MW |
| 23 Oct, 18:00 | 7,294 MW | 7,619 MW |
| 23 Oct, 19:00 | 7,313 MW | 7,613 MW |
| 23 Oct, 20:00 | 7,268 MW | 7,478 MW |
| 23 Oct, 21:00 | 7,152 MW | 7,291 MW |
| 23 Oct, 22:00 | 6,946 MW | 7,020 MW |
| 23 Oct, 23:00 | 6,777 MW | 6,777 MW |
| 24 Oct, 00:00 | 6,634 MW | 6,559 MW |
| 24 Oct, 01:00 | 6,588 MW | 6,445 MW |
| 24 Oct, 02:00 | 6,576 MW | 6,405 MW |
| 24 Oct, 03:00 | 6,642 MW | 6,484 MW |
| 24 Oct, 04:00 | 6,814 MW | 6,652 MW |
| 24 Oct, 05:00 | 7,066 MW | 6,948 MW |
| 24 Oct, 06:00 | 7,497 MW | 7,371 MW |
| 24 Oct, 07:00 | 7,872 MW | 7,805 MW |
| 24 Oct, 08:00 | 8,084 MW | 8,039 MW |
| 24 Oct, 09:00 | 8,034 MW | 7,970 MW |
| 24 Oct, 10:00 | 7,791 MW | 7,696 MW |
| 24 Oct, 11:00 | 7,553 MW | 7,410 MW |
| 24 Oct, 12:00 | 7,312 MW | 7,228 MW |
| 24 Oct, 13:00 | 7,104 MW | 7,033 MW |
| 24 Oct, 14:00 | 6,981 MW | 6,912 MW |
| 24 Oct, 15:00 | 6,882 MW | 6,878 MW |
| 24 Oct, 16:00 | 6,944 MW | 6,940 MW |
| 24 Oct, 17:00 | 7,080 MW | 7,102 MW |
| 24 Oct, 18:00 | 7,202 MW | 7,280 MW |
| 24 Oct, 19:00 | 7,181 MW | 7,301 MW |
| 24 Oct, 20:00 | 7,085 MW | 7,230 MW |
| 24 Oct, 21:00 | 6,943 MW | 7,063 MW |
| 24 Oct, 22:00 | 6,666 MW | 6,815 MW |
| 24 Oct, 23:00 | 6,447 MW | 6,606 MW |
| 25 Oct, 00:00 | 6,307 MW | 6,355 MW |
| 25 Oct, 01:00 | 6,206 MW | 6,304 MW |
| 25 Oct, 02:00 | 6,164 MW | 6,265 MW |
| 25 Oct, 03:00 | 6,198 MW | 6,282 MW |
| 25 Oct, 04:00 | 6,285 MW | 6,341 MW |
| 25 Oct, 05:00 | 6,493 MW | 6,503 MW |
| 25 Oct, 06:00 | 6,783 MW | 6,799 MW |
| 25 Oct, 07:00 | 7,122 MW | 7,145 MW |
| 25 Oct, 08:00 | 7,399 MW | 7,459 MW |
| 25 Oct, 09:00 | 7,521 MW | 7,527 MW |
| 25 Oct, 10:00 | 7,452 MW | 7,427 MW |
| 25 Oct, 11:00 | 7,438 MW | 7,315 MW |
| 25 Oct, 12:00 | 7,348 MW | 7,240 MW |
| 25 Oct, 13:00 | 7,262 MW | 7,126 MW |
| 25 Oct, 14:00 | 7,200 MW | 7,061 MW |
| 25 Oct, 15:00 | 7,171 MW | 7,072 MW |
| 25 Oct, 16:00 | 7,241 MW | 7,155 MW |
| 25 Oct, 17:00 | 7,369 MW | 7,342 MW |
| 25 Oct, 18:00 | 7,484 MW | 7,513 MW |
| 25 Oct, 19:00 | 7,408 MW | 7,527 MW |
| 25 Oct, 20:00 | 7,259 MW | 7,374 MW |
| 25 Oct, 21:00 | 6,982 MW | 7,140 MW |
| 25 Oct, 22:00 | 6,631 MW | 6,812 MW |
| 25 Oct, 23:00 | 6,315 MW | 6,530 MW |
| 26 Oct, 00:00 | 6,170 MW | 6,340 MW |
| 26 Oct, 01:00 | 6,025 MW | 6,216 MW |
| 26 Oct, 02:00 | 6,023 MW | 6,199 MW |
| 26 Oct, 03:00 | 6,060 MW | 6,280 MW |
| 26 Oct, 04:00 | 6,277 MW | 6,516 MW |
| 26 Oct, 05:00 | 6,737 MW | 7,008 MW |
| 26 Oct, 06:00 | 7,267 MW | 7,631 MW |
| 26 Oct, 07:00 | 7,670 MW | 7,851 MW |
| 26 Oct, 08:00 | 7,759 MW | 7,845 MW |
| 26 Oct, 09:00 | 7,728 MW | 7,765 MW |
| 26 Oct, 10:00 | 7,602 MW | 7,933 MW |
| 26 Oct, 11:00 | 7,495 MW | 7,829 MW |
| 26 Oct, 12:00 | 7,431 MW | 7,739 MW |
| 26 Oct, 13:00 | 7,336 MW | 7,755 MW |
| 26 Oct, 14:00 | 7,259 MW | 7,715 MW |
| 26 Oct, 15:00 | 7,231 MW | 7,700 MW |
| 26 Oct, 16:00 | 7,314 MW | 7,781 MW |
| 26 Oct, 17:00 | 7,542 MW | 7,949 MW |
| 26 Oct, 18:00 | 7,711 MW | 8,093 MW |
| 26 Oct, 19:00 | 7,651 MW | 8,037 MW |
| 26 Oct, 20:00 | 7,432 MW | 7,851 MW |
| 26 Oct, 21:00 | 7,148 MW | 7,552 MW |
| 26 Oct, 22:00 | 6,766 MW | 7,160 MW |
| 26 Oct, 23:00 | 6,523 MW | 6,845 MW |
| 27 Oct, 00:00 | 6,340 MW | 6,412 MW |
| 27 Oct, 01:00 | 6,228 MW | 6,155 MW |
| 27 Oct, 02:00 | 6,180 MW | 6,068 MW |
| 27 Oct, 03:00 | 6,191 MW | 6,082 MW |
| 27 Oct, 04:00 | 6,414 MW | 6,249 MW |
| 27 Oct, 05:00 | 6,827 MW | 6,652 MW |
| 27 Oct, 06:00 | 7,352 MW | 7,165 MW |
| 27 Oct, 07:00 | 7,704 MW | 7,523 MW |
| 27 Oct, 08:00 | 8,021 MW | 7,585 MW |
| 27 Oct, 09:00 | 7,710 MW | 7,538 MW |
| 27 Oct, 10:00 | 7,619 MW | 7,438 MW |
| 27 Oct, 11:00 | 7,575 MW | 7,350 MW |
| 27 Oct, 12:00 | 7,493 MW | 7,305 MW |
| 27 Oct, 13:00 | 7,372 MW | 7,227 MW |
| 27 Oct, 14:00 | 7,294 MW | 7,163 MW |
| 27 Oct, 15:00 | 7,237 MW | 7,160 MW |
| 27 Oct, 16:00 | 7,348 MW | 7,262 MW |
| 27 Oct, 17:00 | 7,623 MW | 7,482 MW |
| 27 Oct, 18:00 | 7,840 MW | 7,695 MW |
| 27 Oct, 19:00 | 7,831 MW | 7,670 MW |
| 27 Oct, 20:00 | 7,640 MW | 7,524 MW |
| 27 Oct, 21:00 | 7,339 MW | 7,260 MW |
| 27 Oct, 22:00 | 7,001 MW | 6,906 MW |
| 27 Oct, 23:00 | 6,733 MW | 6,633 MW |
| 28 Oct, 00:00 | 6,537 MW | 6,271 MW |
| 28 Oct, 01:00 | 6,424 MW | 6,200 MW |
| 28 Oct, 02:00 | 6,429 MW | 6,171 MW |
| 28 Oct, 03:00 | 6,428 MW | 6,216 MW |
| 28 Oct, 04:00 | 6,613 MW | 6,437 MW |
Assumptions
- Only hours with both a forecast and a positive demand reading count (719 of 720 hours in the window). Missing and zero values, and readings under 30% or over 3 times the grid's own median for the window, are treated as reporting faults and left out.
- Error is (forecast minus reported demand) divided by reported demand; average error uses absolute values so high and low misses do not cancel. Bias keeps the sign and does cancel.
- Reported demand is preliminary and may be revised. A 30 day window is a short sample and one heat wave or holiday can move these figures.
- US figures are for the EIA balancing authority or region named on this page. US and European grids are ranked separately.
Related
Cite this page
World Power Monitor. (2026). BPA Demand Forecast Accuracy: Error, Bias and Worst Miss. https://worldpowermonitor.com/forecast-accuracy/bpa/
World Power Monitor. BPA Demand Forecast Accuracy: Error, Bias and Worst Miss. Data as of 2026-10-28. Data from U.S. Energy Information Administration. https://worldpowermonitor.com/forecast-accuracy/bpa/
@misc{wpm_forecast_accuracy_bpa_2026,
title = {{BPA Demand Forecast Accuracy: Error, Bias and Worst Miss}},
author = {{World Power Monitor}},
year = {2026},
note = {Data as of 2026-10-28. Data from U.S. Energy Information Administration.},
url = {https://worldpowermonitor.com/forecast-accuracy/bpa/}
} Permalink: https://worldpowermonitor.com/forecast-accuracy/bpa/
The Copy buttons add today's date as the access date.