pub enum TariffSource {
Statutory,
Auction(AusschreibungMetadata),
Transitional(Paragraph100Rule),
}Expand description
How the Anzulegender Wert (AW) was determined for a plant.
The AW is the statutory or tendered rate that drives the Marktprämie spread and serves as the reference for all other payment types.
This is orthogonal to SettlementScheme: the same MarketPremium scheme
can be used for both statutory-AW plants (Statutory) and BNetzA tender plants
(Auction). Only the AW source — and the billing position label — differ.
Variants§
Statutory
§21 EEG — Statutory AW, set by law at commissioning date (§48 EEG 2023).
Rate is fixed for the 20-year Förderdauer. For solar, the §49 EEG 2023
semi-annual degression selects the value from the commissioning date —
see crate::rates::solar_pv_ueberschuss_aw_ct. The caller supplies the
resolved rate in direktverm_aw_ct / verguetungssatz_ct.
Auction(AusschreibungMetadata)
§§22a, 28 EEG — BNetzA tender award: AW set by sealed-bid auction.
The award value (award_ct in AusschreibungMetadata) replaces the
statutory AW for the full Förderdauer. Subsequent statutory degression
does NOT apply to Ausschreibungsanlagen.
Transitional(Paragraph100Rule)
§100 EEG — Transitional rule: old plant uses old AW from prior EEG version.
Plants commissioned before 01.01.2023 may settle under the rules of the
EEG version in force at commissioning, not EEG 2023.
The specific rule is identified by Paragraph100Rule.
Implementations§
Source§impl TariffSource
impl TariffSource
Sourcepub fn is_auction(&self) -> bool
pub fn is_auction(&self) -> bool
Returns true for BNetzA tender plants.
Sourcepub fn is_transitional(&self) -> bool
pub fn is_transitional(&self) -> bool
Returns true for plants using the §100 Übergangsregelung.
Sourcepub fn is_biogas_sect51b(&self) -> bool
pub fn is_biogas_sect51b(&self) -> bool
Returns true for §51b biogas Ausschreibungsanlagen.
When true, §51/§51a do NOT apply, and the AW is zero for periods
where epex_avg_ct_kwh ≤ 2 ct/kWh (§51b EEG 2023).
Sourcepub fn is_innovation_auction(&self) -> bool
pub fn is_innovation_auction(&self) -> bool
Returns true for §39n Innovationsausschreibung awards.
These plants receive a fixed market premium (feste Marktprämie =
the Zuschlagswert per kWh, §3 InnAusV) rather than the gleitende
Marktprämie max(0, AW − Marktwert) — so the payout does not shrink as
the Monatsmarktwert rises.
Trait Implementations§
Source§impl Clone for TariffSource
impl Clone for TariffSource
Source§fn clone(&self) -> TariffSource
fn clone(&self) -> TariffSource
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more