pub enum BillingPositionKind {
Show 22 variants
NneArbeit,
NneArbeitHt,
NneArbeitNt,
NneArbeitModul1,
NneArbeitModul3,
NneLeistung,
NneGasGrundpreis,
Konzessionsabgabe,
Mehrmenge,
Mindermenge,
MsbGrundgebuehr,
Messdienstleistung,
GasAwhSperrung,
GasAwhEntsprrung,
GasAwhSonstige,
Blindmehrarbeit,
Sect19StromNevUmlage,
OffshoreNetzumlage,
KwkgUmlage,
DezentraleEinspeisung,
Sect19IndividuellesEntgelt,
GasKapazitaetsentgelt,
}Expand description
Semantic kind of a billing position — used by the service layer to derive
the correct BdewArtikelnummer for the BO4E Rechnungsposition.
grid-billing has no rubo4e dependency, so this enum is the bridge:
the service layer maps BillingPositionKind → BdewArtikelnummer in
into_rechnung(). Every position in every SettlementResult must carry
a kind so the INVOIC Rechnungsposition.artikelnummer is never missing.
§BDEW INVOIC AHB requirement
BDEW INVOIC AHBs (FV2025-10-01) mandate artikelnummer in every
SG28 PIA line item. Missing or wrong Artikelnummern cause counterparty
APERAK rejection. The invoic-checker checks 6 plausibility rules;
Artikelnummer matching is part of the tariff-found rule (check 5).
§Mapping to BdewArtikelnummer
BillingPositionKind | BdewArtikelnummer | INVOIC AHB ref |
|---|---|---|
NneArbeit | Wirkarbeit | PID 31002 (NN-Rechnung) Arbeit |
NneArbeitHt | Wirkarbeit | PID 31002 §14a Modul 2 HT |
NneArbeitNt | Wirkarbeit | PID 31002 §14a Modul 2 NT |
NneArbeitModul1 | Wirkarbeit | PID 31002 §14a Modul 1 (rate reduced) |
NneLeistung | Leistung | PID 31002 RLM kW charge |
NneGasGrundpreis | Grundpreis | PID 31002 Gas monthly base fee |
Konzessionsabgabe | Konzessionsabgabe | PID 31002 KAV §2 |
Mehrmenge | Mehrmenge | PID 31005 positive imbalance |
Mindermenge | Mindermenge | PID 31005 negative imbalance (credit) |
MsbGrundgebuehr | EntgeltEinbauBetriebWartungMesstechnik | PID 31009 MSB monthly fee |
Messdienstleistung | EntgeltMessungAblesung | PID 31009 reading service |
GasAwhSperrung | Sperrkosten | PID 31011 AWH disconnection |
GasAwhEntsprrung | Entsperrkosten | PID 31011 AWH reconnection |
GasAwhSonstige | EntgeltAbrechnung | PID 31011 other AWH |
Blindmehrarbeit | Blindmehrarbeit | Reactive energy excess |
Variants§
NneArbeit
Netznutzungsentgelt Arbeit — flat-rate active energy charge (kWh).
SLP or Gas. → BdewArtikelnummer::Wirkarbeit
NneArbeitHt
§14a Modul 2 Hochlast (HT) Arbeit — time-variable higher-price band.
→ BdewArtikelnummer::Wirkarbeit
NneArbeitNt
§14a Modul 2 Niedertarif (NT) Arbeit — time-variable lower-price band.
→ BdewArtikelnummer::Wirkarbeit
NneArbeitModul1
§14a Modul 1 Arbeit — flat percentage reduction applied to Arbeitspreis.
→ BdewArtikelnummer::Wirkarbeit (same article, different rate)
NneArbeitModul3
§14a Modul 3 Spotpreis-NNE — per-dispatch-interval variable rate position.
One InvoicePosition is generated per dispatch interval from
NneInput::sect14a_modul3_intervals. Each carries a
lastvariable_preisposition_json with the BO4E LastvariablePreisposition
COM data (pricing formula parameters) for ERP-side validation and portal
display of the per-interval tariff breakdown.
Regulatory basis: BNetzA BK6-22-300 Anlage 2 §3 — Spotpreis-Netzentgelt.
→ BdewArtikelnummer::Wirkarbeit
NneLeistung
Netznutzungsentgelt Leistung — RLM peak demand charge (kW).
→ BdewArtikelnummer::Leistung
NneGasGrundpreis
Gas NNE monthly base fee (Grundpreis / Verrechnungspreis).
GasNEV §14. → BdewArtikelnummer::Grundpreis
Konzessionsabgabe
Konzessionsabgabe — KAV §2 municipal concession fee.
→ BdewArtikelnummer::Konzessionsabgabe
Mehrmenge
Mehrmengen — positive imbalance (actual > profiled).
PID 31005 GPKE (BK6-24-174) Teil 1 Kap. 8.4 / GaBi Gas 2.1 (BK7-24-01-008). → BdewArtikelnummer::Mehrmenge
Mindermenge
Mindermengen — negative imbalance credit note (actual < profiled).
PID 31005. → BdewArtikelnummer::Mindermenge
MsbGrundgebuehr
MSB Grundgebühr Messstellenbetrieb — monthly metering base fee.
MsbG §§6–7. → BdewArtikelnummer::EntgeltEinbauBetriebWartungMesstechnik
Messdienstleistung
Messdienstleistung — periodic reading service fee.
MsbG §2. → BdewArtikelnummer::EntgeltMessungAblesung
GasAwhSperrung
Gas AWH Sperrung — abrechnungswürdige Handlung disconnection.
BK7-24-01-009 §5.4. → BdewArtikelnummer::Sperrkosten
GasAwhEntsprrung
Gas AWH Entsperrung — abrechnungswürdige Handlung reconnection.
BK7-24-01-009 §5.4. → BdewArtikelnummer::Entsperrkosten
GasAwhSonstige
Gas AWH sonstige — other abrechnungswürdige Handlung.
BK7-24-01-009 §5.4. → BdewArtikelnummer::EntgeltAbrechnung
Blindmehrarbeit
Blindmehrarbeit — reactive energy excess charge.
StromNEV §18. → BdewArtikelnummer::Blindmehrarbeit
Sect19StromNevUmlage
Aufschlag für besondere Netznutzung (§19 StromNEV-Umlage).
Funds the reduced individual network charges granted under §19 Abs. 2 StromNEV. Rate depends on the Letztverbrauchergruppe (EnFG).
OffshoreNetzumlage
Offshore-Netzumlage (§17f EnWG).
Funds offshore connection cost and the compensation owed to offshore wind farms for unavailable connections.
KwkgUmlage
KWKG-Umlage (§26 KWKG).
Funds the KWK-Zuschlag paid to CHP operators.
DezentraleEinspeisung
Entgelt für dezentrale Erzeugung — §18 StromNEV, under Abschmelzung
(GBK-25-02-1#1). A payment out, so its net_eur is negative.
Sect19IndividuellesEntgelt
§19 Abs. 2 StromNEV individual-charge reduction over the Netzentgelt. Negative: it takes the published charge down to the agreed fraction.
GasKapazitaetsentgelt
Gas Kapazitätsentgelt — booked capacity at the price sheet’s annual rate, pro-rated over the period. §15 GasNEV.
Implementations§
Source§impl BillingPositionKind
impl BillingPositionKind
Sourcepub fn artikelnummer(
self,
settlement_type: SettlementType,
) -> Option<&'static str>
pub fn artikelnummer( self, settlement_type: SettlementType, ) -> Option<&'static str>
The BDEW Artikelnummer that codes this position, as its codelist name.
Which article number applies depends on both what was charged and what
kind of settlement it appears in — Gas NNE keeps the classic WIRKARBEIT
code, while Strom NNE moved to Artikel-IDs under BK6-20-160 and carries
no Artikelnummer at all.
Returned as the codelist name rather than a BO4E enum so that this
crate stays free of BO4E types. A consumer parses it into whatever it
renders — rubo4e::current::BdewArtikelnummer implements FromStr over
exactly these names.
None means the position carries an Artikel-ID instead, resolved from
the price sheet by the renderer.
Source: BDEW Codeliste der Artikelnummern und Artikel-IDs v5.6.
Trait Implementations§
Source§impl Clone for BillingPositionKind
impl Clone for BillingPositionKind
Source§fn clone(&self) -> BillingPositionKind
fn clone(&self) -> BillingPositionKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more