#Selections
MeasAppType <- 'NR'
BldgType <- 'SFm'
SZ <- 'med'
ClimateZone <- 12
HeatPumpHVAC_res <- 'SWHC045'
HPWH_res <- 'SWWH025'
EU_HP_HVAC<-'DEER:HVAC_Eff_HP'
EU_HPWH<-'DEER:Res_ClothesDishWasher'
EUL_Claims_HeatPumpHVAC_res <- 15 #2024 Study recommends 23 years
EUL_Claims_HPWH_res <- 10 #2024 Study recommends 20 years
EUL_New_HeatPumpHVAC_res <- 23 #2024 Study recommends 23 years
EUL_New_HPWH_res <- 20 #2024 Study recommends 20 years
#Constants
PGE_WACC_A <- 0.0734 #Source:ACC, discount Rate
PGE_WACC_Q <- PGE_WACC_A/4
Divider_discount <- PGE_WACC_Q + 1
The data inputs are shown below:
• Claims data was pulled from CEDARS in April 2024: https://cedars.sound-data.com/reports/download-record-level-report/claims/2023/
• Load Shapes profiles with Avoided Costs are from CEDARS: https://file.ac/l1-GqhWF8OU/
The data from the online sources were truncated and renamed to simplify this analysis; the names of these files are listed below.
#Read in Fuel Sub Claims 2023 Q1-Q4
FS23 <- read_excel("C:\\Users\\mmh\\R Programming\\subtests\\FS_NewBens\\23_FS_Claims_PGE.xlsx") #Normal Replacement Only (No New Construction)
#Read in Load Shapes (accessible at https://file.ac/l1-GqhWF8OU/)
Gas_LS_QRT <- read_excel("C:\\Users\\mmh\\R Programming\\subtests\\FS_NewBens\\G_LS_QRT.xlsx") #Quarterly LS
#Calculated Quarterly Avoided Costs (energy x LS) over EUL of the Claims
#Generate the Claim Year Quarters
EUL_Claims_HeatPumpHVAC_res <- list(Quarters$EUL_15)
EUL_Claims_HeatPumpHVAC_res<- as.data.frame(EUL_Claims_HeatPumpHVAC_res)
EUL_Claims_HPWH_res <- list(Quarters$EUL_10)
colnames(EUL_Claims_HeatPumpHVAC_res) <- c('CYQtr')
EUL_Claims_HPWH_res<- as.data.frame(EUL_Claims_HPWH_res)
colnames(EUL_Claims_HPWH_res) <- c('CYQtr')
EUL_New_HeatPumpHVAC_res <- list(Quarters$EUL_23)
EUL_New_HeatPumpHVAC_res<- as.data.frame(EUL_New_HeatPumpHVAC_res)
EUL_New_HPWH_res <- list(Quarters$EUL_20)
colnames(EUL_New_HeatPumpHVAC_res) <- c('CYQtr')
EUL_New_HPWH_res<- as.data.frame(EUL_New_HPWH_res)
colnames(EUL_New_HPWH_res) <- c('CYQtr')
#Total Therm Savings from Claims Data
Therm_TotalAnnual_HVAC <- c(sum(df_HeatPumpHVAC_res$`Therm_TotalAnnual`))
Therm_TotalAnnual_HPWH <- c(sum(df_HPWH_res$`Therm_TotalAnnual`))
#Generate the NPV of Commodity and T&D Avoided Costs
generate_qtrly_npv_1 <- function(load_shape,
considered_qtrs, discount_rate, Therms) {
filtered_load_shape <- filter(load_shape,
Qtr %in% considered_qtrs$CYQt) %>%
mutate(Qtr_step = 1:n()) %>%
mutate(Qtr_ID = Qtr_step-1) %>%
mutate(Total_Discounted = (Total/(discount_rate^Qtr_ID)))
result_1 <- c(sum(filtered_load_shape$'Total_Discounted'*Therms))
return (result_1)
}
GasComTD_HeatPumpHVAC_res <-
generate_qtrly_npv_1(Gas_LS_QRT,
EUL_Claims_HeatPumpHVAC_res, Divider_discount,
Therm_TotalAnnual_HVAC)
GasComTD_HPWH_res <-
generate_qtrly_npv_1(Gas_LS_QRT, EUL_Claims_HPWH_res,
Divider_discount, Therm_TotalAnnual_HPWH )
GasComTD_HeatPumpHVAC_res_new <-
generate_qtrly_npv_1(Gas_LS_QRT,
EUL_New_HeatPumpHVAC_res, Divider_discount,
Therm_TotalAnnual_HVAC)
GasComTD_HPWH_res_new <-
generate_qtrly_npv_1(Gas_LS_QRT, EUL_New_HPWH_res,
Divider_discount, Therm_TotalAnnual_HPWH )
#Gas GHG Adder
Gas_GHG_Adder <- 0.07 #$/tonne CO2 for 2023. The ACC inflates the $114 each year in the equivalent amount of the discount. So, when you discount the costs each yr, the values end up being constant.
Therm_gas_yrly_HVAC <- df_HeatPumpHVAC_res %>% mutate(Therm_TotalAnnual = df_HeatPumpHVAC_res$`Unit Therm First Baseline` * df_HeatPumpHVAC_res$`Number of Units`)
Therm_gas_yrly_HVAC <-c(sum(df_HeatPumpHVAC_res$`Therm_TotalAnnual`))
Therm_gas_yrly_HPWH <- df_HPWH_res %>% mutate(Therm_TotalAnnual = df_HPWH_res$`Unit Therm First Baseline` * df_HPWH_res$`Number of Units`)
Therm_gas_yrly_HPWH <- c(sum(df_HPWH_res$`Therm_TotalAnnual`))
Therm_HeatPumpHVAC_res <- (Therm_gas_yrly_HVAC* Gas_GHG_Adder)* EUL_HVAC_old
Therm_HPWH_res <- ( Therm_gas_yrly_HPWH* Gas_GHG_Adder)* EUL_HPWH_old
Therm_HeatPumpHVAC_res_new <-(Therm_gas_yrly_HVAC* Gas_GHG_Adder) * EUL_HVAC_new
Therm_HPWH_res_new <- ( Therm_gas_yrly_HPWH* Gas_GHG_Adder) * EUL_HPWH_new
#Calculate Total Gas Benefits
Calc_GasBen_HeatPumpHVAC_res <- GasComTD_HeatPumpHVAC_res
Calc_GasBen_HPWH_res <- GasComTD_HPWH_res
Calc_GasBen_HeatPumpHVAC_res_new <- GasComTD_HeatPumpHVAC_res_new
Calc_GasBen_HPWH_res_new <- GasComTD_HPWH_res_new
Calc_GasBen_wGasGHG_HVAC <- Calc_GasBen_HeatPumpHVAC_res_new + Therm_HeatPumpHVAC_res_new
Calc_GasBenwGasGHG_HPWH <- Calc_GasBen_HPWH_res_new + Therm_HPWH_res_new
percent_inc_GasGHG_HVAC <- (Calc_GasBen_wGasGHG_HVAC - Calc_GasBen_HeatPumpHVAC_res_new )/Calc_GasBen_HeatPumpHVAC_res_new
percent_inc_GasGHG_HPWH <- (Calc_GasBenwGasGHG_HPWH - Calc_GasBen_HPWH_res_new )/Calc_GasBen_HPWH_res_new
The data inputs are shown below:
• Claims data was pulled from CEDARS in April 2024: https://cedars.sound-data.com/reports/download-record-level-report/claims/2023/
• Load Shapes profiles with Avoided Costs are from CEDARS: https://file.ac/l1-GqhWF8OU/
The data from the online sources were truncated and renamed to simplify this analysis; the names of these files are listed below.
#Read in Fuel Sub Claims 2023 Q1-Q4
FS23 <- read_excel("C:\\Users\\mmh\\R Programming\\subtests\\FS_NewBens\\23_FS_Claims_PGE.xlsx") #Normal Replacement Only (No New Construction)
#Read in Load Shapes (accessible at https://file.ac/l1-GqhWF8OU/)
kWh_LS_QRT <- read_excel("C:\\Users\\mmh\\R Programming\\subtests\\FS_NewBens\\E_LS_QRT_22.xlsx") #Quarterly LS
kWh_TotalAnnual_HVAC <- c(sum(df_HeatPumpHVAC_res$`kWh_TotalAnnual`))
kWh_TotalAnnual_HPWH <- c(sum(df_HPWH_res$`kWh_TotalAnnual`))
#Generate the NPV of CO2 Avoided Costs
generate_qtrly_npv_e <- function(load_shape, climate_zone, end_use,
considered_qtrs, discount_rate,
kWh_TotalAnnual, AC) {
filtered_load_shape <- filter(load_shape, CZ == climate_zone, EU == end_use,
Qtr %in% considered_qtrs$CYQt) %>%
mutate(Qtr_step = 1:n()) %>%
mutate(Qtr_ID = Qtr_step-1) %>%
mutate(AC_type_discounted = (!!sym(AC)/(discount_rate^Qtr_ID)))
result3 <- c(sum(filtered_load_shape$AC_type_discounted*kWh_TotalAnnual))
return (result3)
}
#old EUL
AC_Sum_Gen_E_HeatPumpHVAC_res <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HP_HVAC,
EUL_Claims_HeatPumpHVAC_res, Divider_discount,
kWh_TotalAnnual_HVAC,'Gen')
AC_Sum_TD_E_HeatPumpHVAC_res <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HP_HVAC,
EUL_Claims_HeatPumpHVAC_res, Divider_discount,
kWh_TotalAnnual_HVAC,'TD')
AC_Sum_Co2_E_HeatPumpHVAC_res <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HP_HVAC,
EUL_Claims_HeatPumpHVAC_res, Divider_discount,
kWh_TotalAnnual_HVAC,'CO2')
AC_Sum_Gen_E_HPWH_res <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HPWH, EUL_Claims_HPWH_res,
Divider_discount, kWh_TotalAnnual_HPWH,'Gen')
AC_Sum_TD_E_HPWH_res <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HPWH, EUL_Claims_HPWH_res,
Divider_discount, kWh_TotalAnnual_HPWH,'TD')
AC_Sum_Co2_E_HPWH_res <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HPWH, EUL_Claims_HPWH_res,
Divider_discount, kWh_TotalAnnual_HPWH,'CO2')
#new EUL
AC_Sum_Gen_E_HeatPumpHVAC_res_new <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HP_HVAC,
EUL_New_HeatPumpHVAC_res, Divider_discount,
kWh_TotalAnnual_HVAC,'Gen')
AC_Sum_TD_E_HeatPumpHVAC_res_new <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HP_HVAC,
EUL_New_HeatPumpHVAC_res , Divider_discount,
kWh_TotalAnnual_HVAC,'TD')
AC_Sum_Co2_E_HeatPumpHVAC_res_new <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HP_HVAC,
EUL_New_HeatPumpHVAC_res , Divider_discount,
kWh_TotalAnnual_HVAC,'CO2')
AC_Sum_Gen_E_HPWH_res_new <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HPWH, EUL_New_HPWH_res,
Divider_discount, kWh_TotalAnnual_HPWH,'Gen')
AC_Sum_TD_E_HPWH_res_new <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HPWH, EUL_New_HPWH_res,
Divider_discount, kWh_TotalAnnual_HPWH,'TD')
AC_Sum_Co2_E_HPWH_res_new <-
generate_qtrly_npv_e(kWh_LS_QRT, ClimateZone, EU_HPWH, EUL_New_HPWH_res,
Divider_discount, kWh_TotalAnnual_HPWH,'CO2')
#Calculate Total Electric Costs
Calc_ElecCost_HeatPumpHVAC_res <- (AC_Sum_Gen_E_HeatPumpHVAC_res + AC_Sum_TD_E_HeatPumpHVAC_res + AC_Sum_Co2_E_HeatPumpHVAC_res)*(-1)
Calc_ElecCost_HPWH_res <- (AC_Sum_Gen_E_HPWH_res + AC_Sum_TD_E_HPWH_res + AC_Sum_Co2_E_HPWH_res)*(-1)
Calc_ElecCost_HeatPumpHVAC_res_new <- (AC_Sum_Gen_E_HeatPumpHVAC_res_new + AC_Sum_TD_E_HeatPumpHVAC_res_new + AC_Sum_Co2_E_HeatPumpHVAC_res_new )*(-1)
Calc_ElecCost_HPWH_res_new <- (AC_Sum_Gen_E_HPWH_res_new + AC_Sum_TD_E_HPWH_res_new + AC_Sum_Co2_E_HPWH_res_new )*(-1)
Measure | TRC Claims | TRC, Increased from EUL Study | TRC, Increased from EUL Study, Gas GHG Adder from Methane |
---|---|---|---|
HVAC Heat Pump, Residential | 0.77 | 0.92 | 0.97 |
Heat Pump Water Heater, Residential | 0.40 | 0.62 | 0.65 |