Model/domain/property_baseline
Khalim Conn-Kowlessar d559298de2 feat(baseline): sap_code_to_fuel normalizes via the calculator's own helper
The fuel codes the calculator now puts on SapResult are its own codes — raw
gov-API enums or already-Table-32, depending on the source mapper (ADR-0015).
sap_code_to_fuel now runs the code through table_32.to_table_32_code
(promoted from private _to_table_32_code) — T32-first, then API-translate,
the SAME normalization the calculator's pricing/CO2 helpers use — before the
Table-32 -> Fuel dispatch, so the bill's carrier matches what the calculator
billed (incl. the API/T32 collision codes, e.g. 20 = wood-logs not heat-net).

Falls back to the raw code for billing fuels the price table omits (the 41-58
heat-network range), which resolve to HEAT_NETWORK -> UnpricedFuel — stricter
than, and intentionally divergent from, the calculator's lossy
default-to-mains-gas for an unpriced code (ADR-0014 §5).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 18:59:25 +00:00
..
__init__.py refactor(property-baseline): rename baseline → property_baseline aggregate (PR #1139 review) 2026-06-01 14:54:59 +00:00
bill.py feat(baseline): BillDerivation prices an energy breakdown at Fuel Rates (ADR-0014) 2026-06-02 09:38:44 +00:00
bill_derivation.py feat(baseline): BillDerivation prices an energy breakdown at Fuel Rates (ADR-0014) 2026-06-02 09:38:44 +00:00
calculator_rebaseliner.py refactor(baseline): Performance.from_sap_result replaces the loose mapper 2026-06-02 13:59:25 +00:00
performance.py refactor(baseline): Performance.from_sap_result replaces the loose mapper 2026-06-02 13:59:25 +00:00
property_baseline_performance.py refactor(property-baseline): rename baseline → property_baseline aggregate (PR #1139 review) 2026-06-01 14:54:59 +00:00
rebaseliner.py feat(baseline): CalculatorRebaseliner — calculator goes load-bearing (ADR-0013 amend) 2026-06-02 10:04:24 +00:00
sap_fuel.py feat(baseline): sap_code_to_fuel normalizes via the calculator's own helper 2026-06-05 18:59:25 +00:00