This is a core function of hpmicrosimr. heating_upgrade_tensor calculates an element of the heating system upgrade cost tensor i.e. the costs and cost savings (relative to prebious system) for (hli_old,tech_old) -> (hli_new,tech_new)

Fabric upgrade costs are discounted with infinite lifetime based on the risk-free interest rate (params$r.)

Behavioural factors are priced at their default in *params*. Present bias (params$beta.) is applied to the after grant capex. A hassle disutility (params$eta) describing disruption is applied before grant capex A sludge disutility (params$tau.) is applied to the grant amount. These can be turned off by beta params$beta. = 1, params$eta.=0 and params$tau.=0.
The new tech is installed at current time (params$yeartime). The old tech installation time is also specified.
Eligible grants are applied by default, the effects of grants can optionally be excluded by setting include_grants=FALSE
Optionally, the current (old) heating system can be retained by setting upgrade_heat =FALSE
Used with optimise_upgrade to determine the optimal upgrade path tech_old -> tech_new and hli_old -> hli_new

heating_upgrade_tensor(
  hli_old,
  hli_new,
  tech_old,
  installation_time,
  tech_new,
  house_type,
  storeys,
  construction_year,
  region,
  floor_area,
  eta,
  params,
  upgrade_heat = TRUE,
  is_fuel_allowance = FALSE,
  include_grants = TRUE,
  include_rebound = FALSE
)

Arguments

hli_old

old ber double

hli_new

new ber double

tech_old

old tech

installation_time

time of installation of current system (for estimate of old operating cost only)

tech_new

new tech

house_type

house type in seai codes

storeys

number of storeys 1, 2+

construction_year

year,integer

region

region

floor_area

floor area of property in m2

eta

heterogeneous disruption parameter

params

params

upgrade_heat

TRUE if current heating system is upgraded

is_fuel_allowance

TRUE/FALSE

include_grants

TRUE/FALSE

include_rebound

defulat FALSE

Value

list

Examples


params <- scenario_params(sD,2028)

heating_upgrade_tensor(2.31,2.31,"gas",2005,"gas","semi_detached",2,1990,"Dublin",100,eta=0.16,params,TRUE,FALSE,TRUE)
#> # A tibble: 1 × 8
#>   new_cost old_cost savings upgrade_cost heating_sys_cost grant_type
#>      <dbl>    <dbl>   <dbl>        <dbl>            <dbl> <chr>     
#> 1     2505     2897  -0.135            0             2140 None      
#> # ℹ 2 more variables: upgrade_grant <dbl>, heat_pump_grant <dbl>

heating_upgrade_tensor(4,2,"oil",2000,"heat_pump","terraced",2,1980,"Munster",90,eta=0.16,params,TRUE,FALSE,TRUE,include_rebound=FALSE)
#> # A tibble: 1 × 8
#>   new_cost old_cost savings upgrade_cost heating_sys_cost grant_type
#>      <dbl>    <dbl>   <dbl>        <dbl>            <dbl> <chr>     
#> 1     5545     4054   0.368        20331            12078 OSS       
#> # ℹ 2 more variables: upgrade_grant <dbl>, heat_pump_grant <dbl>
heating_upgrade_tensor(4,2,"oil",2000,"heat_pump","terraced",2,1980,"Munster",90,eta=0,params,TRUE,FALSE,TRUE,include_rebound=FALSE)
#> # A tibble: 1 × 8
#>   new_cost old_cost savings upgrade_cost heating_sys_cost grant_type
#>      <dbl>    <dbl>   <dbl>        <dbl>            <dbl> <chr>     
#> 1     2768     4054  -0.317        20331            12078 OSS       
#> # ℹ 2 more variables: upgrade_grant <dbl>, heat_pump_grant <dbl>
heating_upgrade_tensor(2,1.2,"oil",2000,"heat_pump","semi_detached",2, 1980,"Munster",100,eta=0.12,params,TRUE,FALSE,TRUE,include_rebound=FALSE)
#> # A tibble: 1 × 8
#>   new_cost old_cost savings upgrade_cost heating_sys_cost grant_type
#>      <dbl>    <dbl>   <dbl>        <dbl>            <dbl> <chr>     
#> 1     6287     2322    1.71        31990            10265 OSS       
#> # ℹ 2 more variables: upgrade_grant <dbl>, heat_pump_grant <dbl>

ber_from_hli(1.27,"gas",params$yeartime,params)
#> [1] 119.8083