Section 1
COMET as Semantic Middleware
Carbon data today is produced in dozens of proprietary formats across LCA tools, ERP systems, registries, and supplier platforms. Each destination—CBAM declarations, PCF exchanges, carbon credit registries—demands a different schema. COMET resolves this by acting as a semantic middleware layer: a shared namespace that any producer can annotate into and any consumer can query from, without bilateral integration agreements.
The mechanism is JSON-LD @context injection. Any existing payload gains interoperability by referencing the COMET context document. OWL class equivalences allow reasoners to infer alignment across standards automatically.
Data Producers
Supplier Platforms & Tools
Supplier platforms, LCA tools (SimaPro, openLCA), ERP systems, carbon registries. Proprietary formats.
COMET Vocabulary Layer
Shared Namespace
JSON-LD @context injection. Shared namespace. OWL class alignment. SHACL validation.
Data Consumers
Buyers, Regulators & Markets
Industrial buyers, CBAM declarants, carbon verifiers, ESG funds, regulators, carbon markets.
Section 2
WBCSD PACT v3 Integration
WBCSD PACT v3 (Partnership for Carbon Transparency) is the leading interoperability framework for product-level carbon footprints. COMET provides a complete semantic overlay for every PACT v3 field, enabling PACT payloads to be annotated with COMET context and consumed by any COMET-aware system without data transformation.
2a. Field Mapping: ProductFootprint & CarbonFootprint
| PACT v3 Field | Type | COMET Class | COMET Property | Notes |
|---|---|---|---|---|
| id | UUID | comet-pcf:ProductCarbonFootprint | pcfId | Primary identifier |
| specVersion | String | — | — | Protocol version |
| version | Integer | — | dcterms:version | Payload version |
| created | DateTime | — | dcterms:created | |
| updated | DateTime | — | dcterms:modified | |
| status | Enum | — | — | Active/Deprecated |
| validityPeriodStart | DateTime | comet:TimePeriod | startDate | |
| validityPeriodEnd | DateTime | comet:TimePeriod | endDate | |
| companyName | String | comet:Organization | orgName | |
| companyIds | URN[] | comet:Organization | orgId | LEI, DUNS |
| productDescription | String | comet:Material | materialName | |
| productIds | URN[] | comet:Material | materialId | GTIN |
| productCategoryCpc | String | comet:Material | cpcCode | UN CPC |
| productNameCompany | String | comet:Material | tradeName | |
| pcf.declaredUnit | Enum | comet-pcf:FunctionalUnit | qudtUnit | QUDT binding |
| pcf.unitaryProductAmount | Decimal | comet-pcf:FunctionalUnit | qudtValue | |
| pcf.pCfExcludingBiogenic | Decimal | comet-pcf:PCF | fossilGWP | kgCO2e/unit |
| pcf.pCfIncludingBiogenic | Decimal | comet-pcf:PCF | totalGWP | |
| pcf.fossilGhgEmissions | Decimal | comet-pcf:PCF | fossilEmissions | |
| pcf.biogenicCarbonContent | Decimal | comet-pcf:BiogenicCarbon | biogenicCarbonContent | |
| pcf.dLucGhgEmissions | Decimal | comet-pcf:BiogenicCarbon | landUseChange | |
| pcf.biogenicCarbonWithdrawal | Decimal | comet-pcf:BiogenicCarbon | biogenicUptake | |
| pcf.aircraftGhgEmissions | Decimal | comet-sc:TransportEvent | aircraftEmissions | |
| pcf.characterizationFactors | Enum | comet-ef:GWP100Value | ipccAR | AR5/AR6 |
| pcf.crossSectoralStandardsUsed | Enum[] | comet-pcf:StandardRef | standardName | |
| pcf.productOrSectorSpecificRules | Object[] | comet-pcf:PCRReference | pcrName | |
| pcf.boundaryProcessesDescription | String | comet-pcf:SystemBoundary | description | |
| pcf.referencePeriodStart | DateTime | comet:TimePeriod | startDate | |
| pcf.referencePeriodEnd | DateTime | comet:TimePeriod | endDate | |
| pcf.geographyCountry | ISO3166 | comet:Site | siteCountry | |
| pcf.geographyRegionOrSubregion | Enum | comet-ef:GeographyScope | region | |
| pcf.exemptedEmissionsPercent | Decimal | comet-pcf:PCF | exemptedPercent | |
| pcf.primaryDataShare | Decimal | comet-sc:PrimaryDataShare | sharePercent | 0–100 |
| pcf.dqi.coveragePercent | Decimal | comet-sc:DQI | coverageDQI | |
| pcf.dqi.technologicalDQR | Decimal | comet-sc:DQI | technologyDQI | 1–3 |
| pcf.dqi.temporalDQR | Decimal | comet-sc:DQI | temporalityDQI | 1–3 |
| pcf.dqi.geographicalDQR | Decimal | comet-sc:DQI | geographyDQI | 1–3 |
| pcf.dqi.completenessDQR | Decimal | comet-sc:DQI | reliabilityDQI | 1–3 |
| pcf.assurance.assurance | Boolean | comet-ver:AssuranceLevel | hasAssurance | |
| pcf.assurance.level | Enum | comet-ver:AssuranceLevel | levelType | limited/reasonable |
| pcf.assurance.providerName | String | comet-ver:QualifiedVerifier | verifierName | |
| pcf.assurance.completedAt | DateTime | comet-ver:VerificationClaim | verificationDate | |
| pcf.assurance.standardName | String | comet-ver:VerificationClaim | standardRef | |
| pcf.allocationRulesDescription | String | comet-pcf:AllocationMethod | description | |
| pcf.packagingGhgEmissions | Decimal | comet-pcf:PCF | packagingEmissions |
2b. Complete PACT v3 Payload with COMET Context
JSON-LD — PACT v3 Product Carbon Footprint with COMET Context Injection
{
"@context": [
"https://wbcsd.github.io/pact/v3/context.json",
"https://comet.carbon/v1/jsonld/context.json"
],
"@type": "comet-pcf:ProductCarbonFootprint",
"id": "urn:uuid:b1c4a89e-3c2d-4f5a-b6e7-d8f9a0b1c2d3",
"specVersion": "3.0.0",
"version": 1,
"created": "2025-03-15T10:30:00Z",
"status": "Active",
"companyName": "Stahl AG",
"companyIds": ["urn:lei:5299000J2N45DDNE4Y28"],
"productDescription": "Hot-rolled steel coil, basic oxygen furnace route",
"productIds": ["urn:gtin:04012345678901"],
"productCategoryCpc": "4121",
"pcf": {
"declaredUnit": "kilogram",
"unitaryProductAmount": 1,
"pCfExcludingBiogenic": 1.85,
"fossilGhgEmissions": 1.85,
"biogenicCarbonContent": 0,
"characterizationFactors": "AR6",
"crossSectoralStandardsUsed": ["ISO14067"],
"boundaryProcessesDescription": "Cradle-to-gate: iron ore extraction through hot rolling",
"referencePeriodStart": "2024-01-01T00:00:00Z",
"referencePeriodEnd": "2024-12-31T23:59:59Z",
"geographyCountry": "DE",
"primaryDataShare": 78.5,
"dqi": {
"coveragePercent": 85.0,
"technologicalDQR": 1.5,
"temporalDQR": 1.0,
"geographicalDQR": 1.0,
"completenessDQR": 2.0
},
"assurance": {
"assurance": true,
"coverage": "PCF system",
"level": "limited",
"providerName": "Bureau Veritas",
"completedAt": "2025-02-28T00:00:00Z",
"standardName": "ISO 14064-3"
}
}
}
2c. PACT REST API Endpoints
| Method | Endpoint | Description | COMET Context |
|---|---|---|---|
| POST | /auth/token | OAuth2 client credentials | Authentication |
| GET | /2/footprints | List all footprints | Array of comet-pcf:ProductCarbonFootprint |
| GET | /2/footprints/{id} | Get single footprint | Single comet-pcf:ProductCarbonFootprint |
| POST | /2/events | Publish events | PF update notifications |
Section 3
EU CBAM Declaration Mapping
The EU Carbon Border Adjustment Mechanism (Regulation 2023/956) requires importers to declare embedded emissions for iron, steel, aluminium, cement, fertilisers, electricity, and hydrogen. COMET provides a dedicated comet-pcf:CBAMDeclaration class that maps directly to the CBAM XML schema issued by DG TAXUD, enabling automated declaration generation from structured COMET data.
3a. CBAM Field Mapping
| CBAM Field | Regulation Ref | COMET Class | COMET Property | Type |
|---|---|---|---|---|
| Authorised declarant | Art. 5 | comet:Organization | orgId (EORI) | String |
| CN code | Annex I | comet-pcf:CBAMDeclaration | cnCode | 8-digit |
| Country of origin | Art. 35 | comet:Site | siteCountry | ISO 3166 |
| Installation ID | Art. 10 | comet:Site | siteId | String |
| Specific embedded emissions | Art. 7 | comet-pcf:EmbeddedEmissions | specificEmbeddedEmissions | tCO2e/t |
| Direct emissions | Art. 7(2)(a) | comet-pcf:EmbeddedEmissions | directEmissions | tCO2e/t |
| Indirect emissions | Art. 7(2)(b) | comet-pcf:EmbeddedEmissions | indirectEmissions | tCO2e/t |
| Production route | Annex IV | comet-pcf:EmbeddedEmissions | productionRoute | String |
| Carbon price paid | Art. 9 | comet-mkt:CBAMShadowTariff | thirdCountryCarbonPrice | EUR |
| EU ETS benchmark | Art. 31 | comet-mkt:MarketBenchmark | benchmarkValue | tCO2e/t |
| Quantity imported | Art. 35 | comet-pcf:FunctionalUnit | qudtValue | tonnes |
| Reporting period | Art. 35 | comet:TimePeriod | startDate/endDate | ISO 8601 |
| Verification | Art. 8, 18 | comet-ver:VerificationClaim | — | Object |
| Precursor emissions | Annex IV | comet-sc:SupplyChainLink | — | Object |
3b. CBAM XML with COMET Namespace Annotations
XML — CBAM Declaration with COMET Namespace Annotations
<?xml version="1.0" encoding="UTF-8"?> <cbam:CBAMDeclaration xmlns:cbam="urn:ec:taxud:cbam:v1" xmlns:comet="https://comet.carbon/v1/core#" xmlns:comet-pcf="https://comet.carbon/v1/pcf#" xmlns:comet-mkt="https://comet.carbon/v1/market#" xmlns:comet-ver="https://comet.carbon/v1/ver#"> <cbam:declarant> <comet:Organization> <comet:orgId type="EORI">DE123456789012345</comet:orgId> <comet:orgName>Stahl Import GmbH</comet:orgName> </comet:Organization> </cbam:declarant> <cbam:reportingPeriod> <comet:TimePeriod> <comet:startDate>2026-01-01</comet:startDate> <comet:endDate>2026-03-31</comet:endDate> </comet:TimePeriod> </cbam:reportingPeriod> <cbam:goods> <cbam:goodsItem> <comet-pcf:CBAMDeclaration> <comet-pcf:cnCode>72081000</comet-pcf:cnCode> <comet-pcf:embeddedEmissions> <comet-pcf:specificEmbeddedEmissions unit="tCO2e/t">1.85</comet-pcf:specificEmbeddedEmissions> <comet-pcf:directEmissions unit="tCO2e/t">1.62</comet-pcf:directEmissions> <comet-pcf:indirectEmissions unit="tCO2e/t">0.23</comet-pcf:indirectEmissions> <comet-pcf:productionRoute>Basic Oxygen Furnace (BOF)</comet-pcf:productionRoute> </comet-pcf:embeddedEmissions> <comet:Site> <comet:siteCountry>TR</comet:siteCountry> <comet:siteId>TR-INSTALL-2024-0847</comet:siteId> </comet:Site> <comet-mkt:CBAMShadowTariff> <comet-mkt:euETSPrice currency="EUR">68.50</comet-mkt:euETSPrice> <comet-mkt:thirdCountryCarbonPrice currency="EUR">12.00</comet-mkt:thirdCountryCarbonPrice> </comet-mkt:CBAMShadowTariff> <comet-pcf:FunctionalUnit> <comet-pcf:qudtValue>500</comet-pcf:qudtValue> <comet-pcf:qudtUnit>tonne</comet-pcf:qudtUnit> </comet-pcf:FunctionalUnit> </comet-pcf:CBAMDeclaration> </cbam:goodsItem> </cbam:goods> <cbam:verification> <comet-ver:VerificationClaim> <comet-ver:verifierName>Bureau Veritas</comet-ver:verifierName> <comet-ver:assuranceLevel>limited</comet-ver:assuranceLevel> <comet-ver:standardRef>ISO 14064-3:2019</comet-ver:standardRef> </comet-ver:VerificationClaim> </cbam:verification> </cbam:CBAMDeclaration>
3c. XSD Schema Fragment
XSD — COMET CBAMDeclarationType Schema Fragment
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:comet-pcf="https://comet.carbon/v1/pcf#" targetNamespace="https://comet.carbon/v1/pcf#"> <xs:complexType name="CBAMDeclarationType"> <xs:sequence> <xs:element name="cnCode" type="xs:string"/> <xs:element name="embeddedEmissions" type="comet-pcf:EmbeddedEmissionsType"/> <xs:element name="countryOfOrigin" type="xs:string"/> <xs:element name="applicableCarbonPrice" type="xs:decimal" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="EmbeddedEmissionsType"> <xs:sequence> <xs:element name="specificEmbeddedEmissions" type="xs:decimal"/> <xs:element name="directEmissions" type="xs:decimal"/> <xs:element name="indirectEmissions" type="xs:decimal"/> <xs:element name="productionRoute" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
Section 4
CAD Trust Integration
CAD Trust (Climate Action Data Trust) is the interoperability backbone for carbon credit registries, aggregating data from Verra VCS, Gold Standard, ACR, CAR, and others through a unified API. COMET maps all CAD Trust v2.0.2 entities, enabling carbon credit data to flow into COMET-aware procurement, financing, and compliance systems without bilateral registry integrations.
4a. Entity Mapping: CAD Trust v2.0.2
| CAD Trust Table | Key API Field | COMET Class | COMET Property | Notes |
|---|---|---|---|---|
| project | cadTrustProjectId | comet-ver:CADTrustAttestation | cadTrustProjectId | Primary linkage |
| project | projectRegistryName | comet-eac:CertificateRegistry | registryName | |
| project | projectSector | comet:Process | processType | CDM sectors |
| unit | unitSerialId | comet-eac:EAC | serialNumber | Credit ID |
| unit | unitType | comet-eac:EAC | unitType | Avoidance/Reduction/Removal |
| unit | unitVintageYear | comet-eac:EAC | vintageYear | |
| unit | unitStatus | comet-eac:EAC | unitStatus | Issued/Held/Retired/Cancelled |
| unit | unitCount | comet-eac:EAC | unitCount | |
| unit | unitRetirementBeneficiary | comet-eac:RetirementEvent | retirementBeneficiary | |
| verification | verificationBody | comet-ver:QualifiedVerifier | verifierName | VVB |
| validation | validationType | comet-ver:ValidationRecord | validationType | |
| label | labelType | comet-eac:EAC | labelType | Cert/Art.6 types |
| co_benefit | cobenefit | comet-eac:CoBenefit | sdgGoal | SDG 1–17 |
| rating | ratingType | comet-ver:Rating | ratingProvider | CDP/CCQI |
| program | programName | comet-eac:CertificateRegistry | programName | |
| estimation | estimationUnitCount | comet-sc:ActivityDataRecord | estimatedQuantity | |
| aef_t2 | authorization fields | comet-eac:Article6Authorization | — | Paris Art. 6 |
| aef_t3 | transfer fields | comet-eac:Article6Transfer | — | ITMO transfers |
4b. Carbon Credit JSON-LD with CAD Trust Attestation
JSON-LD — COMET Carbon Removal Certificate with CAD Trust Attestation
{
"@context": [
"https://comet.carbon/v1/jsonld/context.json",
"https://climateactiondata.org/api/v2/context.json"
],
"@type": "comet-eac:CarbonRemovalCert",
"comet-eac:serialNumber": "VCS-2847-2024-001-to-500",
"comet-eac:vintageYear": 2024,
"comet-eac:unitCount": 500,
"comet-eac:unitType": "Removal - technical",
"comet-eac:registry": {
"@type": "comet-eac:CertificateRegistry",
"comet-eac:registryName": "Verra VCS",
"comet-eac:registryURI": "https://registry.verra.org/"
},
"comet-ver:CADTrustAttestation": {
"cadTrustProjectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"cadTrustUnitId": "f0e1d2c3-b4a5-6789-0fed-cba987654321"
},
"comet:Site": {
"comet:siteCountry": "KE",
"comet:siteRegion": "Rift Valley"
},
"comet-ver:VerificationClaim": {
"comet-ver:verifierName": "DNV",
"comet-ver:assuranceLevel": "reasonable"
},
"comet-eac:CoBenefit": [
{ "sdgGoal": "SDG 13 - Climate action" },
{ "sdgGoal": "SDG 15 - Life on land" }
],
"comet-eac:RetirementEvent": {
"retirementBeneficiary": "Stahl AG",
"retirementDate": "2025-06-15"
}
}
Section 5
GHG Protocol Scope 3 Mapping
The GHG Protocol Corporate Value Chain (Scope 3) Standard defines 15 categories of indirect emissions. COMET classes cover 11 of the 15 categories directly, with the remaining four handled through composition. This table shows the primary COMET class responsible for each category and its expected use case in a corporate carbon accounting workflow.
| Cat | Description | COMET Class | Use Case |
|---|---|---|---|
| 1 | Purchased goods & services | comet-sc:SupplyChainLink + comet-pcf:PCF | Supplier PCF ingestion |
| 2 | Capital goods | comet-sc:SupplyChainLink | Asset embodied carbon |
| 3 | Fuel & energy activities | comet-ef:EmissionFactor | Well-to-tank factors |
| 4 | Upstream transport | comet-sc:TransportEvent | Logistics emissions |
| 5 | Waste in operations | comet-pcf:SystemBoundary | End-of-life module |
| 6 | Business travel | comet-sc:TransportEvent | Travel emissions |
| 7 | Employee commuting | comet-sc:TransportEvent | Commute estimates |
| 9 | Downstream transport | comet-sc:TransportEvent | Distribution |
| 11 | Use of sold products | comet-pcf:SystemBoundary | Use-phase |
| 12 | End-of-life treatment | comet-pcf:SystemBoundary | Disposal/recycling |
| 15 | Investments | comet-mkt:CarbonPremium | Financed emissions |
Section 6
JSON Schema for COMET PCF
This JSON Schema draft-07 document provides machine-readable validation for COMET ProductCarbonFootprint instances. It can be used directly in API validation pipelines, data quality gates, and SHACL-to-JSON toolchains. The schema enforces required fields, numeric constraints, and controlled vocabulary enumerations aligned with ISO 14067 and PACT v3.
JSON Schema — COMET ProductCarbonFootprint (draft-07)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://comet.carbon/v1/schema/pcf.json",
"title": "COMET ProductCarbonFootprint",
"type": "object",
"required": ["pcfId", "declaredUnit", "fossilGWP", "reportingPeriod", "organization"],
"properties": {
"pcfId": { "type": "string", "format": "uuid" },
"declaredUnit": {
"type": "string",
"enum": [
"kilogram", "liter", "cubic meter",
"kilowatt hour", "megajoule",
"tonne kilometre", "square meter"
]
},
"unitaryProductAmount": { "type": "number", "minimum": 0 },
"fossilGWP": {
"type": "number",
"minimum": 0,
"description": "kg CO2e per declared unit"
},
"totalGWP": { "type": "number" },
"biogenicCarbon": {
"type": "object",
"properties": {
"biogenicCarbonContent": { "type": "number" },
"biogenicUptake": { "type": "number" },
"landUseChange": { "type": "number" },
"indirectLUC": { "type": "number" }
}
},
"characterizationFactors": { "type": "string", "enum": ["AR5", "AR6"] },
"systemBoundary": {
"type": "string",
"enum": [
"cradle-to-gate", "gate-to-gate",
"cradle-to-grave", "cradle-to-cradle"
]
},
"allocationMethod": {
"type": "string",
"enum": [
"mass", "economic", "energy",
"physical-causality", "pcr-mandated"
]
},
"primaryDataShare": { "type": "number", "minimum": 0, "maximum": 100 },
"reportingPeriod": {
"type": "object",
"required": ["startDate", "endDate"],
"properties": {
"startDate": { "type": "string", "format": "date" },
"endDate": { "type": "string", "format": "date" }
}
},
"organization": {
"type": "object",
"required": ["orgName"],
"properties": {
"orgName": { "type": "string" },
"orgId": { "type": "string" },
"siteCountry": { "type": "string", "pattern": "^[A-Z]{2}$" }
}
},
"dataQuality": {
"type": "object",
"properties": {
"coveragePercent": { "type": "number", "minimum": 0, "maximum": 100 },
"technologicalDQR": { "type": "number", "minimum": 1, "maximum": 3 },
"temporalDQR": { "type": "number", "minimum": 1, "maximum": 3 },
"geographicalDQR": { "type": "number", "minimum": 1, "maximum": 3 },
"completenessDQR": { "type": "number", "minimum": 1, "maximum": 3 }
}
},
"verification": {
"type": "object",
"properties": {
"hasAssurance": { "type": "boolean" },
"level": { "type": "string", "enum": ["limited", "reasonable"] },
"verifierName": { "type": "string" },
"standardRef": { "type": "string" }
}
}
}
}
Section 7
OWL Turtle Formal Definition
The OWL Turtle representation provides the formal semantic grounding for COMET classes. OWL equivalence axioms link COMET terms to external ontologies (PACT, QUDT), enabling automated reasoning and cross-ontology alignment. SHACL shapes validate instance data against these class definitions at runtime.
OWL Turtle — COMET Class Definitions
@prefix comet-pcf: <https://comet.carbon/v1/pcf#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix pact: <https://wbcsd.github.io/pact/v3/ont#> . @prefix qudt: <http://qudt.org/schema/qudt/> . comet-pcf:ProductCarbonFootprint a owl:Class ; rdfs:label "Product Carbon Footprint"@en ; rdfs:comment "ISO 14067 product-level carbon footprint result"@en ; owl:equivalentClass pact:CarbonFootprint ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty comet-pcf:declaredUnit ; owl:cardinality 1 ] . comet-pcf:fossilGWP a owl:DatatypeProperty ; rdfs:label "Fossil GHG emissions"@en ; rdfs:domain comet-pcf:ProductCarbonFootprint ; rdfs:range xsd:decimal ; owl:equivalentProperty pact:pCfExcludingBiogenic ; qudt:unit qudt:KiloGM-CO2e . comet-pcf:CBAMDeclaration a owl:Class ; rdfs:label "CBAM Declaration"@en ; rdfs:comment "EU CBAM embedded emissions declaration per Reg. 2023/956"@en ; rdfs:subClassOf comet-pcf:ProductCarbonFootprint . comet-pcf:cnCode a owl:DatatypeProperty ; rdfs:label "Combined Nomenclature code"@en ; rdfs:domain comet-pcf:CBAMDeclaration ; rdfs:range xsd:string .