ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAM
1
Implementation Guidance
Implementation Guidance
2
FieldDescriptionSchemaConstraintsExampleRequirementin List View?Sortable?in epd list?Sortable?Scales per Declared_unitILCD+EPDILCD+EPD commentNotesRequired in LCA Report?Checksum
3
/idThe unique ID for this EPD. To ensure global uniqueness, should be registered at open-xpd-uuid.cqd.io/register or a coordinating registry.open-xpd-uuidregistered open-xpd-uuid. If an ID is not provided during initial creation, an implementing system may register a new id and return it in the response. 1u7zsed8RequiredUniqueyesyesyes
See https://github.com/cchangelabs/open-xpd-uuid-lib
Requiredyes
4
/alt_idsA list of IDs for this document in other systems or databases/alt-ids<200 entries. { "climateearth.com":"foo",
"oekobaudat.de":" "}
yesno
5
/product_nameName. Recommended < 40 charsstringstring < 200 chars"Mix 12345AC"requiredyesyesyesyes
dataSetInformation/name/baseName
yes
6
7
/doctypeDescribes the type and schema of the document. For openEPD, this field will always read "openEPD".string"openEPD"requiredyesyesyesalphaalways "ILCD_EPD"
doctype is always "OpenEPD" for this API. Purpose is compatability with future related stuff, like OpenLCI etc.
Requiredyes
8
/openepd_versionVersion of the document format, related to /doctypestring"1.2"requiredyesno
9
/versionVersion of this document. The document's issuer should increment it anytime even a single character changes, as this value is used to determine the most recent version.NumberInteger. Always increments. Always greater than previous value814requiredyes
tuple sort=+id,+version
yesnumeric
publicationAndOwnership/dataSetVersion, converted to integer
Unless otherwise specified, only most recent version should be returned. Retention of previous versions is recommended.
yes
10
/languageLanguage this EPD is captured in, as an ISO 639-1 codeISO 639-1 2-letter code2 chars"en"yesalphayes
11
/privateThis document's author does not wish the contents published. Useful for draft, partial, or confidential declarations. How (or whether) privacy is implemented is up to the receiving system. Null is treated as false (public). Private (draft) entries have a reduced number of required fields, to allow for multiple systems to coordinate incomplete EPDs.booleanTrue or FalseFALSEyesyesno
12
/declaration_urlLink to data object on original registrar's siteurl≤ 255 chars
"https://epd-online.com/EmbeddedEpdList/Download/6029"
required if `private` == false
yesyesas urlURL of the dataset at origin node
this will always contain the UUID and version number, so it should be possible to look up whether a given ILCD+EPD dataset has already been converted to OpenEPD
yes
13
14
/manufacturerJSON object for declaring Org. Sometimes called the "Declaration Holder" or "Declaration Owner".
/org for READ or /org_ref for CREATE
{"web_domain":"c-change-labs.com"}
required if `private` == false
yesyes.web_domain, .name
publicationAndOwnership/referenceToOwnerShipOfDataSet (contact) -> name
.web_domain
15
/plantsList of JSON object(s) for one or more plant(s) that this declaration applies to.List of /plant≤32 entries in list
[{"id":"6PH57VP3+PR.interface.com"},{"id":"84VVJVR7+W6.structurelam.com"}]
yesyesas url
Geographical representativeness/Location/@latitudeAndLongitude
.id
16
17
/program_operatorJSON object for program operator Org
/org for READ or /org_ref for CREATE
{"web_domain":"ul.com"}
required if `private` == false
yesyes.web_domain, .name
v1.2: publicationAndOwnership/registrationAuthority (contact) -> name
if an ILCD+EPD dataset is compliant with ILCD+EPD v1.2, it will carry a processDataSet/@epd2:epd-version attribute with the valie "1.2"
.web_domain
18
/program_operator_doc_idDocument identifier from Program Operator. stringstring < 200 chars"123-456.789/b"yes
tuple sort=+program_operator_doc_id,+program_operator_version
yesalpha
publicationAndOwnership/registrationNumber
yes
19
/program_operator_versionDocument version number from Program Operator. stringstring < 200 chars"4.3.0"yes
tuple sort=+program_operator_doc_id,+program_operator_version
yesnumericyes
20
21
/third_party_verifierJSON object for Org that performed a critical review of the EPD data
/org for READ or /org_ref for CREATE
{"web_domain":"we-verify-epds.com"}
required if `private` == false
yesyes.web_domain, .name
validation/review/referenceToNameOfReviewerAndInstitution (contact) -> name
ref: critical review in https://www.iso.org/obp/ui/#iso:std:iso:ts:14071:ed-1:v1:en
.web_domain
22
/third_party_verification_typeDescribes the approach, independence, and specificity of the third pary verification.string (enum)list tbdyes.web_domain, .name
validation/review/referenceToNameOfReviewerAndInstitution (contact) -> name
ref: critical review in https://www.iso.org/obp/ui/#iso:std:iso:ts:14071:ed-1:v1:en
yes
23
/third_party_verification_urloptional link to a verification statement.url
"https://we-verify-epds.com/en/letters/123-456.789b.pdf"
yesyesas urlnot supportedyes
24
/third_party_verifier_emailEmail contact for inquiries about third party verification of this EPD. This must be an email which can be publicly shared. valid emailpublicly shareable"jane.doe@we-verify-epds.com"yesyesalpha
validation/review/referenceToNameOfReviewerAndInstitution (contact) -> email
yes
25
/third_party_verifier_nameThe publishable name of the third party verifierstringpublicly shareableJane Doeyesalpha
validation/review/referenceToNameOfReviewerAndInstitution (contact) -> name
yes
26
27
/epd_developer_emailEmail contact for inquiries about development of this EPD. This must be an email which can be publicly shared. valid emailpublicly shareable"john.doe@we-do-lca.com"yesyesalpha
validation/review/referenceToNameOfReviewerAndInstitution (contact) -> email
yes
28
/epd_developerThe organization responsible for the underlying LCA (and subsequent summarization as EPD).
/org for READ or /org_ref for CREATE
{"web_domain":"we-do-lca.com"}
yes.web_domain, .name.web_domain
29
30
/date_of_issueDate the EPD was issued. This should be the first day on which the EPD is valid.ISO datetime"2019-02-11T00:00:00Z"
required if `private` == false
yesyesyesas date
v1.2: time/publicationDateOfEPD
v1.1: usually in time/timeRepresentativenessDescription , there's a string like "01.01.1980" - "31.12.1984" which indicates the start and end dates
yes
31
/valid_untilLast date the EPD is valid on, including any extensions.ISO datetime"2024-02-11T00:00:00Z"
required if `private` == false
yesyesyesas date
time/dataSetValidUntil has the year, combine with value from above
It should include time part to avoid confusion. Really it just designates UTC+0 as the source of timing.
yes
32
/pcrJSON object for product category rules. Should point to the most-specific PCR that applies; the PCR entry should point to any parent PCR./pcr{"id","pcrxpgq2","issuer":{"name":"UL","web_domain":"ul.com"},"name":"c-PCR-003 Concrete and concrete elements (EN 16757)","date_of_issue":"2019-02-11T00:00:00Z","version":"1.0.2"}
required if `private` == false
yesyes.uuid, .name
the PCR document(s) is/are linked under modellingAndValidation/LCIMethodAndAllocation/referenceToLCAMethodDetails
possibly, these need to be checked against the PCRs in OpenEPD
.issuer.web_domain, .name, .version,
33
/gpiJSON object for General Program Instructions. Should point to the most specific general program instructions that apply./gpiyes.id, .name
34
35
/declared_unitSI declared unit for this EPD. If a functional unit is utilized, the declared unit shall refer to the amount of product associated with the A1-A3 life cycle stage./amountSee "Units"{"qty":1,"unit","m3"}requiredyesyesyesalphabeticalReference flow dataset
the reference flow dataset is referenced in the exchanges section, it is the exchange whose internal ID is given under quantitativeReference/referenceToReferenceFlow. It has a value (factor a) that we'll need to calculate the value of the declared unit. In the reference flow dataset, the reference flow property is specified (mass, volume, area etc.) with a factor b. The product of factors a and b yields the value of the declared unit.
The Quantity field lets us express EPDS in 1000 square feet as being in '92.903 m2'
yes
36
/kg_per_declared_unitmass of the product, in kilograms, per declared unit/amountunit = "kg"{"qty":12.5,"unit","kg"}
required if `private` == false
yesyes
in the reference flow dataset in the materialProperties section, there are conversion factors (density, mass per unit area etc.) that can be used to calculate this value
yes
37
/kg_C_per_declared_unitMass of elemental carbon, per declared unit, contained in the product itself at the manufacturing facility gate. Used (among other things) to check a carbon balance or calculate incineration emissions. The source of carbon (e.g. biogenic) is not relevant in this field./amountunit = "kg"{"qty":8.76,"unit","kg"}noyesyes
38
/kg_C_biogenic_per_declared_unitMass of elemental carbon from biogenic sources, per declared unit, contained in the product itself at the manufacturing facility gate. It may be presumed that any biogenic carbon content has been accounted for as -44/12 kgCO2e per kg C in stages A1-A3, per EN15804 and ISO 21930./amountunit = "kg"{"qty":5.43,"unit","kg"}required IF `private`== false AND any CO2 removal from atmosphere are accounted for in gwp impacts.noyesyes
39
40
41
/product_skuUnique stock keeping identifier assigned by manufacturerstringstring < 200 chars"K5054-19"yesyesyesyes
42
/product_description1-paragraph description of product. Supports plain text or github flavored markdown.string (gfm)string < 2000 chars
"Ready Mixed Concrete, 6000 psi, 0.75 inch line, self-compacting, low heat"
yesyesyes
43
/product_image_smallURL referencing an image illustrating the product. May be a dataURL of up to 32kb. 200x200 or smaller.urltarget < 200 px on a side. If dataURL, <3KB.yesyesno (image)
44
/product_imageURL referencing an image illustrating the product, of no more than 10MB. May be a dataURL of up to 32KB.urlmust reference a png, jpg, pdf, or svg < 10MB, or be a dataURL < 32KB.yesyesno (image)
45
/product_classesList of classifications, including Masterformat and UNSPC/product_class≤255 dict entriesyesyesno
46
/product_service_life_yearsReference service life of the product, in years. Serves as a maximum for replacement interval, which may also be constrained by usage or the service life of what the product goes into (e.g. a building).numbermin 0.001 years, max 100 yearsyesyesyes
47
/annual_productionEstimated annual production volume, in declared units, of this product. This number is meant to be used for guidance in weighted averages, and may be rounded or obfuscated by up to 25% for commercial confidentiality purposes. number>0100000yesyesyesyes
48
/applicable_inJurisdiction(s) in which EPD is applicable. An empty array, or absent properties, implies global applicability.list of string2-letter country codes, M49 region codes or the alias "EU27" for the 27 members of the Euro bloc["US","CA","MX"]yes
OpenEPD Implementation doesn't guarantee that applicable_in fileld will not be sanitized and compressed.
yes
49
50
/product_usage_descriptionText description of how product is typically used. Can be used to describe accessories like fasteners, adhesives, etc. Supports plain text or github flavored markdown.string (gfm)string < 2000 charsyesyes
51
/product_usage_imagePointer (url) to image illustrating how the product is used, no more than 10MB. May be a dataURL of up to 32KB.urlmust reference a png, jpg, pdf, or svg < 10MB, or a dataURL <32KByesno (image)
52
53
/manufacturing_descriptionText description of manufacturing process. Supports plain text or github flavored markdownstring (gfm)string < 2000 charsyesyes
54
/manufacturing_imagePointer (url) to an image illustrating the manufacturing process. May be a dataURL of up to 32KB.urlmust reference a png, jpg, pdf, or svg < 10MB, or a dataURL <32KB yesno (image)
55
56
/impactsList of environmental impacts, compiled per one of the standard Impact Assessment methods/impacts[1, 255] entries in list. More impactsets allowed with different LCIA methods. Implementations of the spec are allowed to ignore any passed impact type except "gwp".
[{"lcia":"TRACI 2.1","gwp":{"A1A2A3":{"mean":1.23e4,"unit":"kgCO2e","rsd":0.22,"dist":"log-normal"}}},
{"lcia":"EN 15804+A2","gwp":{"A1A2A3":{"mean":1.26e4,"unit":"kgCO2e","rsd":0.23,"dist":"log-normal"}}}]
required if `private` == false
yesnoyes
GWP is the indicator with UUID 77e416eb-a363-4258-a04e-171d843a6460
yes
57
58
/resource_usesSet of Resource Use Indicators, over various LCA scopes. /resource_use_set<255 entries in a dictionary
{
"RPRe":{"A1A2A3":{"mean":1.23e4,"unit":"MJ","rsd":0.43,"dist":"log-normal"},"A5":{"mean":3.21e-1,"unit":"MJ","rsd":0.40,"dist":"log-normal"}},
"fw":{"A1A2A3":{"mean":0.123e-4,"unit":"m3","rsd":0.21,"dist":"log-normal"}}
}
noyesyes
59
/output_flowsSet of Waste and Output Flow indicators which describe the waste categories and other material output flows derived from the LCI./output_flow_set<255 entries in a dictionarynoyesyes
60
61
/specsData structure(s) describing performance specs of product. Unique for each material type.list of /spec≤255 entries in list
{"concrete":{"28d Strength":"2500 psi","exposure_class":["F2","S3","A3"]}}
yesyesno
62
/complianceStandard(s) to which this declaration is compliant.list of /standard≤255 entries in list
{{short_name:"ISO14024:2018","link":"https://www.iso.org/standard/72458.html"},}
yesyes
complianceDeclarations/compliance
may need to filter for applicable ones like ISO 14025, EN 15804, EN15804+A2, ISO 21930 and ignore the rest, as here also compliance to compliance systems are declared which are not officially standardised (such as InData 2018/2020)
yes
63
/attachmentsList of URLs relevant to this document. Examples include technical datasheets, health declarations, entries in other databases, or the underlying LCA document. Not all links need to resolve for all users (e.g. the underlying LCA might only be visible to people with certain credentials). list of /attachment≤255 entries in list
{"datasheet":"https://somemanufacturer.com/datasheets/abcd1234"}
nonoyes?
64
/ includesList of JSON objects pointing to product components. Each one should be an EPD or digitized LCI processlist of /ingredient≤255 entries in listnonoyesyes
65
/ lci_databasesLCI Database(s) and Version
list of /database
may POST as list of /resource_reference.
[{"owner":{"web_domain":"ecoinvent.org"},
"name":"ecoinvent",
"version":"3.10",
"link":"https://support.ecoinvent.org/ecoinvent-version-3.10"},
{"owner":{"web_domain":"lcacommons.gov"},
"name":"ULSCI"
"version":"FY24.Q3.01",
"link":"https://www.lcacommons.gov/lca-collaboration/National_Renewable_Energy_Laboratory/USLCI_Database_Public/datasets"}]
YesYesNoyesyesnoyes
66
/ software_used
List of software tool(s) and version(s) used for LCA and/or EPD generation.
/software
may POST as /resource_reference.
{"owner":{"web_domain":"greendelta.com"},
"primary_function":"LCA Analysis",
"name":"openLCA",
"version":"2.3.1",
"link":"https://share.greendelta.com/index.php/s/D1xa3haTiHJdhqt?path=%2F2.3.1"}
YesYesNoyesyesnoyes
67
68
69
/lca_discussionA rich text description containing information for experts reviewing the EPD contents. Text descriptions required by ISO 14025, ISO 21930, EN 15804,, relevant PCRs, or program instructions and which do not have specific openEPD fields should be entered here. This field may be large, and may contain multiple sections separated by github flavored markdown formatting. string (gfm)<= 200,000 characters (for clarity, that is 200K or 2E5).
*Italic text is default guidance and should be deleted before publication. This field uses [Markdown formatting](https://en.wikipedia.org/wiki/Markdown)*
# Packaging
*Information on product-specific packaging: type, composition and possible reuse of packaging materials (paper, strapping, pallets, foils, drums, etc.) shall be included in this Section. The EPD shall describe specific packaging scenario assumptions, including disposition pathways for each packaging material by reuse, recycling, or landfill disposal based on packaging type.*

# Product Installation
*A description of the type of processing, machinery, tools, dust extraction equipment, auxiliary materials, etc. to be used during installation shall be included. Information on industrial and environmental protection may be included in this section. Any waste treatment included within the system boundary of installation waste should be specified.*

# Use Conditions
*Use-stage environmental impacts of flooring products during building operations depend on product cleaning assumptions. Information on cleaning frequency and cleaning products shall be provided based on the manufacturer’s recommendations. In the absence of primary data, cleaning assumptions shall be documented.*

# Re-Use
*The possibilities of re-use, recycling and energy recovery shall be described. If an Extended Producer Responsibility initiative such as a product take-back program exists, this may be included.*

# Disposal
*The possible disposal channels shall be indicated in accordance with disposal routes and waste classification.*

# Cut-Off Criteria
*Cut-off criteria applied shall be documented.*

# Allocation
*Co-product allocation methods used, and a description of how allocation is performed across recycled and/or secondary raw materials, as well as allocation of energy, ancillary, and operating matierals used for individual products in a factory.*

# LCA Interpretation
*An interpretation shall be provided in the EPD which discusses the assumptions and limitations associated with the interpretation of results as declared in the EPD, both methodology and data related.*

*This interpretation shall also include a description of the time frame and/or variance of the LCIA results if the EPD is valid for several products. An illustration of the results with figures is recommended in the EPD, e.g. for the dominance analysis, the distribution of impacts across the modules, the CO2-balance, etc. as appropriate for a reader's understanding of the environmental profile of the declared product.*

# Environment and Health during Manufacturing
*Measures relating to environmental and health protection during the product manufacturing process extending beyond national guidelines (of the production country) may be described, e.g. reference to a product safety data sheet (SDS), description of Environmental Management Systems or similar, programs addressing air emissions, wastewater, noise, etc*
# Environment and Health during Installation
*Information should be provided in this section on the relationship between the product, the environment and health, including possible harmful substances or emissions e.g. reference to a product safety data sheet (SDS). Any recommendations concerning cleaning, maintenance, etc. of the declared product should be listed in “Technical information on scenarios”.*
# Extraordinary Effects - Fire, Water, Mechanical Destruction
## FIRE
*Information should be included on the product’s fire performance and possible impacts on the environment e.g. reaction-to-fire, other relevant fire tests as applicable, and emissions to air.*

## WATER
*Information should be included on the product’s performance and possible impacts on the environment following unforeseeable influence of water, e.g. flooding.*

## MECHANICAL DESTRUCTION
*Information should be included on the product’s performance and possible impacts on the environment following unforeseeable mechanical destruction.*

# Delayed Emissions
*If a manufacturer wishes to declare quantitative or qualitative information on delayed emissions used to calculate Global Warming Potential within the EPD, information may be provided here.*

# Environmental Activities and Certifications
*Other environmental activities, such as participation in recycling or recovery programs along with the details of these programs and contact information, may be provided.
For certifications applied to the product and listed in the EPD, a statement shall be included on where an interested party can find details of the certification program.*
yesyes
70
/extDomain for custom extensions. jsonnononononono
71
72
73
Notes
74
Endpoints return entities with one layer deep. For example /epds/ endpoint will not fetch and return subsidiaries of manufacturer of epd.
75
A user may provide open-xpd-uuid in any shape (e.g. 1u7zsed8, 1U-7Z-SED8) during EPD/PCR creation. If not provided, an OpenEPD implementation must accept the open-xpd-uuid returned by the registry.
76
77
Color Coding
78
Text that is in draft form, and is under discussion
79
Recently changed text that may not yet be implemented
80
Normal text that describes the current openEPD
81
Deprecated text (which will not be supported in future versions)
82
83
84
85
86
87
dqihttps://docs.google.com/spreadsheets/d/10l9Crr-lF-PkeNj1vcOdJ1I2O7y6Jyx0MrGof2KpCe8/edit?gid=1804526399#gid=1804526399
88
89
90
91
92
93
94
95
96
97
98
99
100