@tracepass/dpp-schemas 1.14.2 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/instruments.json +43 -1
- package/package.json +1 -1
- package/templates/battery.json +10 -10
package/README.md
CHANGED
|
@@ -105,6 +105,26 @@ management system, or containing Annex X materials. `conditional` means the inst
|
|
|
105
105
|
its stated gate is met — so a passport legitimately leaves it empty otherwise. Fields with no
|
|
106
106
|
`requiredBy` apply to the whole category.
|
|
107
107
|
|
|
108
|
+
## Phased obligation dates
|
|
109
|
+
|
|
110
|
+
A passport's start date (`dppMandatoryFrom` in `instruments.json`) is not the date every
|
|
111
|
+
data group binds. Where parts of an instrument phase in later, the instrument carries
|
|
112
|
+
`phasedObligations`, one entry per data group:
|
|
113
|
+
|
|
114
|
+
| Key | Meaning |
|
|
115
|
+
|---|---|
|
|
116
|
+
| `id` | Stable identifier, e.g. `battery-due-diligence` |
|
|
117
|
+
| `provision` | The articles and annex points that impose it |
|
|
118
|
+
| `passportFrom` | ISO date the data is required in the passport; `null` when it waits on an act not yet adopted |
|
|
119
|
+
| `status` | `dated`; `dated-earliest` (that date or a later one set by an act); `pending-act` (no date can be stated) |
|
|
120
|
+
| `byCategory` | A different date for one battery category (e.g. LMT recycled content) |
|
|
121
|
+
| `otherDates` | Other dates legitimately tied to the obligation (a postponed original date, later minimum-share steps) |
|
|
122
|
+
| `source` | The primary text or Commission guidance the date comes from, with its edition |
|
|
123
|
+
|
|
124
|
+
This is the one place those dates are kept. Copy that states them (the TracePass
|
|
125
|
+
marketing site checks every sentence against this registry) and the templates' own
|
|
126
|
+
`anticipated` flags follow it.
|
|
127
|
+
|
|
108
128
|
## Standards
|
|
109
129
|
|
|
110
130
|
[`standards.json`](./standards.json) is a registry of the technical standards a field — or
|
package/instruments.json
CHANGED
|
@@ -26,7 +26,49 @@
|
|
|
26
26
|
"XIV",
|
|
27
27
|
"XV"
|
|
28
28
|
],
|
|
29
|
-
"annexesVerifiedFrom": "32023R1542"
|
|
29
|
+
"annexesVerifiedFrom": "32023R1542",
|
|
30
|
+
"phasedObligations": [
|
|
31
|
+
{
|
|
32
|
+
"id": "battery-due-diligence",
|
|
33
|
+
"topic": "supply-chain due diligence report",
|
|
34
|
+
"provision": "Art. 48, Art. 52(3); Annex XIII 1(d)",
|
|
35
|
+
"passportFrom": "2027-08-18",
|
|
36
|
+
"status": "dated",
|
|
37
|
+
"note": "Postponed from 18 Aug 2025 by Reg (EU) 2025/1561. Not in the passport at the February 2027 start.",
|
|
38
|
+
"source": "DG GROW battery data-point guidance v2.0 (15 Aug 2026) DP 19; Commission Battery Passport FAQ (1st ed., Sep 2026) §7.3",
|
|
39
|
+
"otherDates": [
|
|
40
|
+
"2025-08-18"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "battery-recycled-content",
|
|
45
|
+
"topic": "recycled-content shares",
|
|
46
|
+
"provision": "Art. 8(1); Annex XIII 1(e)",
|
|
47
|
+
"passportFrom": "2028-08-18",
|
|
48
|
+
"status": "dated-earliest",
|
|
49
|
+
"byCategory": {
|
|
50
|
+
"LMT": "2033-08-18"
|
|
51
|
+
},
|
|
52
|
+
"note": "EV, industrial >2 kWh and SLI: 18 Aug 2028 or 24 months after the Art. 8(1) delegated act enters into force, whichever is later (act not adopted). Minimum shares under Art. 8(2) apply from 2031 and 2036.",
|
|
53
|
+
"source": "Reg (EU) 2023/1542 Art. 8 (consolidated 02023R1542-20260813); guidance v2.0 DP 20-23",
|
|
54
|
+
"otherDates": [
|
|
55
|
+
"2031",
|
|
56
|
+
"2036"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "battery-carbon-footprint",
|
|
61
|
+
"topic": "carbon footprint declaration, class and label",
|
|
62
|
+
"provision": "Art. 7; Annex XIII 1(c)",
|
|
63
|
+
"passportFrom": null,
|
|
64
|
+
"status": "pending-act",
|
|
65
|
+
"note": "Applies once the Commission's calculation-method delegated act and format implementing act apply; no date can be stated.",
|
|
66
|
+
"source": "Guidance v2.0 DP 17-18; Battery Passport FAQ §7.2-7.3",
|
|
67
|
+
"otherDates": [
|
|
68
|
+
"2025-02-18"
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
30
72
|
},
|
|
31
73
|
"32024R1781": {
|
|
32
74
|
"kind": "legislation",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tracepass/dpp-schemas",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 13 product categories, 991 fields, each traced to the article of EU law that mandates it. Pure JSON, no dependencies.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"digital-product-passport",
|
package/templates/battery.json
CHANGED
|
@@ -9475,7 +9475,7 @@
|
|
|
9475
9475
|
"dataType": "number",
|
|
9476
9476
|
"unit": "%",
|
|
9477
9477
|
"translatable": false,
|
|
9478
|
-
"defaultValue":
|
|
9478
|
+
"defaultValue": null,
|
|
9479
9479
|
"enumOptions": null,
|
|
9480
9480
|
"validation": {
|
|
9481
9481
|
"required": false,
|
|
@@ -10441,7 +10441,7 @@
|
|
|
10441
10441
|
"dataType": "number",
|
|
10442
10442
|
"unit": "%",
|
|
10443
10443
|
"translatable": false,
|
|
10444
|
-
"defaultValue":
|
|
10444
|
+
"defaultValue": null,
|
|
10445
10445
|
"enumOptions": null,
|
|
10446
10446
|
"validation": {
|
|
10447
10447
|
"required": false,
|
|
@@ -10562,7 +10562,7 @@
|
|
|
10562
10562
|
"dataType": "number",
|
|
10563
10563
|
"unit": "%",
|
|
10564
10564
|
"translatable": false,
|
|
10565
|
-
"defaultValue":
|
|
10565
|
+
"defaultValue": null,
|
|
10566
10566
|
"enumOptions": null,
|
|
10567
10567
|
"validation": {
|
|
10568
10568
|
"required": false,
|
|
@@ -11162,7 +11162,7 @@
|
|
|
11162
11162
|
"dataType": "number",
|
|
11163
11163
|
"unit": "%",
|
|
11164
11164
|
"translatable": false,
|
|
11165
|
-
"defaultValue":
|
|
11165
|
+
"defaultValue": null,
|
|
11166
11166
|
"enumOptions": null,
|
|
11167
11167
|
"validation": {
|
|
11168
11168
|
"required": false,
|
|
@@ -11286,7 +11286,7 @@
|
|
|
11286
11286
|
"dataType": "number",
|
|
11287
11287
|
"unit": "%",
|
|
11288
11288
|
"translatable": false,
|
|
11289
|
-
"defaultValue":
|
|
11289
|
+
"defaultValue": null,
|
|
11290
11290
|
"enumOptions": null,
|
|
11291
11291
|
"validation": {
|
|
11292
11292
|
"required": false,
|
|
@@ -11410,7 +11410,7 @@
|
|
|
11410
11410
|
"dataType": "number",
|
|
11411
11411
|
"unit": "%",
|
|
11412
11412
|
"translatable": false,
|
|
11413
|
-
"defaultValue":
|
|
11413
|
+
"defaultValue": null,
|
|
11414
11414
|
"enumOptions": null,
|
|
11415
11415
|
"validation": {
|
|
11416
11416
|
"required": false,
|
|
@@ -11534,7 +11534,7 @@
|
|
|
11534
11534
|
"dataType": "number",
|
|
11535
11535
|
"unit": "%",
|
|
11536
11536
|
"translatable": false,
|
|
11537
|
-
"defaultValue":
|
|
11537
|
+
"defaultValue": null,
|
|
11538
11538
|
"enumOptions": null,
|
|
11539
11539
|
"validation": {
|
|
11540
11540
|
"required": false,
|
|
@@ -11772,7 +11772,7 @@
|
|
|
11772
11772
|
"dataType": "number",
|
|
11773
11773
|
"unit": "cycles",
|
|
11774
11774
|
"translatable": false,
|
|
11775
|
-
"defaultValue":
|
|
11775
|
+
"defaultValue": null,
|
|
11776
11776
|
"enumOptions": null,
|
|
11777
11777
|
"validation": {
|
|
11778
11778
|
"required": false,
|
|
@@ -12145,7 +12145,7 @@
|
|
|
12145
12145
|
"dataType": "number",
|
|
12146
12146
|
"unit": null,
|
|
12147
12147
|
"translatable": false,
|
|
12148
|
-
"defaultValue":
|
|
12148
|
+
"defaultValue": null,
|
|
12149
12149
|
"enumOptions": null,
|
|
12150
12150
|
"validation": {
|
|
12151
12151
|
"required": false,
|
|
@@ -12388,7 +12388,7 @@
|
|
|
12388
12388
|
"dataType": "array",
|
|
12389
12389
|
"unit": null,
|
|
12390
12390
|
"translatable": false,
|
|
12391
|
-
"defaultValue":
|
|
12391
|
+
"defaultValue": null,
|
|
12392
12392
|
"enumOptions": null,
|
|
12393
12393
|
"validation": {
|
|
12394
12394
|
"required": false,
|