Skip to content

Envelope U-value film convention: OSut path (with films, code-literal) vs BTAP path (construction-only) disagree by ~4% on the same Table 3.2.2.2 values #2130

Description

@phylroy

Authorship note: this analysis and report were written by Claude (Anthropic's AI assistant) during the NECB compliance-gem validation effort in this repository, and submitted from the repository owner's account at their direction.

Two construction paths coexist in the NECB code and disagree by ~4% on what a Table 3.2.2.2 U-value means:

  • OSut path (add_construction_setsTBD.genConstruction, used by the NECB2020 prototypes): uo is the "desired Uo factor (with air film resistance)" — the table value is treated as overall transmittance including films (wall film 0.150, roof 0.140 m²·K/W). A generated NECB2020 archetype wall carries construction-only conductance 0.276 for the 0.265 table value.
  • BTAP path (apply_standard_construction_propertiescustomize_opaque_constructionsetConductance): the table value is applied as construction-only conductance (films excluded) — the same wall comes out at 0.265, ~4% more insulation than the OSut path.

The NECB 1.4.1.2 definition supports the OSut reading: overall thermal transmittance "reflects the capacity of all elements to transfer heat through the thickness of the assembly, as well as, for instance, through air films on both faces of above-ground components."

Same code, same table, two different buildings depending on which API a caller reaches — and the BTAP path is the over-stringent, non-code-literal one. Suggest aligning customize_opaque_construction/apply_standard_construction_properties to subtract film resistances (or at minimum documenting the convention on both APIs).

Verification detail: the film arithmetic reproduces generated archetype values exactly — 1/(1/0.265 − 0.150) = 0.276 (wall), 1/(1/0.156 − 0.140) = 0.159 (roof), and archetype SimpleGlazing windows correctly carry the table value verbatim (1.9/2.69 — NFRC U-factors already include films).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions