openLCA schema

The openLCA schema is the data exchange format of openLCA. It is the only format that supports all modeling features of openLCA and thus, a lossless data exchange.

Why another LCA data exchange format?

There are other LCA data formats, but the concepts of these formats are sometimes quite different or they are missing features that are important for openLCA. However, whenever possible we try to be compatible with these formats:

  • EcoSpold 1: It was one of the first standardized LCA data formats but it is not really used anymore. The format is nice and simple but quite some essential features are missing, like parameters and formulas. The openLCA schema adopted the general structure of processes, with inputs and outputs as exchanges, flexible schemes of allocation factors etc., from this format.
  • ISO/TS 14048: ISO 14048 defines the general requirements for inventory data in form of process data sets. The openLCA schema implements these requirements for process data sets.
  • SimaPro CSV: It is similar to EcoSpold 1 regarding the structural simplicity (which is good) and the fact that things are identified by names (which can be an issue in collaborative environments where name clashes could happen). It has some really nice concepts, like parameters on different levels, which was adopted in the openLCA schema. One thing that is really missing for openLCA in this format, is the concept of product systems: there is no way of linking the same processes differently in multiple product systems; everything is linked hard by name in this format. Also, there is no formal specification of this format; it is a proprietary format with some very specific properties.
  • ILCD: The nice concept of different data set types and references between data sets of this format was adopted for the openLCA schema. For data exchange (e.g. over web APIs), it has quite some advantages when not everything is stored in a single file. The openLCA schema has the same general concepts as the ILCD format. However, there are still quite some things missing in the ILCD format, like stand-alone global parameters, and other things are a bit strange (e.g. it has unit groups with unit conversions but there is no possibility for using these units for input and output amounts; LCIA method data sets in this format are in fact LCIA categories; etc.). With the extended ILCD format eILCD, it is now possible to also define linked product systems in this format, but eILCD has a concept of process instances (means copies of processes) in product systems which is not so practical for matrix based LCA software. Also, the linking is limited in eILCD: the same flow in two different exchanges of a process can be only linked to different processes when the location is different (a direct linking of exchanges is missing).
  • EcoSpold II: This format solves some problems of the EcoSpold I format (e.g. supports parameters and formulas, provides unique IDs for entities, etc.). However, it reflects more the structure and needs of the ecoinvent database (e.g. has a concept of parent and child activities) and thus, is rarely used in other contexts.

Finally, there are things that are not covered by these formats but supported in openLCA and the openLCA schema:

  • social indicators that can be linked as social aspects in processes
  • costs can be attached to every input and output of a process, also as formulas, with referenced currencies
  • allocation factors for multiple allocation methods can be stored in the same process, also using formulas (the calculation picks then the respective factors depending on the selected allocation method)
  • standalone LCIA categories that can be referenced in different LCIA methods, also supporting parameters and formulas
  • result data sets that can contain LCI and LCIA results
  • EPD data sets that can reference different result data sets for there respective life cycle stages / modules
  • product system data sets in which processes can be flexibly linked, also to sub-systems and results (yes, also results of EPDs)
  • ... and more

Format concepts

The openLCA schema is a typed data format with the type Entity as starting point. An Entity is basically a set of key-value pairs, also called fields. Every field has its specific type which can be:

  • a number (integer or floating point number),
  • a Boolean value (true or false),
  • a string,
  • again an Entity,
  • or a list of such values.

An entity type can inherit the fields from another entity type where the root of this inheritance tree is always Entity. The type RefEntity describes entities that can be referenced by a unique ID, stored in the field @id. Another data set can point to such a RefEntity via a Ref that contains that @id. With this, we do not need to repeat the information when the same data set is referenced multiple times (e.g. when the same flow is used in different processes).

A RootEntity describes a stand-alone data set, like a Flow or Process. These data set types form the root of an entity tree. All other entity types are always part of such an entity tree. For example, a Unit is not a RootEntity, it always lives within a UnitGroup. But it is a RefEntity because it can be referenced from other entities, e.g. in an Exchange of a process.

It should be quite easy to implement these concepts in common programming languages an serialization formats. In fact, such implementations can be directly generated from the schema definition.

JSON-LD / RDF

In most cases, the openLCA schema is just used as a structured data format. However, the JSON serialization uses the two standard JSON-LD annotations @type and @id for the type and identifier of a data set or data set reference. We also provide a JSON-LD context and a RDF ontology for the schema. The vocabulary base of the schema is http://greendelta.github.io/olca-schema# but the data set identifiers are relative to the specific context. Instances of the openLCA schema classes or properties are not part of its ontology. For example, in the following document, the type is expanded to http://greendelta.github.io/olca-schema#Flow but the ID is relative to the respective context:

{
  "@type": "Flow",
  "@id": "123"
}

Zip packages

For the data exchange with openLCA, openLCA schema data sets are typically packed as JSON serialized files in zip files. Data sets of the different root entity types are then stored in the following folders within such a zip file:

typefolder
Actoractors
Currencycurrencies
DQSystemdq_systems
Epdepds
Flowflows
FlowPropertyflow_properties
ImpactCategorylcia_categories
ImpactMethodlcia_methods
Locationlocations
Parameterparameters
Processprocesses
ProductSystemproduct_systems
Projectprojects
Resultresults
SocialIndicatorsocial_indicators
Sourcesources
UnitGroupunit_groups

The name of the file is then the ID of the data set followed by the .json extension. At the root level, such a zip-file contains a olca-schema.json file that contains the version of the package format and possibly some other meta-data:

+ actors
  - 23af...e4.json
  - 1e32...f1.json
  - ...
+ ...
- olca-schema.json

Changes in version 2

New types

The following new types were added to the schema:

  • Epd
  • ParameterRedefSet
  • Result
    • ImpactResult
    • FlowResult

New fields

The following fields were added to existing classes:

