forked from wbcsd/data-exchange-protocol
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.bs
3102 lines (2271 loc) · 135 KB
/
index.bs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!--
Before publishing, make sure to:
- Add an entry to Changelog
- Update the DATE below
- STATUS can be Draft|Consultation|Release
In addition, for publishing a release:
Set STATUS Release
Update VERSION major.minor.patch
Update the Previous Version and TR links
-->
<pre class='metadata'>
Text Macro: DATE 20241212
Text Macro: VERSION 3.0.0-wip
Text Macro: STATUS Draft
Title: Technical Specifications for PCF Data Exchange
TR: https://wbcsd.github.io/tr/2024/data-exchange-protocol-20241024/
Previous Version: https://wbcsd.github.io/tr/2024/data-exchange-protocol-20240410/
Level: 1
Status: LD
Shortname: data-exchange-protocol
Mailing List: [email protected]
Editor: Gertjan Schuurmans (WBCSD), https://www.wbcsd.org, [email protected]
Former Editor: Beth Hadley (WBCSD), https://www.wbcsd.org, [email protected]
Former Editor: Martin Pompéry (SINE Foundation), https://sine.foundation, [email protected]
Former Editor: Cecilia Valeri (WBCSD), https://www.wbcsd.org, [email protected]
Former Editor: Raimundo Henriques (SINE Foundation), https://sine.foundation, [email protected]
Abstract: This document specifies a data model for GHG emission data at product level based on the PACT Methodology (previously Pathfinder Framework) Version 3, and a protocol for interoperable exchange of GHG emission data at product level.
Markup Shorthands: markdown yes, idl yes, dfn yes
Boilerplate: omit copyright, omit conformance
Local Boilerplate: header yes
Metadata Include: This version off
</pre>
# Introduction # {#intro}
This document contains the necessary technical foundation for the [=PACT Network=], an open and global network for emission data exchange.
The goal of this document is to enable the [=interoperable=] exchange of [=PCF|Product Carbon Footprints=] across [[#conformance|conforming]] [=host systems=].
The methodological foundation of the specification is the PACT Methodology Version 3.0, see [[!PACT-METHODOLOGY]].
## Status of This Document ## {#status}
Comments regarding this document are welcome. Please file issues directly on [GitHub](https://github.com/wbcsd/data-exchange-protocol/), or send them to [[email protected]](mailto:[email protected]).
This document was published by [Partnership for Carbon Transparency (PACT)](https://www.carbon-transparency.com/) after an update to the [[!PACT-METHODOLOGY|PACT Methodology]]) was made.
The technical specifications within this document are the result of consent processes by PACT members and the WBCSD.
PACT recommends the wide deployment of this specification.
## Scope ## {#scope}
The scope of this document is to reach interoperability for product-level GHG emission data exchange through the definition of a data model ([[#data-model]]) based on the [=PACT Methodology=] Version 3.0 and the definition of a HTTP REST API ([[#api]]).
## Intended Audience ## {#audience}
This technical specification is for
- software developers who want to build software for the exchange of product footprints according to the [=PACT Methodology=];
- auditors and sustainability experts who want to understand the data semantics of product footprints or how they are exchanged between partners; and
- anyone that wants to understand more about the technological foundations of the PACT Network.
## About PACT and the PACT Network ## {#about-pact}
The PACT (previously Pathfinder) Network is a concept developed by PACT and powered by the World Business Council for Sustainable Development (WBCSD). PACT is working toward the vision of an open and global network of interoperable solutions for the secure peer-to-peer exchange of accurate, primary and verified product emissions data – across all industries and value chains.
For further information, please refer to the [PACT website](https://www.carbon-transparency.com) and the [PACT Pathfinder Network Vision Paper](https://wbcsd.sharepoint.com/:b:/s/ClimateEnergy/EXuphu_V4FZHqG1R8sr1mz8B5bo6bhhF0DBHnWDQq-_vCQ?e=Tae0eR).
## Disclaimer ## {#disclaimer}
While PACT encourages the implementation of the technical specifications by all entities to start creating a harmonized system, neither PACT, WBCSD, nor any other individuals who contributed to the development of this document assume responsibility for any consequences or damages resulting directly or indirectly from the use of this document.
## Acknowledgements ## {#acknowledgements}
WBCSD would like to thank all PACT members, WBCSD staff, and others who shared their detailed and thoughtful input and contributed actively to the development of this document.
WBCSD would also like to express special thanks to the companies participating in the pilot for testing the [=interoperable=] exchange of GHG emissions data across different solutions, as well as to those [=Solution Providers=] who have contributed to this document.
## License ## {#section-license}
The license can be found in [[#license]].
# Terminology # {#terminology}
: <dfn>Data Model Extension</dfn>
::
A data model extension is a set of definitions that extends the data model of this document.
The encoding of a data model extension in the data model is specified in [[#dt-datamodelextension]].
See [[!DATA-MODEL-EXTENSIONS]] and [[!EXTENSIONS-GUIDANCE]] for further details.
: <dfn>Data recipient</dfn>
:: The company requesting and/or receiving [=PCF=] data from another company, using the technical means specified in this document.
: <dfn>Data owner</dfn>
:: The company exchanging PCF data with another company, using the technical means specified in this document.
: <dfn>interoperable</dfn>
:: The quality of being able to exchange data between [=host systems=] irrespective of the vendors of the host systems, without the need for translation or transformation of the data.
: Greenhouse Gas (emissions) (<dfn>GHG</dfn>)
:: Gaseous constituents of the atmosphere, both natural and anthropogenic, that absorb and emit radiation at specific wavelengths within the spectrum of infrared radiation emitted by the Earth’s surface, its atmosphere and clouds. GHGs include CDCO₂, Methane (CH4), Nitrous Oxide(N₂O), Hydrofluoro-Carbons (HFCs), Perfluorocarbons (PFCs) and Sulfur Hexafluoride (SF6).
: <dfn>OpenId Provider Configuration Document</dfn>
:: A `OpenId Provider Configuration Document` document provided in accordance with [[!OPENID-CONNECT]] Section 4
: Partnership for Carbon Transparency (<dfn>PACT</dfn>)
:: A WBCSD-led group of companies and organizations working together to develop a global and open network for the secure peer-to-peer exchange of accurate, primary and verified product emissions data. See [www.carbon-transparency.com](www.carbon-transparency.com) for more information.
: PACT Methodology Version 3.0 (<dfn>PACT Methodology</dfn>)
:: Guidance for the Accounting and Exchange of Product Life Cycle Emissions,
building on existing standards and protocols, such as the GHG Protocol
Product standard. Previously named PACT Framework.
See [[!PACT-METHODOLOGY]] for further details.
: <dfn>PACT Network</dfn>
:: An information network (previously Pathfinder Network) of and for companies to securely exchange environmental data with each other, with an initial focus on PCF data.
: Product Carbon Footprint (<dfn>PCF</dfn>)
:: The carbon (equivalent) emissions relating to a product. Products can be any kind of item exchanged between entities, including metric or volumetric quantities of a product.
The <{ProductFootprint}> data model is a digital representation of a PCF in accordance with the [=PACT Methodology=].
: <dfn>Solution Provider</dfn>
:: An entity providing technical solutions to companies by implementing and offering [=host systems=].
: <dfn>UN geographic region</dfn>, <dfn>UN geographic subregion</dfn>
:: See [https://unstats.un.org/unsd/methodology/m49/](https://unstats.un.org/unsd/methodology/m49/) for details.
# Conformance # {#conformance}
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHOULD, and SHOULD NOT in this document are to be interpreted as described in [[!RFC2119]] [[!RFC8174]] when, and only when, they appear in all capitals, as shown here.
A conforming [=host system=] is any algorithm realized as software and/or hardware that complies with the relevant normative statements in [[#api]].
A conforming requesting [=data recipient=] is any algorithm realized as software and/or hardware that complies with the relevant normative statements in [[#api]].
# Guidance and Business Cases # {#business-cases}
Note: This chapter is non-normative.
Due to the complexity and nature of global supply chains, achieving transparency in carbon emissions at the product level is a challenging task.
As the [[!PACT-METHODOLOGY|PACT Methodology Version 3.0]] provides the methodological foundations for calculating product carbon footprints (PCFs),
this specification focuses on enabling transparency through a peer-to-peer PCF data exchange by specifying necessary aspects for achieving interoperability, such as the [[#data-model|data model]] and [[#api|API]].
However, these two aspects can be combined in various ways to achieve different business objectives.
This chapter serves as a guidance to the technical specifications in general by providing examples for inter-company business cases related to the exchange of [=PCFs=].
The different business cases are explained in a structured way, with business objectives presented through the lenses of interoperable data exchange processes enabled by the
different aspects of this specification.
For now, this chapter focuses on asynchronous event processing. It will be expanded with additional business cases over time.
## Asynchronous Event Processing ## {#business-cases-async-events}
### The General Principles of Event Processing ### {#business-cases-async-events-principles}
1. A host system should strive to accept an event unless for the following reasons
1. event processing is not support by the host system
2. the syntax in the event is not supported (e.g. when the event failed “syntax checks” of the request host system)
2. Whenever a host system's `Event` endpoint returns an error response, no follow up response event (or error event) will be sent back to the original requester
3. The requested host system will attempt to always send a response event to the requesting host
system, **but the requesting host system should not rely on this behavior and retry after an
appropriate amount of time by sending another new request event.**
### Business Case 1: Requesting Product Footprints ### {#business-cases-async-events-1}
#### Context and Assumptions #### {#business-cases-async-events-1-context}
- This business case is triggered by a data recipient if they wish to access a Product Footprint <strong>they could not yet access through the `ListFootprints` API</strong>.
- The data recipient and data owner have a mutually agreed upon way to identify products.
#### Workflow #### {#business-cases-async-events-1-workflow}
A graphical representation of the workflow is given below. However, this flow is for illustrative
purposes only and does not replace or otherwise alter the text below the diagram.
Note: All requests to the `/events` endpoint require authentication (omitted from the diagram
below). See [[#api-auth]] for details.
<figure>
<img src="diagrams/events.svg" height="100%" width="100%" >
<figcaption>Event processing workflow.</figcaption>
</figure>
1. The data recipient sends a `ProductFootprintFragment` to the `Events Endpoint` of the data owner. The data recipient should always include 1 or more product ids in property `productIds`. The data recipient should limit each fragment to exactly 1 specific product (e.g. a specific type of apple instead of all apples that somebody is offering)
1. If the recipient is requesting a specific reference period, it should include the reference period accordingly
<div class="example">
```json
{
"productIds": ["urn:pact:company:customcode:buyer-assigned:4321"],
"referencePeriodStart": "2023-01-01T00:00:00Z",
"referencePeriodEnd": "2024-01-01T00:00:00Z"
}
```
</div>
2. If the recipient is requesting a specific geography, it should include the geographic scope accordingly
<div class="example">
```json
{
"productIds": ["urn:pact:company:customcode:buyer-assigned:4321"],
"geographyCountry": "FR"
}
```
</div>
3. If the recipient has another need that is not covered above, the data recipient should
express it as clearly as possible to the best of their ability and following the syntactic
rules of the data model
1. Note: it is possible that this request will not be commonly understood by the data owner's host system
#### Cases #### {#business-cases-async-events-1-cases}
- Case 0: The solution does not support this kind of processing
- Either because the event processing does not exit at all, or the product footprint fragment as it is submitted by the data recipient is not supported by the requested host system
- The `events` endpoint responds with HTTP error code `400` and with a body with error code `NotImplemented`
- Case 1: A PCF does not exist (yet) or a partially matching PCF exists
- Accept the event (HTTP Code 200 returned by the events endpoint)
- In case of a partial match, the data owner needs to decide whether to calculate the PCF(s) or not.
- Note: the decision making and decision making protocol for this case is up to the discretion of each data owner
- In case the data owner decided or needs to calculate the PCF and the calculation succeeded,
- the host system makes the newly calculated footprints also available to the data recipient through `ListFootprints`
- the host system of the data owner sends back the 1 or more product footprints in a single event to the data requester
- In case the data owner decided to not make additional PCFs available
- the host system responds listing the (partially) matching PCFs
- If the product cannot be found or otherwise identified through the product footprint fragment
- the host system of the data owner responds with a PF Response Error Event with code `NoSuchFootprint`
- If the PCF calculation failed for other reasons
- the host system SHOULD send **`PF Response Error Event`** with error code `InternalError`
- Case 2: The PCF(s) exists
- The host system accepts the event (Code 200)
- If the data recipient does not have access to the PCF yet
- the data owner decides on making the PCF available or not
- if the data owner made the matching PCF(s) available, their host system returns the PCFs to the data recipient
- otherwise, the host system of the data owner responds with a error event with error code `AccessDenied`
- If the data recipient has access to the PCF(s)
- the data owner responds by sending
- Default / Backup Case:
- The host systems accepts the event (Code 200)
- The host system sends back a `PF Response Error Event` with code `BadRequest`
# Data Model # {#data-model}
This section specifies a data model for [[#dt-pf|product footprints]] conforming
with the [=PACT Methodology=] Version 3.
The data model consists of the following major data types:
1. <{ProductFootprint}>: contains information to identify a product,
plus further information such as the <{CarbonFootprint}> (see [[#dt-pf]])
2. <{CarbonFootprint}>: contains information related to the carbon footprint
of a product (see [[#dt-carbonfootprint]])
3. <{DataModelExtension}>: contains additional information beyond the data model
specified in this document.
The overall data model is designed for interactions between [=data owners=] and
[=data recipients=], to enable
(i) interoperability,
(ii) comparability of and transparency over product footprints, or
(iii) the calculation of derived <{CarbonFootprint|CarbonFootprints}> from other <{CarbonFootprint|CarbonFootprints}>.
Additional uses of the data model are supported through the concept of
[=Data Model Extensions=]. These allow [=data owners=] to add
further information to a <{ProductFootprint}>.
## Data Type: <dfn element>ProductFootprint</dfn> ## {#dt-pf}
`ProductFootprint` is a data type which represents the carbon footprint
of a product under a specific scope ([[#dt-carbonfootprint-scope]])
and with values calculated in accordance with the [=PACT Methodology=].
The objective of a `ProductFootprint` is to provide interoperability between
the creator (the [=data owner=]) and the consumer (the [=data recipient=]) of
ProductFootprints. The details on the exchange of ProductFootprints are
specified in [[#api]].
Conceptually, the data type <{ProductFootprint}> is modeled as a multi-purpose
container for product-specific emissions factors which is supported by
extensibility through [=Data Model Extensions=].
Data Model Extensions enable [=data owners=] to exchange additional information
related to a product with [=data recipients=]. The details are specified
in [[#dt-datamodelextension]] as well as [[!EXTENSIONS-GUIDANCE]], and [[!DATA-MODEL-EXTENSIONS]].
Each `ProductFootprint` can and should be updated over time, for instance to
incorporate new or refined data from [=data owners=] (see [[#lifecycle]]).
### Properties ### {#pf-properties}
A ProductFootprint has the following properties:
<figure id="pf-properties-table" dfn-type="element-attr" dfn-for="ProductFootprint">
<table class="data">
<thead>
<tr>
<th>Property
<th>Type
<th>Req
<th>Specification
<tbody>
<tr>
<td><dfn>id</dfn> : [=PfId=]
<td>String
<td>M
<td>The product footprint identifier, See [[#dt-pfid]] for details.
<tr>
<td><dfn>specVersion</dfn>
<td>String
<td>M
<td>
The version of the ProductFootprint data specification with value <code>[VERSION]</code>.
Advisement: Subsequent revisions will update this value according to [Semantic Versioning 2.0.0](https://semver.org/lang/en/).
<tr>
<td><dfn>precedingPfIds</dfn> : [=PfId=]
<td>Array of Strings
<td>O
<td>
If defined, MUST be non-empty set of preceding product footprint identifiers without duplicates.
See [[#dt-pfid]] and [[#lifecycle-classification]] for details.
<tr>
<td><dfn>version</dfn>
<td>Number
<td>M
<td>The version of the <{ProductFootprint}> with value an integer in the inclusive range of `0..2^31-1`.
<tr>
<td><dfn>created</dfn> : [=DateTime=]
<td>String
<td>M
<td>A ProductFootprint MUST include the property `created` with value the timestamp of the creation of the ProductFootprint.
<tr>
<td><dfn>updated</dfn> : [=DateTime=]
<td>String
<td>O
<td>A ProductFootprint SHOULD include the property `updated` with value the timestamp of the ProductFootprint update. A ProductFootprint MUST NOT include this property if an update has never been performed. The timestamp MUST be in UTC.
<tr>
<td><dfn>status</dfn>
<td>String
<td>M
<td>
Each ProductFootprint MUST include the property `status` with value one of the following values:
: Active
:: The default status of a product footprint is `Active`. A product
footprint with <{ProductFootprint/status}> `Active` CAN be used
by a [=data recipients=], e.g. for product footprint calculations.
: Deprecated
:: The product footprint is deprecated and SHOULD NOT be used for e.g. product footprint calculations by [=data recipients=].
See [[#lifecycle]] for details.
<tr>
<td><dfn>statusComment</dfn>
<td>String
<td>O
<td>
If defined, a descriptive reasoning explaining the current status of the PCF, what was changed since the last version, etc. If the PCF was changed since a previous version, indicate all methodological and/or production process change(s) that occurred to result in the PCF change. For example, include the relevant change(s) from the list below:
Methodological:
- Access to new Emission Factor data (database, supplier-specific, company-specific)
- Updated upstream data (i.e. upstream supplier updated their PCF based on methodology change)
Production Process:
- Change in process
- Change in feedstock
- Change from conventional to certified sustainable material
- Change in energy source
- Change in upstream supplier
- Updated upstream data (i.e. upstream supplier updated their PCF based on process change)
See [[#lifecycle]] for details.
<tr>
<td><dfn>validityPeriodStart</dfn> : [=DateTime=]
<td>String
<td>O
<td>If defined, the start of the validity period of the ProductFootprint.
The <dfn>validity period</dfn> is the time interval during which the ProductFootprint is declared as valid for use by a receiving [=data recipient=].
The validity period is OPTIONAL defined by the properties <{ProductFootprint/validityPeriodStart}> (including) and <{ProductFootprint/validityPeriodEnd}> (excluding).
If no validity period is specified, the ProductFootprint is valid for 3 years starting with <{CarbonFootprint/referencePeriodEnd}>.
If a validity period is to be specified, then
1. the value of <{ProductFootprint/validityPeriodStart}> MUST be defined with value greater than or equal to the value of <{CarbonFootprint/referencePeriodEnd}>.
2. the value of <{ProductFootprint/validityPeriodEnd}> MUST be defined with value
1. strictly greater than <{ProductFootprint/validityPeriodStart}>, and
2. less than or equal to <{CarbonFootprint/referencePeriodEnd}> + 3 years.
<tr>
<td><dfn>validityPeriodEnd</dfn> : [=DateTime=]
<td>String
<td>O
<td>The end (excluding) of the valid period of the ProductFootprint. See <{ProductFootprint/validityPeriodStart}> for further details.
<tr>
<td><dfn>companyName</dfn>
<td>String
<td>M
<td>The name of the company that is the ProductFootprint Data Owner, with value a non-empty [=String=].
<tr>
<td><dfn>companyIds</dfn> : [=CompanyIdSet=]
<td>Array
<td>M
<td>The non-empty set of Uniform Resource Names ([[!RFC8141|URN]]). Each value of this set is supposed to uniquely identify the ProductFootprint Data Owner. See [=CompanyIdSet=] for details.
<tr>
<td><dfn>productDescription</dfn>
<td>String
<td>M
<td>The free-form description of the product, including any additional relevant information such as production technology, packaging, process, feedstock and technical parameters (e.g. dimensions). Products which are services (i.e. consulting) should include a short description of the service.
<tr>
<td><dfn>productIds</dfn> : [=ProductIdSet=]
<td>Array
<td>M
<td>The non-empty set of [=ProductIds=] in [=URN=] format. Each of the values in the set is supposed to uniquely identify the product. See {#product-identifiers} for syntax and examples.
<tr>
<td><dfn>productClassifications</dfn>
<td>Array of [=ProductClassification=]
<td>O
<td>
The non-empty set of [=ProductClassifications=] in [=URN=] format. Each of the values in the set can classify the product as part of distinct groupings and categorizations. See {#product-identifiers}.
Advisement: Supersedes productCategoryCpc deprecated in version 2.3.
<tr>
<td><dfn>productCategoryCpc</dfn>
<td>String
<td>O
<td>
Advisement: DEPRECATED in 3.0. Superseded by <{ProductFootprint/productClassifications}>.
The UN Central Product Classification (CPC) that the given product belongs to.
<tr>
<td><dfn>productNameCompany</dfn>
<td>String
<td>M
<td>The non-empty trade name of the product.
<tr>
<td><dfn>comment</dfn>
<td>String
<td>O
<td>
Advisement: OPTIONAL in 3.0.
Additional information related to the product footprint.
Whereas the property <{ProductFootprint/productDescription}> contains product-level information, <{ProductFootprint/comment}> SHOULD be used for information and instructions related to the calculation of the footprint, or other information which informs the ability to interpret, to audit or to verify the Product Footprint.
<tr>
<td><dfn>pcf</dfn> : <{CarbonFootprint}>
<td>Object
<td>M
<td>The carbon footprint of the given product with value conforming to the data type <{CarbonFootprint}>.
<tr>
<td><dfn>extensions</dfn> : <{DataModelExtension}>[]
<td>Array
<td>O
<td>
If defined, 1 or more data model extensions associated with the ProductFootprint.
<{ProductFootprint/extensions}> MUST be encoded as a non-empty JSON Array of
<{DataModelExtension}> JSON objects. See <{DataModelExtension}> for details.
</table>
<figcaption>Properties of data type ProductFootprint</figcaption>
</figure>
## Data Type: <dfn element>CarbonFootprint</dfn> ## {#dt-carbonfootprint}
A CarbonFootprint represents the carbon footprint of a product and related data in accordance with the [=PACT Methodology=].
### Scope of a CarbonFootprint ### {#dt-carbonfootprint-scope}
Each CarbonFootprint is scoped by
1. Time Period: the time period is defined by the properties <{CarbonFootprint/referencePeriodStart}> and <{CarbonFootprint/referencePeriodEnd}> (see [=PACT Methodology=] section 6.1.2.1)
2. Geography: further set by the properties <{CarbonFootprint/geographyRegionOrSubregion}>, <{CarbonFootprint/geographyCountry}>, and <{CarbonFootprint/geographyCountrySubdivision}> (see [=PACT Methodology=] section 6.1.2.2)
If a CarbonFootprint
1. Has geographical granularity `Global`, then the properties <{CarbonFootprint/geographyCountry}> and <{CarbonFootprint/geographyRegionOrSubregion}> and <{CarbonFootprint/geographyCountrySubdivision}> MUST be `undefined`;
2. Has a regional or sub-regional geographical granularity, then the property <{CarbonFootprint/geographyRegionOrSubregion}> MUST be `defined` and the properties <{CarbonFootprint/geographyCountry}> and <{CarbonFootprint/geographyCountrySubdivision}> MUST be `undefined`;
3. Has a country-specific geographical granularity, then property <{CarbonFootprint/geographyCountry}> MUST be `defined` AND the properties <{CarbonFootprint/geographyRegionOrSubregion}> and <{CarbonFootprint/geographyCountrySubdivision}> MUST be `undefined`;
4. Has a country subdivision-specific geographical granularity, then property <{CarbonFootprint/geographyCountrySubdivision}> MUST be `defined` AND the properties <{CarbonFootprint/geographyRegionOrSubregion}> and <{CarbonFootprint/geographyCountry}> MUST be `undefined`.
An overview of the relationship between the geographic scope and the definedness or undefinedness of properties is given in the following table:
<figure id="pdf-geographic-scopes-table">
<table class="data">
<thead>
<tr>
<th>Geographical Granularity / Level of aggregation
<th>Property <{CarbonFootprint/geographyRegionOrSubregion}>
<th>Property <{CarbonFootprint/geographyCountry}>
<th>Property <{CarbonFootprint/geographyCountrySubdivision}>
<tbody>
<tr>
<td>Global
<td>`undefined`
<td>`undefined`
<td>`undefined`
<tr>
<td>Regional or Subregional
<td>`defined`
<td>`undefined`
<td>`undefined`
<tr>
<td>Country
<td>`undefined`
<td>`defined`
<td>`undefined`
<tr>
<td>Subdivision
<td>`undefined`
<td>`undefined`
<td>`defined`
</table>
<figcaption>Geographic scope and definedness of CarbonFootprint properties</figcaption>
</figure>
### Properties ### {#dt-carbonfootprint-properties}
The properties of a CarbonFootprint are listed in the table below.
Advisement:
The properties marked with `O*` are OPTIONAL only for reference periods
before 2025, and for reference periods including the beginning of calendar
year 2025 or later, the properties marked with `O*` MUST be defined.
<figure id="pf-carbonfootprint-properties-table" dfn-type="element-attr" dfn-for="CarbonFootprint">
<table class="data">
<thead>
<tr>
<th>Property
<th>Type
<th>Req
<th>Specification
<tbody>
<tr>
<td><dfn>declaredUnit</dfn> : {{DeclaredUnit}}
<td>String
<td>M
<td>The unit of analysis of the product. See Data Type {{DeclaredUnit}} for further information.
<tr>
<td><dfn>unitaryProductAmount</dfn> : [=Decimal=]
<td>String
<td>M
<td>The amount of <{CarbonFootprint/declaredUnit|Declared Units}> contained within the product to which the [[#dt-carbonfootprint|PCF]] is referring to. The value MUST be strictly greater than `0`.
<tr>
<td><dfn>productMassPerDeclaredUnit</dfn> : [=Decimal=]
<td>String
<td>O
<td>
Advisement: This property is optional in v2.3 but will be released in v3 as a mandatory attribute.
The mass (in kg) of the product per the provided <{CarbonFootprint/declaredUnit|declared unit}>, excluding packaging.
For example, if the declared unit is `piece`, this attribute MUST be populated with the mass of one piece (aka unit) of product.
If the declared unit is `liter`, this attribute SHOULD be populated with the mass of 1 liter of product (i.e. the density of the product).
If the declared unit is `kilogram`, this attribute SHOULD by definition be populated with `1`.
If the product mass is not relevant (i.e. PCF is for an energy (kWh, MJ), logistics (ton.km) or service product), this attribute SHOULD be populated with `0`.
<tr>
<td><dfn>pCfExcludingBiogenic</dfn> : [=Decimal=]
<td>String
<td>M
<td>The product carbon footprint of the product <i>excluding</i> biogenic CO2 emissions. The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
<tr>
<td><dfn>pCfIncludingBiogenic</dfn> : [=Decimal=]
<td>String
<td>O*
<td>If present, the product carbon footprint of the product <i>including all</i> biogenic emissions (CO2 and otherwise). The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=].
Note: the value of this property can be less than `0` (zero).
<tr>
<td><dfn>fossilGhgEmissions</dfn> : [=Decimal=]
<td>String
<td>M
<td>The emissions from fossil sources as a result of fuel combustion, from fugitive emissions, and from process emissions. The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
<tr>
<td><dfn>fossilCarbonContent</dfn> : [=Decimal=]
<td>String
<td>M
<td>The fossil carbon content of the product (mass of carbon). The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg Carbon per declared unit` (`kgC / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
<tr>
<td><dfn>biogenicCarbonContent</dfn> : [=Decimal=]
<td>String
<td>M
<td>The biogenic carbon content of the product (mass of carbon). The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg Carbon per declared unit` (`kgC / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
<tr>
<td><dfn>dLucGhgEmissions</dfn> : [=Decimal=]
<td>String
<td>O*
<td>If present, emissions resulting from recent (i.e., previous 20 years) carbon stock loss due to land conversion directly on the area of land under consideration. The value of this property MUST include direct land use change (dLUC) where available, otherwise statistical land use change (sLUC) can be used.
The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
See [=PACT Methodology=] (Appendix B) for details.
<tr>
<td><dfn>landManagementGhgEmissions</dfn> : [=Decimal=]
<td>String
<td>O*
<td>If present, GHG emissions and removals associated with land-management-related changes, including non-CO2 sources.
The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=].
<tr>
<td><dfn>otherBiogenicGhgEmissions</dfn> : [=Decimal=]
<td>String
<td>O*
<td>If present, all other biogenic GHG emissions associated with product manufacturing and transport that are not included in dLUC (<{CarbonFootprint/dLucGhgEmissions}>), iLUC (<{CarbonFootprint/iLucGhgEmissions}>), and land management (<{CarbonFootprint/landManagementGhgEmissions}>).
The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
<tr>
<td><dfn>iLucGhgEmissions</dfn> : [=Decimal=]
<td>String
<td>O
<td>If present, emissions resulting from recent (i.e., previous 20 years) carbon stock loss due to land conversion on land not owned or controlled by the company or in its supply chain, induced by change in demand for products produced or sourced by the company.
The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
See [=PACT Methodology=] (Appendix B) for details.
<tr>
<td><dfn>biogenicCarbonWithdrawal</dfn> : [=Decimal=]
<td>String
<td>O*
<td>If present, the Biogenic Carbon contained in the product converted to kilogram of CO2e. The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kgCO2e / declaredUnit` expressed as a [=decimal=] equal to or <i>less than</i> zero.
<tr>
<td><dfn>aircraftGhgEmissions</dfn> : [=Decimal=]
<td>String
<td>O
<td>If present, the GHG emissions resulting from aircraft engine usage for the transport of the product, excluding radiative forcing. The value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per declared unit` (`kgCO2e / declaredUnit`), expressed as a [=decimal=] equal to or greater than zero.
<tr>
<td><dfn>characterizationFactors</dfn>
<td>String
<td>O
<td>
Advisement: DEPRECATED in 3.0. Superseded by <{CarbonFootprint/ipccCharacterizationFactorsSources}>.
The IPCC version of the GWP characterization factors used in the calculation of the PCF (see [=PACT Methodology=] Section 3.2.2). In case several characterization factors are used, indicate the earliest version used in your calculations, disregarding supplier provided PCFs. The value MUST be one of the following:
: `AR6`
:: for the Sixth Assessment Report of the Intergovernmental Panel on Climate Change (IPCC)
: `AR5`
:: for the Fifth Assessment Report of the IPCC.
<tr>
<td><dfn>ipccCharacterizationFactorsSources</dfn>
<td>Array of Strings
<td>M
<td>The characterization factors from one or more IPCC Assessment Reports used in the calculation of the PCF (see [=PACT Methodology=] Section 3.2.2).
It MUST be a non-empty set of strings with the format `AR$VERSION$`, where `$VERSION$` stands for the
IPCC report version number and MUST be an integer.
Example values:
<div class=example>["AR6"]</div>
<div class=example>["AR5", "AR6"]</div>
Per the Methodology the latest available characterization factor version shall be used, i.e., `["AR6"]`. In the event this is not possible, include the set of all characterization factors used.
Advisement: Supersedes `characterizationFactors` deprecated in version 2.3.
<tr>
<td><dfn>crossSectoralStandards</dfn>
<td>Array of Strings
<td>M
<td>The cross-sectoral standards applied for calculating or allocating [=GHG=] emissions.
It MUST be a non-empty array and SHOULD contain only the following values without duplicates:
: `ISO14067`
:: for the ISO 14067 Standard, "Greenhouse gases — Carbon footprint of products — Requirements and guidelines for quantification"
: `ISO14083`
:: for the ISO 14083 Standard, "Greenhouse gases — Quantification and reporting of greenhouse gas emissions arising from transport chain operations"
: `ISO14040-44`
:: for the ISO 14040-44 Standard, "Environmental management — Life cycle assessment — Principles and framework"
: `GHGP-Product`
:: for the Greehouse Gas Protocol (GHGP) Product Standard
: PEF
:: for the EU Product Environmental Footprint Guide
: `PACT-1.0`
: `PACT-2.0`
: `PACT-3.0`
:: for a given version of the [=PACT Methodology=]. It is recommended to use the latest version of the Methodology.
: PAS2050
:: for the Publicly Available Specification (PAS) 2050, "Specification for the assessment of the life cycle greenhouse gas emissions of goods and services". The use of this standard is permitted but not recommended.
The enumeration of standards above CAN evolve in future revisions. A host system MUST accept ProductFootprints from later revisions with `crossSectoralStandards` containing values that are not defined in this specification.
Advisement: Supersedes `crossSectoralStandardsUsed` deprecated in version 2.3.
<tr>
<td><dfn>productOrSectorSpecificRules</dfn> : [=ProductOrSectorSpecificRuleSet=]
<td>Array
<td>O
<td>The product-specific or sector-specific rules applied for calculating or allocating GHG emissions. If no product or sector specific rules were followed, this set MUST be empty.
<tr>
<td><dfn>biogenicAccountingMethodology</dfn>
<td>String
<td>O*
<td>The standard followed to account for biogenic emissions and removals. If defined, the value SHOULD be one of the following:
: `PEF`
:: for the EU [Product Environmental Footprint Guide](https://ec.europa.eu/environment/archives/eussd/pdf/footprint/PEF%20methodology%20final%20draft.pdf)
: `ISO`
:: For the ISO 14067 standard
: `GHGP`
:: For the Greenhouse Gas Protocol (GHGP) Land sector and Removals Guidance
: `Quantis`
:: For the Quantis [Accounting for Natural Climate Solutions](https://quantis.com/report/accounting-for-natural-climate-solutions-guidance/) Guidance
The enumeration of standards above will be evolved in future revisions. Account for this when implementing the validation of this property.
<tr>
<td><dfn>boundaryProcessesDescription</dfn>
<td>String
<td>O
<td>
Advisement: OPTIONAL in 3.0.
The processes attributable to each lifecycle stage.
Example text value:
<div class=example>`Electricity consumption included as an input in the production phase`</div>
<tr>
<td><dfn>referencePeriodStart</dfn> : [=DateTime=]
<td>String
<td>M
<td>The start (including) of the time boundary for which the PCF value
is considered to be representative. Specifically, this start date
represents the earliest date from which activity data was collected
to include in the PCF calculation.
See the [=PACT Methodology=] section 6.1.2.1 for further details.
Can also be referred to as 'reporting period'.
<tr>
<td><dfn>referencePeriodEnd</dfn> : [=DateTime=]
<td>String
<td>M
<td>The end (excluding) of the time boundary for which the PCF value is
considered to be representative. Specifically, this end date
represents the latest date from which activity data was collected
to include in the PCF calculation. Can al
See the [=PACT Methodology=] section 6.1.2.1 for further details.
Can also be referred to as 'reporting period'.
<tr>
<td><dfn>geographyCountrySubdivision</dfn>
<td>String
<td>
<td>If present, a ISO 3166-2 Subdivision Code. See [[#dt-carbonfootprint-scope]] for further details.
Example value for the State of New York in the United States of America:
<div class=example>`US-NY`</div>
Example value for the department Yonne in France
<div class=example>`FR-89`</div>
<tr>
<td><dfn>geographyCountry</dfn> : [=ISO3166CC=]
<td>String
<td>
<td>If present, the value MUST conform to data type [=ISO3166CC=]. See [[#dt-carbonfootprint-scope]] for further details.
Example value in case the geographic scope is France
<div class=example>`FR`</div>
<tr>
<td><dfn>geographyRegionOrSubregion</dfn> : {{RegionOrSubregion}}
<td>String
<td>
<td>If present, the value MUST conform to data type {{RegionOrSubregion}}. See [[#dt-carbonfootprint-scope]] for further details. Additionally, see the [=PACT Methodology=] Section 6.1.2.2.
<tr>
<td><dfn>secondaryEmissionFactorSources</dfn> : <{EmissionFactorDSSet}>
<td>Array
<td>O
<td>If secondary data was used to calculate the <{CarbonFootprint}>, then it MUST include the property <{CarbonFootprint/secondaryEmissionFactorSources}> with value the emission factors used for the <{CarbonFootprint}> calculation.
If no secondary data is used, this property MUST BE `undefined`.
<tr>
<td><dfn>exemptedEmissionsPercent</dfn>
<td>Number
<td>M
<td>
Advisement: The upper boundary of this property (currently `5`) will be removed in version 3 of the Technical Specifications.
The Percentage of emissions excluded from PCF, expressed as a decimal number between `0.0` and `5` including. See [=PACT Methodology=].
<tr>
<td><dfn>exemptedEmissionsDescription</dfn>
<td>String
<td>O
<td>
Advisement: OPTIONAL in 3.0.
Rationale behind exclusion of specific PCF emissions, CAN be the empty string if no emissions were excluded.
<tr>
<td><dfn>packagingEmissionsIncluded</dfn>
<td>Boolean
<td>M
<td>A boolean flag indicating whether packaging emissions are included in the PCF (<{CarbonFootprint/pCfExcludingBiogenic}>, <{CarbonFootprint/pCfIncludingBiogenic}>).
<tr>
<td><dfn>packagingGhgEmissions</dfn> : [=Decimal=]
<td>String
<td>O
<td>
Emissions resulting from the packaging of the product.
If present, the value MUST be calculated per <{CarbonFootprint/declaredUnit|declared unit}> with unit `kg of CO2 equivalent per kilogram` (`kgCO2e / declared unit`), expressed as a [=decimal=] equal to or greater than zero.
The value MUST NOT be defined if <{CarbonFootprint/packagingEmissionsIncluded}> is `false`.
<tr>
<td><dfn>allocationRulesDescription</dfn>
<td>String
<td>O
<td>If present, a description of any allocation rules applied and the rationale explaining how the selected approach aligns with [=PACT Methodology=] rules (see Section 3.3.1.4).
<tr>
<td><dfn>uncertaintyAssessmentDescription</dfn>
<td>String
<td>O
<td>If present, the results, key drivers, and a short qualitative description of the uncertainty assessment.
<tr>
<td><dfn>primaryDataShare</dfn> : [=Percent=]
<td>Number
<td>O*
<td>
The share of primary data in percent. See the [=PACT Methodology=] Sections 4.2.1 and 4.2.2, Appendix B.
For reference periods ending before the beginning of year 2025, at least property <{CarbonFootprint/primaryDataShare}> or propery <{CarbonFootprint/dqi}> MUST be defined.
For reference periods including the beginning of year 2025 or after, this property MUST be defined.
<tr>
<td><dfn>dqi</dfn> : <{DataQualityIndicators}>
<td>Object
<td>O*
<td>
If present, the Data Quality Indicators (dqi) in accordance with the [=PACT Methodology=] Sections 4.2.1 and 4.2.3, Appendix B.
For reference periods ending before the beginning of year 2025, at least property <{CarbonFootprint/primaryDataShare}> or propery <{CarbonFootprint/dqi}> MUST be defined.
For reference periods including the beginning of year 2025 or after, this property MUST be defined.
<tr>
<td><dfn>assurance</dfn> : <{Assurance}>
<td>Object
<td>O
<td>If present, the Assurance information in accordance with the [=PACT Methodology=].
</table>
<figcaption>Properties of data type CarbonFootprint</figcaption>
</figure>
## Data Type: <dfn element>DataQualityIndicators</dfn> ## {#dt-dataqualityindicators}
Data type `DataQualityIndicators` contains the quantitative data quality indicators in conformance with [=PACT Methodology=] Section 4.2.3 and Appendix B.
Each property is optional until the reference period includes the beginning of calendar year 2025, or later, when all properties MUST be defined.
The following properties are defined for data type <{DataQualityIndicators}>:
<figure id="pf-dataqualityindicators-properties-table" dfn-type="element-attr" dfn-for="DataQualityIndicators">
<table class="data">
<thead>
<tr>
<th>Property
<th>Type
<th>Specification
<tbody>
<tr>
<td><dfn>coveragePercent</dfn> : [=Percent=]
<td>Number
<td>
Percentage of PCF included in the data quality assessment based on the `>5%` emissions threshold.
<tr>
<td><dfn>technologicalDQR</dfn>
<td>Number
<td>
Quantitative data quality rating (DQR) based on the data quality matrix (See [=PACT Methodology=] Table 9),
scoring the technological representativeness of the sources used for PCF calculation based on
weighted average of all inputs representing >5% of PCF emissions.
The value MUST be a [=decimal=] between `1` and `3` including.
<tr>
<td><dfn>temporalDQR</dfn>
<td>Number
<td>
Quantitative data quality rating (DQR) based on the data quality matrix (Table 9),
scoring the temporal representativeness of the sources used for PCF calculation based on
weighted average of all inputs representing >5% of PCF emissions.
The value MUST be between `1` and `3` inclusive.
<tr>
<td><dfn>geographicalDQR</dfn>
<td>Number
<td>
Quantitative data quality rating (DQR) based on the data quality matrix (Table 9),
scoring the geographical representativeness of the sources used for PCF calculation
based on weighted average of all inputs representing >5% of PCF emissions.
The value MUST be between `1` and `3` inclusive.
<tr>
<td><dfn>completenessDQR</dfn>
<td>Number
<td>
Quantitative data quality rating (DQR) based on the data quality matrix (Table 9),
scoring the completeness of the data collected for PCF calculation based on
weighted average of all inputs representing >5% of PCF emissions.
The value MUST be between `1` and `3` inclusive.
<tr>
<td><dfn>reliabilityDQR</dfn>
<td>Number
<td>
Quantitative data quality rating (DQR) based on the data quality matrix (Table 9),
scoring the reliability of the data collected for PCF calculation based on
weighted average of all inputs representing >5% of PCF emissions.
The value MUST be between `1` and `3` inclusive.
</table>
<figcaption>Properties of data type DataQualityIndicators</figcaption>
</figure>
<div class=example>
Example value for the case that all DQIs are known but no coverage after exemption assessment performed:
<pre highlight=json>
{
"technologicalDQR": 2.0,
"temporalDQR": 2.0,
"geographicalDQR": 2.0,
"completenessDQR": 2.0,
"reliabilityDQR": 2.0
}
</pre>
</div>
## Data Type: <dfn element>Assurance</dfn> ## {#dt-assurance}
Data type `Assurance` contains the assurance in conformance with [=PACT Methodology=] chapter 5 and appendix B.
The following properties are defined for data type <{Assurance}>:
<figure id="pf-assurance-properties-table" dfn-type="element-attr" dfn-for="Assurance">
<table class="data">
<thead>
<tr>
<th>Property
<th>Type
<th>Req
<th>Specification
<tbody>
<tr>
<td><dfn>assurance</dfn>
<td>Boolean
<td>M
<td>
A boolean flag indicating whether the <{CarbonFootprint}> has been
assured in line with [=PACT Methodology=] requirements (section 5).
<tr>
<td><dfn>coverage</dfn>
<td>String
<td>O
<td>
Level of granularity of the emissions data assured, with value equal to
- `corporate level` for corporate level
- `product line` for product line
- `PCF system` for PCF System
- `product level` for product level
This property MAY be undefined only if the kind of assurance was not performed.
<tr>
<td><dfn>level</dfn>
<td>String
<td>O
<td>
Level of assurance applicable to the PCF, with value equal to
- `limited` for limited assurance
- `reasonable` for reasonable assurance
This property MAY be undefined only if the kind of assurance was not performed.
<tr>
<td><dfn>boundary</dfn>
<td>String
<td>O
<td>Boundary of the assurance, with value equal to
- `Gate-to-Gate` for Gate-to-Gate
- `Cradle-to-Gate` for Cradle-to-Gate.
This property MAY be undefined only if the kind of assurance was not performed.
<tr>
<td><dfn>providerName</dfn>