From e8b37b37aebb4030150efef19ab874c1ca6525fb Mon Sep 17 00:00:00 2001 From: Peter Wilfahrt Date: Fri, 17 Oct 2025 15:55:32 -0500 Subject: [PATCH 1/4] update electricity to 2022 and add per capita graph --- _energy/_electricity.qmd | 182 +++++++++++++++++++++------------------ 1 file changed, 96 insertions(+), 86 deletions(-) diff --git a/_energy/_electricity.qmd b/_energy/_electricity.qmd index afc89cef..a097f534 100644 --- a/_energy/_electricity.qmd +++ b/_energy/_electricity.qmd @@ -30,7 +30,7 @@ mn_emissions <- read_rds(file.path(here::here(), "_energy/data/minnesota_county_ wi_emissions <- read_rds(file.path(here::here(), "_energy/data/wisconsin_county_ElecEmissions.RDS")) %>% rename(county = county_name) -elecEmissions_all <- county_emissions %>% +elec_emissions <- county_emissions %>% filter(category == "Electricity") %>% group_by(county_name, emissions_year) %>% summarise( @@ -39,78 +39,76 @@ elecEmissions_all <- county_emissions %>% ) - - -eiaQA_all <- bind_rows( - read_rds( - file.path( - here::here(), - "_energy/data/minnesota_QA_versusEIAStateProfile.RDS" - ) - ), - read_rds( - file.path( - here::here(), - "_energy/data/wisconsin_QA_versusEIAStateProfile.RDS" - ) - ) -) - -EIAvMETC_tons <- eiaQA_all %>% - mutate( - downscaled_EIA_total_CO2e_emissions_tons = downscaled_EIA_total_CO2e_emissions_lbs / 2000, - OURS_total_CO2e_emissions_tons = OURS_total_CO2e_emissions_lbs / 2000 - ) %>% - pivot_longer( - cols = c("downscaled_EIA_total_CO2e_emissions_tons", "OURS_total_CO2e_emissions_tons"), - names_to = "inventory_source", - values_to = "value_emissions" - ) %>% - mutate( - inventory_source = recode(inventory_source, - downscaled_EIA_total_CO2e_emissions_tons = "EIA", - OURS_total_CO2e_emissions_tons = "Metropolitan Council" - ) - ) - -nrelQA <- read_rds( - file.path( - here::here(), - "_energy/data-raw/nrel_slope/nrel_emissions.RDS" - ) -) %>% - filter(source == "Electricity" && year == 2021) %>% - group_by(county_name) %>% - summarise(total_value_emissions = sum(co2e)) - -nrel_metc_electricity_comp <- nrelQA %>% - left_join( - elecEmissions_all %>% select(county_name, - MetC = value_emissions - ), - by = "county_name" - ) %>% - pivot_longer( - cols = c("total_value_emissions", "MetC"), - names_to = "inventory_source", - values_to = "value_emissions" - ) %>% - mutate( - inventory_source = recode(inventory_source, - total_value_emissions = - "NREL SLOPE", - MetC = - "Metropolitan Council" - ) - ) - -electricity_2005 <- elecEmissions_all %>% +# eiaQA_all <- bind_rows( +# read_rds( +# file.path( +# here::here(), +# "_energy/data/minnesota_QA_versusEIAStateProfile.RDS" +# ) +# ), +# read_rds( +# file.path( +# here::here(), +# "_energy/data/wisconsin_QA_versusEIAStateProfile.RDS" +# ) +# ) +# ) +# +# EIAvMETC_tons <- eiaQA_all %>% +# mutate( +# downscaled_EIA_total_CO2e_emissions_tons = downscaled_EIA_total_CO2e_emissions_lbs / 2000, +# OURS_total_CO2e_emissions_tons = OURS_total_CO2e_emissions_lbs / 2000 +# ) %>% +# pivot_longer( +# cols = c("downscaled_EIA_total_CO2e_emissions_tons", "OURS_total_CO2e_emissions_tons"), +# names_to = "inventory_source", +# values_to = "value_emissions" +# ) %>% +# mutate( +# inventory_source = recode(inventory_source, +# downscaled_EIA_total_CO2e_emissions_tons = "EIA", +# OURS_total_CO2e_emissions_tons = "Metropolitan Council" +# ) +# ) +# +# nrelQA <- read_rds( +# file.path( +# here::here(), +# "_energy/data-raw/nrel_slope/nrel_emissions.RDS" +# ) +# ) %>% +# filter(source == "Electricity" && year == 2021) %>% +# group_by(county_name) %>% +# summarise(total_value_emissions = sum(co2e)) +# +# nrel_metc_electricity_comp <- nrelQA %>% +# left_join( +# elecEmissions_all %>% select(county_name, +# MetC = value_emissions +# ), +# by = "county_name" +# ) %>% +# pivot_longer( +# cols = c("total_value_emissions", "MetC"), +# names_to = "inventory_source", +# values_to = "value_emissions" +# ) %>% +# mutate( +# inventory_source = recode(inventory_source, +# total_value_emissions = +# "NREL SLOPE", +# MetC = +# "Metropolitan Council" +# ) +# ) + +electricity_2005 <- elec_emissions %>% filter(emissions_year == 2005) %>% pull(value_emissions) %>% sum() -electricity_2021 <- elecEmissions_all %>% - filter(emissions_year == 2021) %>% +electricity_2022 <- elec_emissions %>% + filter(emissions_year == 2022) %>% pull(value_emissions) %>% sum() @@ -119,16 +117,16 @@ hookaddcap() ## Introduction -Emissions from the electricity generation sector have declined by `r scales::percent((electricity_2005 - electricity_2021) / electricity_2005, accuracy = 0.1)` in the region since 2005, largely as a result of transitions in the grid towards energy sources such as wind and solar [@mpcaClimateChangeTrends2023]. In 2023, Minnesota Governor Walz signed a bill mandating a statewide carbon-free electricity standard by 2040. The law "establishes a standard for utilities to supply Minnesota customers with electricity generated or procured from carbon-free resources, beginning at an amount equal to 80% of retail sales for public utility customers in Minnesota in 2030 and increasing every 5 years to reach 100% for all electric utilities by 2040. The bill also requires that, by 2035, an amount equal to at least 55% of an electric utility’s total retail electric sales to customers in Minnesota must be generated or procured from eligible energy technologies." Wisconsin has not adopted a similar carbon-free electricity standard, but a Wisconsin DNR report noted both the economic gains from such to the renewable energy economy in the state, as well as the opportunities for decarbonization [@holtWisconsinCleanEnergy2019]. +Emissions from the electricity generation sector have declined by `r scales::percent((electricity_2005 - electricity_2022) / electricity_2005, accuracy = 0.1)` in the region since 2005, largely as a result of transitions in the grid towards energy sources such as wind and solar [@mpcaClimateChangeTrends2023]. In 2023, Minnesota Governor Walz signed a bill mandating a statewide carbon-free electricity standard by 2040. The law "establishes a standard for utilities to supply Minnesota customers with electricity generated or procured from carbon-free resources, beginning at an amount equal to 80% of retail sales for public utility customers in Minnesota in 2030 and increasing every 5 years to reach 100% for all electric utilities by 2040. The bill also requires that, by 2035, an amount equal to at least 55% of an electric utility’s total retail electric sales to customers in Minnesota must be generated or procured from eligible energy technologies." Wisconsin has not adopted a similar carbon-free electricity standard, but a Wisconsin DNR report noted both the economic gains from such to the renewable energy economy in the state, as well as the opportunities for decarbonization [@holtWisconsinCleanEnergy2019]. ```{r tbl-elec-mrow-proportions} -#| tbl-cap: "Grid Mix for MROW subregion of 2021 eGRID" +#| tbl-cap: "Grid Mix for MROW subregion of 2022 eGRID" #| out-width: "95%" eGRID_mix <- data.frame( "Energy Source" = c("Coal", "Oil", "Gas", "Other Fossil", "Nuclear", "Hydro", "Biomass", "Wind", "Solar", "Geothermal", "Other", "Unknown/Purchased Fuel"), - Percentage = c("39.6%", "0.2%", "10.6%", "0.10%", "8.6%", "4.4%", "0.8%", "34.6%", "0.9%", "0.0%", "0.2%", "N/A") + Percentage = c("38%", "0.1%", "8.3%", "0.10%", "8.1%", "3.9%", "0.7%", "39.8%", "1.0%", "0.0%", "0.1%", "N/A") ) (eGRID_mix) %>% @@ -142,10 +140,10 @@ eGRID_mix <- data.frame( ``` ### Results -### 2021 county and subsector breakdown +### 2022 county and subsector breakdown ```{r fig-energy-electricity-sector-emissions} -#| fig-cap: "2021 electricity emissions by sector" +#| fig-cap: "2022 electricity emissions by sector" #| out-width: "95%" @@ -155,7 +153,7 @@ fig_energy_electricity_sector_emissions <- source = "fig-energy-electricity-sector-emissions", data = county_emissions %>% filter( - emissions_year == 2021, + emissions_year == 2022, category == "Electricity" ), y = ~ reorder(county_name, value_emissions), @@ -232,7 +230,7 @@ fig_electricity_baseline ``` ```{r fig-ctu-ag-emissions} -#| fig-cap: "2021 city level electricity emissions" +#| fig-cap: "2022 city level electricity emissions per capita" #| out-width: "95%" #| out-height: "500px" @@ -241,19 +239,23 @@ fig_electricity_baseline ### load emissions and downscaling var (proportion of county ag land) ctu_elec_emissions <- readRDS(file.path(here::here(), "./_energy/data/_ctu_electricity_emissions.rds")) -electricity_emissions_2021 <- ctu_elec_emissions %>% - filter(inventory_year == 2021) %>% +electricity_emissions_2022 <- ctu_elec_emissions %>% + filter(inventory_year == 2022) %>% group_by(ctu_name, ctu_class) %>% summarize(mt_co2e = sum(value_emissions, na.rm = TRUE)) -### map CTU scale electricity emissions +### map CTU scale electricity emissions per capita cprg_ctu <- readRDS(here("_meta", "data", "cprg_ctu.RDS")) %>% mutate(geometry = st_make_valid(geometry)) +ctu_population <- readRDS(here("_meta", "data", "ctu_population.RDS")) %>% + group_by(gnis, ctu_name, ctu_class, inventory_year) %>% + summarize(ctu_population = sum(ctu_population, na.rm = TRUE)) %>% + ungroup() ctu_elec_map <- left_join(cprg_ctu, - electricity_emissions_2021, + electricity_emissions_2022, by = c("ctu_name", "ctu_class") ) %>% filter( @@ -265,23 +267,31 @@ ctu_elec_map <- left_join(cprg_ctu, ), !is.na(county_name) ) %>% - select(ctu_name, geometry, mt_co2e) %>% - replace(is.na(.), 0) + left_join(ctu_population %>% + filter(inventory_year == 2022), + join_by(gnis, + ctu_name, + ctu_class)) %>% + select(ctu_name, geometry, mt_co2e, ctu_population) %>% + replace(is.na(.), 0) %>% + mutate(mt_co2_per_cap = mt_co2e / ctu_population) %>% + filter(!ctu_name %in% c("Fort Snelling", + "Northfield")) # Define color palette based on the plasma scale from viridis -pal <- colorNumeric(palette = "plasma", domain = ctu_elec_map$mt_co2e) +pal <- colorNumeric(palette = "plasma", domain = ctu_elec_map$mt_co2_per_cap) # Create the leaflet map map_ctu_elec <- leaflet(ctu_elec_map) %>% addTiles() %>% # Add default OpenStreetMap tiles addPolygons( - fillColor = ~ pal(mt_co2e), + fillColor = ~ pal(mt_co2_per_cap), color = "black", # Border color weight = 1, fillOpacity = 0.9, # Transparency of the fill color popup = ~ paste(ctu_name, " electricity emissions:", round(mt_co2e, 2)), # Popup with details - label = ~ paste(ctu_name, " emissions:", round(mt_co2e, 2)), # Hover text + label = ~ paste(ctu_name, " emissions per capita:", round(mt_co2_per_cap, 2)), # Hover text highlightOptions = highlightOptions( weight = 3, color = "blue", @@ -290,7 +300,7 @@ map_ctu_elec <- leaflet(ctu_elec_map) %>% ) %>% addLegend( pal = pal, - values = ~mt_co2e, + values = ~mt_co2_per_cap, title = "CTU Electricity Emissions", opacity = 0.7 ) From 78d91ec612c543cd0c0c74e05b603789745cfa1a Mon Sep 17 00:00:00 2001 From: Peter Wilfahrt Date: Tue, 21 Oct 2025 15:27:01 -0500 Subject: [PATCH 2/4] rearrange, edit for brevity --- _energy/data_electricity.qmd | 37 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/_energy/data_electricity.qmd b/_energy/data_electricity.qmd index 4bdaa5d3..36dd1c4f 100644 --- a/_energy/data_electricity.qmd +++ b/_energy/data_electricity.qmd @@ -110,45 +110,39 @@ electricity_2005 <- elecEmissions_all %>% pull(value_emissions) %>% sum() -electricity_2021 <- elecEmissions_all %>% - filter(emissions_year == 2021) %>% +electricity_2022 <- elecEmissions_all %>% + filter(emissions_year == 2022) %>% pull(value_emissions) %>% sum() hookaddcap() ``` -## Methods +## Methodological framework -The general workflow for quantifying electricity emissions is to identify all of the electric utilities that operate within our study area, collect any reporting they provide to the states of Minnesota and Wisconsin about the amount of energy delivered to all their customers (with reference to federal reporting sources where state-level reporting gaps exist), and apply EPA-provided emissions factors to the reported activity/energy deliveries to calculate estimated emissions. Methodologies for allocating utility activity reports to counties varies across MN and WI and are further described in the following section. Most inputs we use in the construction of our electricity emissions data set are of the highest quality rank (@tbl-quality-rank), as they are either direct government-created data (e.g., emissions factors) or data reported to state/federal authorities (e.g., regulatory filings). However, for two Minnesota electric utilities – Elk River Municipal Utilities [@elkrivermunicipalutilities2021AnnualFinancial2022] and New Prague Utilities Commission [@newpragueutilitiescommissionAgendaPacket242022] – where regulatory filing data could not be sourced to quantify electricity deliveries, we referred to financial reporting documents published by the utilities. +We use a demand-side approach for quantifying electricity emissions rather than a supply-side approach. In other words, we analyze electricity consumption within geographic boundaries (regional, county, city) rather than emissions at the site of generation (i.e. a powerplant). The workflow is first identifying all of the electric utilities that operate within our study area, collect energy delivery reports they provide to the states of Minnesota and Wisconsin, and apply EPA-provided regional emissions factors to estimate associated emissions. Methodologies for allocating utility activity reports to counties and cities varies across MN and WI and are further described in the following section. -Total regional emissions (Emissions~r~) represents the sum of all recorded energy deliveries by utility *i* within county *j*, where *i* refers to each of the electric utilities operating across our region, and *j* refers to the eleven counties included in this inventory. Our regional total therefore represents an aggregation of electricity deliveries for all distinct utility-county records. +## Data sources -$$Emissions_r = \Sigma (mWhDelivered_iCounty_j \times {Emissions Factor}) $$ - -Our inventory takes a "demand-side" approach to emissions quantification and seeks to aggregate all reported delivery of energy to ALL customers served by utilities (meaning all customer types, inclusive of residential, commercial, industrial, and government accounts). This means that energy loss and use experienced by utilities in the process of energy generation and transmission, and delivery and resale to utilities operating outside of our study area, are *not* directly reflected in the numbers attributed to counties. The U.S. Energy Information Administration (EIA) estimates that annual electricity transmission and distribution (T&D) losses averaged about 5% of the electricity transmitted and distributed in the United States in 2018 through 2022. [@u.s.energyinformationadministrationHowMuchElectricity2023] - -While our primary data collection does not include a breakout of electricity deliveries by sector, we do leverage year 2021 NREL SLOPE forecasts of electricity consumption (built from a base year of 2016 observed data) by sector (residential, commercial, industrial) at the county level to calculate modeled proportions of consumption by sector, which we then apply to our aggregate numbers to calculate estimated emissions *by sector* [@maSectorSpecificMethodologiesSubnatonal2019, @nrelSLOPEStateLocal2017]. +Most inputs we use in the construction of our electricity emissions data set are of the highest quality rank (@tbl-quality-rank), as they are either direct government-created data (e.g., emissions factors) or data reported to state/federal authorities (e.g., regulatory filings). However, for two Minnesota electric utilities – Elk River Municipal Utilities [@elkrivermunicipalutilities2021AnnualFinancial2022] and New Prague Utilities Commission [@newpragueutilitiescommissionAgendaPacket242022] – where regulatory filing data could not be sourced to quantify electricity deliveries, we referred to financial reporting documents published by the utilities. ### Identifying utilities in scope -To identify the electric utilities that operate within our 11-county study area, we referred to maps and geospatial datasets capturing utility service areas in Minnesota and Wisconsin. To identify Wisconsin electric utilities, we downloaded the Electric Service Territory map maintained by the Wisconsin Public Service Commission [@wisconsinpublicservicecommissionElectricServiceTerritories2024]. To identify Minnesota electric utilities, we downloaded the Electric Service Territory map maintained by the Minnesota Public Utilities Commission and the Minnesota IT Geospatial Information Office[@minnesotaitgeospatialinformationofficeElectricUtilityService2023]. +To identify the electric utilities that operate within our 11-county study area, we referred to maps and geospatial datasets capturing utility service areas in Minnesota and Wisconsin. To identify Wisconsin electric utilities, we downloaded the Electric Service Territory map maintained by the Wisconsin Public Service Commission [@wisconsinpublicservicecommissionElectricServiceTerritories2024]. To identify Minnesota electric utilities, we downloaded the Electric Service Territory map maintained by the Minnesota Public Utilities Commission and the Minnesota IT Geospatial Information Office[@minnesotaitgeospatialinformationofficeElectricUtilityService2023]. We intersected these spatial datasets with cities and townships in the seven-county region and identified a list of utilties serving each municipality. To avoid potential misclassification, we omitted utilities for a city or township with less overlapping with less than 1% of its geography. ### Collecting and aggregating activity data from utilities #### County-level activity data -After identifying which utilities operate within our study area within each state, we collect reporting submitted by these utilities to the relevant state and federal authorities and use a variety of approaches, depending on data availability, to allocate utility activity/energy deliveries to specific counties. For the state of Minnesota, we collected reports provided by all in-scope utilities for years 2014-2023. For year 2021, additional manual data collection efforts were completed to guarantee a complete data set, since reports for all in-scope utilities were unfortunately not available for all years. As needed, data for other county-years could be finalized in a similar fashion. +After identifying which utilities operate within our study area within each state, we collect reporting submitted by these utilities to the relevant state and federal authorities and use a variety of approaches, depending on data availability, to allocate utility activity/energy deliveries to specific counties. For the state of Minnesota, we collected reports provided by all in-scope utilities for years 2014-2023. ##### Minnesota -All electric utilities authorized to do business in Minnesota are required to file an annual data report pursuant to MN Rules Chapter 7610. The Minnesota Public Utilities Commission makes these reports searchable through an [eFiling Site](https://www.edockets.state.mn.us/EFiling/edockets/searchDocuments.do?method=eDocketsResult&docketYear=22&docketNumber=19), and downloadable as Excel workbooks [@mndocCHAPTER7610ENERGY2005]. For each utility identified in [distinct_electricity_util_type_MN.RDS](data/distinct_electricity_util_type_MN.RDS) (a data product of [minnesota_electricUtilities.R](data-raw/minnesota_electricUtilities.R), a script that looks for intersections between electric utility service areas and our Minnesota counties), we downloaded the relevant 2021 annual reports from this site (see note about Great River Energy in the previous section for caveats), except for North Branch Municipal Water and Light, which did not submit a 2021 report (we used their 2022 report as a substitution). Elk River Municipal Utilities and New Prague Utilities Commission did not file reports for 2021 or 2022, and so we used financial reports to identify their total electricity delivered; both utilities operated within only one county in our study area, which meant no estimation/allocation was necessary. - -We wrote code to extract the county-level data reported in the report section titled "ITS DELIVERIES TO ULTIMATE CONSUMERS BY COUNTY FOR THE LAST CALENDAR YEAR" on the relevant annual data report Excel workbooks compiled into a folder directory, and created a table with three columns: `county`, `utility`, and `mWh_delivered` (megawatt-hours). By compiling this data for all utilities found to operate within our study area, aggregating all electricity deliveries at the county level becomes possible. +All electric utilities authorized to do business in Minnesota are required to file an annual data report pursuant to MN Rules Chapter 7610. The Minnesota Public Utilities Commission makes these reports searchable through an [eFiling Site](https://www.edockets.state.mn.us/EFiling/edockets/searchDocuments.do?method=eDocketsResult&docketYear=22&docketNumber=19), and downloadable as Excel workbooks [@mndocCHAPTER7610ENERGY2005]. For each utility identified in [distinct_electricity_util_type_MN.RDS](data/distinct_electricity_util_type_MN.RDS) (a data product of [minnesota_electricUtilities.R](data-raw/minnesota_electricUtilities.R), a script that looks for intersections between electric utility service areas and our Minnesota counties), we downloaded the relevant annual reports from this site. Elk River Municipal Utilities and New Prague Utilities Commission did not file reports for 2021 or 2022, and so we used financial reports to identify their total electricity delivered; both utilities operated within only one county in our study area, which meant no estimation/allocation was necessary. We extracted county-level data in the report section titled "ITS DELIVERIES TO ULTIMATE CONSUMERS BY COUNTY FOR THE LAST CALENDAR YEAR". ##### Wisconsin -All municipal and investor-owned utilities authorized to do business in Wisconsin are required to file an annual report with financial and operational information pursuant to Wis. Stat. § 196.07. The Public Services Commission of Wisconsin makes these reports searchable through an [E-Services Portal](https://apps.psc.wi.gov/ARS/annualReports/default.aspx), and downloadable as either PDFs or Excel workbooks, with options to export only specific portions of the reports as spreadsheets [@publicservicecommwisconsinAnnualReportsView2022]. For each utility identified in [distinct_electricity_util_type_WI.RDS](data/distinct_electricity_util_type_WI.RDS) (a data product of [wisconsin_electricUtilities.R](_energy/data-raw/wisconsin_electricUtilities.R), a script that looks for intersections between electric utility service areas and our Wisconsin counties), we downloaded the relevant 2021 annual reports from this site. +All municipal and investor-owned utilities authorized to do business in Wisconsin are required to file an annual report with financial and operational information pursuant to Wis. Stat. § 196.07. The Public Services Commission of Wisconsin makes these reports searchable through an [E-Services Portal](https://apps.psc.wi.gov/ARS/annualReports/default.aspx), and downloadable as either PDFs or Excel workbooks, with options to export only specific portions of the reports as spreadsheets [@publicservicecommwisconsinAnnualReportsView2022]. For each utility identified in [distinct_electricity_util_type_WI.RDS](data/distinct_electricity_util_type_WI.RDS) (a data product of [wisconsin_electricUtilities.R](_energy/data-raw/wisconsin_electricUtilities.R), a script that looks for intersections between electric utility service areas and our Wisconsin counties), we downloaded the relevant annual reports from this site. A similar process was followed for the four Wisconsin cooperative utilities for which we referenced federal regulatory filings data to populate our dataset of electricity deliveries. @@ -156,7 +150,7 @@ Because of the small amount of data, and the different data structures of the re #### City-level activity data (seven-county metro in MN only) -No regulatory requirements in Minnesota or Wisconsin directly require utilities make city-level reports on electrical or natural gas usage data activity publicly available in a manner similar MN Rules Chapter 7610's requirement for public county-level reporting. In alignment with *climate planning statute*, the Met Council is leading an effort to collect this information on behalf of cities and townships in the seven-county region as a constituent part of the greenhouse gas inventories being developed by the Council to support communities in their own local climate planning as required by state statute and Imagine 2050 minimum requirements. This data collection effort entails 1) direct processing of real, city-sector level data provided by utilities in our region, as well as 2) a series of modeling efforts geared towards addressing missingness in our city/township dataset, as well as disaggregation of coarser numbers provided by utilities (e.g., combined data for commercial/industrial sectors) into residential, commercial, and industrial numbers. +No regulatory requirements in Minnesota or Wisconsin directly require utilities make city-level reports on electrical or natural gas usage data activity publicly available in a manner similar MN Rules Chapter 7610's requirement for public county-level reporting. In alignment with MN statute 473.859, the Met Council is leading an effort to collect this information on behalf of cities and townships in the seven-county region as a constituent part of the greenhouse gas inventories being developed by the Council to support communities in their own local climate planning as required by state statute and Imagine 2050 minimum requirements. This data collection effort entails, where possible, direct processing of real, city-sector level data provided by utilities in our region. When utilties were unable to provide data, we used available city/township level data to train random forest models using geographic and demographic data, and then predicted missing data using these models. We further disaggregate data provided by utilities (e.g., combined data for commercial/industrial sectors) into residential, commercial, and industrial numbers. ##### Processing utility-provided data @@ -166,11 +160,14 @@ Xcel, the largest electric utility in our region, publishes Community Energy Rep Ambiguities in sector classifications, particularly the "Business" category, are addressed through proportional disaggregation using NREL-modeled emissions proportions. This process incorporates additional datasets, such as `nrel_slope_city_emission_proportions.RDS`, to allocate energy and emissions between commercial and industrial sectors. Geographic integration (i.e., disaggregating CTUs with footprint in multiple counties) is achieved using `cprg_ctu` and `ctu_population`, enabling population-based allocation of activity/utility-reported emissions to constituent COCTU units. -Final outputs of [minnesota_xcelCommunityReports_electricity.R](_energy/data-raw/minnesota_xcelCommunityReports_electricity.R) include clean, joined datasets (`xcel_activityData_NREL_2015_2022_process.RDS`) and visualizations that compare utility-reported sector proportions to modeled values. *More to say here before modeling missingness section?* +Final outputs of [minnesota_xcelCommunityReports_electricity.R](_energy/data-raw/minnesota_xcelCommunityReports_electricity.R) include clean, joined datasets (`xcel_activityData_NREL_2015_2022_process.RDS`) and visualizations that compare utility-reported sector proportions to modeled values. + +### Caveats + +Our inventory takes a "demand-side" approach to emissions quantification and seeks to aggregate all reported delivery of energy to ALL customers served by utilities (meaning all customer types, inclusive of residential, commercial, industrial, and government accounts). This means that energy loss and use experienced by utilities in the process of energy generation and transmission, and delivery and resale to utilities operating outside of our study area, are *not* directly reflected in the numbers attributed to counties. The U.S. Energy Information Administration (EIA) estimates that annual electricity transmission and distribution (T&D) losses averaged about 5% of the electricity transmitted and distributed in the United States in 2018 through 2022. [@u.s.energyinformationadministrationHowMuchElectricity2023] -#### Modeling missingness +While our primary data collection does not include a breakout of electricity deliveries by sector, we do leverage year NREL SLOPE forecasts of electricity consumption (built from a base year of 2016 observed data) by sector (residential, commercial, industrial) at the county level to calculate modeled proportions of consumption by sector, which we then apply to our aggregate numbers to calculate estimated emissions *by sector* [@maSectorSpecificMethodologiesSubnatonal2019, @nrelSLOPEStateLocal2017]. -Content to come #### Emissions factors From 1a88f8471750b4f4fde18128f5f329d35b6ce356 Mon Sep 17 00:00:00 2001 From: Peter Wilfahrt Date: Thu, 23 Oct 2025 11:54:35 -0500 Subject: [PATCH 3/4] elec updates --- assets/captions/captions-cap-01.rds | Bin 304 -> 340 bytes assets/captions/captions-cap-02.rds | Bin 368 -> 344 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/captions/captions-cap-01.rds b/assets/captions/captions-cap-01.rds index 916c17c13d89ed99a48869da0d1bb3ea33c85ffb..aaa98038f32e2d8420782c3262d0e0de9ba4e6d1 100644 GIT binary patch delta 323 zcmV-J0lfaO0@MPK8h_*g7hM1>0(=?yuk<1Ve>F^549`=^Q~aHsF3xU^ZB)J2?0N5v z-+O|lQfW_|o(`6qSwn^NH6=7;LDp%VAxFK>%spYkwhTp9EcYX}qXVvzLI<7Jo}xkD zBK)EL)U2X5a}Etyq9gfdGuR*q^{z<;iqFvOeO=}?f=S)LC& zdz;$0nwu!6no+=X{oY2|pS}q~rI@+J!)Wk#Yzl6uPMCy50ycVCvE{vGL z5QVQOc6ngTBBoG3HP@)_VV;0XW+KQT*aS$;{^?#9jcpYaU`9d)!2=mkP7;LR3WbA# ze|6|JO9am%Up%1l_nsizoh_uPZ?VHnHF>iki!*=Wrfc|0Awj8r001h&nd<-nuL9)- V003uKwYEMm4T}N*00001Sz0@6n1}!X delta 287 zcmV+)0pR}B02%`1C}~GSGy$0W6dBKau&k zFno8gzer;wBBZc&C&td|3y2U#IW7F<_>(LYy=67vZoX2zOn+zS*2aUg#yn8b7+Hy2 z21EV<-jRR7^C2m7CI)?Xp!V_sJxg@PFk6uelE+K?KU;>)WOyExlU7P&a|~tCZSzhi ziY0}94^o37kYA*3a+d-VMj%5NN-bP1@AZH#(3Z%rIM^!qSh6EXRq79m{)|ZE6qNk^ l)4%`#0P}GK9T)%siUQvS001Z3LVi9l4T}N*00001Sy~{mhLHdO diff --git a/assets/captions/captions-cap-02.rds b/assets/captions/captions-cap-02.rds index 353d03c532088bfb4c09d21ce244b14c99dd1955..514d935a0a164863c8460ae04f8d699660a00541 100644 GIT binary patch delta 327 zcmV-N0l5C~0@wnO8h;1@99;k`0(=?yuk<1Ve>F^549`=^Q~aHsF3xVlY%v!S>5QoT z=m=0<$mTRA8MrmLBwh3GQ6_~9ZrZMC3V_1e$RzhJL&#axX z;99#U&hp#PEK|c`+u05*u(iiTWPe@?;Yjf zn>r7gSu|nd6|3SP--q>Sc}fq7v8T#1Z@~4X^V#1bIHkpU#7Qboj2m(=Gqqd8fq8xT zd}!1}K@ifgU1Epw>6mI0(BQ8KF+O8GKIWdEKi;rCJ+tbks_tNJ=I%U@}{004k-k{kd5 Zv;v6+007-n60ANj4T}N*00001Sz1e+l&k;% delta 351 zcmV-l0igca0`LNm8h^O~F8}!uwXOvJrCORTE&5vz|HBN7o!fJ1(GydHwY}!$Ic7Ddk z@1-K+D5PHLtmfna$VQC1PGXuX$?SXSBt-zhhQx@SSI#aYx_@7G(Y#_FF z49Y_3=FNSmmHp+` Date: Thu, 23 Oct 2025 11:55:22 -0500 Subject: [PATCH 4/4] Update captions-cap-01.rds --- assets/captions/captions-cap-01.rds | Bin 340 -> 368 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/captions/captions-cap-01.rds b/assets/captions/captions-cap-01.rds index aaa98038f32e2d8420782c3262d0e0de9ba4e6d1..d9f7996459996b03496503d1cbe9c74e607cd672 100644 GIT binary patch delta 330 zcmV-Q0k!_r0`LNm83Y5l0Wpys8h^uVF&4ItMPBkK&IS)E3eR)6eB9xA_Z(f8HO;aE z+b-Gp4?9w9LN4BJ5Ve2z00R|;%*!hJ+7Vb%=}wFxHd+*2bj3aGZ}#*!IH&=+A@IeK zYDBtfN-1UpXNam<`Nk(U8ozUr6xLgg<6kanp`knbs#qk_CJv@Zio9G{?tcqZz!15{ z+@+bO1>J_KXiB=g=JjxZl5P$>^-1;HRWg5k=;A&J|?Ia29NQ(a3zyJUM03kQ# clmG$A0=fqP0J?DU_&zWVivj=u00045T9Lw)?EnA( delta 302 zcmV+}0nz^O0@MPK83Y340T+=S8h?##RK3^idGC$idxEA?X-}M<4wjo)LxuD;B{XC~ z)@hv~N4?L?Jz>JO3`JHf_anBW1Fn)n2c6cQqCwvx{GtBTtfDq^4h>kMBl%}D*dPe? zuZIV4JM;CtqPVN$N2Sleu9`5!o80M8kknb84?BCC+X1bLE{Sb=`1-bqtAFpFDia`_ z(An!+E+ODL+MnLk#6$1DgvYl;>UmeZ7N5p0jF`a?g|8@fd0@;UrcggM*QoAco`6ec zBFG`w1W3*P>0TF&Z50$?MnVR`0~t_G5`^Fig@b{Ab?7xq1kWO0pz`;gAlscSq^WPQ z!%Q`KvmuK!f8nNU_(~x`sULm-04li_|-0_6n&0B2XVwmvWoivj=u00045S|dk} AQ~&?~