Model/domain
Khalim Conn-Kowlessar 61c0276599 Slice S0380.100: MEV SFPav + (230a) cascade helpers (SAP 10.2 §2.6.4 + Table 4f)
SAP 10.2 specification (14-03-2025) §2.6.4 (PDF p.16):

  "In the case of decentralised MEV the specific fan power is provided
   for each fan and an average value is calculated for the purposes of
   the SAP calculations. There are two types of fan, one for kitchens
   and one for other wet rooms, and three types of fan location (in
   room with ducting, in duct, or through wall with no duct). [...]
   The average SFP, including adjustments for the in-use factors, is
   given by:

       SFPav = Σ(SFP_j × FR_j × IUF_j) / Σ(FR_j)             (1)

   where the summation is over all the fans, j represents each
   individual fan, FR is the flow rate which is 13 l/s for kitchens
   and 8 l/s for all other wet rooms, and IUF is the applicable
   in-use factor."

And SAP 10.2 §5 Table 4f line (230a):

  "Annual electricity for mechanical ventilation fans (kWh/year) =
   IUF × SFP × 1.22 × V"

This slice lands the two pure-function cascade primitives:

  mev_sfp_av(fan_entries) -> float        # equation (1)
  mev_decentralised_kwh_per_yr(*, sfp_av, V) -> float   # (230a)

`MevFanEntry` carries the per-fan resolved (SFP_w_per_l_per_s, flow_l_
per_s, IUF) triple. Callers (PCDB Table 322 + Table 329 + cert
lodgement of duct type) compose the entries upstream; the cascade
helper does no PCDB resolution itself.

Cert 000565 worksheet line (230a) pinned at 1e-4:
  Σ FR = 92.0 l/s  (matches worksheet "total flow")
  Σ SFP×FR×IUF = 11.7205 W  (matches worksheet "total watage")
  SFPav = 11.7205 / 92.0 = 0.1274 W/(l/s) ✓ vs ws 0.1274
  (230a) = 0.1274 × 1.22 × 820.4385 = 127.5159 ✓ vs ws 127.5159

Pure-function helpers; no cascade integration yet. Next slice
S0380.101 wires HP category mapper; S0380.102 wires cert→inputs
to invoke the cascade. Pyright net-zero per touched file.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 16:28:47 +00:00
..
addresses standardist Address 2026-05-22 10:13:32 +00:00
data_transformation moved classifier data transformation to an easy one 2026-06-01 14:53:34 +00:00
epc pr review, move domain and orhcestration 2026-06-01 14:00:31 +00:00
sap10_calculator Slice S0380.100: MEV SFPav + (230a) cascade helpers (SAP 10.2 §2.6.4 + Table 4f) 2026-06-01 16:28:47 +00:00
sap10_ml Slice S0380.94: RIR insulation "400+ mm PUR or PIR" extractor + mapper + cascade (RdSAP 10 Table 17 col 3b) 2026-06-01 16:28:47 +00:00
tasks added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
postcode.py get rid of comments 2026-05-20 13:21:11 +00:00