Skip to content

Commit

Permalink
Merge pull request #124 from StephanieWillis/update-rates-and-grant
Browse files Browse the repository at this point in the history
Update rates and grant
  • Loading branch information
StephanieWillis authored Oct 28, 2023
2 parents 625d241 + f8a43c0 commit b4317b0
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 42 deletions.
26 changes: 12 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,11 @@ In the step where we pickle the demand profile we normalize it so the profiles s

### Heating system efficiencies

**Heat pumps** - using rounded values from 5 kW
[Vaillant arotherm SCOP data](https://www.vaillant.co.uk/downloads/aproducts/renewables-1/arotherm-plus/arotherm-plus-1/quick-guides/new-5/installers-quick-guide-arotherm-plus-1949445.pdf),
with flow temperature of 55C. These efficiencies are above
**Heat pumps** - using rounded values from 7 kW
[Vaillant arotherm SCOP data](https://www.vaillant.co.uk/downloads/aproducts/renewables-1/arotherm-plus/arotherm-plus-spec-sheet-1892564.pdf)
with flow temperature of 55C. These efficiencies are above
recorded averages (2.76 according to this [nesta analysis](https://www.nesta.org.uk/report/reduce-the-cost-of-heat-pumps/))
but lower than reported values for high quality installs.
but lower than reported values for [high quality installs](https://heatpumpmonitor.org/graph).

**Gas boiler** - using 84%, as used in this
[Delta EE report](https://www.climatexchange.org.uk/media/1897/electrification_of_heat_and_impact_on_scottish_electricity_system_-_final_report1.pdf)). Using 80% for water heating due to lower
Expand All @@ -119,30 +119,28 @@ Electricity emissions factors are UK average from the start of 2022 to 2022-10-2
### Tariffs

The default tariffs for gas and electricity are based on the average rate under the
[Energy Price Guarantee](https://www.gov.uk/government/publications/energy-bills-support/energy-bills-support-factsheet-8-september-2022),
which is active until April 2023.
Without further government support, bills will increase after that date, at least in the short term. Some clues
as where rates might go in [this Cornwall Insights analysis](https://www.cornwall-insight.com/predicted-fall-in-the-april-2023-price-cap-but-prices-remain-significantly-above-the-epg/)
and [this nesta analysis](https://www.nesta.org.uk/report/how-the-energy-crisis-affects-the-case-for-heat-pumps/how-the-costs-of-heat-pumps-compare-to-gas-boilers-since-the-energy-crisis-1/#content)
[October 2023 price cap](https://www.ofgem.gov.uk/energy-price-cap),
which is active until the 30th of December 2023.
The electricity export tariff is Octopus's [Outgoing Fixed](https://octopus.energy/smart/outgoing/).
The oil tariff is a rough average based on [Boiler Juice](https://www.boilerjuice.com/heating-oil-prices/)
data since prices stabilised in April 2022.
data for September and October 2023.


### Cost data
Solar costs are from [BEIS data](https://www.data.gov.uk/dataset/738a7bdb-a533-443d-bd02-69a8dd7fe68d/solar-pv-cost-data)
for 2021/22 installs accredited under MCS.
We used the upper confidence interval given prices have likely risen since 2021/2022

Heat pump and gas boiler costs from Nesta's [How to reduce the cost of heat pupms report](
Heat pump and gas boiler costs from Nesta's [How to reduce the cost of heat pumps report](
https://media.nesta.org.uk/documents/How_to_reduce_the_cost_of_heat_pumps_v4_1.pdf)
- Used tables 1 (for semi only) and 2 (for terrace, flat, detached) from
- Corrected gas boiler cost for semi-detached by same amount as heat pump shifts to keep equivalent
- Assumed oil and direct electric baseline costs are the same as gas boiler costs. This is probably a poor assumption in the direct electric case

The Nesta prices were in £2021 so we inflated the figures by ratio of retail price index from [Oct 2021](
https://www.crosslandsolicitors.com/site/hr-hub/October-2021-inflation-data-CPI-CPIH-RPI) to [Oct 2022](
https://www.crosslandsolicitors.com/site/media/October-2022-inflation-data-CPI-CPIH-RPI). That amounts
to a 14% cost increase.
https://www.crosslandsolicitors.com/site/hr-hub/October-2021-inflation-data-CPI-CPIH-RPI) to [September 2023](
https://www.crosslandsolicitors.com/site/media/hr-hub/September-2023-inflation-CPI-CPIH-RPI). That amounts
to a 21% cost increase.

Other relevant cost resources [here](
https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/656866/BEIS_Update_of_Domestic_Cost_Assumptions_031017.pdf)
Expand Down
28 changes: 14 additions & 14 deletions src/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
BASE_YEAR_HOURLY_INDEX = pd.date_range(start="2013-01-01", end="2014-01-01", freq="1H", inclusive="left")
EMPTY_TIMESERIES = pd.Series(index=BASE_YEAR_HOURLY_INDEX, data=0)

KWH_PER_LITRE_OF_OIL = 10.35 # https://www.thegreenage.co.uk/is-heating-oil-a-cheap-way-to-heat-my-home/
ELEC_TCO2_PER_KWH = 186 / 10 ** 6
ELECTRICITY = Fuel("electricity", tco2_per_kwh=ELEC_TCO2_PER_KWH)
GAS_TCO2_PER_KWH = 202 / 10 ** 6
GAS = Fuel(name="gas", tco2_per_kwh=GAS_TCO2_PER_KWH)
OIL_TCO2_PER_KWH = 260 / 10 ** 6
KWH_PER_LITRE_OF_OIL = 10.35 # https://www.thegreenage.co.uk/is-heating-oil-a-cheap-way-to-heat-my-home/
OIL = Fuel(name="oil", units="litres", converter_consumption_units_to_kwh=KWH_PER_LITRE_OF_OIL,
tco2_per_kwh=OIL_TCO2_PER_KWH)
FUELS = [ELECTRICITY, GAS, OIL]
Expand Down Expand Up @@ -94,27 +94,27 @@ class HeatingConstants:
normalized_hourly_heat_demand_profile=NORMALIZED_HOURLY_HEAT_DEMAND_DF[
'Normalised_Resistance_heater_heat']),
"Heat pump": HeatingConstants(
efficiency=3.0,
efficiency=3.4,
fuel=ELECTRICITY,
normalized_hourly_heat_demand_profile=NORMALIZED_HOURLY_HEAT_DEMAND_DF['Normalised_ASHP_heat']),
}

RPI_ratio_oct_21_to_oct_22 = 356.2/312.0
HEAT_PUMP_COSTS = {"Terrace": 10000 * RPI_ratio_oct_21_to_oct_22,
"Semi-detached": 11100 * RPI_ratio_oct_21_to_oct_22,
"Flat": 9100 * RPI_ratio_oct_21_to_oct_22,
"Detached": 13100 * RPI_ratio_oct_21_to_oct_22}
GAS_BOILER_COSTS = {"Terrace": 1800 * 10000 / 11100 * RPI_ratio_oct_21_to_oct_22,
"Semi-detached": 1800 * RPI_ratio_oct_21_to_oct_22,
"Flat": 1500 * RPI_ratio_oct_21_to_oct_22,
"Detached": 2200 * RPI_ratio_oct_21_to_oct_22}
RPI_ratio_oct_21_to_sept_23 = 378.4/312.0
HEAT_PUMP_COSTS = {"Terrace": 10000 * RPI_ratio_oct_21_to_sept_23,
"Semi-detached": 11100 * RPI_ratio_oct_21_to_sept_23,
"Flat": 9100 * RPI_ratio_oct_21_to_sept_23,
"Detached": 13100 * RPI_ratio_oct_21_to_sept_23}
GAS_BOILER_COSTS = {"Terrace": 1800 * 10000 / 11100 * RPI_ratio_oct_21_to_sept_23,
"Semi-detached": 1800 * RPI_ratio_oct_21_to_sept_23,
"Flat": 1500 * RPI_ratio_oct_21_to_sept_23,
"Detached": 2200 * RPI_ratio_oct_21_to_sept_23}
HEATING_SYSTEM_COSTS = {"Gas boiler": GAS_BOILER_COSTS,
"Heat pump": HEAT_PUMP_COSTS,
"Oil boiler": GAS_BOILER_COSTS, # assume they are the same
"Direct electric": GAS_BOILER_COSTS
}
HEATING_SYSTEM_GRANTS = {"Gas boiler": 0,
"Heat pump": 5000, # Boiler upgrade scheme,
"Heat pump": 7500, # Boiler upgrade scheme,
"Oil boiler": 0,
"Direct electric": 0
}
Expand All @@ -135,8 +135,8 @@ class TariffConstants:


STANDARD_TARIFF = TariffConstants(
p_per_kwh_gas=10.3, p_per_kwh_elec_import=34.0, p_per_kwh_elec_export=15.0,
p_per_L_oil=95.0, p_per_day_gas=28.0, p_per_day_elec=46.0)
p_per_kwh_gas=7.0, p_per_kwh_elec_import=27.0, p_per_kwh_elec_export=15.0,
p_per_L_oil=79.0, p_per_day_gas=30.0, p_per_day_elec=53.0)


@dataclass()
Expand Down
8 changes: 4 additions & 4 deletions src/house_questions.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,10 +327,10 @@ def render_tariff_overwrite_options(house: House) -> House:
tariffs["oil"].p_per_unit_import = st.session_state.p_per_unit_heating_fuel_import

st.caption(
"Our default tariffs reflect the current [Energy Price Guarantee]("
"https://www.gov.uk/government/publications/energy-bills-support/energy-bills-support-factsheet-8-september-2022)"
" which is in place until April. "
"Rates will go up in April, but we don't yet know how this will be split between electricity and gas. \n \n"
"Our default tariffs reflect the current [Ofgem price cap](https://www.ofgem.gov.uk/energy-price-cap). "
"Cheaper electricity rates are available. For example Ovo is offering a [15p/kWh heat pump tariff]("
"https://company.ovo.com/cheaper-than-a-gas-boiler-ovo-launches-best-in-market-heat-pump-offer/) where "
"you get this low rate just for the electricity your heat pump uses. \n \n"
"The electricity export rate of 15p/kWh is based on [Octopus Outgoing](https://octopus.energy/outgoing)"
)

Expand Down
2 changes: 1 addition & 1 deletion src/place_search/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
font-size: 16px;
}
</style>
<input id="postcode" placeholder="Enter your postcode to find your roof (then click on the matching address)" class="stTextInput postcode-input"/>
<input id="postcode" placeholder="Enter your address to find your roof (click on the matching address)" class="stTextInput postcode-input"/>
<div id="output" value="" style="z-index: 99999"/>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDE1h8LmQYFqt5_aHPd_7KKF-wpv14sJBA&libraries=places&callback=autoComplete&locationbias=ipBias"
async defer></script>
Expand Down
2 changes: 1 addition & 1 deletion src/savings_outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def render_heat_pump_overwrite_options(upgrade_heating: HeatingSystem) -> Heatin
st.caption(
"The efficiency of your heat pump depends on how well the system is designed and how low a flow "
"temperature it can run at. A COP of 3.6 or better is possible with a [high quality, low flow temperature "
"install](https://heatpumpmonitor.org). \n \n"
"install](https://heatpumpmonitor.org/graph). \n \n"
"A good installer is key to ensuring your heat pump runs efficiently. The [heat geek map"
"](https://www.heatgeek.com/find-a-heat-geek/) is a great place to start your search."
)
Expand Down
14 changes: 6 additions & 8 deletions tests/test_house.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,21 +132,19 @@ def test_set_up_house_from_heating_name():


def test_typical_home_hits_price_cap():
# price cap under Energy price guarantee is £2500 for house that uses 12,000kWh of gas and 2,900kWh of elec
# October 2023 price cap for house is 1834 for house that uses 11,500kWh of gas and 2,900kWh of elec
gas_boiler = building_model.HeatingSystem.from_constants(
name='Gas boiler',
parameters=constants.DEFAULT_HEATING_CONSTANTS['Gas boiler'])
demand = 2900 * constants.NORMALIZED_HOURLY_BASE_DEMAND
demand = 2700 * constants.NORMALIZED_HOURLY_BASE_DEMAND
envelope = building_model.BuildingEnvelope(house_type='typical',
annual_heating_demand=12000 * gas_boiler.efficiency,
annual_heating_demand=11500 * gas_boiler.efficiency,
base_electricity_demand_profile_kwh=demand)
gas_house = building_model.House.set_up_from_heating_name(envelope=envelope, heating_name='Gas boiler')
assert gas_house.has_multiple_fuels is True
np.testing.assert_almost_equal(gas_house.annual_consumption_per_fuel_kwh['electricity'], 2900)
np.testing.assert_almost_equal(gas_house.annual_consumption_per_fuel_kwh['gas'], 12000)
np.testing.assert_almost_equal(gas_house.total_annual_bill, 2492.1) # looks like it isn't exactly 2500 after all
np.testing.assert_almost_equal(gas_house.total_annual_bill, 1837, 0) # prices we are using are rounded
np.testing.assert_almost_equal(gas_house.total_annual_tco2,
(12000 * constants.GAS_TCO2_PER_KWH + 2900 * constants.ELEC_TCO2_PER_KWH))
(11500 * constants.GAS_TCO2_PER_KWH + 2700 * constants.ELEC_TCO2_PER_KWH))


def test_upgrade_buildings():
Expand Down Expand Up @@ -190,6 +188,6 @@ def test_upgrade_buildings():
assert solar_house.percent_self_use_of_solar > 0
assert round(solar_house.percent_self_use_of_solar, 3) == 0.827 # so high because only 0.8kW of panels
assert both_house.percent_self_use_of_solar > solar_house.percent_self_use_of_solar
assert round(both_house.percent_self_use_of_solar, 3) == 0.920
assert round(both_house.percent_self_use_of_solar, 3) == 0.914

return hp_house, solar_house, both_house

0 comments on commit b4317b0

Please sign in to comment.