DOI: 10.5281/zenodo.5902744
title: Profitability and investment risk of Texan power system winterization

description: <strong>Profitability and investment risk of Texan power system winterization</strong> This data repository contains interim and final results of the paper “Profitability and investment risk of Texan power system winterization” published in Nature Energy. Code used to generate these results can be found at github <strong>Abstract</strong> A lack of winterization of power system infrastructure resulted in significant rolling blackouts in Texas in 2021 though debate about the cost of winterization continues. Here, we assess if incentives for winterization on the energy only market are sufficient. We combine power demand estimates with estimates of power plant outages to derive power deficits and scarcity prices. Expected profits from winterization of a large share of existing capacity are positive. However, investment risk is high due to the low frequency of freeze events, potentially explaining under-investment, as do high discount rates and uncertainty about power generation failure under cold temperatures. As the social cost of power deficits is one to two orders of magnitude higher than winterization cost, regulatory enforcement of winterization is welfare enhancing. Current legislation can be improved by emphasizing winterization of gas power plants and infrastructure. <strong>Date and time format</strong> Please observe that we omit the date column from the description of columns below for all datasets. The ERA5 data in <strong>input/</strong> is in UTC, all other input datasets are in local Texas time (GMT-6). In <strong>interim</strong>, <em>temperatures/temppop/</em>, <em>temperatures/temp_gas_powerplant.csv</em>, <em>temperatures/temp_gas_outages.csv</em>, <em>temperatures/temp_coal_powerplant.csv</em>, <em>temperatures/temp_coal_outages.csv</em> and the wind power simulation output (<em>windpower/</em>) is in UTC. All other datasets are in local Texas time. <strong>Data</strong> <strong>cache/</strong> Data cache used by the scripts analyzing the extreme events: extreme temperatures, loss of load, their return periods, durations, maxima/minima (the cached files are not included, but can be generated with scripts/R/events.R) <strong>figures/</strong> Figures shown in the manuscript <strong>raw_data</strong>: includes raw data for reproducing the figures in the main part of the manuscript <strong>outage_model</strong>: figures representing the outage function as derived with our model <strong>input/</strong> Input data from external sources (with exception of orcd not included due to licensing issues) <strong>ERA5_windspeeds_USA</strong>: available from the CDS. Download with scripts/download_era5_USA.py <strong>gas_production</strong>: available from the Texas Railroad Commission in PDF format here. We extracted the data manually. <strong>Load</strong>: available from ERCOT here <strong>orcd</strong>: Scarcity prices as regulated by ERCOT. Manually extracted from J. Zarnikau et al. <strong>outages</strong>: Outage Events from ERCOT with geo locations provided by Edgar Virguez here resulting from unit outage data provided by Ercot <strong>population</strong>: population density data provided by arcgis here <strong>powerplants</strong>: locations of power plants in Texas provided by the Energy Information Administration here <strong>shp</strong>: shapefile of Texas state boundaries provided by arcgis here <strong>temperatures</strong>: available from the CDS here. Can be downloaded with script scripts/download_era5_TX_temp.py <strong>USWTDB</strong>: US wind turbine data base provided by the US Geological Service here. We used version: uswtdb_v3_3_20210114 <strong>GWA2</strong>: Global Wind Atlas Version 2.1 accessible here <strong>interim/</strong> Intermediary files from the analysis <strong>bootstrap_year.csv</strong>: 30 randomly selected years between 1950 and 2021, 10,000 times used for bootstrapping<br> Generated by notebooks/outages_reduced_bootstrap_LR24temptrend_Hook-8.ipynb <strong>bootstrap_year2020.csv</strong>: 30 randomly selected years between 1950 and 2020, 10,000 times used for bootstrapping without 2021 event<br> Generated by outages_reduced_bootstrap_LR24temptrend_Hook-8.ipynb <strong>turbine_data.csv</strong>: turbine data for Texan wind turbines<br> Generated by scripts/prepare_TX_turbines.py<br> Columns: capacity: turbine capacity (kW) height: turbine height (m) lon: longitude coordinate (°) lat: latitude coordinate (°) sp: specific power (W/m²) ind: running index <strong>interim/load/</strong> Temperature dependent estimates of electricity load for Texas. <strong>load_est70_LR24_temptrend_Hook-8.csv</strong><br> Generated by notebooks/load_estimation_LR24_temptrend_Hook-8.ipynb<br> Columns: load_est: load estimated for the period 1950-2021 assuming an average load level as in 2021 (MWh) temp: population weighted temperature (°C) <strong>load_est10_LR24_temptrend_Hook-8.csv</strong><br> Generated by notebooks/load_estimation_LR24_temptrend_Hook-8.ipynb<br> Columns: load: observed load in period 2012-2021 as published by ERCOT (MWh) load_est: load estimated for period 2012-2021 considering time trend, i.e. this is a replication of the observed load without outages with our model for validation purposes (MWh) <strong>load_est9_LR24temptrend2021_Hook-8.csv</strong><br> Generated by notebooks/load_estimation_LR24_temptrend_Hook-8.ipynb<br> Columns: load: observed load in period 2004-2021/01 and load forecast 2021/02 as published by ERCOT (MWh) load_est: load estimated for the years 2012-2020 for cross validation of load model. For training, the years 2012-2021 (2021/02 forecast) were used, except the predicted year, i.e. this is a replication of the observed load with our model for validation purposes. (MWh) <strong>load_est17_crossvalidation_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/load_estimation_LR24_temptrend_Hook-8.ipynb<br> Columns: load: observed load 2004 - 2021/01 and load forecast 2021/02 as published by ERCOT (MWh) load_est: load estimated for cross validation for years 2004-2021, training years 2012-2020, trained with each year in traning period except modelled year with variable load level, i.e. this is a replication of the observed load with our model for validation purposes(MWh) <strong>load_est_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/load_estimation_LR24_temptrend_Hook-8.ipynb<br> Columns: load: observed load 2004 - 2021 as published by ERCOT (MWh) load_est: years 2004-2021 predicted with a model which was trained for the years 2012-2020 considering time trend, i.e. this is a replication of the observed load without outages with our temperature dependent model with our model for validation purposes (MWh) <strong>interim/outages</strong> <strong>outages.feather</strong> Outage by minute of all generation units in Texas in February 2021. Created by scripts/R/create-ercot-outage-timeseries.R In Texas local time.<br> Columns: station: name of power plant unit: name of generation unit fullname: concatenated string of station and name dataset: ercot or edgar. ercot refers to the raw dataset provided by ERCOT, Edgar to the dataset provided by Edgar Virguez (for details see above in section <strong>input/</strong>) Longitude: Longitude of location of power plant Latitude: Latitude of location of power plant reduction: hourly reduction of capacity due to outage in this minute (MW) cap_available: available capacity in this minute (MW) cap_max: maximum capacity of unit (MW) <strong>outages-hourly.feather</strong> Hourly outages at all generation units in Texas in February 2021. Created by scripts/R/create-ercot-outage-timeseries.R In Texas local time.<br> Columns: station: name of power plant unit: name of generation unit fullname: concatenated string of station and name dataset: ercot or edgar. ercot refers to the raw dataset provided by ERCOT, Edgar to the dataset provided by Edgar Virguez (for details see above in section <strong>input/</strong>) Longitude: Longitude of location of power plant Latitude: Latitude of location of power plant reduction: hourly reduction of capacity due to outage in this time step (MW) cap_available: hourly available capacity in this minute (MW) cap_max: maximum capacity of unit (MW) <strong>outages_reduction.csv</strong> Hourly outages per fuel (MW). We use these outages for COAL and GAS only in the analysis.<br> Generated by notebooks/prepare_outages_NSsplit.ipynb<br> Columns: NG: natural gas power plants WIND: wind power plants SOLAR: solar power plants ESR: energy storage resource HYDRO: hydropower plants NUCLEAR: nuclear power plants <strong>outages_reductionNorth.csv</strong> Hourly outages for the Northern part of Texas (latitude &gt; 30) (MW). We use these outages for WIND only in the analysis.<br> Generated by notebooks/prepare_outages_NSsplit.ipynb<br> Columns as above. <strong>outages_reductionSouth.csv</strong> Hourly outages for the Southern part area of Texas (latitude &lt;= 30) (MW). We use these outages for WIND only in the analysis.<br> Generated by notebooks/prepare_outages_NSsplit.ipynb<br> Columns as above. <strong>interim/temperatures</strong> <strong>temppop</strong><br> Generated by scripts/calc_temppopC.py contains population weighted temperatures for Texas, one file for each year (°C). <strong>temp_coal_outage.csv</strong><br> Generated by notebooks/temperatures_NSsplit.ipynb<br> Columns: t2m: temperature weighted by coal power plants experiencing outages in February 2021 (°C) <strong>temp_coal_powerplant.csv</strong><br> Generated by notebooks/temperatures_NSsplit.ipynb<br> Columns: t2m: temperature weighted by all coal power plants (°C) <strong>temp_gas_outage.csv</strong><br> Generated by notebooks/temperatures_NSsplit.ipynb<br> Columns: t2m: temperature weighted by gaspower plants experiencing outages in February 2021 (°C) <strong>temp_gas_powerplant.csv</strong><br> Generated by notebooks/temperatures_NSsplit.ipynb<br> Columns: t2m: temperature weighted by all gas power plants (°C) <strong>temp_gasfields.csv</strong><br> Generated by notebooks/temperatures_NSsplit.ipynb<br> Columns: t2m: temperature weighted by all gasfields (°C) <strong>tempWP_NSsplit.csv</strong><br> Generated by notebooks/wp_temp_NSsplit.ipynb<br> Columns: t2mSouth: temperatures weighted by all wind power plants in the South (°C) t2mNorth: temperatures weighted by all wind power plants in the North (°C) <strong>interim/thresholds</strong> <strong>thresh_total63.5GW.csv</strong><br> Generated by notebooks/outages_thresholds_gasPP_vs_gasfield_LR24temptrend_Hook-8.ipynb<br> Columns: total available capacity of gas, coal and wind considering outages, assuming gasfield temperatures for gas outages (GW) <strong>thresh_totalPP63.5GW.csv</strong><br> Generated by notebooks/outages_thresholds_gasPP_vs_gasfield_LR24temptrend_Hook-8.ipynb<br> Columns: total available capacity of gas, coal and wind, considering outages, assuming gas power plant temperatures for gas outages (GW) <strong>threshold_coal.csv</strong><br> Generated by notebooks/outages_thresholds_gasPP_vs_gasfield_LR24temptrend_Hook-8.ipynb<br> Columns: outages of coal power plants based on coal power plant temperatures (GW) <strong>threshold_gas.csv</strong><br> Generated by notebooks/outages_thresholds_gasPP_vs_gasfield_LR24temptrend_Hook-8.ipynb<br> Columns: outages of gas power plants based on gasfield temperatures (GW) <strong>threshold_gasPP.csv</strong><br> Generated by notebooks/outages_thresholds_gasPP_vs_gasfield_LR24temptrend_Hook-8.ipynb<br> Columns: outages of gas power plants based on gas power plant temperatures (GW) <strong>threshold_gas_coal63.5GW.csv</strong><br> Generated by notebooks/outages_thresholds_gasPP_vs_gasfield_LR24temptrend_Hook-8.ipynb<br> Columns: available capacity of gas and coal, considering outages, assuming gasfield temperatures for gas outages (GW) <strong>threshold_gas_coalPP63.5GW.csv</strong><br> Generated by notebooks/outages_thresholds_gasPP_vs_gasfield_LR24temptrend_Hook-8.ipynb<br> Columns: available capacity of gas and coal, considering outages, assuming gas power plant temperatures for gas outages (GW) <strong>interim/windpower</strong> <strong>cfTXh.csv</strong><br> Generated by notebooks/windpower_ERA5_GWA2_const_cap.ipynb<br> Columns: Capacity factors of simulated Texan wind power (dimensionless) <strong>wpTXh.csv</strong><br> Generated by notebooks/windpower_ERA5_GWA2_const_cap.ipynb<br> Columns: simulated Texan wind power generation (kWh) <strong>output/</strong> <strong>marginal_revenue_coal_10_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_10_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization for coal (bn$/GW winterized) with discount rate of 10% and deficit events up to 2021 <strong>marginal_revenue_coal_LR24temptrend_Hook-8.csv</strong><br> Generated by notebooks/outages_reduced_bootstrap_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of coal (bn$/GW winterized) with discount rate of 5% and deficit events up to 2021 <strong>marginal_revenue_coal2020_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_2020_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of coal (bn$/GW winterized) with discount rate of 5% and deficit events up to 2020 <strong>marginal_revenue_gas_10_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_10_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of gas (bn$/GW winterized) with discount rate of 10% and deficit events up to 2021 <strong>marginal_revenue_gas_LR24temptrend_Hook-8.csv</strong><br> Generated by notebooks/outages_reduced_bootstrap_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of gas (bn$/GW winterized) with discount rate of 5% and deficit events up to 2021 <strong>marginal_revenue_gas2020_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_2020_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of gas (bn$/GW winterized) with discount rate of 5% and deficit events up to 2020 <strong>marginal_revenue_wind_north_10_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_10_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of Northern Wind in Texas (bn$/GW winterized) with discount rate of 10% and deficit events up to 2021 <strong>marginal_revenue_wind_north_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of Northern Wind in Texas (bn$/GW winterized) with discount rate of 5% and deficit events up to 2021 <strong>marginal_revenue_wind_north2020_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_2020_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of Northern Wind in Texas (bn$/GW winterized) with discount rate of 5% and deficit events up to 2020 <strong>marginal_revenue_wind_south_10_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_10_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of Southern Wind in Texas (bn$/GW winterized) with discount rate of 10% and deficit events up to 2021 <strong>marginal_revenue_wind_south_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of Southern Wind in Texas (bn$/GW winterized) with discount rate of 5% and deficit events up to 2021 <strong>marginal_revenue_wind_south2020_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_reduced_bootstrap_2020_LR24temptrend_Hook-8.ipynb<br> Columns: Marginal revenues from winterization of Southern Wind in Texas (bn$/GW winterized) with discount rate of 5% and deficit events up to 2020 <strong>sensitivity_analysis_temperature_thresholds_all_LR24temptrend_Hook-8.csv</strong> Generated by notebooks/outages_thresholds_sensitivity_LR24temptrend_Hook-8.ipynb<br> Columns: delta_thresh_temp: change in outage temperature thresholds for all technologies (°C) delta_rec_temp: change in recovery temperature thresholds for all technologies (°C) number_of_events: estimated number of events within 7 decades after2004: years of events after 2004 total_loss_TWh: total loss of load (TWh) max_loss_GW: maximum loss of load (GW) mean_loss_GW: average loss og load (GW) mean_revenue_mioUSD: average revenue (M$) rank_2021_event: rank of 2021 event in terms of loss of load