classfieldtype
AllocationFactorformulastring
ExchangelocationRef[Location]
ImpactCategorycodestring
ImpactCategoryparametersList[Parameter
ImpactCategorysourceRef[Source]
ImpactFactorlocationRef[Location]
ImpactMethodcodestring
ImpactMethodsourceRef[Source]
ParameterRedefisProtectedboolean
ProductSystemparameterSetsList[ParameterRedefSet]
ProjectisWithCostsboolean
ProjectisWithRegionalizationboolean
ProjectVariantdescriptionstring
ProjectVariantisDisabledboolean

Renamed fields

classold namenew name
CurrencyreferenceCurrencyrefCurrency
ExchangeavoidedProductisAvoidedProduct
ExchangeinputisInput
ExchangequantitativeReferenceisQuantitativeReference
FlowinfrastructureFlowisInfrastructureFlow
FlowPropertyFactorreferenceFlowPropertyisRefFlowProperty
ImpactCategoryreferenceUnitNamerefUnit
ParameterinputParameterisIputParameter
ProcessinfrastructureProcessisInfrastructureProcess
ProcessDocumentationcopyrightisCopyrightProtected
ProductSystemreferenceExchangerefExchange
ProductSystemreferenceProcessrefProcess
UnitreferenceUnitisRefUnit

Type changes

  • the field category in RootEntity is now a string of the full category path instead of a reference to a category
  • the abstract class RootEntity was renamed to RefEntity; the abstract class CategorizedEntity to RootEntity

Removed fields

The following fields were removed:

classfield
ImpactMethodparameterMean
ImpactMethodparameters
ImpactMethodparameters
ParameterexternalSource
ParametersourceType
ProcessLinkisSystemLink
ProductSystemparameterRedefs
ProductSystemparameterRedefs
ProjectcreationDate
ProjectfunctionalUnit
Projectgoal
ProjectlastModificationDate
Projectauthor
UncertaintygeomMeanFormula
UncertaintygeomSdFormula
UncertaintymaximumFormula
UncertaintymeanFormula
UncertaintyminimumFormula
UncertaintymodeFormula
UncertaintysdFormula

Actor

An actor is a person or organisation.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

address

city

country

email

telefax

telephone

website

zipCode

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Actor:
  id: str
  address: str
  category: str
  city: str
  country: str
  description: str
  email: str
  last_change: str
  name: str
  tags: List[str]
  telefax: str
  telephone: str
  version: str
  website: str
  zip_code: str

Currency

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

code

conversionFactor

refCurrency

The reference currency to which the conversion factor is related.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Currency:
  id: str
  category: str
  code: str
  conversion_factor: float
  description: str
  last_change: str
  name: str
  ref_currency: Ref
  tags: List[str]
  version: str

DQSystem

A data quality system (DQS) in openLCA describes a pedigree matrix of m data quality indicators (DQIs) and n data quality scores (DQ scores). Such a system can then be used to assess the data quality of processes and exchanges by tagging them with an instance of the system D where D is a m * n matrix with an entry d_ij containing the value of the data quality score j for indicator i. As each indicator in D can only have a single score value, D can be stored in a vector d where d_i contains the data quality score for indicator i. The possible values of the data quality scores are defined as a linear order 1 ... n. In openLCA, the data quality entry d of a process or exchange is stored as a string like (3;2;4;n.a.;2) which means the data quality score for the first indicator is 3, for the second 2 etc. A specific value is n.a. which stands for not applicable. In calculations, these data quality entries can be aggregated in different ways. For example, the data quality entry of a flow f with a contribution of 0.5 kg and a data quality entry of (3;2;4;n.a.;2) in a process p and a contribution of 1.5 kg and a data quality entry of (2;3;1;n.a.;5) in a process q could be aggregated to (2;3;2;n.a.;4) by applying an weighted average and rounding. Finally, custom labels like A, B, C, ... or Very good, Good, Fair, ... for the DQ scores can be assigned by the user. These labels are then displayed instead of 1, 2, 3 ... in the user interface or result exports. However, internally the numeric values are used in the data model and calculations.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

hasUncertainties

source

indicators

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class DQSystem:
  id: str
  category: str
  description: str
  has_uncertainties: bool
  indicators: List[DQIndicator]
  last_change: str
  name: str
  source: Ref
  tags: List[str]
  version: str

DQIndicator

An indicator of a data quality system (DQSystem).

Properties

@type

Inherited from Entity.@type

name

position

scores

  • Type: List of DQScore
  • Proto-Index: 4

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class DQIndicator:
  name: str
  position: int
  scores: List[DQScore]

DQScore

An score value of an indicator (DQIndicator) in a data quality system (DQSystem).

Properties

@type

Inherited from Entity.@type

description

label

position

uncertainty

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class DQScore:
  description: str
  label: str
  position: int
  uncertainty: float

Epd

The results and some meta-data of an environmental product declarartion, EPD.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

manufacturer

modules

The results of this EPD structured in modules.

pcr

product

The declared product of the EPD.

programOperator

urn

An universal resource name (URN) that identifies where the EPD comes from, e.g. openEPD:ec3yznau.

verifier

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Epd:
  id: str
  category: str
  description: str
  last_change: str
  manufacturer: Ref
  modules: List[EpdModule]
  name: str
  pcr: Ref
  product: EpdProduct
  program_operator: Ref
  tags: List[str]
  urn: str
  verifier: Ref
  version: str

EpdModule

The results of an EPD are typically structured in modules.

Properties

@type

Inherited from Entity.@type

multiplier

Scales the linked result to the required amount for this module.

name

The name or identifier of the module, like A1.

result

A reference to the module's result. Note that results are stand-alone entities and that the same result could be referenced from different modules. Also, results can be directly linked in product systems.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class EpdModule:
  multiplier: float
  name: str
  result: Ref

EpdProduct

The declared product of an EPD.

Properties

@type

Inherited from Entity.@type

amount

The amount of the declared product.

flow

The reference to the product flow.

flowProperty

The reference to the flow property (quantity) in which the amount of the declared product is given for the respective EPD. A missing flow property reference means that the amount is given in the reference flow property of the respective product flow.

unit

The reference to the unit in which the amount of the declared product is given for the respective EPD. A missing unit reference means that the amount is given in the reference unit of the respective product flow.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class EpdProduct:
  amount: float
  flow: Ref
  flow_property: Ref
  unit: Ref

Flow

Everything that can be an input or output of a process (e.g. a substance, a product, a waste, a service etc.)

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

cas

A CAS number of the flow.

flowProperties

The flow properties (quantities) in which amounts of the flow can be expressed together with conversion factors between these flow flow properties.

flowType

The type of the flow. Note that this type is more a descriptor of how the flow is handled in calculations.

formula

A chemical formula of the flow.

isInfrastructureFlow

Indicates whether this flow describes an infrastructure product. This field is part of the openLCA schema because of backward compatibility with EcoSpold 1. It does not really have a meaning in openLCA and should not be used anymore.

location

The location of the flow. Normally the location of a flow is defined by the process location where the flow is an input or output. However, some data formats define a location as a property of a flow.

synonyms

A list of synonyms but packed into a single field. Best is to use semicolons as separator as commas are sometimes used in names of chemicals.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Flow:
  id: str
  cas: str
  category: str
  description: str
  flow_properties: List[FlowPropertyFactor]
  flow_type: FlowType
  formula: str
  is_infrastructure_flow: bool
  last_change: str
  location: Ref
  name: str
  synonyms: str
  tags: List[str]
  version: str

JSON example

{
  "@type": "Flow",
  "@id": "4a40cb39-e306-3649-b6da-ca061e384e23",
  "name": "electricity, high voltage, at grid",
  "category": "electricity/supply mix",
  "flowType": "PRODUCT_FLOW",
  "location": {
    "@type": "Location",
    "@id": "28840420-4e3d-3522-a930-8317344a285d",
    "name": "Poland"
  },
  "flowProperties": [
    {
      "@type": "FlowPropertyFactor",
      "isRefFlowProperty": true,
      "conversionFactor": 1.0,
      "flowProperty": {
        "@type": "FlowProperty",
        "@id": "f6811440-ee37-11de-8a39-0800200c9a66",
        "name": "Energy"
      }
    }
  ]
}

FlowPropertyFactor

A FlowPropertyFactor is a conversion factor between flow properties (quantities; FlowProperty) of a flow (Flow). As an example the amount of the flow 'water' in a process could be expressed in 'kg' mass or 'm3' volume. In this case the flow water would have two flow property factors: one for the flow property 'mass' and one for 'volume'. Each of these flow properties has a reference to a unit group (UnitGroup) which again has a reference unit. In the example the flow property 'mass' could reference the unit group 'units of mass' with 'kg' as reference unit and volume could reference the unit group 'units of volume' with 'm3' as reference unit. The flow property factor is now the conversion factor between these two reference units where the factor of the reference flow property of the flow is 1. If the reference flow property of 'water' in the example would be 'mass' the respective flow property factor would be 1 and the factor for 'volume' would be 0.001 (as 1 kg water is 0.001 m3). The amount of water in a process can now be also given in liter, tons, grams etc. For this, the unit conversion factor of the respective unit group can be used to convert into the reference unit (which then can be used to convert to the reference unit of another flow property). Another thing to note is that different flow properties can refer to the same unit group (e.g. MJ upper calorific value and MJ lower calorific value.)

Properties

@type

Inherited from Entity.@type

conversionFactor

The value of the conversion factor.

isRefFlowProperty

Indicates whether the flow property of the factor is the reference flow property of the flow. The reference flow property must have a conversion factor of 1.0 and there should be only one reference flow property.

flowProperty

The flow property (quantity) of the factor.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class FlowPropertyFactor:
  conversion_factor: float
  flow_property: Ref
  is_ref_flow_property: bool

JSON example

{
  "@type": "FlowPropertyFactor",
  "isRefFlowProperty": true,
  "conversionFactor": 1.0,
  "flowProperty": {
    "@type": "FlowProperty",
    "@id": "f6811440-ee37-11de-8a39-0800200c9a66",
    "name": "Energy"
  }
}

FlowMap

A crosswalk of flows from a source flow list to a target flow list.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

mappings

A list of flow mappings from flows in a source flow list to flows in a target flow list.

source

The reference (id, name, description) of the source flow list.

  • Type: Ref
  • Proto-Index: 11

target

The reference (id, name, description) of the target flow list.

  • Type: Ref
  • Proto-Index: 12

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class FlowMap:
  id: str
  category: str
  description: str
  last_change: str
  mappings: List[FlowMapEntry]
  name: str
  source: Ref
  tags: List[str]
  target: Ref
  version: str

FlowMapEntry

A mapping from a source flow to a target flow.

Properties

@type

Inherited from Entity.@type

conversionFactor

The conversion factor to convert the amount of 1 unit of the source flow into the corresponding quantity of the target flow.

from

Describes the source flow of the mapping.

to

Describes the target of the mapping.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class FlowMapEntry:
  conversion_factor: float
  from_: FlowMapRef
  to: FlowMapRef

FlowMapRef

Describes a source or target flow in a FlowMappingEntry of a FlowMap. Such a flow reference can also optionally specify the unit and flow property (quantity) for which the mapping is valid. If the unit or quantity is not given, the mapping is based on the respective reference unit and reference flow property of the flow.

Properties

@type

Inherited from Entity.@type

flow

The reference to the flow data set.

flowProperty

An optional reference to a flow property of the flow for which the mapping is valid.

unit

An optional reference to a unit of the flow for which the mapping is valid

provider

In case of a product or waste flow a flow mapping can contain a provider which is the process that produces the product or a waste treatment process that consumes the waste flow. This is useful when we want to apply mappings of product and waste flows on databases and link them in the corresponding processes and product systems.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class FlowMapRef:
  flow: Ref
  flow_property: Ref
  provider: Ref
  unit: Ref

FlowProperty

A flow property is a quantity that can be used to express amounts of a flow.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

flowPropertyType

The type of the flow property

unitGroup

The units of measure that can be used to express quantities of the flow property.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class FlowProperty:
  id: str
  category: str
  description: str
  flow_property_type: FlowPropertyType
  last_change: str
  name: str
  tags: List[str]
  unit_group: Ref
  version: str

JSON example

{
  "@type": "FlowProperty",
  "@id": "93a60a56-a3c8-11da-a746-0800200b9a66",
  "name": "Mass",
  "category": "Technical flow properties",
  "flowPropertyType": "PHYSICAL_QUANTITY",
  "unitGroup": {
    "@type": "UnitGroup",
    "@id": "93a60a57-a4c8-11da-a746-0800200c9a66",
    "name": "Units of mass"
  }
}

ImpactCategory

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

code

impactFactors

The characterisation factors of the LCIA category.

parameters

A set of parameters which can be used in formulas of the characterisation factors in this impact category.

refUnit

The name of the reference unit of the LCIA category (e.g. kg CO2-eq.).

direction

The impact direction of this impact category.

source

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ImpactCategory:
  id: str
  category: str
  code: str
  description: str
  direction: Direction
  impact_factors: List[ImpactFactor]
  last_change: str
  name: str
  parameters: List[Parameter]
  ref_unit: str
  source: Ref
  tags: List[str]
  version: str

JSON example

{
  "@type": "ImpactCategory",
  "@id": "3a08605b-d7c9-4f40-a17e-74cece1dde8b",
  "name": "Depletion of abiotic resources - elements, ultimate reserves",
  "description": "ADPelements (Oers et al. 2001)",
  "referenceUnitName": "kg antimony eq.",
  "impactFactors": [
    {
      "@type": "ImpactFactor",
      "value": 1.0943318963E-9,
      "flow": {
        "@type": "Flow",
        "@id": "0305b169-255d-4041-8f5d-6e095bcb6358",
        "name": "Aluminium"
      },
      "unit": {
        "@type": "Unit",
        "@id": "20aadc24-a391-41cf-b340-3e4529f44bde",
        "name": "kg"
      },
      "flowProperty": {
        "@type": "FlowProperty",
        "@id": "93a60a56-a3c8-11da-a746-0800200b9a66",
        "name": "Mass"
      }
    }
  ]
}

ImpactFactor

A single characterisation factor of a LCIA category for a flow.

Properties

@type

Inherited from Entity.@type

flow

The [Flow] of the impact assessment factor.

flowProperty

The quantity of the flow to which the LCIA factor is related (e.g. Mass).

location

In case of a regionalized impact category, this field can contain the location for which this factor is valid.

unit

The flow unit to which the LCIA factor is related (e.g. kg).

value

The value of the impact assessment factor.

formula

A mathematical formula for calculating the value of the LCIA factor.

uncertainty

The uncertainty distribution of the factors' value.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ImpactFactor:
  flow: Ref
  flow_property: Ref
  formula: str
  location: Ref
  uncertainty: Uncertainty
  unit: Ref
  value: float

JSON example

{
  "@type": "ImpactFactor",
  "value": 1.0943318963E-9,
  "flow": {
    "@type": "Flow",
    "@id": "0305b169-255d-4041-8f5d-6e095bcb6358",
    "name": "Aluminium"
  },
  "unit": {
    "@type": "Unit",
    "@id": "20aadc24-a391-41cf-b340-3e4529f44bde",
    "name": "kg"
  },
  "flowProperty": {
    "@type": "FlowProperty",
    "@id": "93a60a56-a3c8-11da-a746-0800200b9a66",
    "name": "Mass"
  }
}

ImpactMethod

An impact assessment method.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

code

impactCategories

The impact categories of the method.

nwSets

The normalization and weighting sets of the method.

  • Type: List of NwSet
  • Proto-Index: 12

source

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ImpactMethod:
  id: str
  category: str
  code: str
  description: str
  impact_categories: List[Ref]
  last_change: str
  name: str
  nw_sets: List[NwSet]
  source: Ref
  tags: List[str]
  version: str

Location

A location like a country, state, city, etc.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

code

The code of the location (e.g. an ISO 2-letter country code).

latitude

The average latitude of the location.

longitude

The average longitude of the location.

geometry

A GeoJSON object.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Location:
  id: str
  category: str
  code: str
  description: str
  geometry: Dict[str, Any]
  last_change: str
  latitude: float
  longitude: float
  name: str
  tags: List[str]
  version: str

JSON example

{
  "@type": "Location",
  "@id": "28840420-4e3d-3522-a930-8317344a285d",
  "name": "Poland",
  "description": "reference location, sources: ISO 3166-1, ecoinvent 3, ILCD, GaBi",
  "code": "PL",
  "latitude": 52.125,
  "longitude": 19.401
}

Parameter

In openLCA, parameters can be defined in different scopes: global, process, or LCIA method. The parameter name can be used in formulas and, thus, need to conform to a specific syntax. Within a scope the parameter name should be unique (otherwise the evaluation is not deterministic). There are two types of parameters in openLCA: input parameters and dependent parameters. An input parameter can have an optional uncertainty distribution but not a formula. A dependent parameter can (should) have a formula (where also other parameters can be used) but no uncertainty distribution.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

formula

A mathematical expression to calculate the parameter value.

isInputParameter

Indicates whether the parameter is an input parameter (true) or a dependent/calculated parameter (false). A parameter can have a formula if it is not an input parameter.

parameterScope

The scope where the parameter is valid.

uncertainty

An uncertainty distribution of the parameter value. This is only valid for input parameters.

value

The parameter value.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Parameter:
  id: str
  category: str
  description: str
  formula: str
  is_input_parameter: bool
  last_change: str
  name: str
  parameter_scope: ParameterScope
  tags: List[str]
  uncertainty: Uncertainty
  value: float
  version: str

Process

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

allocationFactors

defaultAllocationMethod

exchanges

The inputs and outputs of the process.

  • Type: List of Exchange
  • Proto-Index: 12

lastInternalId

This field holds the last internal ID that was used in an exchange (which may have been deleted, so it can be larger than the largest internal ID of the exchanges of the process.) The internal ID of an exchange is used to identify exchanges within a process (for updates, data exchanges (see process links), etc.). When you add an exchange to a process, you should increment this field in the process and set the resulting value as the internal ID of that exchange. The sequence of internal IDs should start with 1.

location

The location of the process.

parameters

processDocumentation

processType

dqSystem

A reference to a data quality system (DQSystem) with which the overall quality of the process can be assessed.

exchangeDqSystem

A reference to a data quality system (DQSystem) with which the quality of individual inputs and outputs (Exchange) of the process can be assessed.

socialDqSystem

A reference to a data quality system (DQSystem) with which the quality of individual social aspects of the process can be assessed.

dqEntry

A data quality entry like (1;3;2;5;1). The entry is a vector of data quality values that need to match the overall data quality system of the process (the system that is stored in the dqSystem property). In such a system the data quality indicators have fixed positions and the respective values in the dqEntry vector map to these positions.

isInfrastructureProcess

Indicates whether this process describes an infrastructure process. This field is part of the openLCA schema because of backward compatibility with EcoSpold 1. It does not really have a meaning in openLCA and should not be used anymore.

socialAspects

A set of social aspects related to this process.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Process:
  id: str
  allocation_factors: List[AllocationFactor]
  category: str
  default_allocation_method: AllocationType
  description: str
  dq_entry: str
  dq_system: Ref
  exchange_dq_system: Ref
  exchanges: List[Exchange]
  is_infrastructure_process: bool
  last_change: str
  last_internal_id: int
  location: Ref
  name: str
  parameters: List[Parameter]
  process_documentation: ProcessDocumentation
  process_type: ProcessType
  social_aspects: List[SocialAspect]
  social_dq_system: Ref
  tags: List[str]
  version: str

JSON example

{
  "@type": "Process",
  "@id": "59963026-9b57-4666-a732-59fa9ebd9223",
  "name": "Steel production",
  "description": "",
  "processType": "UNIT_PROCESS",
  "location": {
    "@type": "Location",
    "@id": "5f02f088-9301-3d7b-a1ac-972c11bf3e7d",
    "name": "Germany"
  },
  "processDocumentation": {
    "copyright": false,
    "creationDate": "2015-02-11T13:58:48.789+01:00"
  },
  "exchanges": [
    {
      "@type": "Exchange",
      "internalId": 1,
      "amount": 1.0,
      "isAvoidedProduct": false,
      "isInput": false,
      "isQuantitativeReference": true,
      "flow": {
        "@type": "Flow",
        "@id": "54290a29-8baa-495c-84b3-db212c75f7b7",
        "name": "Steel"
      },
      "unit": {
        "@type": "Unit",
        "@id": "20aadc24-a391-41cf-b340-3e4529f44bde",
        "name": "kg"
      },
      "flowProperty": {
        "@type": "FlowProperty",
        "@id": "93a60a56-a3c8-11da-a746-0800200b9a66",
        "name": "Mass"
      }
    }
  ]
}


AllocationFactor

A single allocation factor in a process.

Properties

@type

Inherited from Entity.@type

allocationType

The type of allocation.

exchange

A product input, waste output, or elementary flow exchange which is allocated by this factor. This is only valid for causal allocation where allocation factors can be assigned to single exchanges.

formula

An optional formula from which the value of the allocation factor is calculated.

product

The output product (or waste input) to which this allocation factor is related. The must be an exchange with this product output (or waste input) in this process.

value

The value of the allocation factor.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class AllocationFactor:
  allocation_type: AllocationType
  exchange: ExchangeRef
  formula: str
  product: Ref
  value: float

Exchange

An Exchange is an input or output of a Flow in a Process. The amount of an exchange is given in a specific unit of a quantity (FlowProperty) of the flow. The allowed units and flow properties that can be used for a flow in an exchange are defined by the flow property information in that flow (see also the FlowPropertyFactor type).

Properties

@type

Inherited from Entity.@type

amount

amountFormula

baseUncertainty

costFormula

A formula for calculating the costs of this exchange.

costValue

The costs of this exchange.

currency

The currency in which the costs of this exchange are given.

defaultProvider

A default provider is a Process that is linked as the provider of a product input or the waste treatment provider of a waste output. It is just an optional default setting which can be also ignored when building product systems in openLCA. The user is always free to link processes in product systems ignoring these defaults (but the flows and flow directions have to match of course).

description

A general comment about the input or output.

dqEntry

A data quality entry like (1;3;2;5;1). The entry is a vector of data quality values that need to match the data quality scheme for flow inputs and outputs that is assigned to the Process. In such a scheme the data quality indicators have fixed positions and the respective values in the dqEntry vector map to these positions.

flow

The reference to the flow of the exchange.

  • Type: Ref of Flow
  • Proto-Index: 11

flowProperty

The quantity in which the amount is given.

internalId

The process internal ID of the exchange. This is used to identify exchanges unambiguously within a process (e.g. when linking exchanges in a product system where multiple exchanges with the same flow are allowed). The value should be >= 1.

isAvoidedProduct

Indicates whether this exchange is an avoided product (or waste flow). Note that there is a difference in the data model and the openLCA user interface: in the user interface avoided products (waste flows) are shown as outputs (inputs) but in the data model avoided products (waste flows) have isInput set to true (false). The reason for this is, that it is (maybe) more understandable in the user interface that the production (treatment) of some other product (waste) is avoided this way. However, openLCA links product inputs and waste outputs to providers. Avoided flows are linked in the same way but with a negative sign so that the respective upstream (downstream) chain is subtracted effectively from the result. This is why in the data model we have the isInput property set according to this linking logic.

isInput

isQuantitativeReference

Indicates whether the exchange is the quantitative reference of the process.

location

uncertainty

unit

  • Type: Ref of Unit
  • Proto-Index: 19

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Exchange:
  amount: float
  amount_formula: str
  base_uncertainty: float
  cost_formula: str
  cost_value: float
  currency: Ref
  default_provider: Ref
  description: str
  dq_entry: str
  flow: Ref
  flow_property: Ref
  internal_id: int
  is_avoided_product: bool
  is_input: bool
  is_quantitative_reference: bool
  location: Ref
  uncertainty: Uncertainty
  unit: Ref

JSON example

{
  "@type": "Exchange",
  "internalId": 1,
  "amount": 1.0,
  "isAvoidedProduct": false,
  "isInput": false,
  "isQuantitativeReference": true,
  "flow": {
    "@type": "Flow",
    "@id": "54290a29-8baa-495c-84b3-db212c75f7b7",
    "name": "Steel"
  },
  "unit": {
    "@type": "Unit",
    "@id": "20aadc24-a391-41cf-b340-3e4529f44bde",
    "name": "kg"
  },
  "flowProperty": {
    "@type": "FlowProperty",
    "@id": "93a60a56-a3c8-11da-a746-0800200b9a66",
    "name": "Mass"
  },
  "description": "This is an example output of 1 kg steel."
}

ProcessDocumentation

Properties

@type

Inherited from Entity.@type

completenessDescription

creationDate

dataCollectionDescription

dataDocumentor

dataGenerator

dataSelectionDescription

dataSetOwner

dataTreatmentDescription

geographyDescription

intendedApplication

inventoryMethodDescription

isCopyrightProtected

modelingConstantsDescription

projectDescription

publication

restrictionsDescription

reviewDetails

reviewer

samplingDescription

sources

  • Type: List of Ref of Source
  • Proto-Index: 21

technologyDescription

timeDescription

validFrom

validUntil

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ProcessDocumentation:
  completeness_description: str
  creation_date: str
  data_collection_description: str
  data_documentor: Ref
  data_generator: Ref
  data_selection_description: str
  data_set_owner: Ref
  data_treatment_description: str
  geography_description: str
  intended_application: str
  inventory_method_description: str
  is_copyright_protected: bool
  modeling_constants_description: str
  project_description: str
  publication: Ref
  restrictions_description: str
  review_details: str
  reviewer: Ref
  sampling_description: str
  sources: List[Ref]
  technology_description: str
  time_description: str
  valid_from: str
  valid_until: str

SocialAspect

An instance of this class describes a social aspect related to a social indicator in a process.

Properties

@type

Inherited from Entity.@type

activityValue

The value of the activity variable of the related indicator.

comment

quality

A data quality entry, e.g. (3,1,2,4,1).

rawAmount

The raw amount of the indicator's unit of measurement (not required to be numeric currently)

riskLevel

socialIndicator

source

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class SocialAspect:
  activity_value: float
  comment: str
  quality: str
  raw_amount: str
  risk_level: RiskLevel
  social_indicator: Ref
  source: Ref

ProductSystem

A product system describes the supply chain of a product (the functional unit) ...

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

parameterSets

A list of possible sets of parameter redefinitions for this product system.

The process links of the product system.

processes

The descriptors of all processes and sub-systems that are contained in the product system.

  • Type: List of Ref
  • Proto-Index: 12

refExchange

The exchange of the reference processes (typically the product output) that provides the flow of the functional unit of the product system.

refProcess

The descriptor of the process that provides the flow of the functional unit of the product system.

targetAmount

The flow amount of the functional unit of the product system.

targetFlowProperty

The flow property in which the flow amount of the functional unit is given.

targetUnit

The unit in which the flow amount of the functional unit is given.

  • Type: Ref of Unit
  • Proto-Index: 17

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ProductSystem:
  id: str
  category: str
  description: str
  last_change: str
  name: str
  parameter_sets: List[ParameterRedefSet]
  process_links: List[ProcessLink]
  processes: List[Ref]
  ref_exchange: ExchangeRef
  ref_process: Ref
  tags: List[str]
  target_amount: float
  target_flow_property: Ref
  target_unit: Ref
  version: str

JSON example

{
  "@type": "ProductSystem",
  "@id": "e673be33-b071-4ba2-9097-5b77a9c3ced2",
  "name": "Ingot casting",
  "refProcess": {
    "@type": "Process",
    "@id": "55fd27b1-c73d-4a76-b560-cfc461e81efd",
    "name": "Ingot casting"
  },
  "refExchange": {
    "@type": "ExchangeRef",
    "internalId": 1
  },
  "targetAmount": 1.0,
  "targetFlowProperty": {
    "@type": "FlowProperty",
    "@id": "93a60a56-a3c8-11da-a746-0800200b9a66",
    "name": "Mass"
  },
  "targetUnit": {
    "@type": "Unit",
    "@id": "20aadc24-a391-41cf-b340-3e4529f44bde",
    "name": "kg"
  },
  "processes": [
    {
      "@type": "Process",
      "@id": "55fd27b1-c73d-4a76-b560-cfc461e81efd",
      "name": "Ingot casting"
    },
    {
      "@type": "Process",
      "@id": "41b31d77-5223-47a1-a24a-153ac1a9f670",
      "name": "Electrolysis"
    }
  ],
  "processLinks": [
    {
      "@type": "ProcessLink",
      "provider": {
        "@type": "Process",
        "@id": "41b31d77-5223-47a1-a24a-153ac1a9f670",
        "name": "Electrolysis"
      },
      "flow": {
        "@type": "Flow",
        "@id": "b55f8bd2-404d-4830-b053-4731e36668b9",
        "name": "liquid aluminium"
      },
      "process": {
        "@type": "Process",
        "@id": "55fd27b1-c73d-4a76-b560-cfc461e81efd",
        "name": "Ingot casting"
      },
      "exchange": {
        "@type": "ExchangeRef",
        "internalId": 2
      }
    }
  ]
}

ParameterRedefSet

An instance of this class is just a set of parameter redefinitions attached to a product system. It can have a name and a description. One of the parameter sets can be defined as the baseline of the product system. In the calculation the baseline set is then taken by default.

Properties

@type

Inherited from Entity.@type

description

A description of the parameter set.

isBaseline

Indicates if this set of parameter redefinitions is the baseline for a product system.

name

The name of the parameter set.

parameters

The parameter redefinitions of this redefinition set.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ParameterRedefSet:
  description: str
  is_baseline: bool
  name: str
  parameters: List[ParameterRedef]

ProcessLink

A process link is a connection between two processes in a product system.

Properties

@type

Inherited from Entity.@type

exchange

The exchange of the linked process (this is useful if the linked process has multiple exchanges with the same flow that are linked to different provides, e.g. in an electricity mix).

flow

The descriptor of the flow that is exchanged between the two processes.

process

The descriptor of the process that is linked to the provider.

provider

A reference to a process, product system, or result that provides the product or a waste (treatment) flow.

  • Type: Ref
  • Proto-Index: 5

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ProcessLink:
  exchange: ExchangeRef
  flow: Ref
  process: Ref
  provider: Ref

JSON example

{
  "@type": "ProcessLink",
  "provider": {
    "@type": "Process",
    "@id": "41b31d77-5223-47a1-a24a-153ac1a9f670",
    "name": "Electrolysis"
  },
  "flow": {
    "@type": "Flow",
    "@id": "b55f8bd2-404d-4830-b053-4731e36668b9",
    "name": "liquid aluminium"
  },
  "process": {
    "@type": "Process",
    "@id": "55fd27b1-c73d-4a76-b560-cfc461e81efd",
    "name": "Ingot casting"
  },
  "exchange": {
    "@type": "ExchangeRef",
    "internalId": 1
  }
}

Project

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

impactMethod

isWithCosts

isWithRegionalization

nwSet

  • Type: NwSet
  • Proto-Index: 13

variants

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Project:
  id: str
  category: str
  description: str
  impact_method: Ref
  is_with_costs: bool
  is_with_regionalization: bool
  last_change: str
  name: str
  nw_set: NwSet
  tags: List[str]
  variants: List[ProjectVariant]
  version: str

ProjectVariant

Properties

@type

Inherited from Entity.@type

allocationMethod

amount

description

isDisabled

name

parameterRedefs

productSystem

unit

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ProjectVariant:
  allocation_method: AllocationType
  amount: float
  description: str
  is_disabled: bool
  name: str
  parameter_redefs: List[ParameterRedef]
  product_system: Ref
  unit: Ref

Result

A calculation result of a product system.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

flowResults

An array of FlowResult objects.

impactMethod

A reference to the ImpactMethod that was used to calculate the result.

impactResults

An array of ImpactResult objects.1

productSystem

A reference to the ProductSystem from which this result was calculated.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Result:
  id: str
  category: str
  description: str
  flow_results: List[FlowResult]
  impact_method: Ref
  impact_results: List[ImpactResult]
  last_change: str
  name: str
  product_system: Ref
  tags: List[str]
  version: str

FlowResult

A calculation result of a flow.

Properties

@type

Inherited from Entity.@type

amount

description

flow

The flow reference.

flowProperty

The flow property in which the amount of the result is given. If missing, the amount is expected to be given in the reference flow property of the flow.

isInput

Indicates whether the flow is an input or not.

isRefFlow

true if this is the quantitative reference flow of the result.

location

The location of this flow result in case of a regionalized result.

unit

The unit in which the amount of the result is given. If missing, the amount is expected to be given in the reference unit of the flow.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class FlowResult:
  amount: float
  description: str
  flow: Ref
  flow_property: Ref
  is_input: bool
  is_ref_flow: bool
  location: Ref
  unit: Ref

ImpactResult

A calculation result of an impact assessment category.

Properties

@type

Inherited from Entity.@type

amount

The value the result.

description

indicator

The impact assessment category.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ImpactResult:
  amount: float
  description: str
  indicator: Ref

SocialIndicator

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

activityQuantity

The quantity of the activity variable.

activityUnit

The unit of the activity variable.

  • Type: Ref of Unit
  • Proto-Index: 11

activityVariable

The name of the activity variable of the indicator.

evaluationScheme

Documentation of the evaluation scheme of the indicator.

unitOfMeasurement

The unit in which the indicator is measured.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class SocialIndicator:
  id: str
  activity_quantity: Ref
  activity_unit: Ref
  activity_variable: str
  category: str
  description: str
  evaluation_scheme: str
  last_change: str
  name: str
  tags: List[str]
  unit_of_measurement: str
  version: str

JSON example

{
  "@type": "SocialIndicator",
  "@id": "685bea55-61bf-44e5-87c3-71038cebd0b0",
  "name": "Gender wage gap",
  "category": "Discrimination",
  "activityVariable": "Worker hours",
  "activityQuantity": {
    "@type": "FlowProperty",
    "@id": "c0447923-0e60-4b3c-97c2-a86dddd9eea5",
    "name": "Duration"
  },
  "activityUnit": {
    "@type": "Unit",
    "@id": "227a54d9-44e7-468c-b8bb-f2dd1ae68c7a",
    "name": "h"
  },
  "unitOfMeasurement": "%",
  "evaluationScheme": "0% = no risk; 0% - <5% and 0% - >-5%= very low risk; 5% - <10% and -5% - >-10% = low risk; 10% - <20% and -10% - >-20% = medium risk; 20% - <30% and -20% - >-30% = high risk; >=30% and <=-30 = very high risk; n.a. = no data"
}

Source

A source is a literature reference.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

externalFile

A direct link (relative or absolute URL) to the source file.

textReference

The full text reference of the source.

url

A URL that points to the source.

year

The publication year of the source.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Source:
  id: str
  category: str
  description: str
  external_file: str
  last_change: str
  name: str
  tags: List[str]
  text_reference: str
  url: str
  version: str
  year: int

UnitGroup

A group of units that can be converted into each other.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

Inherited from RootEntity.category

lastChange

Inherited from RootEntity.lastChange

tags

Inherited from RootEntity.tags

version

Inherited from RootEntity.version

defaultFlowProperty

Some LCA data formats do not have the concept of flow properties or quantities. This field provides a default link to a flow property for units that are contained in this group.

units

The units of the unit group.

  • Type: List of Unit
  • Proto-Index: 11

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class UnitGroup:
  id: str
  category: str
  default_flow_property: Ref
  description: str
  last_change: str
  name: str
  tags: List[str]
  units: List[Unit]
  version: str

JSON example

{
  "@type": "UnitGroup",
  "@id": "93a60a57-a3c8-11da-a746-0800200c9a66",
  "name": "Units of energy",
  "category": "Technical unit groups",
  "defaultFlowProperty": {
    "@type": "FlowProperty",
    "@id": "f6811440-ee37-11de-8a39-0800200c9a66",
    "name": "Energy"
  },
  "units": [
    {
      "@type": "Unit",
      "@id": "52765a6c-3896-43c2-b2f4-c679acf13efe",
      "name": "MJ",
      "description": "Megajoule",
      "isRefUnit": true,
      "conversionFactor": 1.0
    },
    {
      "@type": "Unit",
      "@id": "86ad2244-1f0e-4912-af53-7865283103e4",
      "name": "kWh",
      "description": "Kilowatt times hour",
      "conversionFactor": 3.6
    }
  ]
}

Entity

The most generic type of the openLCA data model.

Properties

@type

The type of the entity. This field is only required when different types can occur in a given context (e.g. in a process link when a product input of a process can be linked to the output of process or a sub-system).

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Entity:

ExchangeRef

An instance of this class describes a reference to an exchange in a process. When we reference such an exchange we only need the information to indentify that exchange unambiguously in a process.

Properties

@type

Inherited from Entity.@type

internalId

The internal ID of the exchange.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ExchangeRef:
  internal_id: int

LinkingConfig

A configuration for auto-completion of product systems.

Properties

providerLinking

Defines how default providers of linkable product inputs and waste outputs are handled.

preferUnitProcesses

When there are multiple possible providers for linking product inputs or waste inputs, prefer unit processes when this property is set to true, and system processes otherwise.

cutoff

Applies a cutoff in the linking process. The cutoff is applied like the scaling factor in a sequential calculation. This only makes sense in a large mono-unit technosphere (e.g. input-output databases).

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class LinkingConfig:
  cutoff: float
  prefer_unit_processes: bool
  provider_linking: ProviderLinking

NwSet

A normalization and weighting set.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

factors

The list of normalization and weighting factors of this set.

weightedScoreUnit

This is the optional unit of the (normalized and) weighted score when this normalization and weighting set was applied on a LCIA result.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class NwSet:
  id: str
  description: str
  factors: List[NwFactor]
  name: str
  weighted_score_unit: str

NwFactor

A normalization and weighting factor of a NwSet related to an impact category. Depending on the purpose of the NwSet (normalization, weighting, or both) the normalization and weighting factor can be present or not.

Properties

@type

Inherited from Entity.@type

impactCategory

normalisationFactor

weightingFactor

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class NwFactor:
  impact_category: Ref
  normalisation_factor: float
  weighting_factor: float

ParameterRedef

A redefinition of a parameter in a product system.

Properties

@type

Inherited from Entity.@type

context

The context of the paramater (a process or LCIA method). If no context is provided it is assumed that this is a redefinition of a global parameter.

  • Type: Ref
  • Proto-Index: 2

description

A description of this parameter redefinition.

isProtected

name

The name of the redefined parameter. Note that parameter names are used in formulas so they need to follow specific syntax rules. A redefinition replaces a bound parameter in a specific context and thus has to exactly match the respective name.

uncertainty

An uncertainty distribution for the redefined parameter value.

value

The value of the redefined parameter.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ParameterRedef:
  context: Ref
  description: str
  is_protected: bool
  name: str
  uncertainty: Uncertainty
  value: float

Ref

A Ref is a reference to some entity. When serializing an entity (e.g. a Process) that references another standalone entity (e.g. a Flow in an Exchange) we do not want to write the complete referenced entity into the serialized JSON object but just a reference. However, the reference contains some meta-data like name, category path etc. that are useful to display.

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

The category path of the referenced entity, e.g. Elementary flows/Emissions to air/unspecified.

refUnit

This field is valid for references to entities which can have a (reference) unit, like flows, impact categories, or flow properties.

location

This field is only valid for references of processes or flows and contains the location name or code of that respective process or flow.

flowType

In case of a reference to a flow, this field can contain the type of flow that is referenced.

processType

In case of a reference to a process, this fiel can contain the type of process that is referenced.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Ref:
  id: str
  category: str
  description: str
  flow_type: FlowType
  location: str
  name: str
  process_type: ProcessType
  ref_unit: str

RefEntity

A RefEntity is an entity that can be identified by a reference ID (or UUID). In most cases this is a stand-alone entity (RootEntity) but there are also entities (e.g. Unit, NwSet) that need a unique ID, e.g. for reference data lists or mapping files.

Properties

@type

Inherited from Entity.@type

@id

The reference ID (or UUID) of this entity.

name

The name of the entity.

description

The description of the entity.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class RefEntity:
  id: str
  description: str
  name: str

RootEntity

A RootEntity is a stand-alone data set (like a Flow or Process).

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

category

A full path of the category. Forward slashes are used to separate the segments of this path, e.g. Elementary flows/emissions/air/unspecified.

lastChange

The timestamp when the entity was changed the last time.

tags

A list of optional tags. A tag is just a string which should not contain commas (and other special characters).

version

A version number in MAJOR.MINOR.PATCH format where the MINOR and PATCH fields are optional and the fields may have leading zeros (so 01.00.00 is the same as 1.0.0 or 1).

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class RootEntity:
  id: str
  category: str
  description: str
  last_change: str
  name: str
  tags: List[str]
  version: str

Uncertainty

Defines the parameter values of an uncertainty distribution. Depending on the uncertainty distribution type different parameters could be used.

Properties

@type

Inherited from Entity.@type

distributionType

The uncertainty distribution type

geomMean

The geometric mean value (used for log-normal distributions).

geomSd

The geometric standard deviation (used for log-normal distributions).

maximum

The maximum value (used for uniform and triangle distributions).

mean

The arithmetic mean (used for normal distributions).

minimum

The minimum value (used for uniform and triangle distributions).

mode

The most likely value (used for triangle distributions).

sd

The arithmetic standard deviation (used for normal distributions).

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Uncertainty:
  distribution_type: UncertaintyType
  geom_mean: float
  geom_sd: float
  maximum: float
  mean: float
  minimum: float
  mode: float
  sd: float

JSON example

{
  "@type": "Uncertainty",
  "distributionType": "NORMAL_DISTRIBUTION",
  "mean": 10.4,
  "sd": 1
}

Unit

An unit of measure

Properties

@type

Inherited from Entity.@type

@id

Inherited from RefEntity.@id

name

Inherited from RefEntity.name

description

Inherited from RefEntity.description

conversionFactor

The conversion factor to the reference unit of the unit group to which this unit belongs.

isRefUnit

Indicates whether the unit is the reference unit of the unit group to which this unit belongs. If it is the reference unit the conversion factor must be 1.0. There should be always only one reference unit in a unit group. The reference unit is used to convert amounts given in one unit to amounts given in another unit of the respective unit group.

synonyms

A list of synonyms for the unit.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class Unit:
  id: str
  conversion_factor: float
  description: str
  is_ref_unit: bool
  name: str
  synonyms: List[str]

JSON example

{
  "@type": "Unit",
  "@id": "52765a6c-3896-43c2-b2f4-c679acf13efe",
  "name": "MJ",
  "description": "Megajoule",
  "isRefUnit": true,
  "conversionFactor": 1.0
}

AllocationType

An enumeration type for allocation methods. This type is used to define the type of an AllocationFactor, the default allocation method of a multi-functional Process, or the allocation method in a CalculationSetup.

Items

PHYSICAL_ALLOCATION

  • Proto-Index: 1

ECONOMIC_ALLOCATION

  • Proto-Index: 2

CAUSAL_ALLOCATION

  • Proto-Index: 3

USE_DEFAULT_ALLOCATION

  • Proto-Index: 4

NO_ALLOCATION

  • Proto-Index: 5

Direction

Items

INPUT

  • Proto-Index: 1

OUTPUT

  • Proto-Index: 2

FlowPropertyType

An enumeration of flow property types.

Items

ECONOMIC_QUANTITY

  • Proto-Index: 1

PHYSICAL_QUANTITY

  • Proto-Index: 2

FlowType

The basic flow types.

Items

ELEMENTARY_FLOW

  • Proto-Index: 1

PRODUCT_FLOW

  • Proto-Index: 2

WASTE_FLOW

  • Proto-Index: 3

ModelType

An enumeration of the root entity types.

Items

ACTOR

  • Proto-Index: 1

CATEGORY

  • Proto-Index: 2

CURRENCY

  • Proto-Index: 3

DQ_SYSTEM

  • Proto-Index: 4

EPD

  • Proto-Index: 5

FLOW

  • Proto-Index: 6

FLOW_PROPERTY

  • Proto-Index: 7

IMPACT_CATEGORY

  • Proto-Index: 8

IMPACT_METHOD

  • Proto-Index: 9

LOCATION

  • Proto-Index: 10

PARAMETER

  • Proto-Index: 11

PROCESS

  • Proto-Index: 12

PRODUCT_SYSTEM

  • Proto-Index: 13

PROJECT

  • Proto-Index: 14

RESULT

  • Proto-Index: 15

SOCIAL_INDICATOR

  • Proto-Index: 16

SOURCE

  • Proto-Index: 17

UNIT_GROUP

  • Proto-Index: 18

ParameterScope

The possible scopes of parameters. Parameters can be defined globally, in processes, or impact categories. They can be redefined in calculation setups on the project and product system level, but the initial definition is always only global, in a process, or an LCIA category.

Items

PROCESS_SCOPE

Indicates that the evaluation scope of a parameter is the process where it is defined.

  • Proto-Index: 1

IMPACT_SCOPE

Indicates that the evaluation scope of a parameter is the impact category where it is defined.

  • Proto-Index: 2

GLOBAL_SCOPE

Indicates that the evaluation scope of a parameter is the global scope.

  • Proto-Index: 3

ProcessType

Items

LCI_RESULT

  • Proto-Index: 1

UNIT_PROCESS

  • Proto-Index: 2

ProviderLinking

Indicates how default providers of product inputs or waste outputs in processes should be considered in the linking of a product system.

Items

IGNORE_DEFAULTS

Default provider settings are ignored in the linking process. This means that the linker can also select another provider even when a default provider is set.

  • Proto-Index: 1

PREFER_DEFAULTS

When a default provider is set for a product input or waste output the linker will always select this process. For other exchanges it will select the provider according to its other rules.

  • Proto-Index: 2

ONLY_DEFAULTS

Means that links should be created only for product inputs or waste outputs where a default provider is defined which are then linked exactly to this provider.

  • Proto-Index: 3

RiskLevel

Items

NO_OPPORTUNITY

  • Proto-Index: 1

HIGH_OPPORTUNITY

  • Proto-Index: 2

MEDIUM_OPPORTUNITY

  • Proto-Index: 3

LOW_OPPORTUNITY

  • Proto-Index: 4

NO_RISK

  • Proto-Index: 5

VERY_LOW_RISK

  • Proto-Index: 6

LOW_RISK

  • Proto-Index: 7

MEDIUM_RISK

  • Proto-Index: 8

HIGH_RISK

  • Proto-Index: 9

VERY_HIGH_RISK

  • Proto-Index: 10

NO_DATA

  • Proto-Index: 11

NOT_APPLICABLE

  • Proto-Index: 12

UncertaintyType

Enumeration of uncertainty distribution types that can be used in exchanges, parameters, LCIA factors, etc.

Items

LOG_NORMAL_DISTRIBUTION

  • Proto-Index: 1

NORMAL_DISTRIBUTION

  • Proto-Index: 2

TRIANGLE_DISTRIBUTION

  • Proto-Index: 3

UNIFORM_DISTRIBUTION

  • Proto-Index: 4

CalculationSetup

Properties

target

The calculation target. This can be a reference to a process or product system.

  • Type: Ref
  • Proto-Index: 1

impactMethod

The impact assessment method that should be used for the calculation.

nwSet

A reference to a normalization and weighting set.

parameters

A list of parameter redefinitions that should be applied in the calculation.

allocation

The allocation method that should be applied.

withCosts

Defines if cost results should be also calculated.

withRegionalization

Defines if regionalization should be applied.

amount

The amount of the reference flow of the calculation target for to which the result should be scaled.

unit

The unit of the target amount.

flowProperty

The flow property of the target amount.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class CalculationSetup:
  allocation: AllocationType
  amount: float
  flow_property: Ref
  impact_method: Ref
  nw_set: Ref
  parameters: List[ParameterRedef]
  target: Ref
  unit: Ref
  with_costs: bool
  with_regionalization: bool

CostValue

A value of a cost result.

Properties

currency

amount

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class CostValue:
  amount: float
  currency: Ref

EnviFlow

An intervention flow.

Properties

flow

The reference to the flow.

location

In case of regionalized calculations, an EnviFlow is a pair of flow and location.

isInput

Indicates whether this flow is an input or not.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class EnviFlow:
  flow: Ref
  is_input: bool
  location: Ref

EnviFlowValue

A result related to an intervention flow.

Properties

enviFlow

amount

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class EnviFlowValue:
  amount: float
  envi_flow: EnviFlow

ImpactValue

A value linked to an impact assessment category.

Properties

impactCategory

amount

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ImpactValue:
  amount: float
  impact_category: Ref

ResultState

Properties

@id

The ID of the result. This can be used to query the next state or to query the result when it is ready.

isReady

true if the result is ready.

isScheduled

true if the result is scheduled for calculation but not ready yet.

error

Contains an error message when the calculation of the result failed.

time

The time when the state was obtained as Unix time stamp (see https://www.unixtimestamp.com/).

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class ResultState:
  id: str
  error: str
  is_ready: bool
  is_scheduled: bool
  time: int

SankeyEdge

An edge (link) between two nodes in a [SankeyGraph]

Properties

nodeIndex

The index of node, where the product (waste) flow of the provider node is an input (output).

providerIndex

The index of the node, that produces (treats) the linked product (waste), thus has it as an output (input)

upstreamShare

The share of the total result of the provider node that is related to this link.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class SankeyEdge:
  node_index: int
  provider_index: int
  upstream_share: float

SankeyGraph

A data structure that contains elements for a Sankey diagram.

Properties

rootIndex

The index of the node that represents the quantitative reference of the graph. In order to create and layout a Sankey diagram, an LCA system is typically traversed in breadth-first order. When back-links of cycles in this traversal order are ignored, the (sub-) graph created by this traversal is a directed acyclic graph (DAG) with this root.

nodes

The nodes of the graph.

edges

The edges of the graph.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class SankeyGraph:
  edges: List[SankeyEdge]
  nodes: List[SankeyNode]
  root_index: int

SankeyNode

A node in a [SankeyGraph]

Properties

index

The (matrix) index of the node. This is used as the identifier of this node in the graph. For each linked technosphere flow in the system there can be only one node in the graph.

techFlow

The process-product or process-waste flow described by this node.

directResult

The direct contribution of the production (treatment) of the product (waste) flow described by this node to the total result of the system.

totalResult

The total result (upstream and direct) related to the production (treatment) of the product (waste) flow described by this node. Note that this product (waste) flow could be an input (output) of several processes in the system and all these instances are aggregated to a single node here. This is different than in the upstream contribution tree where these instances can be unrolled into multiple nodes (see [UpstreamNode]).

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class SankeyNode:
  direct_result: float
  index: int
  tech_flow: TechFlow
  total_result: float

SankeyRequest

A configuration request for calculating a [SankeyGraph] for a result.

Properties

impactCategory

The reference to the impact category if a graph based on the results of that impact category should be returned.

enviFlow

The reference to the intervention flow if a graph based on the results of that flow should be returned.

  • Type: optional EnviFlow
  • Proto-Index: 2

forCosts

If set to true, the returned graph will be based on the life cycle costing results of the system.

minShare

A cut-off rule based on the minimum result share of a node, that is the total result of that node (including direct and upstream contributions) divided by the total result of the system.

maxNodes

The maximum number of nodes that should be contained in the returned graph.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class SankeyRequest:
  envi_flow: EnviFlow
  for_costs: bool
  impact_category: Ref
  max_nodes: int
  min_share: float

TechFlow

A technosphere flow. These are flows that can be linked to product inputs are waste outputs. A technosphere flow has a provider, which can be a Process, ProductSystem, or Result.

Properties

provider

The reference to the provider of the flow.

  • Type: Ref
  • Proto-Index: 2

flow

The reference to the flow.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class TechFlow:
  flow: Ref
  provider: Ref

TechFlowValue

A value related to a technosphere flow.

Properties

techFlow

amount

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class TechFlowValue:
  amount: float
  tech_flow: TechFlow

UpstreamNode

A node in an upstream tree.

Properties

techFlow

The process (and product or waste flow) to which this upstream result is related.

result

The total result at the point of the supply chain represented by this node. This includes upstream and direct contributions.

directContribution

The direct contribution of the process at this point of the supply chain.

requiredAmount

The required amount of the process product that is needed at this point of the supply chain to fulfill the demand of the calculated system. This value is given in the reference unit of the respective product flow.

Python class stub

The snippet below shows the names of the properties of the corresponding Python class of the olca-schema package. Note that this is not the full class definition but just shows the names of the class and its properties.


@dataclass
class UpstreamNode:
  direct_contribution: float
  required_amount: float
  result: float
  tech_flow: TechFlow