Model/backend/documents_parser
Khalim Conn-Kowlessar 8020854ab6 Slice 102f: Layer 4 chain tests for 7-cert ASHP cohort at spec-precision floor
Pins the full API → cert_to_inputs → calculate_sap_from_inputs cascade
for each of the 7 ASHP cohort certs against the Elmhurst dr87
worksheet's continuous SAP. Tolerance is 0.07 (NOT 1e-4 like the
boiler cohort) — see HANDOVER_CERT_0380_MIT_CASCADE.md:

  - BRE web confirmed max_output_kw matches cascade (4.39 for
    Mitsubishi PCDB 104568, 3.933 for Daikin PCDB 102421).
  - Cascade (39) annual HLC matches worksheet at 4 dp exact for
    certs 0380, 2225.
  - Back-solving worksheet η_space implies ~0.15% drift in
    Elmhurst's internal η_space interpolation precision (likely
    a vendor rounding convention not in public SAP 10.2 spec).

The 7-cert cohort clusters within +0.030..+0.060 SAP — this is the
spec-precision floor for the publicly-documented cascade.

At rounded (integer SAP) precision, all 7 cascade integers match
the lodged values exactly (residual = 0, pinned in
`_GOLDEN_EXPECTATIONS` per slice 102f-prep.11).

Cohort summary:
  0380  88.5698 vs 88.5104 Δ=+0.059  Mitsubishi PUZ-WM50VHA
  0350  84.1825 vs 84.1367 Δ=+0.046  Mitsubishi PUZ-WM50VHA
  2225  88.8362 vs 88.7921 Δ=+0.044  Mitsubishi PUZ-WM50VHA + PV
  2636  86.2964 vs 86.2641 Δ=+0.032  Mitsubishi PUZ-WM50VHA + cantilever
  3800  86.1900 vs 86.1458 Δ=+0.044  Mitsubishi PUZ-WM50VHA
  9285  84.1871 vs 84.1369 Δ=+0.050  Mitsubishi PUZ-WM50VHA
  9418  84.6601 vs 84.6305 Δ=+0.030  Daikin Altherma EDLQ05CAV3 ("24" duration)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 16:28:46 +00:00
..
handler address JTK review comments 2026-04-20 15:11:17 +00:00
tests Slice 102f: Layer 4 chain tests for 7-cert ASHP cohort at spec-precision floor 2026-06-01 16:28:46 +00:00
__init__.py Map to RdSapSiteNotes from site notes JSON 🟥 2026-04-16 13:54:03 +00:00
db_writer.py include updating epc_property_data to pashub to ara workflow 2026-04-29 09:55:14 +00:00
elmhurst_extractor.py Slice 99d: surface PV array from Elmhurst Summary §19.0 2026-06-01 16:28:45 +00:00
extractor.py Handle wall thickness "Unmeasurable" 🟩 2026-04-30 16:41:16 +00:00
local_runner.py update local runner to work for elmhurst 2026-04-24 14:01:36 +00:00
parser.py load ecmk site notes to db 2026-04-29 11:20:47 +00:00
pdf.py update local runner to work for elmhurst 2026-04-24 14:01:36 +00:00