Digital Traceability Events
Please note that this content is under development and is not ready for implementation. This status message will be updated as content development progresses.
Artifacts
Are maintained at https://test.uncefact.org/vocabulary/untp/dte/0/about
Stable Releases For Implementation
Version 1.0 stable release for production implementation is due Jan 2025
Release for Pilot Testing
Version 0.5.0 release artifacts can be used for pilot testing.
Latest Development Version
Latest development versions are used to reflect lessons learned from pilots but should not be used for either pilot testing or production purposes.
Version History
History of releases is available from the Version history page.
Visualization
A UNTP digital traceability event may be rendered in any format desired by the issuer. However a default Visualization is provided here and includes mapping of visual rendering elements to the Logical Data Model.
Overview
Traceability events are very lightweights collections of identifiers that specify the “what, when, where, why and how” of the products and facilities that constitute a value chain. The UNTP is based on the GS1 EPCIS standard for this purpose because it is an existing and proven mechanism for supply chain traceability. Note that UNTP supports but does not require the use of GS1 identifiers. The basic idea behind the traceability event structure is that any supply chain of any complexity can always be accurately modeled using a combination of four basic event types. An object event describes an action on specific product(s) such as an inspection. A transaction event describes the exchange of product(s) between two actors such as sale of goods between seller and buyer. An aggregation event describes the consolidation or de-consolidation of products such as stacking bales of cotton on a pallet for transportation. An association event describes the assembly of sub-components to make a composite product. Finally, a transformation event describes a manufacturing process that consumes input product(s) to create new output product(s). The UNTP uses these events in a decentralised architecture as the means to traverse the linked-data "graph" that represents the entire value-chain.
Conceptual Model
Requirements
The traceability event is designed to meet the following detailed requirements as well as the more general [UNTP Requirements(https://uncefact.github.io/spec-untp/docs/about/Requirements)]
ID | Name | Requirement Statement | Solution Mapping |
---|---|---|---|
TEV-01 | Sub-components | The traceability event MUST provide a mechanism to trace from a DPP representing a product assembly to the individual DPPs of each sub-assembly component part | Association Event |
TEV-02 | Consumed materials | The traceability event MUST provide a mechanism to trace a manufactured product DPP back to the DPPs representing batches of input materials that are consumed in manufacturing one or more output products. | Transformation Event |
TEV-03 | Aggregated bundles | When a DPP represents an aggregated bundle of similar items (eg a pallet of cotton bales) then the traceability event MUST provide a means to allocate the aggregate measures to each individual item (ie each bale) | Aggregation Event |
TEV-04 | Transportation | when a product (or consolidated consignment) is shipped from one physical location to another, the traceability event MUST provide a means to record the movement and associate sustainability measures such as transport emissions to the shipped bundle | Transaction event |
TEV-05 | items or quantities | Traceability events MUST work equally well whether the input or output items are individually serialised items or measured quantities (mass or volume) of a product class. | Items Quantity |
TEV-06 | IoT Sensor data | Traceability events will often be generated by or associated with physical sensor readings. In such cases, the traceability event SHOULD support the association of sensor data with the event | Sensor element |
TEV-07 | Time & Location | Traceability events MUST always record the timestamp and physical location of the event so that multiple events can be be connected in time and space | Event |
Logical Model
Core Vocabulary Documentation
The UNTP core types vocabulary defines the uniquely identified Linked Data entities such as Product, Location, Facility, Party, Standard, Regulation, Criteria, Declaration, Attestation, Endorsement. These entities provide the building blocks for construction of Digital Product Passports and Digital Conformity Credentials.
DTE Documentation
The UNTP Digital Traceability Events Vocabulary defines the core traceability event and it's variants including aggregation event, transformation event, association event, transaction event, and object event.
Implementation Guidance
Verifiable Credential
Digital Traceability Events are issued as Vierifiable credentials. Note that one UNTP Digital Traceability Event credential may contain multiple events.
Please refer to DPP VC Guidance for information about the use of the verifiaible credentials data model for UNTP.
Traceability Event
There are five types of traceability event which all extend the same abstract Event
model.
- A
TransformationEvent
describes manufacturing processes where input materials are consumed and/or assembled to create new output products. For example cotton thread is consumed to make woven cotton fabric. - An
AssociationEvent
is used to establish relationships between otherwise independent items. For example new tyres on a car. - An
AggregationEvent
describes the grouping (or un-grouping) of a quantity of similar items, usually for transport. For example the stacking of several bales of cotten onto a pallet. - A
TransactionEvent
represents the transfer of products between organisations or facilites. For example the sale of some cotton cloth from seller to buyer. - An
ObjectEvent
represents an action on an idividual item or quantity of product. For example an inspection or test of a battery.
Any value chain of any complexity can be represented as a combination of these types of events. However for UNTP value chain traceability, the most important event is the transformation event because it represents a manufacturing step that consumes inputs to create new outputs. When an identified output product (with it's digital product passport) can be traced to it's identified input products (each with their own digital product passport) then a linked set of credentials can be followed to define an entire value chain.
Transformation Event
This transformation event example describes the manufacture of a battery cell (output EPC) from an anode and a cathode (input EPC list) and a quantity of electrolyte (input quantity list).
"credentialSubject": [
{
"type": [
"TransformationEvent",
"Event"
],
"id": "https://events.sample.com/b681df10-c682-454a-b11b-d0b9374c01bd",
"processType": "Cell Manufacture",
"eventTime": "2024-09-01T12:00:00",
"action": "Add",
"disposition": "https://ref.gs1.org/cbv/Disp-active",
"bizStep": "https://ref.gs1.org/cbv/BizStep-commissioning",
"bizLocation": "https://plus.codes/8CGRC78W+MM",
"sensorElementList": [...],
"outputEPCList": [
{
"type": [
"Item"
],
"id": "https://id.gs1.org/01/09520123456788/21/12345",
"name": "EV battery 300Ah."
}
],
"inputEPCList": [
{
"type": [
"Item"
],
"id": "https://id.gs1.org/01/09520123456788/21/99876",
"name": "Graphite Anode"
},
{
"type": [
"Item"
],
"id": "https://id.gs1.org/01/09520123456788/21/99987",
"name": "Copper Cathode"
}
],
"inputQuantityList": [
{
"productId": "https://id.gs1.org/01/095201299876",
"productName": "Lithium electrolyte",
"quantity": 2,
"uom": "KGM"
}
],
"outputQuantityList": [...]
}
Association Event
This association event example describes the replacement of a new battery cell (child EPC) in an elctric vehicle (parent EPC).
"credentialSubject": [
{
"type": [
"AssociationEvent",
"Event"
],
"id": "https://events.sample.com/b681df10-c682-454a-b11b-d0b9374c01bd",
"processType": "Replace battery",
"eventTime": "2024-09-01T12:00:00",
"action": "Add",
"disposition": "https://ref.gs1.org/cbv/Disp-active",
"bizStep": "https://ref.gs1.org/cbv/BizStep-commissioning",
"bizLocation": "https://plus.codes/8CGRC78W+MM",
"sensorElementList": [...],
"parentEPC": {
"type": [
"Item"
],
"id": "https://sample-car-company/VIN-Number/12345678987654",
"name": "My Electric car."
},
"childEPCs": [
{
"type": [
"Item"
],
"id": "https://id.gs1.org/01/09520123456788/21/12345",
"name": "EV battery 3000Ah."
}
],
"childQuantityList": [...]
}
Aggregation Event
This aggregation event describes the packaging for shipment of two battery cells (child EPCs) into a battery consignment (parent EPC)
"credentialSubject": [
{
"type": [
"AggregationEvent",
"Event"
],
"id": "https://events.sample.com/b681df10-c682-454a-b11b-d0b9374c01bd",
"processType": "Packing",
"eventTime": "2024-09-01T12:00:00",
"action": "Add",
"disposition": "https://ref.gs1.org/cbv/Disp-active",
"bizStep": "https://ref.gs1.org/cbv/BizStep-commissioning",
"bizLocation": "https://id.gs1.org/414/9520123456788",
"sensorElementList": [...],
"parentEPC": {
"type": [
"Item"
],
"id": "https://consignments.com/1234567890",
"name": "shipment of batteries"
},
"childEPCs": [
{
"type": [
"Item"
],
"id": "https://id.gs1.org/01/09520123456788/21/12345",
"name": "EV battery 300Ah."
},
{
"type": [
"Item"
],
"id": "https://id.gs1.org/01/09520123456788/21/678910",
"name": "EV battery 300Ah."
}
],
"childQuantityList": [...]
}
Transaction Event
This trasnaction event describes the sale of 200 batteries (quantity list) from source party to destination party.
"credentialSubject": [
{
"type": [
"TransactionEvent",
"Event"
],
"id": "https://events.sample.com/b681df10-c682-454a-b11b-d0b9374c01bd",
"processType": "shipping",
"eventTime": "2024-09-01T12:00:00",
"action": "Add",
"disposition": "https://ref.gs1.org/cbv/Disp-active",
"bizStep": "https://ref.gs1.org/cbv/BizStep-commissioning",
"bizLocation": "https://plus.codes/8CGRC78W+MM",
"sensorElementList": [...],
"sourcePartyId": "https://somebusinessregister/ID/9988765443",
"destinationPartyId": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"bizTransaction": "https://ref.gs1.org/cbv/BTT-prodorder",
"epcList": [...],
"quantityList": [
{
"productId": "https://id.gs1.org/01/09520123456788",
"productName": "EV battery 300Ah.",
"quantity": 200,
"uom": "KGM"
}
]
}
Object Event
This object event describes the repair of a battery cell (EPC list).
"credentialSubject": [
{
"type": [
"ObjectEvent",
"Event"
],
"id": "https://events.sample.com/b681df10-c682-454a-b11b-d0b9374c01bd",
"processType": "Repair",
"eventTime": "2024-09-01T12:00:00",
"action": "Add",
"disposition": "https://ref.gs1.org/cbv/Disp-active",
"bizStep": "https://ref.gs1.org/cbv/BizStep-commissioning",
"bizLocation": "https://id.gs1.org/414/9520123456788",
"sensorElementList": [...],
"epcList": [
{
"type": [
"Item"
],
"id": "https://id.gs1.org/01/09520123456788/21/12345",
"name": "EV battery 300Ah."
}
],
"quantityList": [...]
}
Item
The item structure is desinged to represent serialised items such as a specific battery cell.
"epcList": [
{
"type": [
"Item",
"Entity"
],
"id": "https://id.gs1.org/01/09520123456788/21/12345",
"name": "EV battery 300Ah.",
"registeredId": "90664869327",
"idScheme": {
"type": [
"IdentifierScheme"
],
"id": "https://id.gs1.org/01/",
"name": "Global Trade Identification Number (GTIN)"
}
},
Quantity Element
THe quantity element structure is designed to represent a measured quantity of lithium hydroxide.
"quantityList": [
{
"product": {
"type": [
"Entity"
],
"id": "https://sampleRegister.com/material/876544321",
"name": "Lithium hydroxide",
"registeredId": "876544321",
"idScheme": {
"type": [
"IdentifierScheme"
],
"id": "https://sampleRegister.com/material",
"name": "Register of mining products"
}
},
"quantity": 20,
"uom": "KGM"
},
Sensor Element
The sensort element structure accomodates the association of one or more sensor readings to a given event. Each reading is measured by an identified sensor.
"sensorElementList": [
{
"sensorMetadata": {
"device": {
"type": [
"Item"
],
"id": "https://sampledeviceregister.com/123456",
"name": "Temperature sensor",
"registeredId": "123456",
"idScheme": {
"type": [
"IdentifierScheme"
],
"id": "https://sampledeviceregister.com",
"name": "Sample sensor device register"
}
},
"dataProcessingMethod": "https://standards.org/sensorMethod#1234"
},
"sensorReport": [
{
"time": "2024-07-24T12:00:00",
"sensorType": "https://samplesensors.com/model1234",
"value": 25,
"uom": "KGM"
},
{
"time": "2024-07-24T12:00:00",
"sensorType": "https://samplesensors.com/model1234",
"value": 25,
"uom": "KGM"
}
],
"sensorIntegrityProof": "..."
}
],