Code lists
Every closed code list the loader validates against. A value outside these
sets halts the ingest (UnmappedSourceValue): an adapter never invents
a code and never falls back to unknown. Adding one is a deliberate
migration plus a seed update.
Six of these lists are also spreadsheets, regenerated whenever a list changes: categories.xlsx, system-boundaries.xlsx, classification-schemes.xlsx, units.xlsx, licence-terms.xlsx and, for the regions, geography.xlsx. Each opens with an About sheet that names the page explaining it.
system_boundary: 55 codes#
The column that keeps wrong numbers out: it is the position on the
decomposition axis, not a label. Aggregate only over family <> 'contribution': a contribution is a part of its parent factor and is
never reported alone. unknown is explicit ignorance, never a fallback.
family asset_stage (16)#
| code | name | standard | means |
|---|---|---|---|
A1 |
Raw material supply | en15804 | EN 15804 module A1: raw material supply (product stage). |
A2 |
Transport to manufacturer | en15804 | EN 15804 module A2: transport of raw materials to the manufacturer (product stage). |
A3 |
Manufacturing | en15804 | EN 15804 module A3: manufacturing (product stage). |
A4 |
Transport to site | en15804 | EN 15804 module A4: transport of the finished product to the construction site. |
A5 |
Installation | en15804 | EN 15804 module A5: installation of the product into the building. |
B1 |
Use | en15804 | EN 15804 module B1: use of the installed product. |
B2 |
Maintenance | en15804 | EN 15804 module B2: maintenance. |
B3 |
Repair | en15804 | EN 15804 module B3: repair of the installed product (use stage). |
B4 |
Replacement | en15804 | EN 15804 module B4: replacement. |
B5 |
Refurbishment | en15804 | EN 15804 module B5: refurbishment. |
B6 |
Operational energy use | en15804 | EN 15804 module B6: operational energy use. |
B7 |
Operational water use | en15804 | EN 15804 module B7: operational water use. |
C1 |
Deconstruction and demolition | en15804 | EN 15804 module C1: de-construction / demolition (end-of-life). |
C2 |
Transport to waste processing | en15804 | EN 15804 module C2: transport to waste processing (end-of-life). |
C3 |
Waste processing | en15804 | EN 15804 module C3: waste processing for reuse/recovery/recycling (end-of-life). |
C4 |
Disposal | en15804 | EN 15804 module C4: disposal (end-of-life). |
family contribution (17)#
| code | name | standard | means |
|---|---|---|---|
agriculture |
Agriculture | open_ef | Contribution slice: agricultural production stage of the parent factor's total. Never reported alone. |
processing |
Processing | open_ef | Contribution slice: processing/transformation stage of the parent factor's total. Never reported alone. |
packaging |
Packaging | open_ef | Contribution slice: packaging stage of the parent factor's total. Never reported alone. |
transport |
Transport | open_ef | Contribution slice: transport/logistics stage of the parent factor's total. Never reported alone. |
distribution |
Distribution and retail | open_ef | Contribution slice: retail storage and distribution stage of the parent factor's total. Never reported alone. |
consumption |
Consumer use | open_ef | Contribution slice: consumer use/preparation stage of the parent factor's total. Never reported alone. |
land_use_change |
Land-use change | open_ef | Contribution slice: emissions and removals from land-use change attributed to the product (dLUC/sLUC): above- and below-ground carbon stock change on land converted for this production. Never reported alone; it is the single most commonly separated agricultural component and is published as its own line by ADEME, Agribalyse, GLEAM and GFLI. Whether a whole boundary INCLUDES this burden is not a scope term but a property of the value: read value_co2_luluc_native and co2e_basis. |
inputs |
Raw materials and inputs | open_ef | Contribution slice: raw materials and other inputs (ADEME 'Intrants') of the parent factor's total. Never reported alone. |
manufacturing |
Manufacturing | open_ef | Contribution slice: manufacturing/assembly stage (ADEME 'Fabrication') of the parent factor's total. Never reported alone. |
energy_use |
Production energy | open_ef | Contribution slice: energy consumed during production (ADEME 'Energie') of the parent factor's total. Never reported alone. |
amortization |
Capital goods amortization | open_ef | Contribution slice: capital goods (plant, buildings, vehicles) amortized over the parent factor's output, e.g. ADEME's 'Amortissement' and UBA AT's 'Fahrzeugherstellung'. Usually published beside the total it decomposes, but not always: a publisher may print the slice with no total, in which case the aggregate is derived and never invented. |
collection |
Waste collection | open_ef | Contribution slice: waste collection stage (ADEME 'Collecte') of the parent factor's total. Never reported alone. |
treatment |
Waste treatment | open_ef | Contribution slice: waste treatment stage (ADEME 'Traitement') of the parent factor's total. Never reported alone. |
incineration |
Incineration | open_ef | Contribution slice: incineration stage (ADEME 'Incinération') of the parent factor's total. Never reported alone. |
avoided_credit |
Avoided-emission credit | open_ef | Contribution slice: an avoided-emission credit the publisher states as its own signed number: the burden a recovery route displaces elsewhere (recycled material substituting virgin, recovered energy substituting grid supply). It is NOT netted into the parent's treatment total, so summing it with the parent double-counts. The generic counterpart of EN 15804 module D, for publishers that declare a credit outside an EPD. |
other |
Other stages | open_ef | Contribution slice: residual stage the publisher does not itemize (ADEME 'Autre'). Never reported alone. |
D |
Benefits and loads beyond the boundary | en15804 | EN 15804 module D: benefits and loads beyond the system boundary (reuse/recovery/recycling potential). A signed credit, never added to the A-C total. |
family energy_stage (8)#
| code | name | standard | means |
|---|---|---|---|
combustion |
Combustion (tank-to-wheel) | open_ef | Direct emissions from burning the fuel at the point of use (tank-to-wheel). The buyer's Scope 1. |
upstream_fuel |
Upstream fuel (well-to-tank) | open_ef | Extraction, refining and transport of the fuel before it is burned (well-to-tank). The buyer's Scope 3 category 3. |
generation |
Generation | open_ef | Combustion at the generating plant for purchased energy carriers. The buyer's Scope 2. |
transmission_distribution |
Transmission and distribution losses | open_ef | Grid or network losses between generation and the point of use. The buyer's Scope 3 category 3. |
transmission_distribution_upstream |
Upstream of transmission and distribution losses | open_ef | Upstream (well-to-tank) of the energy a grid or network loses between generation and the point of use: extraction, refining and transport of the fuel that generated the lost energy. The companion of transmission_distribution, which prices the lost energy's own generation; together they are the loss leg of the buyer's Scope 3 category 3, and neither is a total on its own. |
fugitive |
Fugitive releases | open_ef | Unintended releases (leaks, venting, process escapes) attributable to the activity. |
well_to_use |
Well-to-use (upstream, burn or generation, network losses) | open_ef | One unit of energy as consumed, priced from the well to the point of use: the well-to-tank chain plus the burn for a fuel; generation, its well-to-tank and the transmission and distribution losses for a delivered carrier (electricity, steam or hot water, chilled water). ISO 14083's well-to-wheel, which reads the network losses into an electric vehicle's factor, generalised to stationary energy; in GHG Protocol terms the buyer's Scope 1 or Scope 2 plus the fuel- and energy-related part of Scope 3 category 3. The asset that burns or generates is outside. The upstream chain and the network losses are answered per factor by boundary_profile, since a publisher may print the delivered carrier without its well-to-tank or a fuel without its network; the burn or the generation is in on every factor. |
energy_lifecycle |
Energy, full life cycle (fuel cycle and asset) | open_ef | Full life-cycle emissions of one unit of energy service: a kWh generated or a vehicle-, passenger- or tonne-kilometre moved: extraction and delivery of the fuel or electricity, its combustion in the plant or vehicle, and the manufacture of the generating asset or vehicle itself amortized over its lifetime output. The asset is exactly what separates it from well_to_use and generation, which put it outside. Excludes the shared network the energy travels on (grid losses, roads, rail, ports, airports); whether the asset's own maintenance rides inside the capital-goods leg is the publisher's choice, so read the factor's boundary_profile. |
family lifecycle (13)#
| code | name | standard | means |
|---|---|---|---|
cradle_to_gate |
Cradle to gate | open_ef | Extraction of raw materials through production, up to the producer's factory gate. Excludes distribution, use and end-of-life. |
cradle_to_grave |
Cradle to grave | open_ef | Full life cycle: cradle_to_gate plus distribution, use phase and end-of-life. |
cradle_to_grave_embodied |
Cradle to grave, embodied (excl. use) | open_ef | The whole life cycle EXCEPT the use stage: cradle_to_gate plus distribution to site, installation and end-of-life (EN 15804 A1-A3 + A4 + A5 + C1-C4). This is the industry's embodied carbon cut, and it exists as its own code because it is the only whole-life number that compares across products: a cradle_to_grave total built from EN 15804 is dominated by module B6, operational energy over a reference service life, which is a property of the building the product sits in rather than of the product. Measured over the 1,530 OEKOBAUDAT EPDs declaring a complete A+B+C set, A-C is a median 29.3x the gate and B6 alone a median 19.1x; this cut is a median 1.09x. |
epd_total |
EPD total (declared modules) | en15804 | The sum of every EN 15804 module an EPD declares, when that set is not the complete A-C grid (MOD-0034). Always at least the product stage A1-A3 plus one more module; which modules it holds is per factor and is written on the parent's boundary_profile and its member links, never on this code. It exists because an EPD that declares, say, A1-A5 + B6 + C1-C4 has a publisher-defined total that is neither cradle_to_grave (B1-B5, B7 missing) nor cradle_to_grave_embodied (B6 present); the name says what this EPD declared rather than pretending to a standard envelope. Declared-partition only: never a cover-rule target, and never compared across products without reading the profile. |
cradle_to_consumer |
Cradle to consumer | open_ef | Cradle through to the product as consumed, including consumer preparation. Excludes end-of-life. |
cradle_to_farm_gate |
Cradle to farm gate | open_ef | Agricultural production only, up to the farm gate. |
cradle_to_processing_gate |
Cradle to processing gate | open_ef | Cradle_to_farm_gate plus processing/transformation. |
cradle_to_plant_gate |
Cradle to plant gate | open_ef | Cradle to the gate of the plant that produces a FEED material: the GFLI compound-feed boundary. Deliberately not cradle_to_processing_gate: the animal production stage is entirely outside, so reusing the processing-gate code would claim a farm stage that was never modelled. |
cradle_to_packaging_gate |
Cradle to packaging gate | open_ef | Cradle_to_processing_gate plus packaging. |
cradle_to_distribution_gate |
Cradle to distribution gate | open_ef | Cradle_to_packaging_gate plus transport to the point of sale. |
cradle_to_store_gate |
Cradle to store gate | open_ef | Cradle_to_distribution_gate plus retail storage and distribution. |
cbam_embedded |
CBAM embedded emissions | eu_cbam | Embedded emissions of a CBAM good as the EU defines them: the direct emissions of the production processes at the installation (the EU ETS installation boundary), the indirect emissions of the electricity those processes consume, and the embedded emissions of the relevant precursors. Deliberately NOT cradle_to_gate: the fuels' upstream (well-to-tank), transport of inputs to the installation, and capital equipment and infrastructure are all outside it. |
end_of_life |
End of life | open_ef | Treatment of the product after use: collection, recycling, incineration, landfill. EN 15804 modules C1-C4 together. |
family unknown (1)#
| code | name | standard | means |
|---|---|---|---|
unknown |
Unspecified | open_ef | The publisher states no boundary and none can be derived. Explicit ignorance, never a fallback for an unmapped value. |
Life-cycle coverage (55 codes, MOD-0032)#
Which of the four phases each boundary covers, declared per code in
ingest/lifecycle_coverage.py and stored on system_boundary.phase_*,
role and preset. A phase reads full, partial, none, unstated
(the publisher's silence) or n_a (a phase the product has no such
thing as); the last two are never none. role says whether the
number is a whole answer, a part to add to others, a credit to
keep apart or unknown. preset is the reader-facing group the
explorer's boundary filter draws as a parent; each code sits under
exactly one, and a preset's role is the role of every code under it.
A part's topic is the sub-heading the rail files it under (empty for
the residual part that belongs to none).
| preset | role | topic | name | codes |
|---|---|---|---|---|
cradle_to_gate |
whole | Cradle to gate | cradle_to_gate, cradle_to_farm_gate, cradle_to_processing_gate, cradle_to_plant_gate, cradle_to_packaging_gate, cbam_embedded |
|
cradle_to_shelf |
whole | Cradle to shelf | cradle_to_distribution_gate, cradle_to_store_gate, cradle_to_consumer |
|
full_lifecycle |
whole | Full life cycle | cradle_to_grave, cradle_to_grave_embodied, epd_total |
|
end_of_life_waste |
whole | End of life / waste | end_of_life |
|
energy_full_chain |
whole | Energy, full chain | well_to_use, energy_lifecycle |
|
direct_only |
part | energy |
Direct only | combustion, fugitive, generation |
supply_chain_only |
part | energy |
Supply chain only | upstream_fuel, transmission_distribution, transmission_distribution_upstream |
upstream_slice |
part | products |
Upstream slices | A1, A2, agriculture, inputs, amortization, land_use_change |
production_slice |
part | products |
Production slices | A3, processing, manufacturing, packaging, energy_use |
use_slice |
part | products |
Use & distribution slices | A4, A5, B1, B2, B3, B4, B5, B6, B7, distribution, consumption, transport |
eol_slice |
part | waste |
End-of-life slices | C1, C2, C3, C4, collection, treatment, incineration |
other_slice |
part | Other, unspecified slice | other |
|
credit |
credit | Credit | D, avoided_credit |
|
unknown |
unknown | Unknown | unknown |
| code | upstream | production | downstream | eol | role | preset |
|---|---|---|---|---|---|---|
cradle_to_gate |
full | full | none | none | whole | cradle_to_gate |
cradle_to_farm_gate |
full | partial | none | none | whole | cradle_to_gate |
cradle_to_processing_gate |
full | partial | none | none | whole | cradle_to_gate |
cradle_to_plant_gate |
full | full | none | none | whole | cradle_to_gate |
cradle_to_packaging_gate |
full | full | none | none | whole | cradle_to_gate |
cbam_embedded |
partial | partial | none | none | whole | cradle_to_gate |
cradle_to_distribution_gate |
full | full | partial | none | whole | cradle_to_shelf |
cradle_to_store_gate |
full | full | partial | none | whole | cradle_to_shelf |
cradle_to_consumer |
full | full | partial | none | whole | cradle_to_shelf |
cradle_to_grave |
full | full | full | full | whole | full_lifecycle |
cradle_to_grave_embodied |
full | full | partial | full | whole | full_lifecycle |
epd_total |
full | full | partial | partial | whole | full_lifecycle |
end_of_life |
none | none | none | full | whole | end_of_life_waste |
well_to_use |
full | full | n_a | n_a | whole | energy_full_chain |
energy_lifecycle |
full | full | n_a | n_a | whole | energy_full_chain |
combustion |
none | full | n_a | n_a | part | direct_only |
fugitive |
none | full | n_a | n_a | part | direct_only |
generation |
none | full | n_a | n_a | part | direct_only |
upstream_fuel |
full | none | n_a | n_a | part | supply_chain_only |
transmission_distribution |
full | none | n_a | n_a | part | supply_chain_only |
transmission_distribution_upstream |
full | none | n_a | n_a | part | supply_chain_only |
A1 |
partial | none | none | none | part | upstream_slice |
A2 |
partial | none | none | none | part | upstream_slice |
A3 |
partial | full | none | none | part | production_slice |
A4 |
none | none | partial | none | part | use_slice |
A5 |
none | none | partial | none | part | use_slice |
B1 |
none | none | partial | none | part | use_slice |
B2 |
none | none | partial | none | part | use_slice |
B3 |
none | none | partial | none | part | use_slice |
B4 |
none | none | partial | none | part | use_slice |
B5 |
none | none | partial | none | part | use_slice |
B6 |
none | none | partial | none | part | use_slice |
B7 |
none | none | partial | none | part | use_slice |
C1 |
none | none | none | partial | part | eol_slice |
C2 |
none | none | none | partial | part | eol_slice |
C3 |
none | none | none | partial | part | eol_slice |
C4 |
none | none | none | partial | part | eol_slice |
D |
none | none | none | none | credit | credit |
agriculture |
partial | none | none | none | part | upstream_slice |
inputs |
partial | none | none | none | part | upstream_slice |
amortization |
partial | none | none | none | part | upstream_slice |
processing |
none | partial | none | none | part | production_slice |
manufacturing |
none | partial | none | none | part | production_slice |
packaging |
none | partial | none | none | part | production_slice |
energy_use |
none | partial | none | none | part | production_slice |
distribution |
none | none | partial | none | part | use_slice |
consumption |
none | none | partial | none | part | use_slice |
transport |
partial | none | partial | none | part | use_slice |
land_use_change |
partial | none | none | none | part | upstream_slice |
collection |
none | none | none | partial | part | eol_slice |
treatment |
none | none | none | partial | part | eol_slice |
incineration |
none | none | none | partial | part | eol_slice |
avoided_credit |
none | none | none | none | credit | credit |
other |
unstated | unstated | unstated | unstated | part | other_slice |
unknown |
unstated | unstated | unstated | unstated | unknown | unknown |
boundary_scope_term: 21 terms#
The questions a boundary answers. Read them through factors_flat.boundary_scope, which is the boundary default overridden by the factor's
own boundary_profile. Sparse on purpose: a missing key means not
established, never excluded.
A stage is one of the four life-cycle phases, or one of two that are
not phases and are drawn apart from them: beyond_boundary (a credit,
EN 15804 module D) and inclusion (a content counted across every
phase). Carbon pools (biogenic CO2, land-use change) are not terms: the
value's co2e_basis and gas legs answer them.
| term | name | stage | question |
|---|---|---|---|
raw_materials |
Raw materials | upstream | Extraction and production of the material inputs the activity consumes. |
inbound_transport |
Inbound transport | upstream | Transport of inputs to the site where the activity happens. |
upstream_fuel |
Upstream fuel (well-to-tank) | upstream | Extraction, refining and delivery of the fuels the activity burns, before combustion (well-to-tank). |
td_losses |
Transmission and distribution losses | upstream | Energy lost in transmission and distribution between generation and the point of use. |
fuel_combustion |
Fuel combustion | production | Combustion of fuel by the activity itself (tank-to-wheel; the operator's Scope 1). |
fugitive_release |
Fugitive releases | production | Direct releases to atmosphere attributable to the activity other than the accounted combustion of its fuel: refrigerant and process leakage, venting, flaring, pipeline losses, and the non-CO2 legs a publisher reports beside a combustion total. |
manufacturing |
Manufacturing | production | Conversion, assembly and on-site processing that turns the inputs into the product. |
packaging |
Packaging | production | Production of the product's own primary and secondary packaging. |
purchased_electricity |
Purchased electricity and heat | production | Network-delivered energy consumed by the activity, and the generation emissions of it: the four carriers the GHG Protocol puts in Scope 2: electricity, steam, heating and cooling. The code keeps the electricity name because that is the carrier every publisher in the corpus prices; district heat and chilled water answer the same question and are read here rather than in a separate term. |
outbound_transport |
Outbound transport | downstream | Distribution of the finished product from the producer to the point of sale or use. |
retail |
Retail | downstream | Retail storage, refrigeration and store operation before the product is bought. |
installation |
Installation | downstream | Installing or assembling the product where it will be used, including installation waste. |
use_phase |
Use phase | downstream | Energy, water and consumables used while the product is in service (incl. consumer preparation). |
maintenance |
Maintenance | downstream | Repair, replacement and refurbishment during the product's service life. |
end_of_life |
End of life | eol | Collection, transport and treatment of the product after use (recycling, incineration, landfill). |
recycling_credit |
Recycling credit | beyond_boundary | Avoided burdens credited for material or energy recovered beyond the system boundary (EN 15804 module D). |
capital_goods |
Capital goods | inclusion | Production of the equipment, buildings and vehicles the activity uses, amortized over their output. |
infrastructure |
Infrastructure | inclusion | Construction and maintenance of the shared networks the activity relies on (roads, rail, pipelines, grid). |
employee_travel |
Employee travel | inclusion | Commuting and business travel of the people carrying out the activity. |
overheads_services |
Overheads and services | inclusion | Purchased services and overheads attributable to the activity (an input-output boundary contains them by construction; a process LCA usually does not). |
product_transport |
Freight transport | inclusion | A freight leg of the product or of its inputs, without saying which one: inbound_transport and outbound_transport answer that where the publisher states it, this term only asserts that a freight leg is inside. |
Boundary defaults (system_boundary_scope, 233 rows)#
| boundary | in | varies | out |
|---|---|---|---|
A1 |
raw_materials |
inbound_transport, manufacturing |
|
A2 |
inbound_transport |
raw_materials |
|
A3 |
manufacturing, packaging, fuel_combustion, purchased_electricity, upstream_fuel |
raw_materials, inbound_transport |
|
A4 |
outbound_transport |
installation |
|
A5 |
installation |
outbound_transport |
|
B1 |
use_phase |
||
B2 |
maintenance |
||
B3 |
maintenance |
||
B4 |
maintenance |
||
B5 |
maintenance |
||
B6 |
use_phase |
td_losses |
|
B7 |
use_phase |
||
C1 |
end_of_life |
||
C2 |
end_of_life |
||
C3 |
end_of_life |
recycling_credit |
|
C4 |
end_of_life |
||
D |
recycling_credit |
end_of_life |
|
agriculture |
raw_materials |
||
amortization |
capital_goods |
||
avoided_credit |
recycling_credit |
end_of_life |
|
cbam_embedded |
raw_materials, manufacturing, fuel_combustion |
purchased_electricity |
upstream_fuel, inbound_transport, outbound_transport, packaging, capital_goods, infrastructure, maintenance, td_losses, use_phase, end_of_life, recycling_credit |
collection |
end_of_life |
||
combustion |
fuel_combustion |
upstream_fuel, purchased_electricity, capital_goods, infrastructure, td_losses |
|
consumption |
use_phase |
||
cradle_to_consumer |
raw_materials, manufacturing, packaging, outbound_transport, retail, use_phase |
end_of_life, recycling_credit, maintenance |
|
cradle_to_distribution_gate |
raw_materials, manufacturing, packaging, outbound_transport |
retail, use_phase, end_of_life |
|
cradle_to_farm_gate |
raw_materials |
manufacturing, packaging, outbound_transport, retail, use_phase, end_of_life |
|
cradle_to_gate |
raw_materials, inbound_transport, upstream_fuel, fuel_combustion, purchased_electricity, manufacturing, packaging |
capital_goods, infrastructure, employee_travel, overheads_services |
outbound_transport, retail, installation, use_phase, maintenance, end_of_life, recycling_credit |
cradle_to_grave |
raw_materials, inbound_transport, upstream_fuel, fuel_combustion, purchased_electricity, manufacturing, packaging, outbound_transport, use_phase, end_of_life |
installation, maintenance, retail, recycling_credit, capital_goods, infrastructure |
|
cradle_to_grave_embodied |
raw_materials, inbound_transport, upstream_fuel, fuel_combustion, purchased_electricity, manufacturing, packaging, outbound_transport, installation, end_of_life |
recycling_credit, infrastructure |
use_phase, maintenance, retail, capital_goods, employee_travel, overheads_services |
cradle_to_packaging_gate |
raw_materials, manufacturing, packaging |
outbound_transport, retail, use_phase, end_of_life |
|
cradle_to_plant_gate |
raw_materials, manufacturing, inbound_transport |
use_phase, end_of_life |
|
cradle_to_processing_gate |
raw_materials, manufacturing |
packaging, outbound_transport, retail, use_phase, end_of_life |
|
cradle_to_store_gate |
raw_materials, manufacturing, packaging, outbound_transport, retail |
use_phase, end_of_life |
|
distribution |
retail |
||
end_of_life |
end_of_life |
recycling_credit |
raw_materials, manufacturing, use_phase |
energy_lifecycle |
fuel_combustion, upstream_fuel, capital_goods |
infrastructure, purchased_electricity, td_losses |
manufacturing |
energy_use |
fuel_combustion |
upstream_fuel, purchased_electricity |
|
epd_total |
raw_materials, inbound_transport, upstream_fuel, fuel_combustion, purchased_electricity, manufacturing, packaging |
outbound_transport, installation, use_phase, maintenance, end_of_life, recycling_credit, infrastructure |
retail, capital_goods, employee_travel, overheads_services |
fugitive |
fugitive_release |
fuel_combustion, upstream_fuel |
|
generation |
fuel_combustion, purchased_electricity |
upstream_fuel, td_losses, capital_goods |
|
incineration |
end_of_life |
||
inputs |
raw_materials |
||
land_use_change |
raw_materials |
||
manufacturing |
manufacturing |
||
packaging |
packaging |
||
processing |
manufacturing |
raw_materials, packaging |
|
transmission_distribution |
td_losses |
upstream_fuel |
capital_goods |
transmission_distribution_upstream |
upstream_fuel |
fuel_combustion, capital_goods |
|
transport |
product_transport |
outbound_transport, inbound_transport |
raw_materials, manufacturing, packaging |
treatment |
end_of_life |
||
upstream_fuel |
upstream_fuel |
purchased_electricity |
fuel_combustion, capital_goods, infrastructure |
well_to_use |
fuel_combustion |
upstream_fuel, td_losses, purchased_electricity |
capital_goods, infrastructure |
end_of_life reads recycling_credit: varies deliberately. A
treatment total may or may not net the credit for what recovery
displaces: only the publisher knows, so the boundary establishes
nothing and the factor's own boundary_profile decides. A credit the
publisher prints as its own signed number is never filed there: it takes
avoided_credit, or EN 15804 module D, both contribution codes
reading recycling_credit: in. That makes
boundary_scope ->> 'recycling_credit' = 'in' the one cross-library
selector for credits, and credit_on_lifecycle_family (gating) fails a
publisher that files one under a lifecycle total instead.
classification_scheme: 37 schemes#
is_standard is the join rule: a published standard means the same thing
across publishers, so it is a legitimate cross-library key. A publisher's
own tree is meaningful inside that library only.
| code | name | authority | standard | publisher | means |
|---|---|---|---|---|---|
nace_rev1_1 |
NACE Rev. 1.1 | Eurostat | yes | EU statistical classification of economic activities, revision 1.1 (2002). Level 1 = section letter, level 2 = two-digit division. The classification EXIOBASE 3's product aggregation is built on. NOT interchangeable with NACE Rev. 2. | |
naf_rev2 |
NAF rév. 2 | INSEE | yes | French statistical classification of economic activities, revision 2 (2008): the national implementation of NACE Rev. 2, identical to it down to the 4-digit class. Level 1 = section letter, level 2 = two-digit division. | |
naics_2017 |
NAICS 2017 | US Census Bureau | yes | North American Industry Classification System, 2017 revision. Level 6 = the six-digit national industry; a USEEIO commodity maps to one or more of them. | |
naics_canada_2022 |
NAICS Canada 2022 | Statistics Canada | yes | North American Industry Classification System, Canadian 2022 version (Statistics Canada's national implementation). Level 5 = the five-digit industry, the deepest trilaterally-harmonised layer, so a level-5 code is comparable with the US and Mexican revisions; level 6 = the six-digit Canadian national industry, where the three countries diverge. The REVISION is part of the scheme code for the same reason it is in naics_2017: a code is only interpretable against a stated revision, and the two are not interchangeable at level 6. | |
ademe_category |
Base Carbone catégorie | ADEME | ademe |
ADEME's own category path for a Base Carbone element (the '>'-separated 'Code de la catégorie'), kept level by level. Segment names are the codes: the tree carries none. | |
agribalyse_food_group |
AGRIBALYSE groupe d'aliment | ADEME | agribalyse |
AGRIBALYSE's two-level food classification: 'Groupe d'aliment' (level 1) and 'Sous-groupe d'aliment' (level 2). Segment names are the codes. | |
okobaudat_category |
ÖKOBAUDAT Kategorie | BBSR | okobaudat |
The ÖKOBAUDAT (OEKOBAU.DAT) classification path an EPD declares in its ILCD classificationInformation, level by level. Segment names are the codes. | |
desnz_activity |
DESNZ conversion-factor activity path | DESNZ | desnz |
The DESNZ conversion-factor workbook's own hierarchy: GHG-Protocol scope (level 1) then Level 1-4 of the flat file (levels 2-5). Segment names are the codes. | |
epa_emission_category |
EPA GHG Emission Factors Hub emission category | US EPA | epa |
The Hub's own 'Emission Category' column: the GHG-Protocol scope/category a factor belongs to ('Stationary Combustion', 'Scope 3 Category 4: Upstream Transportation and Distribution'). One level; the printed string is the code, the workbook ships none. | |
ceda_sector |
CEDA sector | Watershed Technology | openceda |
Open CEDA's own sector code and name (the workbook's sector-code header row). Level 1; the code is CEDA's, not a NAICS/IXI code. | |
cn_2026 |
Combined Nomenclature 2026 | European Commission | yes | EU Combined Nomenclature, 2026 edition: the customs goods nomenclature of Council Regulation (EEC) No 2658/87, re-issued every year. Level 2 = 4-digit HS heading, level 3 = 6-digit HS subheading, level 4 = 8-digit CN code. The first customs nomenclature in open_ef; the YEAR is part of the scheme code because CN is re-published annually and editions are not interchangeable (cn_2026 != cn_2027). | |
hs_2022 |
Harmonized System 2022 | World Customs Organization | yes | Harmonized Commodity Description and Coding System, 2022 edition: the 6-digit international goods nomenclature the EU Combined Nomenclature extends. Level 1 = 2-digit chapter, level 2 = 4-digit heading, level 3 = 6-digit subheading. Editions are revised roughly every five years and are NOT interchangeable. | |
cbam_sector |
CBAM sector | European Commission | cbam |
The Annex I goods sector a CBAM default value is printed under (the banner row of the default-values tables: cement, fertilisers, iron and steel, aluminium, hydrogen). Level 1; the printed sector name is the code. A rollup OVER the publisher's own partition: gas coverage and system boundary are stated per cbam_goods_category, never per sector. | |
cbam_goods_category |
CBAM aggregated goods category | European Commission | cbam |
The 'aggregated goods category' of Implementing Regulation (EU) 2025/2547, Annex I point 2 Table 1: a complete, official CN-code-to-category map. Level 2, nesting under cbam_sector. This is the grain at which the Commission itself states gas coverage and the production-process system boundary, so category-level annotations hang here and never on the sector. | |
cbam_production_route |
CBAM production route | European Commission | cbam |
The lettered production route determining the CBAM benchmark for a good ('(C) Carbon steel based on BF/BOF'), as printed in the default-values tables. Level 1; the bare letter is the code. A route is a property of the modelled process, not a separate good. | |
co2emissiefactoren_nl_category |
Lijst CO2-emissiefactoren categorie | Rijkswaterstaat / Stichting Stimular | co2emissiefactoren_nl |
The Dutch list's own two-level category band, keyed on the site's URL 'category_id'. Level 1 = section (Brandstoffen, Afval, ...), level 2 = the subsection node the category_id identifies. Three level-2 nodes carry no printed label but do carry an id, so the tree stays uniform. No published standard code (NACE, NAICS, CPA) appears anywhere in this source. | |
uba_at_energy_domain |
UBA AT Bereich (Energieträger) | Umweltbundesamt GmbH (Austria) | uba_at |
The 'Bereich' each energy-carrier table of REP-0989 is printed under: level 1 is raumwaerme (space heating, Tabelle 1), strom (electricity, Tabelle 4) or mobilitaet (mobility, Tabelle 7); level 2 is the carrier label itself. Load-bearing, not decorative: the same carrier is published three times with three different factors (Erdgas 201 / 315 / 202 g CO2-eq per kWh direct), so the Bereich is the only thing that tells them apart, and it is part of the factor's identity for the same reason. The report carries no NACE, NAICS, CPA or CN code anywhere. | |
uba_at_transport_mode_group |
UBA AT Verkehrsträger (Emissionskennzahlen) | Umweltbundesamt GmbH (Austria) | uba_at |
The mode band each row of UBA AT's 'Emissionskennzahlen Verkehrsmittel' tables is printed under: level 1 is strasse (road), bahn (rail) or flug (air); level 2 is the printed vehicle label. The band is drawn as a rotated spine label beside the rows rather than as a column, so it is read from the page and not from a field. Load-bearing in the same way the energy tree is: the three tables publish the same vehicle on three denominators (Fkm / Pkm / Tkm), and the band is what groups them into a mode. The tables carry no NACE, NAICS, CPA, CN or GLEC code anywhere. | |
ember_electricity_source |
Ember electricity source | Ember | ember |
Ember's electricity-source taxonomy, the only hierarchy the release ships. Four levels: level 1 is the headline series (total_generation, demand, net_imports), level 2 the fossil/clean split of total generation, level 3 the fuel branches (coal, gas, other_fossil, nuclear, renewables), level 4 the individual renewables. The nesting is not a shipped column (the file ships only an 'Is aggregated source' boolean), so it is our reading of Ember's published aggregate definitions: the node matching the printed label carries origin='source', its ancestors origin='mapped'. The five aggregate nodes (fossil, clean, renewables, wind_and_solar, hydro_bioenergy_other_renewables) are described here but deliberately not imported as factors: they overlap rather than partition, so loading them un-flagged would be a double-count trap. The release carries no NACE, NAICS, ISIC, CPA, CN or HS code anywhere. | |
co2emissiefactoren_be_section |
CO2emissiefactoren.be sectie | EnergieID / BENOR | co2emissiefactoren_be |
The Belgian list's own published section: the tab headings of /factoren and, one-to-one, the CSV members of the release zip: Brandstoffen energieopwekking, Brandstoffen voertuigen, Warmtelevering, Elektriciteit, Koudemiddelen, Personenvervoer, Afval. One level; the printed section name is the code, the source ships none. Load-bearing rather than decorative: the section decides what a value column means (the same 'EF productie' header is fuel-production upstream in the vehicle-fuel section and plant generation in the heat section), and it is part of factor identity for that reason. A published eighth tab, Goederenvervoer, carries prose only and refers the reader to co2emissiefactoren.nl: it ships no table, no CSV and no factor, so it is not a node here. No NACE, NAICS, CPA, CN or HS code appears anywhere in this source. | |
wrap_gpc |
WRAP product classification (GS1 GPC names) | WRAP (Waste and Resources Action Programme) | wrap |
WRAP's three-level product tree, carried in the gpc_class / gpc_brick / gpc_classification columns. The level names are GS1 Global Product Classification class and brick NAMES, but the workbook ships no GS1 numeric codes at all, so this is registered as a publisher tree and NOT as the gs1_gpc standard: the segment name is the code. Registering it as a standard would invite a join against another publisher's numeric GPC bricks that cannot succeed. Level 1 = gpc_class, level 2 = gpc_brick (blank on 922 of the loaded spine rows, so level 3 then hangs off the class), level 3 = gpc_classification. | |
ipcc_1996_category |
IPCC 1996 Guidelines source/sink category | IPCC Task Force on National Greenhouse Gas Inventories | ipcc |
The source/sink category tree of the Revised 1996 IPCC Guidelines, as carried in EFDB's 'IPCC 1996 Source/Sink Category' column. Levels are CONCATENATED without separators (1, 1A, 1A3, 1A3b), which is why it cannot share a scheme with the 2006 tree. Not a standard product or activity classification: it is an inventory reporting structure, and its category 5 (Land-Use Change and Forestry) is not the 2006 tree's category 3 (AFOLU) under another number. | |
ipcc_2006_category |
IPCC 2006 Guidelines source/sink category | IPCC Task Force on National Greenhouse Gas Inventories | ipcc |
The source/sink category tree of the 2006 IPCC Guidelines (and its 2019 Refinement), as carried in EFDB's 'IPCC 2006 Source/Sink Category' column. Levels are DOT-SEPARATED (1, 1.A, 1.A.3, 1.A.3.b, 1.A.3.b.i). Registered separately from ipcc_1996_category because the two are different decompositions, not two encodings of one tree. Not a standard product or activity classification. | |
open_ef_category |
open_ef category taxonomy | open_ef | yes | Our own cross-library category axis: the first scheme authored here rather than read from a source. Two levels over the closed registry in ingest/category_taxonomy.py: level 1 is one of 13 branches (fuels, electricity, heat_cooling, water, materials, food_agriculture, manufactured_goods, buildings_infrastructure, transport, services, waste, direct_emissions, land_use_removals), level 2 one of 82 flat mint-frozen leaf slugs whose branch parentage is registry data, not part of the code. A node says what the factor MEASURES: never its lifecycle stage (system_boundary's axis) and never the buyer's sector. Registered as a standard with no publisher because the code means the same thing whoever published the factor: per-publisher category maps derive it from the source's own labels (origin='mapped'), and an unmappable source value halts the load rather than guessing a node. | |
nga_table |
NGA Factors table | DCCEEW | nga_australia |
The numbered table a factor was published in, in the National Greenhouse Accounts Factors workbook (level 1 = the table, e.g. Table 5). NGA ships no standard industry code of any kind, and the table number is the only classification the publisher itself asserts: it is what the NGER legislation cites and what a reporter looks up. Meaningful inside this library only: never a cross-library join key, which is why it is a publisher tree and not a standard. |
|
isic_rev4 |
ISIC Rev. 4 | United Nations Statistics Division | yes | International Standard Industrial Classification of All Economic Activities, revision 4: the UN activity classification ecoinvent classifies a dataset under according to its main output. Level 1 = section letter (the source's own 'ISIC Section' column), level 2 = two-digit division, level 3 = three-digit group, level 4 = four-digit class; the level is derivable from the code length. The REVISION is part of the scheme code for the reason stated on naics_2017: ISIC Rev. 3.1 and Rev. 4 codes are not interchangeable. ecoinvent additionally mints letter-suffixed sub-codes of its own (3510a, 3510b, 19a) that are NOT ISIC codes; those are truncated to their numeric stem, never emitted verbatim under this scheme. | |
cpc_v21 |
CPC Ver. 2.1 | United Nations Statistics Division | yes | Central Product Classification, version 2.1: the UN product classification ecoinvent classifies a reference product under according to its product name. Level 1 = one-digit section, level 2 = two-digit division, level 3 = three-digit group, level 4 = four-digit class, level 5 = five-digit subclass; the level is derivable from the code length. The VERSION is part of the scheme code: CPC 1.1, 2.0 and 2.1 renumber, and a code is only interpretable against a stated version. | |
hs_2017 |
Harmonized System 2017 | World Customs Organization | yes | Harmonized Commodity Description and Coding System, 2017 edition: the 6-digit international goods nomenclature, as ecoinvent assigns it to a reference product from the product name and product information. Level 1 = 2-digit chapter, level 2 = 4-digit heading, level 3 = 6-digit subheading, identical in structure to hs_2022. Registered SEPARATELY from hs_2022 because the WCO revises the HS roughly every five years and the editions are NOT interchangeable: the 2022 edition split, merged and renumbered subheadings the 2017 edition assigns differently. | |
ecoinvent_sector |
ecoinvent sector | ecoinvent Association | ecoinvent |
ecoinvent's own sector label, published from v3.8 onwards in the 'Sector' column and, in the publisher's words, 'defined by ecoinvent' from the dataset's ISIC number and its main output. One level; the printed sector name is the code, the source ships none. Deliberately MULTI-VALUED: a dataset may carry several sectors in one semicolon-separated cell (19.4% of v3.12 rows), so it partitions nothing and must never be summed over. 21 tokens as of v3.12; 'Batteries' was added in v3.11 and no token has ever been retired. | |
bea_2017 |
BEA 2017 Detail Input-Output commodities | US Bureau of Economic Analysis | yes | The commodity codes of the BEA 2017 benchmark Input-Output accounts, Detail level (1111A0 oilseed farming, 111200 vegetable and melon farming, S00500 federal general government defense). The identifier two US spend libraries key on without either naming it: USEEIO ships it as 'Reference USEEIO Code' and Open CEDA as its 'Sector Code' header row, which is why nodes carry origin='mapped': the digits are the publisher's, the reading that they are BEA codes is ours. Level 3 = Detail, stated rather than derived because the code string cannot tell Detail from BEA's coarser Sector (1) and Summary (2) levels; no parent node is emitted, since Detail -> Summary is a published crosswalk and not a prefix rule (1111A0 and 1111B0 both roll up to summary 111CA). The BENCHMARK YEAR is part of the scheme code for the reason stated on naics_2017: BEA re-benchmarks every five years and redefines commodities across vintages. Labels are Open CEDA's sector names, which are the BEA commodity descriptions verbatim; USEEIO ships a 2017 NAICS title beside the code and no BEA one, so its nodes carry no label rather than a NAICS title masquerading as a BEA one. Two publisher-side caveats: a USEEIO reference naming several commodities at once ('230301, 233210, 233262, 2332A0') is an average over them and yields no node, so one code resolves to at most one factor per library; and USEEIO extends the Detail list with model-specific codes of its own (the seven-way split of BEA 562000 into 562111/562212/562213/562910/562920/562HAZ/562OTH, plus 335220 and 33131B), which are emitted verbatim as the publisher's own reference identifiers and collide with nothing. | |
rvo_energy_carriers |
Nederlandse energiedragerlijst: sections | Rijksdienst voor Ondernemend Nederland / Nederlandse Emissieautoriteit | rvo |
The seven section headings the Dutch energy-carrier list prints its 56 fuels under. Two levels: level 1 is the part letter (A liquid fossil, B solid fossil, C gaseous fossil, D other, plus the Biomass part), level 2 the section label itself (Liquid Fossil Primary / Secondary, Solid Fossil Primary / Secondary, Gaseous Fossil, Biomass, Other). Segment names are the codes; the source ships none. 56/56 coverage, so sector = the section label and sub_sector stays NULL. No standard scheme is printed anywhere in the document: no NACE, no CN, and in particular no IPCC 2006 source-category code: the fuel names do align with the IPCC list, but that alignment is an enrichment we would be authoring, not a classification the publisher shipped, so it is deliberately not registered here. | |
statfi_fuel |
Statistics Finland fuel classification | Tilastokeskus (Statistics Finland) | statfi |
Statistics Finland's own fuel tree, the only hierarchy the fuel-classification release ships, and the rare publisher tree that carries real native codes rather than borrowing its labels as codes. Three levels, measured on the 2026-01-01 edition: level 1 is 10 two-digit groups (11 Petroleum products through 40 Other energy sources), level 2 is 36 four-digit classes, level 3 is 123 six-digit fuels: the leaves that carry the factors. Every node is origin='source': both the digits and the labels are the publisher's. No standard scheme is shipped: the file has no NACE, CN or SIEC column and none is invented. The separate 'Previous fuel code' column is this same publisher's pre-2021 tree and is kept in source_record as a crosswalk key, never registered as a second scheme, because its codes are retired and would collide in meaning with the live ones. | |
iocc_2022 |
Input-Output Commodity Classification, Detail 2022 | Statistics Canada | openio_canada |
The commodity axis of Statistics Canada's supply-and-use accounts, Detail level, 2022 vintage, as vendored by the Open IO-Canada release in doc/OpenIO-Canada-classification-structure.xlsx. One level, one node per commodity: a 9-character code whose leading family is MPG / MPS / IMG / IMS / ENE / NGS / NNP, labelled with the published description. 473 codes to 473 descriptions, a strict bijection; 469 of the 473 labels match the emission-factor workbook exactly and the remaining 4 differ only in trivial orthography (', and' vs 'and', works vs work, alloys vs alloy), reconciled by a four-entry table in the adapter rather than by fuzzy matching, because a near-match on a commodity label is how two different commodities get merged. Registered as a publisher tree and NOT as a standard: the codes are Statistics Canada's, which argues the other way, but the list we actually load is the one Open IO-Canada vendored, and only that library uses it: promoting it later is a one-line change, while demoting it after other libraries have joined on it is not. | |
japan_moe_register |
Japan MoE/METI coefficient register | 環境省 / 経済産業省 (Ministry of the Environment / METI) | japan_moe |
The statutory register a coefficient is published in, under Japan's 算定・報告・公表制度 (calculation, reporting and publication scheme). One level, five nodes: electricity_retail (電気事業者別 retail suppliers, menu by menu), electricity_tso (一般送配電事業者, the ten network operators), gas (ガス事業者別 city-gas suppliers), heat (熱供給事業者別 district-heat suppliers) and fuel (the 参考1 fuel-combustion table of the 排出係数一覧). The register is what determines which columns a row has, which reporting obligation it discharges and even which registration_no namespace it lives in (A0002 is eRex in the electricity register and TEPCO Energy Partner in the gas one), so it is identity-adjacent rather than decorative. Nodes carry origin='mapped' and is_standard=False: the split is the publisher's, but the slugs are ours: the source ships no code for it, only separate workbooks and a PDF section heading. Japan publishes no JSIC/NACE/CN code anywhere in this release, and inventing one would be a cross-library join key we made up. | |
mfe_activity |
MfE NZ measuring-emissions workbook path | New Zealand Ministry for the Environment | mfe_nz |
MfE's own three-level workbook hierarchy: Page (level 1, 9 nodes), Section (level 2, 33) and SubSection (level 3, 69). Codes are the FULL PATH joined with ' > ', not the bare segment name that desnz_activity uses, and the difference is measured rather than stylistic: MfE reuses segment literals across branches, so segment codes would merge nodes the publisher keeps apart. '2010-2015 Fleet' is a SubSection under three different Sections (heavy goods vehicles, light commercial vehicles, light passenger vehicles), 'Transmission and distribution losses' is a Section under two Pages, and 14 of the 74 triples repeat the Section literal as their SubSection (109 of 902 rows) - which the loader's per-factor de-dupe on (scheme, code) would silently collapse into a single node, dropping the level-3 row. Level 3 is 69 rather than the 74 the file prints because two SubSection distinctions are lifted out of the tree and onto typed columns where they belong: the eight radiative-forcing spellings become emission_factor_value.radiative_forcing (4 fewer), and the three electricity series become reference_year (1 fewer). Nodes carry origin='source': the tree, the segment names and the order are all the publisher's, only the ' > ' joiner is ours. MfE ships no ANZSIC, NACE or CN code anywhere in the release, so no standard scheme is claimed. | |
glec_mode |
GLEC Framework transport mode | Smart Freight Centre | glec |
The transport mode a GLEC default-value table is printed under, plus the two non-transport families the Framework ships alongside them. Level 1 is the eight-way split the document's own module structure asserts: air, inland_waterway, rail, road, sea, logistics_hub (Module 2), fuel (Module 1 energy carriers) and refrigerant (Module 3). Level 2 is the sub-family a table separates rather than a column: air splits freighter from belly freight, rail splits diesel from electric traction, sea splits non-container from container vessels, and logistics_hub splits the five hub types of Table 3 (transshipment, storage + transshipment, warehouse, liquid bulk terminal, intermodal terminal) - which is load-bearing because the intermodal row is the one hub published per container while the other four are per tonne of throughput. road, inland_waterway, fuel and refrigerant have no level 2: what would fill it is the vehicle band or the carrier, which is activity_detail and part of the identity, not a classification. Nodes carry origin='mapped': the split is the publisher's, the slugs are ours, because GLEC prints a caption and a module footer, never a code. The Framework carries no NACE, NAICS, CPA or CN code anywhere, so no standard scheme is claimed. | |
waste_stream |
open_ef waste stream | open_ef | Groups the rows of a route-fanned waste table by the material they treat, so the default-route election (open_ef.route_default) can compare them. Level 1 is the stream: the publisher's own material label, verbatim (the DESNZ Level 2-4 path, the ADEME category path plus base name, the EPA WARM material). Level 2 is the row's role under that stream: route (one treatment route), publisher_mix (the publisher's own average end-of-life row, which the election prefers) or excluded (re-use and recycling-excluded scenarios, which answer a narrower question than 'route unknown' and never win). A library need not emit all three: every one of epa's 183 WARM rows is a route, so each of its streams is decided by comparison rather than by a published average. Nodes carry origin='mapped': the grouping is ours, the labels are the publisher's. Not a standard, and owned by no single publisher: a stream code is one library's label and is only ever compared within that library, so two libraries' streams never join. Emitted by the libraries that fan a material out by treatment route, which today means desnz, ademe and epa. |
open_ef_category: 13 branches, 82 leaves defined#
Our own category tree, one over every library, so two publishers' own
categories line up. A node says what a factor measures: never its
life-cycle stage, which is system_boundary, and never the buyer's
sector.
The 82 leaves below are every leaf the registry defines, which is not the same as every leaf in use: a leaf no library has mapped onto yet is still part of the axis, so a count taken from the data is the smaller number.
Every factor carries a branch at level 1. Most carry a leaf at level 2 as
well, and some do not: where a source genuinely does not tell a branch's
leaves apart, its map assigns the branch alone and sub_category_code
stays NULL. That is deliberate coarseness, never an unmapped value. Both
levels are ordinary activity_classification rows
under this scheme, served as category / category_code and
sub_category / sub_category_code. Leaf slugs are flat and frozen at
mint, so a leaf never carries its branch as a prefix and re-parenting one
never re-codes it.
The filter takes the English label, not the code. The API and the
explorer read category=Fuels; category=fuels matches nothing. The
codes below are what a SQL reader finds in category_code and
sub_category_code, and the join key back into
activity_classification.
Nothing lands here by guess: a source value that maps to no node halts the load rather than falling back, so coverage of level 1 is total by construction and an unclassified factor is not a state the data can reach. An absent leaf is the coarseness above, never a catch-all.
Two leaves are deliberate umbrellas, named under their branch below. An umbrella match is weaker evidence than a specific leaf: it says the tree had no better home for the activity, not that the activity resembles the others beside it.
fuels: Fuels (6 leaves)#
Fuel commodities: solid, liquid and gaseous fuels supplied or combusted.
| code | label | measures |
|---|---|---|
fuel_fossil_liquid |
Liquid fossil fuels | Measures liquid fossil fuels: diesel, petrol, fuel oil, LPG, kerosene. |
fuel_fossil_gaseous |
Gaseous fossil fuels | Measures gaseous fossil fuels: natural gas, CNG, LNG. |
fuel_fossil_solid |
Solid fossil fuels | Measures solid fossil fuels: coal, coke, peat. |
biofuel |
Biofuels | Measures biofuels and biomass fuels: biodiesel, bioethanol, biogas, wood fuels. |
hydrogen |
Hydrogen | Measures hydrogen as a fuel or energy carrier. |
waste_derived_fuel |
Waste-derived fuels | Measures fuels derived from waste (RDF, SRF, used oils) as fuel commodities; treating the waste itself is a waste leaf. |
electricity: Electricity (4 leaves)#
Electricity supply: grid mixes, generation technologies, certified supply, distribution and trade.
| code | label | measures |
|---|---|---|
electricity_grid_mix |
Grid-mix electricity | Measures grid-average electricity supply for a region (location-based mixes). |
electricity_generation |
Electricity by generation technology | Measures electricity from a specific generation technology (wind, solar PV, hydro, coal, gas CCGT), including electricity from waste incineration. |
electricity_certified_supply |
Certified electricity supply | Measures contractual electricity supply: certificates, green tariffs, supplier and residual mixes. |
electricity_distribution_trade |
Electricity distribution and trade | Measures electricity transmission, distribution and trade margins. |
heat_cooling: Heat and cooling (3 leaves)#
Purchased district heat, steam and cooling.
| code | label | measures |
|---|---|---|
district_heat_steam |
District heat and steam | Measures heat and steam bought from a network. Heat produced on site or by a dedicated installation is heat_generation: a Fernwaerme filter must not return a heat pump. |
cooling |
Cooling | Measures purchased cooling and chilled water. |
heat_generation |
Heat generation | Measures heat produced on site or by a dedicated installation rather than bought from a network: solar thermal, heat pumps, shallow and deep geothermal, ambient heat. Combusting a fuel to raise that heat is a fuels leaf; the heat delivered by a network is district_heat_steam. |
water: Water (1 leaf)#
Mains water supply.
| code | label | measures |
|---|---|---|
water_supply |
Water supply | Measures mains water supply and its treatment for delivery; wastewater treatment is a waste leaf. |
materials: Materials (9 leaves)#
Raw and semi-finished materials and construction products, per unit of material.
| code | label | measures |
|---|---|---|
metals |
Metals | Measures metals and metal semi-products (steel, aluminium, copper), virgin or recycled. |
polymers_rubber |
Polymers and rubber | Measures plastics, polymers and rubber materials, virgin or recycled. |
paper_wood |
Paper and wood | Measures paper, board, pulp and wood materials. |
glass_ceramics |
Glass and ceramics | Measures glass and ceramic materials. |
minerals_aggregates |
Minerals and aggregates | Measures cement, lime, aggregates, stone and other mineral materials. |
chemicals |
Chemicals | Measures chemical products and preparations, including fertilisers and industrial gases. |
textiles_fibres |
Textiles and fibres | Measures textile fibres, yarns and fabrics as materials; finished garments are manufactured goods. |
construction_products |
Construction products | Measures manufactured construction products: insulation, bricks, windows, coatings. |
packaging_materials |
Packaging | Measures packaging materials and formats: films, containers, pallets. |
food_agriculture: Food and agriculture (6 leaves)#
Food, beverages, feed and primary agricultural products and operations.
| code | label | measures |
|---|---|---|
plant_products |
Plant products | Measures primary plant products: crops, fruit, vegetables, grains. The seam with processed_food is the first transformation, not the farm gate: cleaning, drying, sorting and storage leave the commodity here, while milling, crushing, extraction and refining move it on. So wheat is plant_products and wheat flour is not. |
animal_products |
Animal products | Measures animal husbandry and primary animal products: meat, milk, eggs, fish. |
processed_food |
Processed food | Measures food and feed that has undergone at least a first transformation, through to prepared meals: flour and milled cereals, crude and refined vegetable oil, sugar, starch, dairy products, cured and cut meat, canned and frozen goods. The untransformed commodity is plant_products or animal_products; a drink is beverages. |
beverages |
Beverages | Measures beverages, alcoholic and non-alcoholic. |
animal_feed |
Animal feed | Measures animal feed and fodder. |
agricultural_operations |
Agricultural operations | Measures agricultural operations priced per activity: machinery work, irrigation, greenhouse operation. |
manufactured_goods: Manufactured goods (9 leaves)#
Finished manufactured goods.
Umbrella leaf: other_goods.
| code | label | measures |
|---|---|---|
electronics_ict |
Electronics and ICT equipment | Measures electronic and ICT devices: computers, phones, displays, network hardware. |
electrical_equipment |
Electrical equipment | Measures electrical equipment: motors, transformers, cables, lighting. |
machinery |
Machinery | Measures industrial machinery and mechanical equipment as goods. |
vehicles |
Vehicles | Measures vehicles as purchased goods: cars, trucks, ships, aircraft, bicycles. |
furniture |
Furniture | Measures furniture and furnishings. |
appliances |
Appliances | Measures household and commercial appliances. |
apparel_footwear |
Apparel and footwear | Measures garments, footwear and accessories as finished goods; fibre and fabric are material leaves. |
medical_precision_instruments |
Medical and precision instruments | Measures medical, dental, surgical, laboratory, optical, measuring and control instruments as goods. Pharmaceuticals and reagents are chemicals; the care itself is health_social. |
other_goods |
Other manufactured goods | Measures manufactured goods not covered by a sibling leaf. |
buildings_infrastructure: Buildings and infrastructure (2 leaves)#
Construction of buildings and civil infrastructure as built works.
| code | label | measures |
|---|---|---|
building_construction |
Building construction | Measures construction of buildings as whole works (per m2 or per building). |
civil_infrastructure |
Civil infrastructure | Measures civil engineering works: roads, bridges, rail track, pipelines as works. |
transport: Transport (15 leaves)#
Movement of freight or passengers.
| code | label | measures |
|---|---|---|
freight_road |
Road freight | Measures road freight transport (trucks, vans) per tonne-km or vehicle-km. |
freight_rail |
Rail freight | Measures rail freight transport. |
freight_air |
Air freight | Measures air freight transport. |
freight_sea |
Sea freight | Measures sea freight: container, bulk and tanker shipping. |
freight_inland_waterway |
Inland waterway freight | Measures inland waterway freight (barges). |
freight_pipeline |
Pipeline transport | Measures pipeline transport of goods. |
freight_multimodal |
Multimodal freight | Measures multimodal or unspecified-mode freight chains. |
logistics_warehousing |
Logistics and warehousing | Measures logistics services, storage and warehousing. |
passenger_car |
Car travel | Measures passenger travel by car, taxi or ride-hailing. |
passenger_rail |
Rail travel | Measures passenger travel by train, metro or tram. |
passenger_air |
Air travel | Measures passenger travel by air. |
passenger_bus_coach |
Bus and coach travel | Measures passenger travel by bus or coach. |
passenger_ferry |
Ferry travel | Measures passenger travel by ferry. |
passenger_two_three_wheeler |
Motorcycle and scooter travel | Measures passenger travel by motorcycle, scooter or similar. |
passenger_multimodal |
Multimodal passenger travel | Measures multimodal or unspecified-mode passenger travel: public transport in general, mixed commuting and business-travel averages. The passenger twin of freight_multimodal. |
services: Services (13 leaves)#
Purchased services.
Umbrella leaf: other_services.
| code | label | measures |
|---|---|---|
professional |
Professional services | Measures professional and business services: consulting, legal, engineering, marketing. |
ict_digital |
ICT and digital services | Measures ICT and digital services: software, cloud, telecom, AI services. |
financial_insurance |
Financial and insurance services | Measures financial and insurance services. |
hospitality_catering |
Hospitality and catering | Measures restaurant, catering and food services. |
accommodation |
Accommodation | Measures hotel stays and other accommodation. |
health_social |
Health and social care | Measures health and social care services. |
education_public |
Education and public services | Measures education and public administration services. |
real_estate_rent |
Real estate and rent | Measures real estate services and the rent or lease of real property: land, buildings, floor space. Renting movable equipment or vehicles is equipment_rental_leasing. |
repair_maintenance_cleaning |
Repair, maintenance and cleaning | Measures repair, maintenance and cleaning services. |
trade_retail |
Trade and retail | Measures wholesale and retail trade margins and services. |
equipment_rental_leasing |
Equipment rental and leasing | Measures rental and leasing of movable goods: machinery, vehicles, tools, IT equipment, and lessors of non-financial intangible assets. Rent or lease of land and buildings is real_estate_rent; buying the equipment outright is a manufactured-goods leaf. |
media_publishing |
Media and publishing | Measures publishing, broadcasting, motion picture, sound recording, news and advertising-funded media services. Software publishing is ict_digital; printing a physical run is a materials leaf. |
other_services |
Other services | Measures services not covered by a sibling leaf. |
waste: Waste treatment (8 leaves)#
Treatment and disposal of waste, by treatment route, per unit of waste treated.
| code | label | measures |
|---|---|---|
collection_sorting |
Waste collection and sorting | Measures collection, transfer and sorting of waste. |
landfill |
Landfill | Measures landfilling of waste. |
incineration |
Incineration | Measures incineration of waste, with or without energy recovery; the electricity output is an electricity leaf. |
recycling |
Recycling | Measures the recycling process treating a waste material, per unit of waste treated: sorting, shredding, reclamation, materials recovery. A recycled-content material is a material leaf and never this one. Recycled PET granulate is polymers_rubber and a secondary aluminium ingot is metals, because recycled is a grade of a material rather than a category of its own. One exception: under a cut-off convention a secondary-material flow published burden-free stays here, since it is inventory bookkeeping carrying a near-zero value rather than a grade anybody buys, and on a material leaf it would answer a recycled-material question with almost no emissions at all. |
composting |
Composting | Measures composting of organic waste. |
anaerobic_digestion |
Anaerobic digestion | Measures anaerobic digestion of organic waste. |
wastewater_treatment |
Wastewater treatment | Measures treatment of wastewater and sewage. |
hazardous_treatment |
Hazardous waste treatment | Measures treatment of hazardous or clinical waste where the source defines the factor by that stream and names no route. It is the one stream-based node in an otherwise route-based set, so it narrows its siblings rather than competing with them: where the source does name a route, the route wins. Incineration of clinical waste is incineration, and hazardous landfill is landfill. |
direct_emissions: Direct emissions (3 leaves)#
Direct emission processes: fugitive releases, industrial process and agricultural emissions.
| code | label | measures |
|---|---|---|
refrigerants_fugitives |
Fugitive emissions and refrigerants | Measures fugitive releases of gas to atmosphere, whether or not a refrigerant: refrigerant leakage from cooling equipment, and unintended or vented releases from fuel extraction, processing and distribution, such as well venting, pipeline and distribution-network leakage, flaring, coke ovens, charcoal kilns and coal-mine methane. |
industrial_process |
Industrial process emissions | Measures industrial process emissions: calcination, chemical reactions, solvent use. |
agriculture_soils_livestock |
Agricultural process emissions | Measures agricultural emission processes: enteric CH4, manure management, soil N2O; food products are food leaves. |
land_use_removals: Land use and removals (3 leaves)#
Land-use change, forestry management and carbon removals.
| code | label | measures |
|---|---|---|
land_use_change |
Land-use change | Measures emissions from land-use and land-cover change. |
forestry_management |
Forestry management | Measures forestry and land management activities. |
carbon_removals |
Carbon removals | Measures carbon removals and sequestration. |
Units: 43 codes (norm_version 5)#
normalize_unit returns None for anything unlisted rather than guessing;
the loader's UnknownUnitCode guard rejects the factor. A no-result is
recoverable, a wrong conversion silently corrupts totals.
Canonical (25): self-describing, safe to convert within
the dimension: cad, dkk, eur, fte_hour, gbp, guest_night, hour, jpy, kg, kg_day, km, km_yr, kwh, l, m, m2, m_yr, nzd, p.km, room_night, t.km, teu.km, unit, usd, vehicle_km.
Basis-qualified (18): deliberately NOT
the bare dimension. kg_n is a mass of nitrogen, not of the purchased
product; matching it as plain kg applies a silent x1 error: count_item, ha_yr, kg_active_substance, kg_dry_solids, kg_k2o, kg_n, kg_p2o5, kg_reference_mass, kg_throughput, kwh_gross_output, kwh_hhv, kwh_primary, m2_floor, m2_forest, m2_nfa, m2_roof, m2_wall, m3_throughput.
reference_basis.kind: 11 kinds#
basis_kind is canonical, context_dependent. Each kind below names what a
query-time bridge must supply to put a line quantity on that basis.
| kind | what the bridge needs |
|---|---|
nutrient_content |
Basis is a mass of a nutrient/active constituent (per kg of N, P2O5, K2O, active substance), not of the purchased product. Bridge needs the constituent fraction of the product (content_factor). |
product_mass_qualified |
Basis is a genuine product mass the source qualifies by product name (per kg of treated leather, per tonne of clinker). Bridge is identity to the mass dimension once the product is confirmed. |
treated_throughput_mass |
Basis is a mass of a substance PROCESSED/removed, not of a purchasable product (per kg of removed COD, per kg NTK). No safe procurement bridge: kept context-dependent. |
heating_value |
Energy basis on a stated calorific reference (higher heating value / PCS / SCV) that differs ~11% from the unqualified-kWh (lower heating value) default. Bridge needs the per-fuel HHV->LHV ratio. |
area |
Basis is a physical area with a product-specific qualifier (net floor area / wall / roof). Bridge needs the line item's area. |
land_occupation |
Basis is area x time (per hectare.year). Bridge needs both an area and a duration. |
length |
Basis is a physical length (per metre, per metre of road). Bridge needs the line item's length. |
count_item |
Basis is a count of a specific item/service the source names (per meal, per plant, per person.month). Bridge needs the items-per-line-unit. |
volumetric_density |
Basis needs a density or a second dimension to reduce to a purchasable quantity (per m3.km). Bridge needs the density/second axis. |
gas_volume |
Basis is a plain canonical volume (unit_code l) of a GAS, metered at the publisher's reference conditions: {temperature_c, pressure_kpa}, or 'unstated' where the source names none. The only kind a canonical factor may carry: the volume converts by rule like any litre, and the conditions ride along for the per-factor bridge to energy or mass, which uses the publisher's own calorific value at those conditions. |
energy_accounting_point |
Basis is a kWh METERED AT A DIFFERENT POINT of the energy chain than the unqualified default (gross generator output / primary energy, versus final energy delivered to the buyer). Distinct from heating_value, which qualifies how a fuel's energy content is counted, not where it is measured: a gross-output kWh and a final-energy kWh differ by generation and network losses, 1.8-3.0x apart in UBA DE's tables while both print the bare label 'g/kWh'. Bridge needs the conversion efficiency and the network-loss factor. |
Value axes#
| axis | codes | reading |
|---|---|---|
data_quality_normalized |
high, medium, low, very_low, problematic |
The one ordinal comparable across publishers, best first. problematic is set explicitly by an adapter for a value that must not be used naively; factors_flat excludes it. data_quality_rating_native is NOT served by factors_flat: it is only meaningful with its data_quality_scheme_native, so read both off emission_factor_value or not at all. |
data_quality_reason_normalized |
23 tokens, see below | Machine-readable reason the tier is what it is, or why a 0 is real: a closed registry, table below. |
co2e_basis |
fossil_only, biogenic_excluded, net_total, io_total |
WHICH CO2e the headline counts (biogenic and LULUC in or out). Two factors with different bases are not comparable, however close their numbers look. |
data_type |
average, generic, specific |
How specific the number is to the thing you bought, and nothing else. specific is the ILCD specific dataset: ONE product from one named plant; a supplier link never implies it on its own, since an industry EPD's declarant is a trade association and a retailer's own published coefficient is that retailer's average across all its customers. generic is a default standing in for a measurement, with no producer attached. average is a mean over several producers, and is where a market, national, sector or operator-wide figure lands. A publisher's own fourth word folds onto one of the three and survives verbatim in source_row.raw. |
characterization_model |
cml_1999, cml_1999_baseline, cml_2001_baseline, ef_3.0, ef_3.1, houghton_net_max, houghton_net_min, impact_world_plus_2_1, ipcc_2021, ipcc_ar5_direct |
The impact-assessment method the publisher NAMES for this number: what separates an EF 3.1 figure from a CML one, and the only thing telling EXIOBASE's seven values on one factor apart. NULL wherever the source names no method: the vintage already lives in gwp_method_native, so a vintage token here would invent a source claim. Never prose: a sentence restating a GWP choice lands in its own bucket under any GROUP BY. |
price_basis |
basic, producer, purchaser |
Monetary factors only: producer (ex-margins) / purchaser (incl. trade + transport margins) / basic (producer less product taxes plus subsidies). |
grid_mix → calculation_approach |
production → location_based, consumption → location_based, marginal → location_based, residual → market_based, supplier_specific → market_based, green → market_based |
GHG-Protocol scope 2 duality; the pair is enforced, they can never disagree. |
value_qualifiers keys |
lca_method, policy_year, preliminary, scenario |
A closed registry, not a dumping ground: a cross-library concept becomes a typed column instead. |
publisher.kind |
commercial, government, intergovernmental, nonprofit, research |
What kind of body publishes the library; one value per publisher. |
publisher.tags |
construction, conversion_factors, electricity, epd, food, grid_mix, lci, spend, trade, transport, waste |
What the library is, many-valued (conversion factors and spend at once); the portal derives its library groups from kind + tags. |
publisher.scope |
generalist, specialist |
Measured, not declared: a generalist has at least 4 Categories each holding 5% of its top-level factors; NULL while it serves nothing. Rebuilt with the year index. |
data_quality_reason_normalized: 23 tokens#
Machine-readable reason the tier is what it is, or why a 0 is real. A
token outside this registry halts the ingest: an adapter coining a new
one adds it to CONFIDENCE_REASONS in ingest/models.py. It never
forces a tier by itself: data_quality_normalized_override floors, and
several tokens here name a contractual zero MOD-0015 serves at
whatever tier its own quality signal derives (never floored for being
zero) rather than a fixed ceiling: see the module docstring.
The last two columns are what the API serves beside the token, from
quality_reasons.py (FRN-0030): the token is the stable identifier and
tells a reader nothing on its own, so the withheld disclosure carries
this prose with it. The English is below; a lang the registry is
written in is served that language instead, and a client holding its
own translations renders the token.
| token | meaning | served label | served explanation |
|---|---|---|---|
biogenic_excluded_zero |
a headline 0 on a fuel whose combustion CO2 is biogenic and left out by the value's co2e_basis, the leg printed beside it or not printed at all: an artefact of the basis rather than the world; always problematic, loader-enforced where the leg is printed (ingest/biogenic_zero.py, plan MOD-0009; widened by MOD-0023 step 8). | Zero, beside CO2 that is actually released | The headline reads 0 because the accounting convention leaves out the biogenic CO2 the fuel releases when burned; the zero describes the convention, not the fuel. |
context_dependent_basis |
a unit conversion usable only through a validated per-line bridge, never a blind one: floored so it never outranks a rated canonical match (ademe, co2emissiefactoren_be/_nl). | Needs a conversion we cannot make blindly | The number is only usable after a unit conversion that has to be checked line by line, never applied automatically. |
estimated_from_broader_region |
an estimated leg whose input comes from the nearest ancestor region that has one, hops recorded in source_record (rungs L2 and U2): capped at very_low (MOD-0042). | Estimated from a broader region | The region has no statistic of its own, so open-climate.ai used the nearest larger region that has one, and the result is rated very low for it. |
estimated_from_regional_model |
a fuel-chain leg open-climate.ai estimated from the region's own generation mix weighted by per-fuel upstream factors (rung U1): a model of the region, not a measurement of it, so capped at low (MOD-0042). | Estimated from the regional generation mix | open-climate.ai computed this fuel-chain leg from the region's own generation mix and per-fuel upstream factors: a model of the region rather than a measurement of it. |
estimated_from_regional_statistic |
an electricity leg open-climate.ai estimated from a statistic for the region itself: the publisher's own printed figures (rung L0) or a regional loss statistic (rung L1). Capped at medium by ESTIMATE_REASON_CEILING; the inputs, formula and year sit in source_record (MOD-0042). | Estimated from a regional statistic | open-climate.ai computed this leg from a published statistic for the region, such as its grid loss rate, because the publisher prints the generation figure but not this leg. |
generic_spend_category |
an EEIO product/spend category too generic to price sharply: very_low (exiobase's overly-generic code numbers). | Too broad to be precise | The spending category covers too much ground to price any one purchase sharply. |
green_electricity_zero |
a Guarantee-of-Origin or supplier-specific green tariff's zero: contractual, served at the tier its market-based residual sibling derives, never floored for being zero (MOD-0015). | Zero under a green tariff | The zero is what the contract certifies, a Guarantee of Origin or a supplier's green tariff, rather than a gap in the data. |
hestia_aggregated_quality |
the tier is carried verbatim from HESTIA's own 1-5 pedigree scale rather than claimed as a data_quality_rating_native under a scheme it does not belong to (WRAP). | Rated on the source's own scale | The rating is carried straight from the source's own 1 to 5 pedigree scale rather than restated under a scheme it does not belong to. |
implausible_mass_intensity |
a mass-basis value above a plausibility ceiling for its module: a declared-unit or reference-flow error candidate (ÖKOBAUDAT), problematic. | Impossibly high per kilogram | The emissions per kilogram sit far above anything plausible for this kind of product, which usually means the declared unit or the reference amount in the source is wrong. |
implausible_printed_zero |
a zero the source prints that cannot be true of what it prices and would silently zero every line it matched: a zero intensity in a computed spend matrix (exiobase), a single-gas zero in a national-inventory default (ipcc EFDB): artefact, problematic and withheld (MOD-0023 step 8). | A zero that is not really zero | The source prints 0 for this row, but the zero comes from how the dataset was built rather than from something that genuinely emits nothing, so anything matched to it would come out at zero emissions. |
library_prior |
the loader's floor when a value carries no native quality signal: a reviewed per-library prior tier (ValueSpec.library_prior) in place of the silent no_native_signal floor. | Rated by us, not by the source | The source publishes no quality rating for this row, so it carries the tier we reviewed for the library as a whole. |
mixed_fossil_biogenic_unsplit |
a computed total that mixes fossil and biogenic municipal solid waste with no split available: floored to problematic (EPA). | Fossil and biogenic mixed together | The total combines fossil and biogenic waste with no way to split them, so it cannot be counted as either. |
mixed_gwp_vintage |
a derived total whose legs were published on different IPCC GWP tables: a faithful sum of what the publisher printed, standing on no single vintage, so the mint drops it one rung below its weakest leg (MOD-0039). | Built from different GWP tables | The total adds up parts the publisher issued under different IPCC global-warming-potential tables, so no single vintage describes it. |
no_native_signal |
the loader's silent floor when a value has neither a native quality signal nor a declared library_prior: artefact of missing signal, not a statement about the world. MOD-0015 withholds it (problematic) on a zero-valued row; a nonzero value floored only for the missing signal is the ordinary low/very_low floor, and is served. | A zero with nothing behind it | The source gives this row no quality rating at all and the value is zero, so a genuine zero cannot be told apart from a gap in the data. |
partial_gas_vector |
a computed total whose CO2 leg is absent on a CO2-emitting fuel: floored to problematic so it never wins a match over a full-vector factor (EPA's CH4+N2O-only non-road mobile rows). | Missing its CO2 | The total leaves out the CO2 from a fuel that certainly releases CO2, so it counts only part of what is emitted. |
publisher_arithmetic_corrected |
a published cell replaced with the number the publisher's own arithmetic determines, because its own identity, sibling row or next edition fixes it (co2emissiefactoren_be): served at its derived tier, printed number kept in source_record, correction stated on the factor's description (ingest/published_corrections.py, CLN-0031). | Corrected using the publisher's own arithmetic | The printed cell disagreed with the publisher's own identity or sibling row, so we serve the number their arithmetic determines and keep the printed one in the source record. |
publisher_arithmetic_unresolved |
a published cell the publisher's own arithmetic falsifies where the right number is not knowable (co2emissiefactoren_nl): kept exactly as printed and floored to problematic, with the finding stated on the factor's description; same registry. | The source contradicts itself | The publisher's own arithmetic disagrees with this cell and there is no way to tell which number was meant, so we keep it exactly as printed and do not serve it. |
publisher_forbids_inventory_use |
the publisher's own methodology forbids using this value for inventory accounting (eGRID's non-baseload/marginal family): withheld. | The publisher says not to use it | The publisher's own method states that this number must not be used for greenhouse-gas accounting. |
regulatory_default_zero_implausible |
a regulation-mandated default of 0 where 0 cannot be physically true (cbam's Hydrogen embedded factor): kept, because it is the number the regulation publishes, and floored to very_low so it can never win a generic match. | A regulator's zero that cannot be true | The regulation mandates a default of 0 where 0 is not physically possible; we serve the number the regulation publishes and rate it as low as the scale allows. |
rounded_to_zero |
a value the publisher itself prints as 0 at its own precision: contractual, served at its derived tier (ipcc's AR6 GWP layer). | Rounds to zero | The publisher itself prints 0 at the precision it works to. |
source_restatement_divergence |
a factor-year overridden to low because its emission-weighted aggregate diverges from the publisher's own printed annual figure by more than 1%: the publisher restated one input without the other (EPPO Thailand). | Does not match the publisher's own annual figure | Re-adding this year's inputs diverges by more than 1% from the annual number the publisher prints, which means one of the two was restated without the other. |
structural_zero |
a genuine zero the source itself prints, never a blank: a zero-emission leg (wind/hydro/solar/nuclear/geothermal/heat-pump) or a carbon-free fuel like hydrogen: contractual, served at its derived tier (MOD-0015). The artefact zeros it once also carried are implausible_printed_zero and biogenic_excluded_zero (MOD-0023 step 8). | Genuinely zero | The source prints 0 and the zero is real: the activity emits nothing at this stage, as with wind or solar power at the point of generation or a carbon-free fuel such as hydrogen. |
tiny_denominator_extreme |
an intensity implausibly large because its denominator is near zero: problematic (exiobase's kgCO2e-per-EUR ceiling). | Impossibly large | The value is emissions divided by an amount of spending so small that the result lands far above anything physically possible. |
GWP normalization#
Every stored measure is _native: as the publisher characterized it. The
_normalized twin re-characterizes to AR6 GWP100, the one vintage on which a cross-library sum is
arithmetically honest.
gwp_normalization_basis is native, invariant, recharacterized, unconverted: native is a
verbatim copy (already the target), invariant is a value no vintage can
change (pure CO2), recharacterized applies the per-gas differences as a
delta to the published headline, never a re-sum (a publisher's headline
is not guaranteed to equal the sum of its legs).
A NULL twin means not exactly derivable: a non-100-year
horizon, an unknown vintage, a basket leg (HFCs / PFCs / other), or a row
split only by carbon origin. Treat those rows as rows you cannot add, not
as rows to fall back to native for. The per-gas legs it reads: value_ch4_biogenic_native, value_ch4_native, value_co2_biogenic_native, value_co2_fossil_native, value_co2_luluc_native, value_co2_native, value_hfcs_native, value_n2o_native, value_nf3_native, value_other_native, value_pfcs_native, value_removals_native, value_sf6_native.
It does not land on re-ingest (an unchanged content_hash skips the value
row), so it has its own verb: db-open-ef normalize-gwp.
Text surfaces: 9 fields#
emission_factor_text.field, kept apart rather than concatenated because
each answers a different consumer question: activity_detail, activity_full, activity_main, applicability, description, included_processes, tags, unit_label, usage_definition.
activity_full is derived by the loader (never shipped by an adapter) and
is the search keyword; usage_definition is ours, generated, and is the
one link a re-ingest purge deliberately keeps.
Licence tiers: 4 values#
release.license_tier, closed by the release_license_tier_valid CHECK.
The one vocabulary here whose typo is silent: the serving gate fails
CLOSED, so an unrecognised tier hides a library rather than raising. The
database now refuses one outright.
| tier | an anonymous caller sees | why |
|---|---|---|
open |
the row and its values | public-domain or attribution-only; redistribution is granted |
copyleft |
the row and its values | redistribution granted, but the share-alike obligation travels with the rows |
restricted |
the row, with every value field withheld server-side | no redistribution right established - coverage is citable, the number is not |
prohibited |
absent entirely - a 404, never a 403 | redistribution positively forbidden by the publisher's terms |
license_code: a convention, not a registry#
Deliberately an open string rather than a closed list: a new publisher arrives with a new licence, and halting an ingest over an unseen code would be the wrong failure. The convention is lowercase kebab-case, held by review rather than by the schema.
It is not an SPDX identifier field. Where an SPDX identifier exists the
code is derived from it, lowercased (cc0-1.0, cc-by-4.0, cc-by-sa-4.0);
where none exists (the majority of them) the code is minted locally and
names the terms it points at (co2emissiefactoren-nl-terms,
us-gov-public-domain). Read license_url for those terms and
attribution_text for the string that must be reproduced verbatim.
license_terms: what each code lets a reader do, 25 codes#
One row per license_code (MOD-0038), mirrored from
ingest/license_terms_registry.py by db-open-ef seed-license-terms; the
gating license_code_without_terms check refuses a release whose code has
no row. Each right answers yes, yes_if (the listed conditions),
ask (the terms reserve it; the holder grants it), no, or unclear (no
written grant settles it). A plain reading, not legal advice: the
publisher's terms at the linked page prevail.
| code | own footprint | publish results | share with customers | embed in a product | modify / combine | conditions | basis | permission holder | verified |
|---|---|---|---|---|---|---|---|---|---|
aib-attribution |
yes |
yes_if |
unclear |
unclear |
yes_if |
attribution | published_terms | Association of Issuing Bodies (AIB) | 2026-07-20 |
cc-by-4.0 |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution, state_changes | named_licence | - | 2026-08-02 |
cc-by-sa-4.0 |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution, state_changes, share_alike | named_licence | - | 2026-07-17 |
cc0-1.0 |
yes |
yes |
yes |
yes |
yes |
- | named_licence | - | 2026-08-17 |
co2emissiefactoren-be-terms |
yes |
yes_if |
unclear |
unclear |
unclear |
attribution | owner_risk_decision | EnergieID & BENOR | 2026-09-14 |
co2emissiefactoren-nl-terms |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution, notify_publisher | written_confirmation | Stichting Stimular, for the Green Deal partners | 2026-09-15 |
crs-green-e-no-stated-licence |
yes |
yes_if |
unclear |
unclear |
unclear |
attribution | owner_risk_decision | Center for Resource Solutions (CRS) | 2026-09-14 |
egovg-12a |
yes |
yes_if |
unclear |
unclear |
unclear |
attribution, state_changes | statute | Umweltbundesamt (UBA) | 2026-07-31 |
eppo-open-data-common |
yes |
yes_if |
unclear |
unclear |
unclear |
attribution | owner_risk_decision | Energy Policy and Planning Office (EPPO), Thailand | 2026-09-14 |
etalab-2.0 |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution | named_licence | - | 2026-07-17 |
glec-sfc-notice |
yes_if |
yes_if |
ask |
ask |
ask |
attribution | published_terms | Smart Freight Centre | 2026-08-08 |
gobmx-terminos-condiciones |
yes_if |
no |
no |
no |
no |
non_commercial | published_terms | - | 2026-09-24 |
ipcc-copyright-notice |
yes_if |
yes_if |
ask |
ask |
ask |
attribution | published_terms | IPCC Secretariat | 2026-07-31 |
ley-37-2007 |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution, keep_unchanged | statute | - | 2026-07-20 |
mx-gobierno-publico |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution | statute | - | 2026-08-17 |
offentleglova-7 |
yes |
yes |
yes |
yes |
yes |
- | statute | - | 2026-08-17 |
ogl-3.0 |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution, no_endorsement | named_licence | - | 2026-07-20 |
ogl-canada-2.0 |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution, no_endorsement | named_licence | - | 2026-08-16 |
okobaudat-terms |
yes |
yes_if |
unclear |
unclear |
unclear |
attribution | published_terms | BBSR (Federal Institute for Research on Building, Urban Affairs and Spatial Development) | 2026-07-24 |
opendata-swiss-by |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution | statute | - | 2026-09-24 |
pdl-1.0 |
yes |
yes_if |
yes_if |
yes_if |
yes_if |
attribution, state_changes | named_licence | - | 2026-08-16 |
proprietary-ecoinvent-eula-v3 |
yes_if |
yes_if |
no |
ask |
yes_if |
hold_licence, attribution | published_terms | ecoinvent Association | 2026-08-18 |
rightsstatements-inc-1.0 |
yes_if |
yes_if |
ask |
ask |
ask |
attribution | published_terms | Umweltbundesamt (UBA) | 2026-08-26 |
us-gov-public-domain |
yes |
yes |
yes |
yes |
yes |
- | statute | - | 2026-08-05 |
wrap-terms |
yes_if |
yes_if |
ask |
ask |
ask |
attribution, territorial | published_terms | WRAP (Waste and Resources Action Programme) | 2026-08-05 |