← Back to register

Classifier method

bdrk-deliver/1.2.0 — the exact derivation order, stated so it can be argued with.

Version

bdrk-deliver/1.2.0. This string is emitted with every derived status. Rules change over time, and a badge produced under an earlier ruleset has to stay interpretable against the ruleset that actually produced it — not against whatever the ruleset later became.

Derivation order

Status is a function of the evidence bundle, evaluated in this order. The first condition that resolves wins.

  1. Empty bundle. No evidence at all resolves disputed. Absence of information is not a positive finding.
  2. Freshness. The freshest document in the bundle is measured against the class window. If it is outside the window, the bundle stops supporting any conclusion and the asset resolves disputed, with the age printed. This applies symmetrically: a stale adverse certificate cannot produce impaired, and a stale clean bundle cannot produce performing.
  3. Rank the adverse evidence. Among fresh documents with negative polarity, the strongest tier is selected. Tier decides how far the status may fall:
    • paperworkimpaired. A third party attached their name and liability to the finding.
    • operatorwatch. A real signal, but self-reported, so it is not permitted to assert impairment alone.
    • externaldisputed. Useful for pointing at something, insufficient for concluding it.
  4. No fresh adverse evidence. Resolves performing, phrased as "delivery corroborated, evidence inside window" — a statement about the absence of a found failure path, not a forecast.

The composite index

Five signals are tracked: delivery against nameplate, offtake counterparty, permit and interconnect standing, physical condition, and resource availability. The composite is:

score = round( min(signal values) × 100 )

There is no weighting and no averaging. Physical infrastructure fails through its weakest path: a solar farm with immaculate panels and an expired interconnection permit delivers nothing, and panel health does not average that away. Signals of 0.94, 0.91, 0.88, 0.83, 0.57 produce 57, not 82.

Values are quantised to two decimals before reduction, so the number printed on a signal row and the composite printed beside it reconcile exactly. This is verified over randomised cycles as part of the engine test — a printed score that does not equal the printed minimum is treated as a defect, not a rounding artefact.

The signal holding the minimum is named in the output as the binding signal. Ties name every signal at the minimum.

Bands

Bands are labels attached to the composite, not inputs to it: 72 and above corroborated, 60 to 71 thin, 45 to 59 strained, below 45 failing. A high composite means no live failure path was located in the current evidence. It is not a rating and not a projection.

Freshness windows

ClassWindowReasoning
SOL — solar / PV30 daysProduction is metered continuously; a month of silence is itself a signal.
STO — battery storage30 daysCapacity fade and thermal derate move fast enough to invalidate older tests.
GRD — interconnect45 daysOutage and dispatch records settle on a longer regulatory cadence.
WTR — water rights90 daysAllocation and basin decisions are seasonal, not daily.

What this method will not do

It will not produce a positive status to fill a gap, will not average a failing signal into an acceptable one, will not let an asset's own reporting assert its solvency, and will not hold a badge steady once the evidence behind it has aged out.

Data provenance Classifier method Terms Privacy BEDROCK · bdrk-deliver/1.2.0