Environmental Impact Calculation Methodology
How Dawn calculates environmental impact — a white paper for domain experts, auditors, and third-party verifiers.
A white paper for users, domain experts, and verifiers
1. Introduction
This document explains how Dawn calculates the environmental impact of products, parts, and assemblies. It is written for readers who need to understand, review, or verify the results the platform produces — sustainability professionals, LCA practitioners, auditors, and third-party verifiers — and assumes no prior familiarity with the product.
Dawn is a platform for modelling the environmental footprint of physical products across their life cycle. The footprint of a finished product is built up from many individual contributions: the raw materials it contains, the components purchased from suppliers, the energy used in manufacturing, the transport of goods between sites, the packaging, the use phase, and what happens at end of life. Each of these contributions is calculated separately using established life cycle assessment (LCA) principles, and the results are then aggregated into a complete picture.
This paper describes:
- where the underlying environmental data (emission factors) comes from,
- the fundamental calculation that converts a physical quantity into an environmental impact,
- how individual results are rolled up through a product's bill of materials,
- how each life cycle module (transport, energy, waste, end of life, installation loss, etc.) is computed, including location-based allocation of site utilities to co-produced outputs,
- how EN 15804 output flow indicators (MFR, CRU, MER, EEE, EET) are derived automatically from waste and benefit pathways, summarised on the assembly End of life tab, and included in EPD export (Section 6.8),
- how datasets are selected and verified, including AI-assisted matching,
- the assumptions, limitations, and traceability mechanisms a verifier should be aware of.
2. Key Concepts and Terminology
| Term | Meaning |
|---|---|
| Part | Any item in a product structure: a purchased component, a manufactured sub-part, a Material (raw material such as steel or cotton), a packaging item (boxes, film, pallets), or an auxiliary item such as a transport service or a unit of electricity. |
| Material | A raw material in your library (e.g. steel, cotton, ABS). You assign per-kg environmental data here and link Materials to parts through material composition. Materials also carry end-of-life pathway settings. |
| Material composition | The material mix on a part or packaging item — for example "60 % steel, 40 % ABS" — expressed as percentages that sum to 100 %. Used for manufacturing impact roll-up and for end-of-life mass. |
| Assembly / Bill of Materials (BOM) | The hierarchical structure describing which parts a product is made of, in which quantities. Assemblies can be nested (a product contains sub-assemblies, which contain parts, and so on). |
| Assembly variant | An alternate sellable configuration of the same assembly. Only BOM composition varies per variant; utilities, packaging, transport, use phase, end of life, and other assembly-level data are shared across all configurations. |
| Core BOM | The base bill of materials stored on the assembly itself — the configuration used when no variant is selected. |
| Variant delta | A per-variant change to the core BOM: an added part or child assembly, a quantity or production-loss override of a core line, or an exclusion of a core line. Deltas are stored separately; the core BOM is never duplicated. |
| Activity / dataset | A record from an LCA database describing the environmental impact of producing or providing one unit of something — for example, "1 kg of aluminium ingot, produced in Europe" or "1 tonne-kilometre of road freight". |
| Emission factor / impact factor | The amount of environmental impact (for one impact category) caused per unit of an activity. For example, kg CO₂-equivalents per kg of material. |
| Impact category / indicator | A specific type of environmental pressure, such as climate change, water use, or acidification. Each dataset carries values for a full set of indicators, not just carbon. |
| Functional unit | The reference quantity of a dataset (e.g. 1 kg, 1 kWh, 1 tonne-kilometre). All emission factors in a dataset are expressed per functional unit. |
| Life cycle module | A grouping of impacts by where they occur in the product's life: raw materials, inbound transport, production energy, distribution, use phase, end of life, and so on. |
| Installation loss | Assembly-level percentage (Use tab) modelling product damaged or rejected during installation before the use phase. Adds prior-stage impact share, premature end-of-life treatment, and scaled transport to waste under the installation_loss module (Section 6.6.1). |
| Allocation | A percentage split used when a quantity must be divided across several options — for example, when a part is sourced from two suppliers, when a Material is split across several end-of-life treatment routes, or when site-level overhead at a production location is split among co-produced outputs. |
| Location / production site | A warehouse in the organisation's network where manufacturing takes place. Locations carry team assignments, a registry of what is produced there, site-level utility consumption, and (optionally) site-level waste pathways. |
| Production link | An association between an assembly or subassembly and a location where it is manufactured (AssemblyWarehouse or PartWarehouse). Indicates where production occurs; primary-site flags are informational for operations, not used in utility arithmetic. |
| Output allocation | A WarehouseOutput row linking a location to a specific assembly or subassembly. annualVolume is required for utility allocation. allocationPercent (summing to 100 % per site) is used for site waste pathway distribution; it is not used for utility splitting. |
| Utility allocation basis | Per-location setting (volume, weight, or price) that determines how site utility totals are split among co-produced outputs before converting to per-unit amounts. |
| Annual volume (at a location) | Production volume declared on a WarehouseOutput row for one reporting period at that site. Required for location-inherited utilities — site totals are divided by this volume to yield per functional unit. |
3. Data Foundations: Where Emission Factors Come From
Every impact calculation in Dawn is grounded in an emission factor from one of the following sources:
- Ecoinvent — the leading international LCA background database. Dawn always make the latest availalable version of Ecoinvent available, and support automatically updating background datasets when Ecoinvent versions update:
- Cut-off (allocation, cut-off by classification): recycled materials enter burden-free; the producer of waste bears no credit for downstream recycling. This is the most widely used model for product footprinting and EPDs.
- Consequential: models the consequences of a marginal change in demand. Available for organisations that require it, and currently only for expert level users.
- Environmental Footprint (EF) 3.1 datasets — the European Commission's reference datasets for Product Environmental Footprint (PEF) studies.
- EPD datasets (EN 15804) — verified Environmental Product Declarations, used when a supplier-specific or product-specific declaration is preferable to a generic background dataset.
- Custom datasets — organisation-specific activities, for example primary data from a supplier, imported into the platform and used exactly like database datasets.
Each dataset carries impact values for the full set of impact indicators defined by its impact assessment method. The platform's default impact assessment method is EF 3.1 (Environmental Footprint 3.1), the method underlying the EU PEF framework. EPD data follows the EN 15804+A2 indicator set, which is itself based on EF 3.1, allowing results from both sources to be reported consistently.
Database access is controlled per organisation, so a calculation only ever draws from the databases the organisation is licensed to use.
4. The Fundamental Calculation
Every impact figure in the platform — no matter how complex the product — is ultimately built from one elementary calculation:
Impact = Quantity × Emission factor
More precisely, for each impact indicator i:
Impact(i) = Q × EF(i)
where:
- Q is the physical quantity of the activity consumed, expressed in the dataset's functional unit (kg of material, kWh of electricity, tonne-kilometres of transport, …),
- EF(i) is the dataset's emission factor for indicator i, per functional unit.
This calculation is performed across the entire indicator set simultaneously — climate change, water use, acidification, eutrophication, resource use, toxicity, and the remaining EF 3.1 categories — not only for carbon.
4.1 Unit conversion
The quantity entered by a user is converted to the dataset's functional unit before the multiplication. Examples of conversions applied:
- mass: grams ÷ 1 000 → kg; tonnes × 1 000 → kg
- energy: MJ × 0.27778 → kWh
- transport work: kg·km ÷ 1 000 → tonne-km
So if a dataset is expressed per metric tonne and a part weighs 2 kg, the quantity used in the calculation is 0.002.
4.2 The two impact figures reported
From the full indicator set, two headline figures are derived for every part, module, and product:
(a) Carbon footprint (GWP100). The climate change indicator, expressed in kg CO₂-equivalents using the 100-year Global Warming Potential. This is the total climate change value (covering fossil, biogenic, and land-use related greenhouse gas emissions as defined by EF 3.1 / EN 15804). It is reported without any normalisation or weighting — it is a direct physical quantity.
(b) EF single score. A weighted aggregate across all 16 EF 3.1 impact categories, calculated following the official EF method:
EF single score = Σ over categories i of: Impact(i) / NF(i) × WF(i)
where:
- NF(i) is the EF 3.1 normalisation factor for category i — the average annual impact of one person globally (e.g. 7 550 kg CO₂-eq/person/year for climate change). Dividing by it expresses each impact in "person-equivalents".
- WF(i) is the EF 3.1 weighting factor — the relative importance assigned to the category by the EF method (e.g. 21.06 % for climate change).
The normalisation and weighting factors used are the official EF 3.1 values published by the European Commission. The resulting score is expressed in points (Pt); for readability the platform displays it multiplied by 1 000, i.e. in millipoints (mPt).
Two safeguards apply when computing the single score:
- Sub-category indicators are excluded so the same impact is never counted twice (e.g. "climate change – fossil" is not added on top of "climate change – total").
- Inventory indicators are excluded. EN 15804 EPDs also report inventory-type figures (resource use, waste flows, biogenic carbon content) that are not impact categories. These are shown for transparency but never enter the single score.
4.3 Worked example
A purchased steel bracket weighs 0.5 kg and is matched to the dataset "steel, low-alloyed, hot rolled — Europe", expressed per kg, with a climate change factor of 2.1 kg CO₂-eq/kg.
Carbon footprint = 0.5 kg × 2.1 kg CO₂-eq/kg = 1.05 kg CO₂-eq
The same multiplication is applied to all other indicators in the dataset (water use, acidification, …), and the EF single score is then computed from the full normalised, weighted set as described above.
5. Rolling Up the Product Structure
A product's total impact is not a single multiplication — it is the structured aggregation of many distinct contributions, each calculated with the elementary formula from Section 4 and each carrying its own life cycle stage. Three kinds of contributions enter the roll-up:
- Cradle-to-gate impacts of the parts themselves — every part in the bill of materials contributes its per-unit material/component impact (Section 6.1), scaled by the quantity of that part actually consumed.
- Module impacts attached to individual parts — a part is more than its material content: it may also carry inbound transport from its suppliers, production energy (including energy inherited from production locations where the part is manufactured), production waste treatment, and transport of production scrap to disposal (including routes inherited from production locations where the part is manufactured) (Sections 6.2–6.5). Each of these is calculated at the part level and scaled by the same effective quantity as the part itself, so a screw used 8× also contributes 8× its transport and 8× its production energy.
- Module impacts attached to the assembly or product — contributions that only exist at the level of the finished item: production energy declared directly on the assembly or inherited from production locations, transport to customer, packaging, installation, installation loss (Section 6.6.1), use-phase energy, spare parts, disassembly, and end-of-life treatment of the complete material inventory (Sections 6.3, 6.6–6.7).
Throughout the roll-up, every contribution retains two attributes: its full indicator set (all EF 3.1 categories are aggregated in parallel, not just the headline figures) and its life cycle stage assignment, so the final result can always be decomposed both by impact category and by stage. The aggregation also records which part and which dataset each portion of the total came from, which is what enables the drill-down described in Section 9.
5.1 Quantity propagation
Each parent–child link in the BOM carries a quantity ("4 screws per bracket"). Quantities multiply down the tree:
Effective quantity of a part = quantity per parent × effective quantity of the parent
A screw used 4× in a bracket that appears 2× in the product has an effective quantity of 8. (When a manufacturing step scraps part of its input, the surviving fraction also enters this multiplication — that refinement is described in Section 5.2.)
The total impact of an assembly is then:
Impact(assembly) = Σ over all parts p of: Impact per unit(p) × effective quantity(p)
+ Σ over part-level modules m: Impact(m) × effective quantity of the owning part
+ Σ over assembly-level modules: Impact(module)
Nested sub-assemblies are handled recursively with the same rules: a child assembly's entire contribution — parts, part-level modules, and its own assembly-level modules — is scaled by the quantity of that sub-assembly used in the parent. Where a part appears in several places in the structure, each occurrence is counted with its own effective quantity; circular references are detected and excluded so no contribution can be counted twice.
5.2 Production loss (yield)
Manufacturing steps rarely convert 100 % of input into output. Each step in the product structure can carry a production loss percentage — the share of input that is scrapped rather than ending up in the finished product. For a step with loss rate L:
Input quantity required = declared quantity
Quantity lost as scrap = declared quantity × L
Quantity reaching output = declared quantity × (1 − L)
Conceptually, the platform asks two questions at every step of the product structure:
- How much had to be produced and brought in? — this determines the environmental burden, because everything that was made carries an impact, whether or not it survived the process.
- How much actually continues onward into the product? — this determines the quantities used for everything further down the chain.
These two amounts differ exactly by the scrapped share. The platform therefore splits every quantity at the point where the loss occurs:
- The scrapped share is accounted for right there. Its production impact is kept (it was still manufactured) but reported under the Production loss stage, so the reader can see how much of the footprint was spent on material that never made it into the product. The scrap mass additionally feeds the Production waste module (Section 6.5), where its treatment is modelled.
- The surviving share is what carries on. All quantities deeper in the structure are based on this smaller amount, because only surviving units actually contain those deeper parts and materials.
Example. An enclosure is machined from a casting, and the structure declares 1 casting going into the machining step, with a 10 % rejection rate. Each casting contains 2 kg of aluminium:
- The full casting (1 unit) was manufactured, so its full production impact is counted.
- 10 % of it — 0.1 casting's worth of impact — is reported under the Production loss stage.
- 0.9 casting survives into the product, so the aluminium counted inside the finished product (and later available at end of life) is 0.9 × 2 kg = 1.8 kg, not 2 kg.
This refines the effective quantity from Section 5.1: the quantity of any part that ends up inside the finished product is found by walking down from the product to that part, multiplying at each step by the declared quantity and by the surviving fraction of that step:
Quantity in finished product = (qty₁ × survival₁) × (qty₂ × survival₂) × … for each step on the path
where survival = 1 − loss rate of that step
The reason for this care is easy to state: scrapped units never reach later life cycle stages. A rejected casting is never transported to the customer, never used, and never disposed of by the end consumer — so its burden must stay in the production stage and must not inflate the quantities of downstream stages. Splitting at the point of loss achieves exactly that.
The Yield model is available as an alternative. The Fixed BOM model is the default (including for organisations that have not set a preference). Both can be selected in Settings → Parts & Assemblies.
Fixed BOM model
In the Fixed BOM model, the declared BOM quantity is treated as the amount that enters the finished product. Downstream propagation (weight, cost display, transport scaling, end-of-life mass, and material impact quantities) uses the full declared quantity rather than reducing it by the loss rate:
Quantity reaching output = declared quantity
Quantity lost as scrap = declared quantity × L (reported under Production loss)
Scrap impact and cost are additional to the product-content impact — total material burden per line scales as qty × (1 + L) rather than staying conserved at qty. Production-loss transport and lost-mass formulas are unchanged (lost kg = qty × L).
Published version snapshots are frozen at publish time; changing the organisation setting affects live calculations and new snapshots only.
| Yield model | Fixed BOM model | |
|---|---|---|
| BOM quantity meaning | Manufacturing input | Product content |
| Downstream propagation | qty × (1 − L) | qty |
| Scrap reporting | Production loss stage | Production loss stage (additional) |
| Weight UI labels | Input / Output | Weight / Scrap |
5.3 Weight roll-up
Several modules (transport, end of life) depend on mass. The platform derives weights from the bottom up:
Weight(assembly) = Σ over children c of: Weight(c) × quantity(c) × (1 − loss rate of the line)
with the weight of each individual part taken from its declared value (in kg). Scrap lost in production does not travel with the finished product, which is why the output factor (1 − L) is applied.
Packaging mass is handled separately from BOM weight roll-up, because packaging parts follow different transport and end-of-life rules depending on where they are attached:
| Attachment | Life cycle phase | Included in inbound transport (supplier → factory)? | Included in transport to customer? | End-of-life treatment |
|---|---|---|---|---|
| Production packaging on a part (Production tab on a part or subassembly) | Production | Yes — added to that part's shipped mass on supplier routes | No — consumed or removed before the finished product ships | Production packaging waste (when modelled) |
| Production packaging on an assembly (Production tab on the assembly) | Use (distribution packaging) | No — added at the assembly, not on inbound part routes | Yes — added to the assembly's distribution mass | Packaging waste in the use phase (auto-derived from packaging + Material EOL data) |
Inbound transport mass (per part) = part weight (kg) + Σ packaging part weight × qty (on that part)
Transport-to-customer mass = assembly output weight (kg) + Σ assembly packaging part weight × qty
Part-level production packaging on BOM components is not double-counted at distribution: it is already included when those parts are transported inbound to the factory. Assembly-level production packaging is only counted for transport to customer and use-phase packaging waste — not on inbound supplier routes for BOM parts.
5.4 Assembly variants
Some assemblies are sold or stocked in multiple configurations — for example, the same cupboard with legs, with wheels, or as a wall-mounted unit. Dawn models these as variants of one assembly rather than as separate assemblies.
What varies. Only the bill of materials: which parts and child assemblies appear, in what quantities, and with what production-loss rates. Each variant has its own SKU and may carry its own suggested price.
What is shared. All assembly-level life cycle data applies identically to every variant: production utilities, packaging, transport to customer, use-phase energy and spare parts, installation loss %, disassembly, end-of-life pathway allocations, and declared production volume. Changing these on the assembly affects every variant's impact report equally.
Base configuration. The default configuration does not require a separate variant record. It is the core BOM — the part and child-assembly links stored directly on the assembly — and uses the assembly's own SKU, price, and version counter. An assembly with no variant records behaves exactly as it did before variants existed.
BOM resolution. The effective BOM used in every calculation for a selected variant is built by merging the core BOM with that variant's deltas:
Resolved BOM = merge(Core BOM, Variant deltas)
The merge follows a fixed, deterministic order (the same algorithm runs on the server and in the client impact view):
- Start from all core part lines and child-assembly links.
- Exclude any core line listed in the variant's exclusion set.
- Override quantity and production-loss percent on core lines where the variant declares an override keyed to that core line.
- Add variant-only part lines and child-assembly links that do not exist in the core BOM.
- Recurse into nested child assemblies using the
childVariantIdon the link when set; otherwise the child is resolved at its base configuration.
Each resolved line is tagged as inherited from the core (core), added only in this variant (variant), or a core line with changed quantity or loss rate (override). These tags are for traceability in the user interface; they do not change the arithmetic.
Impact scope. All BOM-dependent calculations use the resolved BOM for the active variant:
- quantity propagation and production-loss roll-up (Sections 5.1–5.2),
- shipped weight (Section 5.3),
- cradle-to-gate and part-level module scaling (Section 6.1–6.2),
- production waste from scrap (Section 6.5),
- production-loss transport to disposal inherited from production locations (Section 6.5.1),
- material inventory for end-of-life treatment (Section 6.7).
Assembly-level modules attached to the product as a whole — utilities, packaging, distribution, use phase, disassembly, and end-of-life transport — are not re-derived per variant; they are shared inputs multiplied into each variant's total through the same assembly-level formulas in Section 6.
Nested assemblies. A variant may specify which configuration of a child sub-assembly to use (for example, resolving a child at "with legs" inside a parent variant). When no child variant is specified, the child's base BOM is used. Quantity multiplication and loss handling through nested structures follow the same rules as Section 5.1, applied to the resolved links at each level.
5.5 Installation loss
During installation, some fraction of a finished product may be damaged, rejected, or otherwise fail to enter the use phase. Dawn models this with a single installation loss percentage declared on the assembly's Use tab (0–100 %). Unlike production loss (Section 5.2), which is declared per BOM line during manufacturing, installation loss is an assembly-level rate applied to the whole product configuration.
From an EPD perspective, material that is lost at installation never reaches the consumer and never enters the declared use phase — but it still carried the environmental burden of everything that happened before installation, and it must be disposed of (or credited) as waste rather than as post-consumer end of life of the sold product.
The platform therefore treats installation loss as three additive contributions, all reported under the Installation loss impact category and mapped to the organisation's installation loss life cycle stage (installation_loss module context — typically the Installation stage in EN 15804–style reporting):
- Prior-stage impact share — a percentage of the cumulative impact from every life cycle stage that occurs before the installation-loss stage (Section 6.6.1).
- Premature end-of-life treatment — waste streams and benefits for the BOM material mass that does not reach use, using the same Material end-of-life pathways as Section 6.7 but on a reduced mass basis (Section 6.6.1).
- Transport to waste — hauling that wasted mass to treatment, using the assembly's end-of-life transport to waste route (Section 6.7) scaled to the installation-loss mass (Section 6.6.1).
Installation loss total = prior-stage impact share
+ premature EOL treatment (and benefits)
+ transport of wasted mass to disposal
Contrast with production loss.
| Production loss (Section 5.2) | Installation loss (Section 6.6.1) | |
|---|---|---|
| Where declared | Per BOM line (manufacturing yield) | Single % on assembly Use tab |
| When it occurs | During manufacturing | During installation, before use phase |
| Surviving quantity | Downstream BOM quantities use (1 − L) | Does not change BOM quantities for use phase or post-consumer EOL of the sold product |
| Scrap / lost impact | Manufacturing burden of scrap stays in production; reported under Production loss | Share of all prior-stage cumulative impact is added under Installation loss |
| Waste treatment pathways | Material Production waste tab (production_waste_pathways) | Material End of life tab (eol_pathways / eol_benefits) |
| Transport to disposal | Production transport to waste (Section 6.5.1) | End-of-life transport to waste route, scaled by installation-loss mass |
Installation loss does not reduce the material inventory modelled for normal post-consumer end of life (Section 6.7) on the product that is actually installed and used — it adds a separate premature disposal stream for the share that never reaches use.
6. Life Cycle Modules
Impacts are organised into life cycle modules. Organisations name and order their own life cycle stages (e.g. "Raw materials", "Manufacturing", "Distribution", "Use", "End of life") and map each module to a stage, which keeps reporting consistent with frameworks such as EN 15804 (modules A1–A3, A4, B, C, D). The calculations behind each module are as follows.
6.1 Materials and purchased components (cradle-to-gate, A1–A3 analogue)
A part's manufacturing impact (the "materials" portion of the footprint, before transport, energy, and end of life) comes from one of two sources on that part:
- A background dataset from an LCA database (Section 3), scaled to the part's declared amount (usually its weight).
- A linked LCA — a full model built in Dawn whose published result is used as the part's per-unit impact.
How these sources combine across your product structure depends on the type of part and whether it contains other parts in its bill of materials. The sections below explain how Materials in your library feed into parts and packaging through material composition, and when a part's own impact data takes priority.
6.1.1 Materials in your library
In Dawn, Materials are where you store environmental data for raw substances — steel, cotton, ABS, and so on. You do not build a bill of materials under a Material; instead, you assign impact per kilogram on the Material's Impact tab (a background dataset or a linked LCA).
Key behaviours:
- Per kilogram. Material impact is always expressed per 1 kg. When you attach a dataset without specifying an amount, the platform assumes 1 kg.
- Impact tab on the Material. The report shows that per-kg manufacturing burden, plus end-of-life and production-loss impacts configured on the Material. It does not roll up other Materials — a Material only reflects its own data.
- End of life is separate. Materials also have End of life pathways (Section 6.7) — how the substance is recycled, landfilled, or incinerated after use. Those pathways apply when the Material appears in a finished product's material mix, regardless of whether you have also assigned per-kg manufacturing data on the Material.
6.1.2 Material composition on parts and packaging
On a part or packaging item, you can declare material composition: which Materials it contains and in what proportion (e.g. 60 % steel, 40 % ABS). This mix is used in two ways:
| What it drives | When it applies |
|---|---|
| Manufacturing impact (materials stage) | Rolled up from each Material's per-kg data when the part does not have its own impact dataset or LCA (Section 6.1.3) |
| End-of-life mass | Always — the platform uses composition to know how much of each Material leaves the product at end of life (Section 6.7) |
For end of life, the mass of each Material in the product is:
Material mass at EOL = part weight × quantity in product × material share (%)
summed wherever that Material appears in the structure.
For manufacturing impact from composition, the platform looks up each Material's per-kg dataset and scales it to the part:
Roll-up quantity = quantity of the part in the product × part weight (kg) × material share (%)
Impact = roll-up quantity × emission factor per kg (from the Material)
Rules verifiers should note:
- Weight is required. If the part has no weight (or zero weight), no manufacturing impact is rolled up from composition — the platform does not guess mass. Missing weight is flagged in data coverage separately.
- Counted once. Material datasets are stored per kg; the roll-up already applies the part's weight and share, so the per-kg amount is not multiplied a second time.
- Every Material in the mix needs data if the part relies on composition for manufacturing impact — each referenced Material must have a dataset or linked LCA, or data coverage will report a gap.
6.1.3 Which source wins: bill of materials, the part's own data, or composition
When Dawn calculates manufacturing impact through the product structure, it follows this order at each part:
1. Does this part contain other parts in its bill of materials?
→ Use only those sub-parts. The part's own material composition does NOT
add manufacturing impact on top (the BOM defines what goes into it).
2. Does this part have its own impact dataset or linked LCA?
→ Use that data for manufacturing impact. Material composition on the same
part is ignored for manufacturing (the part's own data takes priority).
3. Does this part have material composition and a weight greater than zero?
→ Roll up impact from each Material in the mix (Section 6.1.2).
4. Otherwise
→ No manufacturing impact from materials for this part.
When the part's own data takes priority. If a part has both material composition and its own dataset or LCA, the part's own data is used for manufacturing impact. The composition is still used for end of life and for composition-related data checks — it does not add a second manufacturing burden.
Subassemblies with a material mix. It is common to model a subassembly that contains other parts in its BOM while also declaring a material composition at the parent level (for weight and material split). For manufacturing impact, only the parts in the BOM count. The parent's material mix still drives end-of-life mass as usual.
The same rules apply in live impact reports, version snapshots, and assembly calculations, including production loss on each BOM line (Section 5.2).
6.1.4 Parts without material composition
A part that does not contain other parts and has no material composition follows the simple rule at the top of this section: one background dataset or one linked LCA, scaled by how many of that part appear in the product (and typically by the part's weight for background datasets).
A part that contains other parts (a subassembly) gets its manufacturing impact entirely from those sub-parts — not from its own dataset in addition, unless it is modelled as a standalone part without sub-parts under the rules above.
6.1.5 Worked example
A plastic housing weighs 0.5 kg and is made of 80 % ABS and 20 % steel (material composition). The ABS Material has 3.0 kg CO₂-eq per kg; the steel Material has 2.1 kg CO₂-eq per kg. The housing has no dataset of its own.
ABS: 0.5 kg × 80 % × 3.0 kg CO₂-eq/kg = 1.20 kg CO₂-eq
Steel: 0.5 kg × 20 % × 2.1 kg CO₂-eq/kg = 0.21 kg CO₂-eq
Housing manufacturing impact ≈ 1.41 kg CO₂-eq (from Materials)
If you later attach the housing's own LCA showing 1.0 kg CO₂-eq per unit, that replaces the rolled-up figure for manufacturing: the report shows 1.0 kg CO₂-eq, not 1.41 kg CO₂-eq. End-of-life mass still follows the 80 / 20 mix.
If the housing contains a purchased PCB in its bill of materials, manufacturing impact comes from the PCB and anything else in the BOM — not from the 80 / 20 material mix. End of life still uses the housing's declared material mix.
6.2 Inbound transport (supplier → factory)
Transport impact is based on transport work — mass moved times distance — which is how freight datasets are expressed (per tonne-kilometre).
For each supplier of a part, a transport route is defined as one or more segments, each with a distance and a transport mode (e.g. ocean container ship, heavy road truck). The mass moved on each segment is the inbound shipped mass of that part:
Inbound shipped mass = part weight (kg) + production packaging mass on that part (kg)
where production packaging mass is the sum of each attached packaging part's unit weight × quantity on the part's Production tab. Packaging parts are modelled as their own part records (kind = packaging) with background datasets; only the mass of those packaging parts enters the transport calculation here — their packaging impact is counted separately under the Packaging module (Section 6.4).
For each segment:
Transport work = distance (km) × inbound shipped mass (kg) [converted to t·km]
Segment impact = transport work × EF of the transport mode dataset
When a part is sourced from multiple suppliers, each supplier's transport chain is weighted by a sourcing allocation:
Part transport impact = Σ over suppliers s of: (allocation(s) / 100) × Σ over segments of s
If no allocations are declared, sourcing is split equally across the suppliers (100 % / N each). If allocations are declared, they are used exactly as entered (suppliers without a declared share contribute 0 %).
The result is scaled by the part's effective BOM quantity, like every other contribution. A part with no declared weight and no production packaging contributes no transport impact (and this is visible to the user as a data gap).
6.3 Production energy and utilities
Energy and utility consumption in manufacturing (electricity, natural gas, compressed air, water, …) enters the impact calculation through the production utilities life cycle module. Two complementary data paths feed the same module; their results are merged before impact is calculated.
6.3.1 Direct utilities (per entity)
Users can declare utilities directly on an assembly or on a part/subassembly (on the entity's Production tab):
Utility impact = consumed amount × EF of the utility dataset
For example, 0.8 kWh of electricity per assembly unit, multiplied by the emission factors of the selected national grid-mix dataset.
- Assembly-level direct utilities are applied once per functional unit of the assembly (not multiplied by BOM quantities).
- Part-level direct utilities are applied per unit of the part and scaled by the part's effective BOM quantity in the roll-up, like other part-level modules.
Each utility is a standard utility part (kind = utility) linked to a background dataset (grid mix, natural gas, …), exactly as for any other activity in Section 4.
6.3.2 Location-based utilities and output allocation
Manufacturing often shares site-wide energy and services across several products made at the same factory. Dawn models this by recording site-level utility totals on each production location, splitting those totals among co-produced outputs using a configurable allocation basis, then converting each output's share to a per functional unit amount by dividing by that output's annual volume at the site.
Data model.
- Production link — an assembly or subassembly is linked to one or more locations (
AssemblyWarehouse/PartWarehouse). - Output registry — for each link, a
WarehouseOutputrow records:annualVolume— units produced at this site in the reporting period. Required for utility and site-waste inheritance; without it, no location utility or waste is attributed to that output.allocationPercent— derived preview of each output's share of site totals from the same utility allocation basis drivers (volume / weight / price). Shown on the Allocations tab; not a separate manual waste split.
- Site utilities —
WarehouseUtilityUsagestores the total consumption of each utility at the location for the declared period (e.g. 12 000 kWh per year for the whole site). - Utility allocation basis — each location has a setting
utilityAllocationBasis:volume,weight, orprice.
Allocation drivers.
For each output o at location w, an allocation driver Do is computed from the basis:
| Basis | Driver Do | Unit weight source | Unit price source |
|---|---|---|---|
| Volume | annual volume Vo | — | — |
| Weight | unit weight (kg) × Vo | Assembly output weight roll-up; subassembly output weight | — |
| Price | unit price × Vo | — | Assembly suggestedPrice; subassembly cost |
Only outputs with a valid driver (> 0) and annual volume participate. The site share for output o is:
Share(o) = D_o / Σ D_j (over all outputs j at the same location)
Per-unit utility amount.
For site utility total S (e.g. 12 000 kWh) and output o with annual volume Vo:
Total allocated to o = S × Share(o)
Per-unit amount(o) = (S × Share(o)) / V_o
Example (volume basis). Site electricity S = 12 000 kWh. Chair: V = 1 000 units/year. Table: V = 2 000 units/year.
D_chair = 1 000, D_table = 2 000, ΣD = 3 000
Share(chair) = 1/3 → total = 4 000 kWh → per unit = 4 000 / 1 000 = 4.0 kWh/unit
Share(table) = 2/3 → total = 8 000 kWh → per unit = 8 000 / 2 000 = 4.0 kWh/unit
With pure volume weighting, every product at the site receives the same per-unit utility when drivers are proportional to volume only (S / Σ*Vj).
Example (weight basis). Same site total. Chair: 5 kg/unit × 1 000 units → D = 5 000. Table: 20 kg/unit × 2 000 units → D = 40 000. ΣD = 45 000.
Per-unit (chair) = (12 000 × 5 000/45 000) / 1 000 ≈ 1.33 kWh/unit
Per-unit (table) = (12 000 × 40 000/45 000) / 2 000 ≈ 5.33 kWh/unit
Multiple locations.
When the same assembly or subassembly is manufactured at more than one location, the platform computes per-unit inherited utility at each site, then sums those per-unit amounts per utility part across all sites. The same summation applies when merging with directly declared utilities on the entity.
Impact calculation (merged path).
Utility impact = merged per-unit quantity × EF of the utility dataset
Inherited amounts are per functional unit of the assembly or subassembly (subassembly amounts scale with BOM quantity in parent products). They appear under production utilities, not as a separate life cycle module.
Where data is authored vs displayed.
| Surface | Role |
|---|---|
| Location → Utilities tab | Author site utility totals; choose allocation basis (volume / weight / price); preview per-unit splits. |
| Location → Allocations tab | Register outputs; set annual volume (required for utilities and site waste). Allocation % is derived from the utility allocation basis. |
| Assembly / part → Production → Utilities | Author direct utilities (editable). Inherited location utilities appear read-only with per-location per-unit breakdown. |
Snapshots and change propagation.
Version snapshots store frozen productionUtilities (direct + location-inherited per-unit amounts). Changes to site utilities, allocation basis, annual volumes, or production links trigger auto-update snapshots for affected assemblies and subassemblies.
6.3.3 Worked example (volume basis)
A location consumes 12 000 kWh of grid electricity (EF = 0.35 kg CO₂-eq/kWh) in the period. Two subassemblies are co-produced with annual volumes 1 000 and 2 000 units (volume basis):
| Output | Annual volume | Site share | Total allocated | Per unit |
|---|---|---|---|---|
| Subassembly A | 1 000 | 33.3 % | 4 000 kWh | 4.0 kWh/unit |
| Subassembly B | 2 000 | 66.7 % | 8 000 kWh | 4.0 kWh/unit |
Subassembly A also declares 0.2 kWh of direct electricity per unit. Merged per-unit quantity:
Merged (A) = 4.0 + 0.2 = 4.2 kWh/unit
Climate impact (A) = 4.2 × 0.35 = 1.47 kg CO₂-eq/unit
When A appears in a parent assembly's BOM, this per-unit burden scales with A's effective BOM quantity.
6.3.4 Location-based waste streams
Factories often generate pooled site waste that is not tied to a single BOM line — mixed scrap from machining, filter dust, wastewater sludge, or post-consumer take-back collected at the site. Dawn models this separately from Material-level production waste (Section 6.5), which traces scrap mass from declared production losses on specific parts.
Each production location can declare one or more waste streams (WarehouseWasteStream). Each stream has:
name— what is being disposed (e.g. "Aluminium machining chips", "Mixed office waste").amount— total quantity in the reporting period for the whole site (e.g. 12 000 kg/year).unitName— unit of that amount (typically kg).wastePhase— eitherproduction_waste(pre-consumer / manufacturing-phase site scrap) oreol(post-consumer site waste attributed to the end-of-life module).
Within each stream, pathway rows (WarehouseWastePathway) split how that waste is treated — recycling, landfill, incineration, biodegrading, reuse, and optional benefit pathways (energy recovery, material substitution credits). Non-benefit pathways with allocation > 0 must sum to 100 % within the stream. Each pathway can carry a background treatment dataset (same structure as Material EOL and production-waste pathways).
Two-step allocation to products.
Site waste uses the same output drivers as site utilities (Section 6.3.2): the location's utilityAllocationBasis (volume, weight, or price) and each output's annual volume. It does not use a separate manual waste allocation %.
Step 1 — split the stream across co-produced outputs:
Share(o) = D_o / Σ D_j (same drivers D as utilities)
Total allocated to o = stream amount × Share(o)
Per-unit waste mass(o) = (stream amount × Share(o)) / V_o
where Vo is output o's annual volume. Outputs without annual volume do not receive inherited site waste.
Step 2 — apply pathway percentages within the stream:
For a non-benefit pathway p with allocation ap %:
Waste quantity per unit (o, p) = per-unit waste mass(o) × (a_p / 100)
Waste treatment impact = quantity × EF of pathway p dataset
Benefits are tied to a source pathway and enter as negative quantities (credits), analogous to Material EOL benefits (Section 6.7):
Benefit quantity = − per-unit waste mass(o) × (source allocation / 100) × (benefit allocation / 100)
Material production of site waste (production-waste streams only).
On production_waste streams, each stream may optionally carry a material production dataset — a cradle-to-gate background dataset for the material that was manufactured and then discarded as pooled site scrap (e.g. MDF production for MDF offcuts). This is separate from disposal pathway datasets, which model treatment of the waste mass (recycling, landfill, …).
When a dataset is attached, the user sets a functional amount (default 1) in the dataset's reference unit per unit of waste mass. The platform builds and stores an impact report at that amount. The per-kg burden on the waste stream is taken directly from the stored report (the report is already scaled by the functional amount):
CO₂eq per kg site waste = GWP in stored production report
Site annual production load = stream amount × CO₂eq per kg
Allocation to products reuses Step 1 only — the same share of the stream mass sent to each co-produced output. For output o:
Per-unit waste mass(o) = (stream amount × Share(o)) / V_o
Production impact on o = per-unit waste mass(o) × CO₂eq per kg
Disposal pathways and site transport to waste are still applied on top of this mass basis (Steps 2 and Section 6.3.4 transport).
Waste processing (pre-treatment before pathways).
On both production_waste and eol streams (and on material parts and assemblies), each waste mass may optionally carry a waste processing dataset — sorting, shredding, separation, or other pre-treatment before disposal pathways are applied. This is separate from material production datasets (cradle-to-gate of the original material) and from disposal pathway datasets (recycling, landfill, incineration, …).
When a dataset is attached, the user sets a functional amount (default 1) per kg of waste mass. The platform stores an impact report at that amount; the per-kg burden is taken from the stored report:
CO₂eq per kg waste mass = GWP in stored processing report
Processing impact = waste mass (kg) × CO₂eq per kg
| Scope | Mass basis | Stage context |
|---|---|---|
| Site waste stream | Per-unit allocated waste mass (Step 1) | production_waste_processing or eol_waste_processing |
| Material part | Material waste mass (production scrap or EOL) | Same, by tab |
| Assembly (EOL tab) | Total leaf material mass in BOM | eol_waste_processing |
Processing impact is included in live reports, snapshots, and impact/EPD exports under the waste processing stage. It is applied before pathway splits in the calculation order.
Life cycle placement. Material production datasets use the org's Production waste stage context (production_waste_pathways) — the same stage module as disposal pathways on the Production waste tab. On assemblies and parts, inherited site material production is merged under the production loss auxiliary category with other manufacturing-phase site scrap.
Life cycle placement (summary).
wastePhase | Impact category on assemblies/parts | Typical stage context |
|---|---|---|
production_waste | Production loss / manufacturing waste | Production waste (org override: production_waste_pathways; disposal pathways and material production datasets) |
eol | End-of-life | End of life (org override: EOL pathways) |
Inherited site waste appears as read-only auxiliary impact on assemblies and subassemblies linked to the location (via WarehouseOutput and production links), merged with direct BOM impacts in snapshots and live reports.
Site transport to waste.
Each location can also declare a transport route for moving waste to a treatment facility — one route on the Production waste tab (production_transport_to_waste stage) and one on the End of life tab (transport_to_waste stage). This mirrors assembly- and part-level transport-to-waste cards, but is configured at the site.
On assemblies and parts, a location's production transport route can drive impact in two independent ways, depending on which mass basis applies:
| Mass basis | What it represents | How mass is derived |
|---|---|---|
| Allocated site waste | Pooled factory scrap attributed to this output (Section 6.3.4 waste streams) | Σ streams in phase of (stream amount × Share(o)) / V_o |
| BOM production loss | Scrap from declared production-loss % on the entity's BOM (Section 6.5) | Total lost material mass (kg) per functional unit from BOM loss roll-up |
Both use the same location transport route and the same transport-work formula; only the mass differs.
Site waste transport (allocated pooled mass):
Per-unit waste mass(o) = Σ streams in phase allocatedPerUnit(stream, o)
Transport work per segment = distance (km) × per-unit waste mass (kg)
Transport impact = transport work × EF of transport mode dataset
Production loss transport (BOM scrap mass) is described in Section 6.5. It uses lost mass per unit at each production location where the assembly or subassembly is registered as an output (WarehouseOutput), not allocated site waste mass.
On the location page, segment CO₂eq previews use total site waste mass in that phase (sum of stream amounts). On assemblies and parts registered as outputs, inherited transport cards on the Production tab show the route read-only: one card per basis when both apply (site waste mass vs production loss mass), labelled by location.
wastePhase | Transport stage context | Shown on assembly/part |
|---|---|---|
production_waste | Production transport to waste | Production tab |
eol | EOL transport to waste | End of life tab |
Contrast with Material-level waste.
| Site waste streams (this section) | Material production waste (Section 6.5) | |
|---|---|---|
| Scope | Pooled waste at a factory | Scrap from declared production loss on a Material |
| Amount source | User-declared site total per stream | Derived from BOM loss × material mass |
| Split to products | Utility allocation basis + annual volume | BOM quantity roll-up |
| Pathway config | Per stream at location (disposal + optional material production on production-waste streams) | Per Material |
| Transport to disposal | Location route × allocated site waste mass per output | Location route × BOM lost mass per output (Section 6.5), and/or entity-level route × lost mass |
A product can receive both: material scrap from its BOM and a share of site-wide scrap when it is registered as an output at a location with waste streams.
Where data is authored.
| Surface | Role |
|---|---|
| Location → Waste tab | Add streams (production waste / EOL tabs); set annual amount; configure pathway % per stream; assign disposal treatment datasets and, on production-waste streams, optional material production datasets (sustainability feature). |
| Location → Allocations tab | Register outputs and annual volume (required). |
| Location → Utilities tab | Choose utility allocation basis — also drives site waste splitting. |
Snapshots and change propagation.
Changes to stream amounts, pathway allocations, datasets, allocation basis, annual volumes, or production links trigger auto-update snapshots for affected assemblies and subassemblies (same cascade as site utilities).
6.4 Packaging
Packaging is modelled using dedicated packaging parts (kind = packaging) — the same data structure as standard parts (background dataset or linked LCA, weight, suppliers). They are attached in two places:
-
Production packaging on a part or subassembly — quantities per unit of that part (e.g. a returnable crate per subassembly). Impact is counted under the Packaging category in the impact report. Mass is included in inbound supplier transport (Section 6.2). End-of-life of this packaging is treated in the production phase, not as part of the finished product's use-phase packaging waste.
-
Production packaging on an assembly — quantities per finished assembly unit (e.g. retail box, pallet wrap). Impact is counted under the Packaging category. Mass is included in transport to customer (Section 6.6) but not in inbound transport for BOM parts. Disposal is modelled as packaging waste in the use phase, derived automatically from the assembly's production packaging and Material end-of-life pathways.
Packaging impact (either attachment) = quantity × EF of the packaging part dataset
The impact report shows packaging as its own category, separate from production utilities.
6.5 Production waste
Scrap mass generated by production losses (Section 5.2) is traced back to its material composition, and each Material's lost mass is routed to one or more treatment pathways (recycling, incineration, landfill, …):
Waste treatment impact = lost material mass (kg) × pathway share (%) × EF of the treatment dataset
Treatment pathways are configured per Material on the Material's Production waste tab. Lost mass is rolled up through the BOM: for each line with a production-loss %, the platform resolves the scrapped child mass, splits it across Materials in that child's composition, and applies each Material's pathway allocations.
6.5.1 Transport of production waste to disposal
Hauling production scrap from the factory to a treatment site is modelled with the same transport-work formula as inbound freight (Section 6.2):
Transport work per segment = distance (km) × lost material mass (kg) [→ t·km]
Transport impact = transport work × EF of transport mode dataset
Impact is reported under the organisation's Production transport to waste life cycle stage (production_transport_to_waste module context), not under end-of-life transport.
Mass basis. Transport always uses lost material mass (kg) per functional unit from BOM production-loss roll-up — not finished-product weight and not allocated site waste mass (Section 6.3.4).
Two configuration paths (results are additive when both exist):
| Path | Where configured | When it applies |
|---|---|---|
| Location-inherited | Production location → Production waste tab → transport route | Assembly or subassembly is registered as a WarehouseOutput at that site and has BOM production loss > 0 |
| Entity-level | Assembly or part → Production tab → Transport to waste | User declares a dedicated route on the entity (optional override when not relying on the site) |
Location-inherited transport follows the same production-link pattern as site utilities and site waste streams (Section 6.3.2–6.3.4):
- The assembly or subassembly must be linked to a production location and listed on that location's Allocations tab (
WarehouseOutput). - The location must have a production transport to waste route with segment distances and transport-mode datasets assigned.
- For each such location, the platform loads the route and multiplies segment distances by the entity's total lost mass per unit at that registration.
When an entity is produced at multiple locations, transport is computed per location (full lost mass at each site where the entity is registered as an output). This matches how other location-inherited modules attach to each production site independently.
Assembly roll-up. For a finished assembly, production-loss transport is aggregated from:
- Nested assemblies in the BOM tree — lost mass on each child assembly's direct BOM lines, scaled by effective quantity per root assembly unit.
- BOM parts and subassemblies — lost mass from each part's subtree (including nested BOM loss lines), scaled by output-adjusted BOM quantity.
The same roll-up scope applies to treatment pathways and to location-inherited transport for each contributing entity.
Distinction from site waste transport. A product at a factory can receive both:
- Site waste transport — location route × mass allocated from pooled site waste streams (Section 6.3.4).
- Production loss transport — location route × BOM lost mass for that product (this section).
These are separate calculations with different mass bases; they are not double-counting the same scrap.
Example (treatment + location transport). Continuing the casting example from Section 5.2: 0.1 casting is scrapped during machining, and each casting contains 2 kg of aluminium, so 0.2 kg of aluminium scrap is generated per product. The organisation declares that 80 % of aluminium scrap is recycled and 20 % is landfilled, and the treatment datasets carry climate change factors of 0.04 kg CO₂-eq/kg for scrap recycling and 0.01 kg CO₂-eq/kg for landfill:
Recycling: 0.2 kg × 80 % × 0.04 kg CO₂-eq/kg = 0.0064 kg CO₂-eq
Landfill: 0.2 kg × 20 % × 0.01 kg CO₂-eq/kg = 0.0004 kg CO₂-eq
Production waste treatment total = 0.0068 kg CO₂-eq
The subassembly is manufactured at a site with a production transport route: 50 km by truck to the treatment facility. The location's route is inherited automatically — no separate transport card is required on the subassembly when the site route exists:
Transport work = 0.2 kg × 50 km = 0.01 t·km
Transport impact = 0.01 t·km × EF(truck dataset)
As always, the same arithmetic runs across the full indicator set, not only climate change. Treatment impact is staged under production waste pathways; transport impact is staged under production transport to waste.
Where data is authored vs displayed.
| Surface | Role |
|---|---|
| Location → Production waste tab → Transport to waste | Author the site route (segments, distances, transport-mode datasets) inherited by outputs manufactured there. |
| Location → Allocations tab | Register assemblies/subassemblies as outputs — required for location-inherited production-loss transport. |
| Material → Production waste tab | Configure treatment pathway % and datasets for scrap from BOM loss (not transport). |
| Assembly / part → Production tab → Transport to waste | Optional entity-level route; inherited location cards (site waste mass and production loss mass) appear read-only when applicable. |
6.6 Distribution and use phase
Transport to customer uses the transport-work formula with the distribution mass of the finished assembly:
Distribution mass = assembly output weight (kg) + assembly production packaging mass (kg)
Distribution impact = distance (km) × distribution mass (kg) × EF per t·km
Assembly output weight is the BOM roll-up from Section 5.3. Assembly production packaging mass is the sum of packaging-part unit weights × quantities on the assembly's Production tab. Part-level production packaging on BOM components is excluded from distribution mass — it was already transported inbound with those parts and does not travel to the end customer with the finished product.
Use phase. Products that consume energy or materials during use are modelled against a declared lifetime reference (e.g. operating hours, wash cycles, years of service):
Lifetime consumption = consumption per lifetime unit × number of lifetime units
Use phase impact = lifetime consumption × EF of the utility dataset
Spare parts consumed over the product's life are added as additional part quantities under the use phase, and installation and maintenance activities can be modelled as separate modules using the same quantity × emission factor principle.
6.6.1 Installation loss
Installation loss is configured on the assembly Use tab as installationLossPercent (0–100 %). It applies only when the percentage is greater than zero and when the organisation has mapped the installation_loss LCA module to a named life cycle stage. All three components below are aggregated into the Installation loss impact category and staged under that module's stage name. The same logic runs in live impact reports, version snapshots, and exports.
Prior-stage impact share
The platform identifies every life cycle stage that appears before the installation-loss stage in the organisation's default stage order (and in the product's calculated stage columns). It sums the full indicator set from those prior stages — materials, inbound transport, production energy, production waste, and any other modules already assigned to earlier stages — and applies the installation loss rate I:
Prior-stage impact total = Σ impact from all stages before the installation-loss stage
Installation loss (prior share) = Prior-stage impact total × (I / 100)
The calculation runs across all EF 3.1 indicators, not only climate change. For the category breakdown chart, the prior-stage share is reallocated out of the source categories (materials, transport, production loss, and so on) and into Installation loss, so the chart does not double-count the same burden in both places. Per-stage tooltips under Installation loss show which earlier stages contributed.
For climate change specifically, the platform prefers part-level co2eByStage / impactByStage contribution data when available, falling back to stage-column indicators when contribution tracking is incomplete.
Life cycle stage columns. The prior-stage share is also merged into the installation-loss target stage column in the LCA stage view (the stage assigned to the installation_loss module), so stage totals include installation loss alongside any other activities mapped to that stage.
Cost on the Use tab. When the assembly carries a declared total cost, an indicative installation-loss cost is derived from the same prior-stage CO₂ share:
Prior CO₂ share = prior-stage CO₂ / total assembly CO₂ (when total CO₂ > 0)
Installation loss cost ≈ total assembly cost × Prior CO₂ share × (I / 100)
This cost estimate is stored on version snapshots together with the frozen installation-loss CO₂ and impact score.
Premature end-of-life treatment (waste streams and benefits)
Material that fails installation is assumed to end its life immediately — before use — and is treated with the same end-of-life pathway logic as Section 6.7, not production-waste pathways (Section 6.5).
Mass basis. The platform walks the resolved assembly BOM (including nested sub-assemblies, output-adjusted quantities, and leaf materials only — the same inventory roll-up as post-consumer end of life) and computes the mass of each Material in the product. That mass is scaled by the installation loss rate:
Installation-loss material mass (per Material) = full BOM material mass × (I / 100)
For each Material, the platform applies the pathway allocations configured on the Material's End of life tab, including assembly-level overrides on the assembly's End of life tab when present:
Treatment impact = installation-loss material mass × pathway share (%) × EF of treatment dataset
Benefits follow the same credit formula as Section 6.7:
EOL benefit = − installation-loss material mass × source pathway share (%) × benefit share (%) × EF of substituted activity
Unlike normal post-consumer end of life, these treatment and benefit impacts are reported under the Installation loss category and staged under the installation_loss module stage — not under the eol_pathways / eol_benefits stage contexts used for the product's use-phase disposal.
Transport of installation-loss waste to disposal
Hauling material lost during installation to a waste treatment site uses the assembly's transport to waste route configured on the End of life tab (the same route used for post-consumer disposal transport in Section 6.7), scaled to the mass that never reaches use:
Wasted mass (kg) = assembly output weight (kg) × (I / 100)
Transport work per segment = distance (km) × wasted mass (kg) [→ t·km]
Transport impact = transport work × EF of transport mode dataset
Impact is reported under Installation loss, staged on the installation_loss module stage — not on the transport_to_waste stage context used for normal end-of-life transport.
Requirements. Premature EOL treatment requires Material end-of-life pathways on the BOM materials. Transport requires an assembly transport to waste route on the End of life tab. If either is missing, that component contributes zero rather than being estimated.
Example. An assembly has 10 kg of BOM material inventory (leaf materials), installation loss I = 5 %, aluminium pathways 70 % recycling / 30 % landfill, and a 40 km truck route to a treatment site. The wasted inventory is 0.5 kg of material mix. Treatment and transport are calculated with the formulas above on that 0.5 kg mass (and 0.5 kg for transport work), then added to the 5 % prior-stage impact share. The product that is successfully installed still carries the full Section 6.7 end-of-life model on 100 % of its material inventory.
| Surface | Role |
|---|---|
| Assembly → Use tab → Installation loss % | Declare I; overview shows indicative cost and CO₂eq from the combined installation-loss calculation. |
| Organisation → LCA modules → Installation loss | Map the installation_loss module to a life cycle stage name (determines which stages count as "prior"). |
| Material → End of life tab | Pathway % and treatment datasets for premature disposal mass. |
| Assembly → End of life tab → Transport to waste | Route and distances for hauling installation-loss mass (shared configuration with post-consumer EOL transport). |
| Assembly → End of life tab → Material allocations | Optional overrides of Material pathway % for this assembly's disposal streams (apply to premature EOL mass as well). |
6.7 End of life
End-of-life modelling starts from the product's material inventory: the platform walks the entire bill of materials down to individual parts and computes the mass of each Material that leaves with the product:
Material mass at EOL = part weight × output quantity × material share (%)
summed over every occurrence of the Material in the product.
Each Material is assigned end-of-life pathways with percentage allocations (e.g. 70 % recycling, 20 % incineration, 10 % landfill). Each pathway is matched to a treatment dataset:
EOL treatment impact = material mass × pathway share (%) × EF of the treatment dataset
Transport from the point of use to the waste treatment site (EOL transport to waste) is modelled with the transport-work formula, disassembly effort can be modelled as its own module, and waste processing (sorting, shredding, pre-treatment) can be modelled at assembly level before material disposal pathways are applied.
End-of-life benefits (credits). Where treatment produces secondary material or recovered energy that substitutes primary production, a benefit can be modelled (analogous to EN 15804 module D). A benefit is always tied to a source pathway and enters the total as a negative contribution:
EOL benefit = − material mass × source pathway share (%) × benefit share (%) × EF of the substituted activity
For example: 100 kg of aluminium, 70 % recycled, with 90 % of the recycled output substituting primary aluminium, yields a credit of −(100 × 0.70 × 0.90) × EF(primary aluminium) — reported separately so that gross impacts and credits remain transparent.
6.8 EN 15804 output flows (EPD inventory indicators)
Environmental Product Declarations under EN 15804 report a set of output flow indicators in addition to impact categories. These describe physical quantities leaving the product system at end of life — for example mass sent to recycling, mass incinerated with energy recovery, or energy exported from waste treatment — rather than environmental pressures such as climate change. They are shown for transparency and EPD compliance and are excluded from the EF single score (Section 4.2).
Dawn calculates five standard output flow indicators automatically from the same end-of-life and waste pathway settings already used for impact modelling (Sections 6.5, 6.7, and 6.3.4). You configure treatment routes and recovery benefits on Materials, parts, and production locations as usual; the platform derives the output flows from those allocations and from the product's material mass and bill-of-materials quantities. Emission factors are not applied — only physical mass and energy quantities are accumulated.
| Code | EN 15804 name | Unit | What it measures |
|---|---|---|---|
| MFR | Materials for recycling | kg | Mass directed to recycling |
| CRU | Components for re-use | kg | Mass directed to reuse |
| MER | Materials for energy recovery | kg | Mass incinerated when energy or heat recovery is modelled on that stream |
| EEE | Exported electrical energy | MJ | Electrical energy recovered from incineration |
| EET | Exported thermal energy | MJ | Thermal energy recovered from incineration |
Only the standard treatment types above map to these indicators. Custom pathway types defined in the library are not included in this automatic mapping.
6.8.1 Mass-based indicators (MFR, CRU, MER)
For each waste mass stream (post-consumer material, production scrap, or site-allocated waste), the platform applies the same percentage splits as for treatment impact. For a pathway with allocation ap %:
Allocated mass (kg) = waste mass (kg) × (a_p / 100)
| Treatment route | Output flow | When it is reported |
|---|---|---|
| Recycling | MFR | Always, for the allocated recycling mass |
| Reuse | CRU | Always, for the allocated reuse mass |
| Incineration | MER | Only when incineration is combined with energy or heat recovery (Section 6.8.2); MER equals the total incinerated mass on that stream |
If incineration is modelled without any linked recovery benefit, MER is not reported, even though incineration may still carry treatment impact.
6.8.2 Energy recovery indicators (EEE, EET)
Where incineration is linked to energy recovery or heat benefits (Section 6.7), the platform also reports recovered energy in megajoules. For incineration share as % and recovery efficiency ab % on the linked benefit:
Incinerated mass (kg) = waste mass (kg) × (a_s / 100)
Energy output (MJ) = incinerated mass (kg) × (a_b / 100) × converted benefit amount (MJ)
| Recovery benefit | Output flow |
|---|---|
| Energy recovery (e.g. electricity from waste-to-energy) | EEE |
| Heat recovery | EET |
The converted benefit amount is the energy yield configured on the benefit pathway (from its background dataset), expressed in that dataset's reference unit and converted to MJ per kilogram of waste attributed to recovery. For example, an amount stored against a dataset whose reference unit is kWh is converted to MJ using the same unit rules as elsewhere in the platform; display-unit preferences do not change the stored value. If the dataset unit cannot be resolved, the configured amount is treated as MJ per kilogram. Each benefit pathway uses its own configured yield — electrical and thermal recovery therefore yield independent EEE and EET totals.
Worked example: 1.96 kg of material at end of life, 50 % to incineration, 70 % recovery efficiency, heat benefit configured at 8 045 MJ per kg of waste attributed to heat recovery:
EET = 1.96 × 0.50 × 0.70 × 8 045 ≈ 5 519 MJ
6.8.3 How flows are rolled up to the product
Output flows are calculated for the whole assembly (per functional unit of the finished product), using the same mass bases as waste treatment and scaling with bill-of-materials quantities, including nested sub-assemblies and production-loss adjustments where applicable.
| Source | Mass basis | Pathway settings |
|---|---|---|
| Post-consumer end of life | Material inventory from the BOM (Section 6.7), including optional assembly-level allocation overrides | Material end-of-life pathways and benefits |
| Production waste | Scrap mass from production-loss roll-up per Material (Section 6.5) | Material production-waste pathways |
| Site waste | Share of location waste streams allocated to each production output (Section 6.3.4), scaled through the BOM | Waste streams and pathways on the production location |
Packaging materials in the BOM are included via the same composition roll-up as end-of-life mass. Flows from all sources are summed to product-level totals.
6.8.4 Where results appear
- End of life tab. The assembly's End of life tab shows a summary row Output from waste with all five indicators (full EN 15804 names, amounts, and units), aggregated across contributing sources.
- EPD export. When exporting in EPD format, pathway-derived output flows are added to any output flows already declared in linked LCA reports on parts or sub-assemblies. Manually declared flows are not replaced.
- Life cycle staging. Each contribution is assigned to the same life cycle stage as the corresponding waste or benefit treatment (e.g. end of life, production waste).
- Not in single score. These indicators remain inventory figures; they never enter the EF single score or weighted impact aggregation.
7. Dataset Selection and AI Assistance
Matching a part to the right background dataset is the most judgement-intensive step in any LCA. Dawn supports both manual selection (searching the licensed databases directly) and an AI-assisted matching process. The AI assistance automates the search, but the calculation itself is always the deterministic arithmetic described above — the AI never invents emission factors.
The AI-assisted matching follows these steps:
- Classification. The part is classified by input type (Material, purchased component, transport, energy, waste treatment, …) based on its name, description, supplier, and position in the BOM.
- Search. Several search queries are generated from the part's context (materials, geography, supplier information) and run against a semantic search index of all datasets in the organisation's licensed databases.
- Candidate validation. The candidate datasets are evaluated for representativeness — technological fit, geographic fit, and unit suitability — and the best match is selected.
- Quantification. The amount in the dataset's functional unit is derived from the part's declared data (typically its weight, with unit conversion applied, e.g. kg → tonnes).
- Recording. The selected dataset, the amount, and the resulting impact report are stored on the part, and a version snapshot is taken (Section 9).
Every AI-assigned match remains visible and editable: the dataset name, source database, system model, and amount are shown on the part, and users can replace the match manually at any time.
Materials use the same AI-assisted matching as other parts, but impact is always stored per kilogram. That per-kg data rolls up to parts and packaging through material composition (Section 6.1.2), unless the part has its own dataset or linked LCA — in which case the part's own data takes priority for manufacturing impact (Section 6.1.3). End-of-life pathway datasets on Materials are configured separately on each Material's End of life tab; they do not replace per-kg manufacturing data when you expect impact to flow from the material mix.
8. Methodological Choices, Assumptions, and Limitations
Verifiers should be aware of the following platform-level choices:
- Deterministic point values. All results are point estimates. The platform does not currently propagate uncertainty ranges (e.g. Monte Carlo simulation or pedigree-matrix uncertainty factors). Data quality indicators attached to ecoinvent exchanges (reliability, completeness, temporal and geographical correlation) are preserved and exportable for review, but they do not modify the numbers.
- System model consistency. Results computed under the cut-off system model follow cut-off conventions throughout (recycled content enters burden-free; end-of-life credits are modelled explicitly and reported separately as benefits).
- Allocation is user-declared. Supplier sourcing splits, material composition shares, end-of-life pathway shares, and within-site output allocation percentages at production locations are declared by the user (or proposed by the AI and confirmable by the user). The platform applies them arithmetically as entered; only the equal-split default for undeclared supplier allocations and automatic rebalancing of output allocations to 100 % when outputs are added or removed at a location are applied automatically.
- Mass is the backbone. Transport, material, and end-of-life calculations depend on declared part weights. Missing weights result in zero contributions for the dependent modules rather than estimates, making data gaps visible rather than silently filled.
- No double counting by construction. For manufacturing impact, each part without sub-parts in its BOM uses either its own dataset/LCA or rolled-up data from Materials in its composition — never both. Subassemblies get manufacturing impact from their bill of materials, not from an additional roll-up of the parent's material mix. Material datasets are per kg and scaled once when rolled up to a part. End-of-life mass always follows material composition, even when a part's own dataset replaces rolled-up Materials for manufacturing. Single-score aggregation excludes sub-categories and inventory indicators; production scrap is separated from product output.
- Database versions. Calculations reference a specific database version (e.g. ecoinvent 3.12, EF 3.1). When databases are updated, existing results remain tied to the version they were calculated with until recalculated.
9. Traceability and Versioning
To support verification, the platform maintains a full audit trail:
- Part-level impact reports store, alongside the results, the source dataset's identity, database, system model, declared amount, and life cycle stage.
- Version snapshots are taken whenever a dataset is assigned or changed on a part, preserving the previous state.
- Published LCA reports are immutable records of a product's results at publication time, including the complete indicator set, the per-stage breakdown, and the model structure that produced them.
- Contribution tracking records which part, module, and dataset each portion of the total comes from, enabling drill-down from a product-level figure to the individual quantity × emission factor calculations beneath it.
- Assembly version snapshots preserve the resolved BOM and calculated impact for each assembly configuration. The base configuration and each variant maintain separate version streams — a historical report is always identified by assembly, variant slot, and version number. Editing the core BOM creates a new main version for the base slot and auto-update snapshots for every variant slot that reflect the new merged BOM without advancing each variant's main version. Editing a variant's deltas alone advances only that variant's version. Shared assembly-level changes (utilities, packaging, transport, end-of-life allocations, installation loss %, and similar) write auto-update snapshots across the base slot and all variant slots at each slot's current main version. Snapshots store the resolved part list, child links (including any specified child variant), the full impact breakdown at capture time, a frozen
installationLosscontext (percent, target stage, prior-stage CO₂, installation-loss CO₂, impact score, and cost), and a frozenproductionUtilitieslist (direct and location-inherited utility amounts per utility part). - Location-driven utility changes propagate to affected assemblies and subassemblies through the same auto-update snapshot mechanism when site utilities or output allocations change, so inherited production energy in version history reflects the site configuration at snapshot time.
10. Summary of Calculation Formulas
| Contribution | Formula |
|---|---|
| Any single activity | Impact(i) = quantity × EF(i) per indicator i |
| Carbon footprint | GWP100 total, in kg CO₂-eq (unweighted) |
| EF single score | Σ Impact(i) / NF(i) × WF(i) over the 16 EF 3.1 categories, in points (displayed as mPt = Pt × 1000) |
| BOM roll-up | Σ part impact per unit × effective quantity (quantities multiply down the tree) |
| Material dataset | Per kg on the Material; impact = 1 kg × EF when viewing the Material itself |
| Composition roll-up | part qty × part weight (kg) × material share (%) × EF per kg — for parts without sub-parts, when the part has no own dataset/LCA |
| Part's own data wins | Part with dataset/LCA uses that for manufacturing; composition still drives end-of-life mass |
| Assembly variant BOM | Resolved BOM = merge(Core BOM, exclusions, overrides, additions) — all BOM roll-ups use the resolved structure for the active variant |
| Production loss (yield) | input = planned qty; scrap = qty × L; output = qty × (1 − L) — scrap burden reported separately |
| Production loss (fixed BOM) | output = planned qty; scrap = qty × L (additional) — product content uses full BOM qty |
| Inbound transport | distance × (part weight + part production packaging mass) → t·km × EF, × supplier allocation % |
| Production packaging | packaging part quantity × EF of packaging part dataset (separate Packaging category) |
| Production energy (direct) | consumed amount per entity × EF of utility dataset (assembly: once per product; part: × effective BOM qty) |
| Site utility allocation | Share(o) = D_o / ΣD_j then per unit = (S × Share(o)) / V_o — basis: volume → D=V; weight → D=kg×V; price → D=price×V |
| Production energy (total) | (direct per unit + Σ location-inherited per unit) × EF |
| Site waste allocation | per-unit waste mass(o) = (stream amount × Share(o)) / V_o; treatment = per-unit mass × pathway % × EF |
| Site transport to waste | distance × per-unit allocated waste mass (kg) → t·km × EF (location preview uses total site waste mass in phase) |
| Production loss transport (location) | distance × BOM lost mass per unit (kg) → t·km × EF — inherited from each production location's production_transport_to_waste route where the entity is a registered output |
| Production loss transport (entity) | Same formula — optional route declared directly on assembly/part Production tab |
| Production waste treatment | lost material mass × pathway share % × EF of treatment |
| Transport to customer | distance × (assembly output weight + assembly production packaging mass) → t·km × EF |
| Installation loss (prior stages) | Σ impact from stages before installation-loss stage × (I / 100) — reallocated to Installation loss category |
| Installation loss (premature EOL) | installation-loss material mass × pathway share % × EF — same pathways as EOL (Section 6.7), mass = full BOM material inventory × (I / 100) |
| Installation loss (EOL benefit) | − installation-loss material mass × source pathway share % × benefit share % × EF — staged under installation_loss module |
| Installation loss (transport to waste) | distance × (assembly output weight × I / 100) → t·km × EF — assembly EOL transport route, scaled by I |
| Use phase | consumption per lifetime unit × lifetime units × EF |
| End-of-life treatment | material mass × pathway share % × EF of treatment |
| End-of-life benefit | − material mass × source pathway share % × benefit share % × EF of substituted activity |
| Output flow MFR / CRU | waste mass (kg) × recycling or reuse pathway % — inventory only, no EF (Section 6.8) |
| Output flow MER | waste mass × incineration % when heat or energy recovery is modelled (Section 6.8) |
| Output flow EEE / EET | waste mass × incineration % × recovery efficiency % × benefit amount (→ MJ) (Section 6.8) |
This document describes the calculation methodology implemented in the Dawn platform as of June 2026. Emission factor values themselves originate from the referenced databases (ecoinvent, EF 3.1, EN 15804 EPDs) and are subject to those databases' own documentation and review processes.