OpenEnergyMonitor.org Tools · Household Co-benefit Explorer
Source

Household Co-benefit Explorer

Start from a fossil-fueled baseline, then switch on low carbon technologies in any order. Running costs and the assets you would replace anyway are tracked together, so each step is compared fairly.

{{ costModeLabel }} annual cost: fossil fueled status quo vs your current build
{{ saving>=0 ? '▼ saves ' : '▲ costs ' }}{{ gbp(Math.abs(saving)) }}/yr
Status quopetrol + gas boiler
{{ gbp(costOf(statusQuo)) }}/year
This build{{ buildName }}
{{ gbp(costOf(current)) }}/year
{{ l.label }}
Carbon: fossil status quo vs your current build operational + embodied
{{ carbonSaving>=0 ? '▼ cuts ' : '▲ adds ' }}{{ co2(Math.abs(carbonSaving)) }} CO₂e/yr
Status quopetrol + gas boiler
{{ co2(statusQuo.totalCO2) }}CO₂e/yr
This build{{ buildName }}
{{ co2(current.totalCO2) }}CO₂e/yr
Petrol
Gas (incl. upstream)
Grid electricity
Vehicle embodied
Heat plant embodied
Solar embodied
Battery embodied

Build your home

EV
Electric vehiclereplaces the petrol car
{{ marginalPrimary('ev') }}i
{{ marginalCaption() }}
HP
Heat pumpreplaces the gas boiler
{{ marginalPrimary('hp') }}i
{{ marginalCaption() }}
PV
Solar PV{{ p.solarKwp }} kWp on the roof
{{ marginalPrimary('solar') }}i
{{ marginalCaption() }}
B
Home battery{{ p.batteryKwh }} kWh storage
{{ marginalPrimary('battery') }}i
{{ marginalCaption() }}

Schedules the battery to minimise cost against the half-hourly prices (charging when cheap, discharging or exporting when expensive, with perfect foresight) rather than following the simple solar-surplus rule.

Tariffflat rate, half-hourly Agile, Octopus Cosy, or your own time-of-day scheduletime-varying tariffs need the 15-minute model · enable it under Advanced
{{ marginalPrimary('agile') }}i
{{ marginalCaption() }}

Octopus Cosy, priced from the real half-hourly price feed (region K, inc. VAT, including price-cap changes through the year). Cheap windows 04:00–07:00, 13:00–16:00 and 22:00–00:00, a teatime peak 16:00–19:00, day rate in between. To edit rates by hand, use Custom instead.

Schedule presets
From Import Export

Prices (p/kWh) apply from each band's start until the next, wrapping past midnight.

Average across this build: {{ current.avgAgileImport==null ? Number(p.elecRate).toFixed(1) : current.avgAgileImport.toFixed(1) }}p import / {{ current.avgAgileExport==null ? Number(p.segRate).toFixed(1) : current.avgAgileExport.toFixed(1) }}p export.

CO₂
Grid carbonflat factors, or the measured half-hourly grid intensityhalf-hourly carbon needs the 15-minute model · enable it under Advanced

Each interval's grid import and export is valued at the national grid carbon intensity at that time. Across this build: average import intensity {{ current.avgImportIntensity==null ? '–' : Math.round(current.avgImportIntensity) + ' g/kWh' }} · average export intensity {{ current.avgExportIntensity==null ? '–' : Math.round(current.avgExportIntensity) + ' g/kWh' }}.

Carbon intensity data unavailable in the loaded dataset — using the flat factors.

Hyundai Kona presetloads real new and used petrol car / EV figures into the car assumptions

Assumptions

all editable · mid-2026 figures
Energy prices inc. VAT

Electricity import, export & standing charge are set under Build your home · Tariff (flat, Agile or a custom schedule).

Discounting · time-value of money

Lumpy purchases (car, boiler, heat pump, solar, battery) are turned into an equivalent annual cost with a capital-recovery (annuity) factor at this real (above-inflation) rate, so cash spent today weighs more than cash spent years out; resale values, received at end of life, are discounted back the same way. Set to 0 for plain straight-line spreading. Running costs (energy, fuel, maintenance) are level year-on-year, so a constant annual figure already is their discounted equivalent.

Used by the payback / IRR / ISA-crossover metrics in This build · the numbers: the extra upfront is treated as the investment and the drop in running costs as the annual return over this horizon. The crossover compares putting that same money in a shares ISA growing at the rate above against spending it now and reinvesting each year's bill saving.

Home energy use
Petrol car
Gas boiler
Electric vehicle
Heat pump
Solar PV
Battery
Advanced · solar matching
Carbon · operational factors

Grid import and export carbon follow the national half-hourly intensity dataset — set under Build your home · Grid carbon.

Carbon · embodied factors

This build · the numbers

{{ costModeLabel }} / yr
{{ gbp(costOf(current)) }}
{{ costModeSub }}
vs status quo / yr
{{ saving>=0?'−':'+' }}{{ gbp(Math.abs(saving)) }}
{{ costModeSub }}
Extra upfront
{{ gbp(extraUpfront) }}
{{ likeForLike>0 ? 'above '+kgbp(likeForLike)+' '+likeForLikeLabel : 'all additional kit' }}
Simple payback
{{ paybackLabel }}
extra upfront ÷ bill saving
IRR · real
{{ irrLabel }}
tax-free, over {{ p.investHorizon }} yrs
Crossover vs ISA
{{ crossoverLabel }}
vs {{ p.isaReturn }}% shares ISA
Running costs
Petrol{{ gbp(current.petrol) }}
Gas{{ cfg.hp && !cfg.disconnectGas ? ' (cooking only)' : '' }}{{ gbp(current.gas) }}
Electricity import{{ cfg.agile ? ' ('+tariffLabel+')' : '' }}{{ gbp(current.importCost) }}
{{ cfg.exportMode==='agile' ? 'Agile export credit' : 'Solar export credit' }}−{{ gbp(current.exportRevenue) }}
Electricity standing charge{{ gbp(current.elecStandingCost) }}
Running subtotal{{ gbp(current.running) }}
Annualised assets
{{ cfg.ev?'EV':'Petrol car' }}{{ gbp(current.carAsset) }}
{{ cfg.hp?'Heat pump':'Gas boiler' }}{{ gbp(current.heatAsset) }}
Solar PV{{ gbp(current.solarAsset) }}
Battery{{ gbp(current.batteryAsset) }}
Assets subtotal{{ gbp(current.assets) }}
All-in total{{ gbp(current.allIn) }}

This build · carbon

kgCO₂e per year
CO₂e / yr
{{ co2(current.totalCO2) }}
operational + embodied
vs status quo
{{ carbonSaving>=0?'−':'+' }}{{ co2(Math.abs(carbonSaving)) }}
per year
Carbon payback
{{ carbonPayback===null ? 'never' : carbonPayback.toFixed(1) }} yrs
debt vs operational saving
Operational
Petrol{{ co2(current.petrolCO2) }}
Gas{{ cfg.hp && !cfg.disconnectGas ? ' (cooking)' : '' }}{{ co2(current.gasCO2) }}
Grid electricity{{ co2(current.gridCO2) }}
Exported solar (displaces gas)−{{ co2(current.exportCO2Credit) }}
Operational subtotal{{ co2(current.opCO2) }}
Embodied (annualised)
{{ cfg.ev?'EV (glider + battery)':'Petrol car' }}{{ co2(current.carCO2) }}
{{ cfg.hp?'Heat pump':'Gas boiler' }}{{ co2(current.heatCO2) }}
Solar PV{{ co2(current.solarCO2) }}
Battery{{ co2(current.batteryCO2) }}
Embodied subtotal{{ co2(current.embCO2) }}
Total CO₂e{{ co2(current.totalCO2) }}

Cost of carbon abated

private vs societal
To the household
{{ abatementCost===null ? 'n/a' : (abatementCost<0?'−':'')+gbp(Math.abs(abatementCost)) }}/t
{{ abatementCost===null ? 'no carbon cut' : (abatementCost<0 ? 'net of grant · paid to abate' : 'net of grant') }}
To society
{{ societalAbatementCost===null ? 'n/a' : (societalAbatementCost<0?'−':'')+gbp(Math.abs(societalAbatementCost)) }}/t
{{ grantAnnualised>0 ? 'grant counted as real cost' : 'same, no grant in this build' }}

The household figure is net of the {{ gbp(p.busGrant) }} BUS grant, so it can read as a saving: privately the homeowner may be paid to decarbonise. The societal figure adds the grant back, because it is a transfer from taxpayers, a real resource cost rather than a saving the measure creates, so the true cost of abatement to society is higher. For context, UK government appraisal currently values carbon at roughly £250/tCO₂e.

Switching adds about {{ co2(extraEmbodiedTotal) }} of one-off manufacturing carbon (the carbon debt).

Electricity flows

the co-benefit engine
Total electricity demand{{ kwh(current.demand) }}
Household baseload{{ kwh(p.elecBaseload) }}
Cooking (induction){{ kwh(current.cookingElec) }}
EV charging{{ kwh(current.evElec) }}
Heat pump{{ kwh(current.hpElec) }}
Solar generated{{ kwh(current.solarGen) }}
Self-consumed ({{ current.selfPct }}%){{ kwh(current.solarSelf) }}
Exported{{ kwh(current.solarExport) }}
Grid import{{ kwh(current.gridImport) }}
Average {{ tariffLabel }} import price{{ current.avgAgileImport.toFixed(1) }} p/kWh

