Skip to content

Art. 77(1) passport scope is not enforced #238

Description

@LKSNDRTMLKV

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions