chore(billing): refresh off-gas fuel rates onto one consistent basis

Apply the deep-research off-gas figures so oil/smokeless/wood sit on the
same NEP-Apr-2026 retail / DESNZ DUKES gross-CV basis as the new coal
proxy (fuel-input, not useful-heat): OIL 9.16 -> 12.11 (prior value was
materially low vs current kerosene), SMOKELESS 10.0 -> 8.69, WOOD_LOGS
8.83 -> 8.25, WOOD_PELLETS 7.99 -> 7.38. SEG (15.0, Solar Energy UK) and
LPG (17.61, bottled-propane) kept; gas/electricity (Ofgem cap) unchanged.
CV arithmetic recorded in the snapshot _assumptions. OIL pin updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-06-04 10:27:29 +00:00
parent c6eaa53931
commit 7be4d83ffa
2 changed files with 18 additions and 9 deletions

View file

@ -1,9 +1,9 @@
{
"period": "2026-04 to 2026-06",
"basis": "GB national average; Ofgem price cap (gas/electricity), DESNZ/NEP May 2026 (off-gas fuels)",
"basis": "GB national average; fuel-input / metered p/kWh (NOT useful-heat). Ofgem price cap (gas/electricity); NEP Apr 2026 retail prices converted with DESNZ DUKES gross calorific values (off-gas fuels)",
"sources": {
"gas_electricity": "Ofgem energy price cap unit rates and standing charges, announced 2026-02-25, cap period Apr-Jun 2026",
"off_gas": "DESNZ QEP petroleum table (oil, May 2026) + Nottingham Energy Partnership May 2026 comparison (LPG, smokeless, wood)",
"off_gas": "Nottingham Energy Partnership Apr 2026 retail prices (oil, smokeless, wood; LPG bottled-propane proxy) / DESNZ DUKES 2024 gross calorific values; see _assumptions",
"seg": "Solar Energy UK SEG league table, updated 2026-05-12"
},
"seg_export_p_per_kwh": 15.0,
@ -11,11 +11,11 @@
"MAINS_GAS": { "unit_rate_p_per_kwh": 5.74, "standing_charge_p_per_day": 29.09 },
"ELECTRICITY": { "unit_rate_p_per_kwh": 24.67, "standing_charge_p_per_day": 57.21 },
"ELECTRICITY_OFF_PEAK": { "day_p_per_kwh": 29.73, "night_p_per_kwh": 13.89, "standing_charge_p_per_day": 56.99 },
"OIL": { "unit_rate_p_per_kwh": 9.16, "standing_charge_p_per_day": 0.0 },
"LPG": { "unit_rate_p_per_kwh": 17.61, "standing_charge_p_per_day": 0.0 },
"SMOKELESS": { "unit_rate_p_per_kwh": 10.0, "standing_charge_p_per_day": 0.0 },
"WOOD_LOGS": { "unit_rate_p_per_kwh": 8.83, "standing_charge_p_per_day": 0.0 },
"WOOD_PELLETS": { "unit_rate_p_per_kwh": 7.99, "standing_charge_p_per_day": 0.0, "_note": "bagged pellets; blown bulk is 6.76 p/kWh" },
"OIL": { "unit_rate_p_per_kwh": 12.11, "standing_charge_p_per_day": 0.0 },
"LPG": { "unit_rate_p_per_kwh": 17.61, "standing_charge_p_per_day": 0.0, "_note": "bottled-propane basis; bulk tank LPG is materially lower" },
"SMOKELESS": { "unit_rate_p_per_kwh": 8.69, "standing_charge_p_per_day": 0.0 },
"WOOD_LOGS": { "unit_rate_p_per_kwh": 8.25, "standing_charge_p_per_day": 0.0 },
"WOOD_PELLETS": { "unit_rate_p_per_kwh": 7.38, "standing_charge_p_per_day": 0.0, "_note": "bagged pellets (NEP Apr 2026 / DUKES GCV); blown bulk is lower" },
"COAL": { "unit_rate_p_per_kwh": 7.13, "standing_charge_p_per_day": 0.0, "proxy": true, "_note": "PROXY, not a market rate. No current GB retail house-coal price (NEP Apr 2026 blank; domestic house-coal sale restricted since 2021). NEP Nov 2025 coal 48.50p/kg uprated by smokeless movement -> 52.39p/kg / DUKES house-coal GCV 7.3502 kWh/kg = 7.13 p/kWh." },
"HEAT_NETWORK": { "unit_rate_p_per_kwh": 16.0, "standing_charge_p_per_day": 69.4, "indicative": true, "_note": "INDICATIVE, not a regulated rate. Delivered-heat charge; no national tariff/cap. Insite Energy Nov 2024 operator sample avg 16.03 p/kWh + 69.42 p/day; schemes vary widely (~8-30 p/kWh per CMA/Heat Trust)." }
},
@ -24,5 +24,14 @@
"HEAT_NETWORK": "INDICATIVE rate (see _note): scheme-specific, no national tariff/cap; treat the bill as indicative.",
"ELECTRICITY_OFF_PEAK": "day/night split; priced once the off-peak slice adds the day/night accessor"
},
"_proxy_research": "COAL + HEAT_NETWORK proxies sourced 2026-06 via deep research (NEP retail + DESNZ DUKES gross CVs for coal; Insite Energy / CMA / Heat Trust for heat networks). Fuel-input basis. Existing fuels left on their prior curated values."
"_proxy_research": "COAL + HEAT_NETWORK proxies sourced 2026-06 via deep research (NEP retail + DESNZ DUKES gross CVs for coal; Insite Energy / CMA / Heat Trust for heat networks). Fuel-input basis. The off-gas retail fuels (oil/smokeless/wood) were refreshed onto the same NEP-Apr-2026 / DUKES-GCV basis at the same time; gas/electricity (Ofgem cap) and SEG (Solar Energy UK) unchanged.",
"_assumptions": {
"OIL": "NEP Apr 2026 kerosene 124.32 p/litre / DUKES burning-oil 10.2698 kWh/litre = 12.11 p/kWh",
"LPG": "NEP Apr 2026 propane 127.16 p/litre / DUKES LPG 7.3241 kWh/litre = 17.36 (kept prior 17.61, within noise; bulk LPG would be lower)",
"SMOKELESS": "NEP Apr 2026 71.42 p/kg / DUKES manufactured-solid 8.2179 kWh/kg = 8.69 p/kWh",
"WOOD_LOGS": "NEP Apr 2026 kiln-dried 37.26 p/kg / DUKES wood 4.5156 kWh/kg = 8.25 p/kWh",
"WOOD_PELLETS": "NEP Apr 2026 bagged 38.33 p/kg / DUKES pellet 5.1928 kWh/kg = 7.38 p/kWh",
"COAL": "NEP Nov 2025 48.50 p/kg uprated x(71.42/66.12) = 52.39 p/kg / DUKES house-coal 7.3502 kWh/kg = 7.13 p/kWh",
"HEAT_NETWORK": "Insite Energy Nov 2024 operator sample avg 16.03 p/kWh + 69.42 p/day (delivered heat)"
}
}

View file

@ -27,7 +27,7 @@ def test_snapshot_prices_metered_and_delivered_fuels_plus_seg() -> None:
# delivered (no meter) so its standing charge is 0; SEG is a flat credit.
assert rates.unit_rate_p_per_kwh(Fuel.ELECTRICITY) == 24.67
assert rates.standing_charge_p_per_day(Fuel.ELECTRICITY) == 57.21
assert rates.unit_rate_p_per_kwh(Fuel.OIL) == 9.16
assert rates.unit_rate_p_per_kwh(Fuel.OIL) == 12.11
assert rates.standing_charge_p_per_day(Fuel.OIL) == 0.0
assert rates.seg_export_p_per_kwh == 15.0