Data Flow¶
This page traces the path of a calculation from a user's Bill of Quantities (BoQ) input to EN 15978 results. Modules marked STUB or PLANNED are not yet implemented; they are shown here to document the intended architecture.
End-to-end flow¶
flowchart TD
BOQ["📋 Bill of Quantities input\nassemblies · Uniclass codes · quantities"]
subgraph "Phase 1 — Material explosion"
MATEXP["quantities\nBoQ → material explosion\n— STUB —"]
end
subgraph "Phase 1 — EPD resolution"
EPDS[("Seed EPD library\ndata/seed_epds/*.json\nopenEPD + proxy_provenance")]
PROXY["proxy_engine\n5-step proxy cascade\n— STUB —"]
PEDIGREE["pedigree\nWeidema 5-axis DQI → GSD²\n— STUB —"]
INTERP["interpolation\ndata-table linear interpolation\n— STUB —"]
end
subgraph "Phase 1–2 — Per-module impact calc"
A1A3["lca.a1_a3\nProduct stage\n— STUB —"]
A4["lca.a4\nTransport to site\n— STUB —"]
A5["lca.a5\nInstallation\n— STUB —"]
B4["lca.b4\nReplacement (RSL cycle)\n— STUB —"]
B6["lca.b6\nOperational energy ❶\n— STUB —"]
C1C4["lca.c1 · c2 · c3 · c4\nEnd of life\n— STUB —"]
D["lca.d\nBeyond boundary ❷\n— STUB —"]
end
subgraph "Phase 2 — Aggregation"
AGGR["Aggregation\nΣ per indicator · per module"]
UNCERT["uncertainty\nMonte Carlo — 10 000 iter.\n— STUB —"]
end
subgraph "Phase 3 — Output"
RESULTS["EN 15978 Results\nper-indicator · per-module table"]
REPORT["reporting\nEN 15978 §9 structured output\n— STUB —"]
end
BOQ --> MATEXP
MATEXP --> A1A3
MATEXP --> A4
MATEXP --> A5
MATEXP --> B4
MATEXP --> B6
MATEXP --> C1C4
MATEXP --> D
EPDS --> PROXY
PROXY --> PEDIGREE
PEDIGREE --> INTERP
PROXY --> A1A3
PROXY --> A4
PROXY --> A5
THERM["thermal\nISO 10456 / 6946\n— STUB —"] --> ENERGY["energy\nCLTD/CLF/SCL\n— STUB —"]
ENERGY --> B6
A1A3 --> AGGR
A4 --> AGGR
A5 --> AGGR
B4 --> AGGR
B6 --> AGGR
C1C4 --> AGGR
D --> AGGR
AGGR --> UNCERT
UNCERT --> RESULTS
RESULTS --> REPORT
❶ B6 operational energy uses a simplified CLTD/CLF engine and carries a "simplified — indicative" disclaimer per PROJECT.md decision #17. A pluggable EnergyPlus/IES VE import is deferred to v2.
❷ Module D results are reported separately and must not be netted against A–C per EN 15804+A2 §6.4.3.2 and METHODOLOGY.md §9.
Where proxy_engine and pedigree are consulted¶
The proxy cascade is consulted when a seed EPD does not exist for the exact material in the exact regional context. The five steps are:
- Regional EPD (Sub-Saharan Africa)
- Country-adjacent EPD (EPDASA / INIES)
- Climate-analogue EPD
- Generic EPD with documented adaptation
- Peer-reviewed literature value
At each step, pedigree scores the data quality on Weidema's five axes and converts the score to GSD² for Monte Carlo input. interpolation is consulted when a calculation input falls between two tabulated reference points (see METHODOLOGY.md §5a for the audit-trail requirement).
Data table interpolation points¶
| Module | Table source | Interpolation trigger |
|---|---|---|
energy |
ASHRAE CLTD/CLF latitude bands | Project latitude ∉ tabulated rows |
energy |
ASHRAE SCL tables | Solar time ∉ tabulated columns |
thermal |
ISO 10456 thermal properties | Temperature / moisture state between rows |
lca.b4 |
RSL tables (ISO 15686 / climate category) | RSP or climate parameter between rows |
proxy_engine |
IPCC EFDB grid factors | Project year between annual timesteps |
Planned modules
All modules shown as STUB in the diagram above are skeleton files containing only a docstring and a NotImplementedError. No calculation logic has been implemented yet. Phase 1 begins with quantities and lca.a1_a3 (see ROADMAP.md).