Skip to main content

TariffSource

Enum TariffSource 

Source
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

Source

pub fn is_auction(&self) -> bool

Returns true for BNetzA tender plants.

Source

pub fn is_transitional(&self) -> bool

Returns true for plants using the §100 Übergangsregelung.

Source

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).

Source

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

Source§

fn clone(&self) -> TariffSource

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TariffSource

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TariffSource

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for TariffSource

Source§

fn eq(&self, other: &TariffSource) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for TariffSource

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.