What is not enforced
Reg. (EU) 2023/1542 defines five battery categories, but Art. 77(1) gives a
battery passport to only three of them:
"From 18 February 2027 each LMT battery, each industrial battery with a
capacity greater than 2 kWh and each electric vehicle battery placed on the
market or put into service shall have an electronic record ('battery
passport')."
Nothing in the node reads that scope. Two consequences, in opposite directions:
1. Portable and SLI batteries can carry a battery passport. BatteryType
accepts portable and starting-lighting-ignition, and
mandatory_fields answers Unknown for both — correctly, since the
Commission's data-point guidance does not cover them. But Unknown means the
content gate demands nothing, so such a passport publishes with almost no data
and claims to be a battery passport. The record is not wrong so much as
unclassified: the obligation it appears to discharge does not exist.
2. An industrial battery at or below 2 kWh is held to the full obligation.
The threshold appears nowhere in the passport path — it is modelled only for
Art. 8 recycled content, in dpp-calc's thresholds.rs. So a 1 kWh industrial
battery, which Art. 77(1) exempts entirely, is required to supply all 38
industrial data points before it can be published. Capacity is available on the
record (ratedCapacityKwh), so this is checkable rather than unknowable.
Why it surfaced now
The per-category import templates (#237) made the scope explicit for the first
time: there are three templates because there are three obligations. That raised
the question of what the node does for the other two categories, and for an
industrial battery under the threshold — and the answer is that it does not ask.
Options
- (a) Model Art. 77(1) as a scope predicate —
has_passport_obligation(type, capacity_kwh) — and let publish say plainly that a portable battery has no
passport obligation, rather than passing it silently. Voluntary passports stay
possible but are named as such.
- (b) Apply the threshold only, leaving portable/SLI as they are: the
narrower fix, and the one with a concrete wrong behaviour behind it (over-
demanding on a battery the article exempts).
- (c) Document and leave. Defensible for (1) — no obligation means no
mandatory content, and a voluntary record is the operator's choice — but not
for (2), where the node demands data the law does not.
Worth noting the threshold sits on capacity in kWh while nominalCapacityAh
is the required column; ratedCapacityKwh is optional today, so (b) needs a
decision about what to do when it is absent.
What is not enforced
Reg. (EU) 2023/1542 defines five battery categories, but Art. 77(1) gives a
battery passport to only three of them:
Nothing in the node reads that scope. Two consequences, in opposite directions:
1. Portable and SLI batteries can carry a battery passport.
BatteryTypeaccepts
portableandstarting-lighting-ignition, andmandatory_fieldsanswersUnknownfor both — correctly, since theCommission's data-point guidance does not cover them. But
Unknownmeans thecontent gate demands nothing, so such a passport publishes with almost no data
and claims to be a battery passport. The record is not wrong so much as
unclassified: the obligation it appears to discharge does not exist.
2. An industrial battery at or below 2 kWh is held to the full obligation.
The threshold appears nowhere in the passport path — it is modelled only for
Art. 8 recycled content, in
dpp-calc'sthresholds.rs. So a 1 kWh industrialbattery, which Art. 77(1) exempts entirely, is required to supply all 38
industrial data points before it can be published. Capacity is available on the
record (
ratedCapacityKwh), so this is checkable rather than unknowable.Why it surfaced now
The per-category import templates (#237) made the scope explicit for the first
time: there are three templates because there are three obligations. That raised
the question of what the node does for the other two categories, and for an
industrial battery under the threshold — and the answer is that it does not ask.
Options
has_passport_obligation(type, capacity_kwh)— and let publish say plainly that a portable battery has nopassport obligation, rather than passing it silently. Voluntary passports stay
possible but are named as such.
narrower fix, and the one with a concrete wrong behaviour behind it (over-
demanding on a battery the article exempts).
mandatory content, and a voluntary record is the operator's choice — but not
for (2), where the node demands data the law does not.
Worth noting the threshold sits on capacity in kWh while
nominalCapacityAhis the required column;
ratedCapacityKwhis optional today, so (b) needs adecision about what to do when it is absent.