{{ current.selfPct }}% of your solar is used at home. Adding load (EV, heat pump) or a battery pushes this up, because every self-consumed kWh is worth the {{ current.avgAgileImport!=null ? current.avgAgileImport.toFixed(1) : Number(p.elecRate).toFixed(1) }}p {{ current.avgAgileImport!=null ? 'average ' : '' }}import rate you avoid, against only {{ current.avgAgileExport!=null ? current.avgAgileExport.toFixed(1) : Number(p.segRate).toFixed(1) }}p {{ current.avgAgileExport!=null ? 'average ' : '' }}if it is exported.

Heat pump vs gas: closing the spark gap

The heat pump's electricity effectively costs {{ current.elecRates.hp.cashRate.toFixed(1) }}p/kWh (grid {{ Math.round(current.elecRates.hp.gridKwh/current.elecRates.hp.kwh*100) }}%).

At SCOP {{ p.scop }} that is {{ current.sparkGap.hpHeatCash.toFixed(1) }}p per kWh of heat, versus gas at {{ current.sparkGap.gasHeat.toFixed(1) }}p/kWh ({{ p.gasRate }}p ÷ {{ Math.round(p.boilerEff*100) }}% boiler).

How to read this. Lumpy purchases (a car, a boiler) are spread over their life as an equivalent annual cost, using an annuity at a real {{ p.discountRate }}% discount rate (editable under Assumptions · Discounting; set it to 0 for plain straight-line spreading). This lets options compare like-for-like, and means cash spent today weighs more than costs and resale values years away. The fossil status quo already carries a car and a boiler you would replace anyway, so switching to an EV or heat pump swaps one asset cost for another rather than adding to it. ‘Extra upfront’ is the cash needed today beyond a like-for-like petrol car or boiler replacement.

The model. A real year of 15-minute data is simulated interval by interval (model.js): solar, battery and EV charging are dispatched through the year, so self-consumption and the import / export split emerge from the timing rather than a fixed ratio. The Agile tariff switch re-costs the same dispatch against the dataset's half-hourly wholesale-linked prices; with it off, flat import and export rates apply. The EV charges within the window set under Electric vehicle; a simple annualised estimate is available under Advanced · solar matching for comparison. v2 · 15-minute

Simplifications. Insurance is treated as roughly neutral between petrol and EV. All prices include VAT: flat rates default to the price cap, and Agile import comes from the region-D dataset grossed up by 5%. Prices are a mid-2026 snapshot and unusually high.

Carbon basis. Petrol ~2.9 kgCO₂e/L well-to-wheel; gas 0.183 kgCO₂e/kWh burned plus an upstream and methane uplift (default +20%, GWP100, and likely a floor rather than a ceiling). Grid electricity defaults to the measured national half-hourly carbon intensity dataset: each interval's import and export is valued at the grid intensity at that time, so overnight EV charging, battery arbitrage and midday solar export each carry their true carbon weight. Note this is an average-intensity basis on both sides — export is credited with the grid mix it displaces at that moment, not the marginal plant. Switching Build your home · Grid carbon to Flat uses two fixed factors instead: imports at ~75 gCO₂/kWh (a deliberately conservative forward average — 2024-25 actual is ~125, falling towards ~50 by 2030) and exported solar credited with the marginal gas (CCGT) generation it backs out, at ~400 gCO₂/kWh — a much larger export credit than the average basis gives. Expect both the price and the carbon value of export to fall as more solar joins the grid (daytime prices decline, curtailment rises). Both flat factors are editable under Carbon · operational factors. Embodied carbon follows the Hoekstra framing: the car glider is roughly equal for petrol and EV, the battery is the main difference (~75 kgCO₂e/kWh of cell), and ‘carbon payback’ is that one-off extra manufacturing carbon divided by the annual operational saving. factors editable

Abatement cost. The change in all-in annual cost divided by the tonnes of CO₂e cut per year (whole build vs status quo, or per step given the rest of the build). A negative figure means the measure cuts carbon and saves money, so the household is effectively paid to decarbonise. A positive figure is the cost per tonne avoided (for context, UK government appraisal values carbon at roughly £250/tCO₂e). The household figure is net of any grant; the societal figure adds the BUS grant back, since a grant is a transfer from taxpayers rather than a saving the measure creates. Steps that do not cut carbon show ‘n/a’.