Repository: bo4e/BO4E-python (language: python)

Issue:
Implement ENUM Wertermittlungsverfahren
https://www.bo4e.de/dokumentation/enumerations/enum-mengenverwendung


Discussion / hints:

Fix patch:
diff --git a/src/bo4e/enum/angebotsstatus.py b/src/bo4e/enum/angebotsstatus.py
new file mode 100644
index 000000000..db6b315df
--- /dev/null
+++ b/src/bo4e/enum/angebotsstatus.py
@@ -0,0 +1,18 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Angebotsstatus(StrEnum):
+    """
+    Gibt den Status eines Angebotes an.
+    """
+
+    KONZEPTION = "KONZEPTION"  #: Konzeption
+    UNVERBINDLICH = "UNVERBINDLICH"  #: unverbindlich
+    VERBINDLICH = "VERBINDLICH"  #: verbindlich
+    BEAUFTRAGT = "BEAUFTRAGT"  #: beauftragt
+    UNGUELTIG = "UNGUELTIG"  #: ungültig
+    ABGELEHNT = "ABGELEHNT"  #: abgelehnt
+    NACHGEFASST = "NACHGEFASST"  #: nachgefasst
+    AUSSTEHEND = "AUSSTEHEND"  #: ausstehend
+    ERLEDIGT = "ERLEDIGT"  #: erledigt
diff --git a/src/bo4e/enum/arithmetische_operation.py b/src/bo4e/enum/arithmetische_operation.py
index bacd2ee4c..80fd030bc 100644
--- a/src/bo4e/enum/arithmetische_operation.py
+++ b/src/bo4e/enum/arithmetische_operation.py
@@ -7,7 +7,7 @@ class ArithmetischeOperation(StrEnum):
     Mit dieser Aufzählung können arithmetische Operationen festgelegt werden.
     """
 
-    ADDITION = "ADDITION"
-    SUBTRAKTION = "SUBTRAKTION"
-    MULTIPLIKATION = "MULTIPLIKATION"
-    DIVISION = "DIVISION"
+    ADDITION = "ADDITION"  #: Es wird addiert
+    SUBTRAKTION = "SUBTRAKTION"  #: Es wird subtrahiert
+    MULTIPLIKATION = "MULTIPLIKATION"  #: Es wird multipliziert
+    DIVISION = "DIVISION"  #: Es wird dividiert
diff --git a/src/bo4e/enum/aufabschlagstyp.py b/src/bo4e/enum/aufabschlagstyp.py
new file mode 100644
index 000000000..c6ab170af
--- /dev/null
+++ b/src/bo4e/enum/aufabschlagstyp.py
@@ -0,0 +1,11 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class AufAbschlagstyp(StrEnum):
+    """
+    Festlegung, ob der Auf- oder Abschlag mit relativen oder absoluten Werten erfolgt.
+    """
+
+    RELATIV = "RELATIV"  #: prozentualer Auf-/Abschlag
+    ABSOLUT = "ABSOLUT"  #: Absoluter Auf-/Abschlag
diff --git a/src/bo4e/enum/aufabschlagsziel.py b/src/bo4e/enum/aufabschlagsziel.py
new file mode 100644
index 000000000..2bb29ebe2
--- /dev/null
+++ b/src/bo4e/enum/aufabschlagsziel.py
@@ -0,0 +1,15 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class AufAbschlagsziel(StrEnum):
+    """
+    Der Preis, auf den sich ein Auf- oder Abschlag bezieht.
+    """
+
+    ARBEITSPREIS_EINTARIF = "ARBEITSPREIS_EINTARIF"  #: Auf-/Abschlag auf den Arbeitspreis Eintarif
+    ARBEITSPREIS_HT = "ARBEITSPREIS_HT"  #: Auf-/Abschlag auf den Arbeitspreis HT
+    ARBEITSPREIS_NT = "ARBEITSPREIS_NT"  #: Auf-/Abschlag auf den Arbeitspreis NT
+    ARBEITSPREIS_HT_NT = "ARBEITSPREIS_HT_NT"  #: Auf-/Abschlag auf den Arbeitspreis HT und NT
+    GRUNDPREIS = "GRUNDPREIS"  #: Auf-/Abschlag auf den Grundpreis
+    GESAMTPREIS = "GESAMTPREIS"  #: Auf-/Abschlag auf den Gesamtpreis
diff --git a/src/bo4e/enum/ausschreibungsportal.py b/src/bo4e/enum/ausschreibungsportal.py
new file mode 100644
index 000000000..bf0681885
--- /dev/null
+++ b/src/bo4e/enum/ausschreibungsportal.py
@@ -0,0 +1,19 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Ausschreibungsportal(StrEnum):
+    """
+    Aufzählung der unterstützten Ausschreibungsportale.
+    """
+
+    ENPORTAL = "ENPORTAL"  #: enPORTAL
+    ENERGIE_AGENTUR = "ENERGIE_AGENTUR"  #: EnergieAgentur.NRW
+    BMWI = "BMWI"  #: BMWI-Ausschreibungen
+    ENERGIE_HANDELSPLATZ = "ENERGIE_HANDELSPLATZ"  #: energie-handelsplatz.de
+    BUND = "BUND"  #: BUND.DE
+    VERA_ONLINE = "VERA_ONLINE"  #: vera_online.de
+    ISPEX = "ISPEX"  #: ispex.de
+    ENERGIEMARKTPLATZ = "ENERGIEMARKTPLATZ"  #: energiemarktplatz.de
+    EVERGABE = "EVERGABE"  #: evergabe.de
+    DTAD = "DTAD"  #: dtad.de
diff --git a/src/bo4e/enum/ausschreibungsstatus.py b/src/bo4e/enum/ausschreibungsstatus.py
new file mode 100644
index 000000000..375d675ae
--- /dev/null
+++ b/src/bo4e/enum/ausschreibungsstatus.py
@@ -0,0 +1,13 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Ausschreibungsstatus(StrEnum):
+    """
+    Bezeichnungen für die Ausschreibungsphasen
+    """
+
+    PHASE1 = "PHASE1"  #: Phase1: Teilnahmewettbewerb
+    PHASE2 = "PHASE2"  #: Phase2: Angebotsphase
+    PHASE3 = "PHASE3"  #: Phase3: Verhandlungsphase
+    PHASE4 = "PHASE4"  #: Phase4: Zuschlagserteilung
diff --git a/src/bo4e/enum/ausschreibungstyp.py b/src/bo4e/enum/ausschreibungstyp.py
new file mode 100644
index 000000000..526cec0c7
--- /dev/null
+++ b/src/bo4e/enum/ausschreibungstyp.py
@@ -0,0 +1,12 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Ausschreibungstyp(StrEnum):
+    """
+    Aufzählung für die Typisierung von Ausschreibungen.
+    """
+
+    PRIVATRECHTLICH = "PRIVATRECHTLICH"  #: privat-rechtlich
+    OEFFENTLICHRECHTLICH = "OEFFENTLICHRECHTLICH"  #: öffentlich-rechtlich
+    EUROPAWEIT = "EUROPAWEIT"  #: europaweit
diff --git a/src/bo4e/enum/bdewartikelnummer.py b/src/bo4e/enum/bdewartikelnummer.py
new file mode 100644
index 000000000..0908bf310
--- /dev/null
+++ b/src/bo4e/enum/bdewartikelnummer.py
@@ -0,0 +1,59 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class BDEWArtikelnummer(StrEnum):
+    """
+    BDEW Artikelnummern
+    """
+
+    LEISTUNG = "LEISTUNG"  #: Leistung
+    LEISTUNG_PAUSCHAL = "LEISTUNG_PAUSCHAL"  #: Leistung pauschal
+    GRUNDPREIS = "GRUNDPREIS"  #: Grundpreis
+    REGELENERGIE_ARBEIT = "REGELENERGIE_ARBEIT"  #: Regelenergie Arbeit
+    REGELENERGIE_LEISTUNG = "REGELENERGIE_LEISTUNG"  #: Regelenergie Leistung
+    NOTSTROMLIEFERUNG_ARBEIT = "NOTSTROMLIEFERUNG_ARBEIT"  #: Notstromlieferung Arbeit
+    NOTSTROMLIEFERUNG_LEISTUNG = "NOTSTROMLIEFERUNG_LEISTUNG"  #: Notstromlieferung Leistung
+    RESERVENETZKAPAZITAET = "RESERVENETZKAPAZITAET"  #: Reservenetzkapazität
+    RESERVELEISTUNG = "RESERVELEISTUNG"  #: Reserveleistung
+    ZUSAETZLICHE_ABLESUNG = "ZUSAETZLICHE_ABLESUNG"  #: Zusätzliche Ablesung
+    PRUEFGEBUEHREN_AUSSERPLANMAESSIG = "PRUEFGEBUEHREN_AUSSERPLANMAESSIG"  #: Prüfgebühren (außerplanmäßig)
+    WIRKARBEIT = "WIRKARBEIT"  #: Wirkarbeit
+    SINGULAER_GENUTZTE_BETRIEBSMITTEL = (
+        "SINGULAER_GENUTZTE_BETRIEBSMITTEL"  #: singulär genutzte Betriebsmittel (z. B. Trafomiete, Leitungen)
+    )
+    ABGABE_KWKG = "ABGABE_KWKG"  #: Abgabe KWKG
+    ABSCHLAG = "ABSCHLAG"  #: Abschlag
+    KONZESSIONSABGABE = "KONZESSIONSABGABE"  #: Konzessionsabgabe
+    ENTGELT_FERNAUSLESUNG = "ENTGELT_FERNAUSLESUNG"  #: Entgelt für Fernauslesung
+    UNTERMESSUNG = "UNTERMESSUNG"  #: Untermessung
+    BLINDMEHRARBEIT = "BLINDMEHRARBEIT"  #: Blindmehrarbeit
+    ENTGELT_ABRECHNUNG = "ENTGELT_ABRECHNUNG"  #: Entgelt für Abrechnung
+    SPERRKOSTEN = "SPERRKOSTEN"  #: Sperrkosten
+    ENTSPERRKOSTEN = "ENTSPERRKOSTEN"  #: Entsperrkosten
+    MAHNKOSTEN = "MAHNKOSTEN"  #: Mahnkosten
+    MEHR_MINDERMENGEN = "MEHR_MINDERMENGEN"  #: Mehr- und Mindermenge
+    INKASSOKOSTEN = "INKASSOKOSTEN"  #: Inkassokosten
+    BLINDMEHRLEISTUNG = "BLINDMEHRLEISTUNG"  #: Blindmehrleistung
+    ENTGELT_MESSUNG_ABLESUNG = "ENTGELT_MESSUNG_ABLESUNG"  #: Entgelt für Messung und Ablesung
+    ENTGELT_EINBAU_BETRIEB_WARTUNG_MESSTECHNIK = (
+        "ENTGELT_EINBAU_BETRIEB_WARTUNG_MESSTECHNIK"  #: Entgelt für Einbau, Betrieb und Wartung der Messtechnik
+    )
+    AUSGLEICHSENERGIE = "AUSGLEICHSENERGIE"  #: Ausgleichsenergie
+    ZAEHLEINRICHTUNG = "ZAEHLEINRICHTUNG"  #: Zähleinrichtung
+    WANDLER_MENGENUMWERTER = "WANDLER_MENGENUMWERTER"  #: Wandler/Mengenumwerter
+    KOMMUNIKATIONSEINRICHTUNG = "KOMMUNIKATIONSEINRICHTUNG"  #: Kommunikationseinrichtung
+    TECHNISCHE_STEUEREINRICHTUNG = "TECHNISCHE_STEUEREINRICHTUNG"  #: Technische Steuereinrichtung
+    PARAGRAF_19_STROM_NEV_UMLAGE = "PARAGRAF_19_STROM_NEV_UMLAGE"  #: § 19 StromNEV Umlage
+    BEFESTIGUNGSEINRICHTUNG = "BEFESTIGUNGSEINRICHTUNG"  #: Befestigungseinrichtung (z. B. Zählertafel)
+    OFFSHORE_HAFTUNGSUMLAGE = "OFFSHORE_HAFTUNGSUMLAGE"  #: Offshore-Haftungsumlage
+    FIXE_ARBEITSENTGELTKOMPONENTE = "FIXE_ARBEITSENTGELTKOMPONENTE"  #: Fixe Arbeitsentgeltkomponente
+    FIXE_LEISTUNGSENTGELTKOMPONENTE = "FIXE_LEISTUNGSENTGELTKOMPONENTE"  #: Fixe Leistungsentgeltkomponente
+    UMLAGE_ABSCHALTBARE_LASTEN = "UMLAGE_ABSCHALTBARE_LASTEN"  #: Umlage abschaltbare Lasten
+    MEHRMENGE = "MEHRMENGE"  #: Mehrmenge
+    MINDERMENGE = "MINDERMENGE"  #: Mindermenge
+    ENERGIESTEUER = "ENERGIESTEUER"  #: Energiesteuer
+    SMARTMETER_GATEWAY = "SMARTMETER_GATEWAY"  #: Smartmeter-Gateway
+    STEUERBOX = "STEUERBOX"  #: Steuerbox
+    MSB_INKL_MESSUNG = "MSB_INKL_MESSUNG"  #: Messtellenbetrieb inklusive Messung
+    AUSGLEICHSENERGIE_UNTERDECKUNG = "AUSGLEICHSENERGIE_UNTERDECKUNG"  #: AusgleichsenergieUnterdeckung
diff --git a/src/bo4e/enum/bemessungsgroesse.py b/src/bo4e/enum/bemessungsgroesse.py
new file mode 100644
index 000000000..8271ed8d9
--- /dev/null
+++ b/src/bo4e/enum/bemessungsgroesse.py
@@ -0,0 +1,21 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Bemessungsgroesse(StrEnum):
+    """
+    Zur Abbildung von Messgrössen und zur Verwendung in energiewirtschaftlichen Berechnungen.
+    """
+
+    WIRKARBEIT_EL = "WIRKARBEIT_EL"  #: elektrische Wirkarbeit
+    LEISTUNG_EL = "LEISTUNG_EL"  #: elektrische Leistung
+    BLINDARBEIT_KAP = "BLINDARBEIT_KAP"  #: Blindarbeit kapazitiv
+    BLINDARBEIT_IND = "BLINDARBEIT_IND"  #: Blindarbeit induktiv
+    BLINDLEISTUNG_KAP = "BLINDLEISTUNG_KAP"  #: Blindleistung kapazitiv
+    BLINDLEISTUNG_IND = "BLINDLEISTUNG_IND"  #: Blindleistung induktiv
+    WIRKARBEIT_TH = "WIRKARBEIT_TH"  #: thermische Wirkarbeit
+    LEISTUNG_TH = "LEISTUNG_TH"  #: thermische Leistung
+    VOLUMEN = "VOLUMEN"  #: Volumen
+    VOLUMENSTROM = "VOLUMENSTROM"  #: Volumenstrom (Volumen/Zeit)
+    BENUTZUNGSDAUER = "BENUTZUNGSDAUER"  #: Benutzungsdauer (Arbeit/Leistung)
+    ANZAHL = "ANZAHL"  #: Darstellung einer Stückzahl
diff --git a/src/bo4e/enum/erzeugungsart.py b/src/bo4e/enum/erzeugungsart.py
new file mode 100644
index 000000000..b3069f98c
--- /dev/null
+++ b/src/bo4e/enum/erzeugungsart.py
@@ -0,0 +1,23 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Erzeugungsart(StrEnum):
+    """
+    Auflistung der Erzeugungsarten von Energie.
+    """
+
+    FOSSIL = "FOSSIL"  #: Fossile Brennstoffe
+    KWK = "KWK"  #: Kraft-Waerme-Koppelung
+    WIND = "WIND"  #: Windkraft
+    SOLAR = "SOLAR"  #: Solarenergie
+    KERNKRAFT = "KERNKRAFT"  #: Kernkraft
+    WASSER = "WASSER"  #: Wasserkraft
+    GEOTHERMIE = "GEOTHERMIE"  #: Geothermie
+    BIOMASSE = "BIOMASSE"  #: Biomasse
+    KOHLE = "KOHLE"  #: Kohle
+    GAS = "GAS"  #: Erdgas
+    SONSTIGE = "SONSTIGE"  #: Sonstige
+    SONSTIGE_EEG = "SONSTIGE_EEG"  #: Sonstige nach EEG
+    BIOGAS = "BIOGAS"  #: Biogas
+    KLIMANEUTRALES_GAS = "KLIMANEUTRALES_GAS"  #: Klimaneutrales Erdgas
diff --git a/src/bo4e/enum/geraetemerkmal.py b/src/bo4e/enum/geraetemerkmal.py
new file mode 100644
index 000000000..5ecd47429
--- /dev/null
+++ b/src/bo4e/enum/geraetemerkmal.py
@@ -0,0 +1,47 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Geraetemerkmal(StrEnum):
+    """
+    Auflistung möglicher abzurechnender Gerätetypen.
+    """
+
+    EINTARIF = "EINTARIF"  #: Eintarifzähler
+    ZWEITARIF = "ZWEITARIF"  #: Zweitarifzähler
+    MEHRTARIF = "MEHRTARIF"  #: Mehrtarifzähler
+    GAS_G2_5 = "GAS_G2_5"  #: Gaszähler Größe G2.5
+    GAS_G4 = "GAS_G4"  #: Gaszähler Größe G4
+    GAS_G6 = "GAS_G6"  #: Gaszähler Größe G6
+    GAS_G10 = "GAS_G10"  #: Gaszähler Größe G10
+    GAS_G16 = "GAS_G16"  #: Gaszähler Größe G16
+    GAS_G25 = "GAS_G25"  #: Gaszähler Größe G25
+    GAS_G40 = "GAS_G40"  #: Gaszähler Größe G40
+    GAS_G65 = "GAS_G65"  #: Gaszähler Größe G65
+    GAS_G100 = "GAS_G100"  #: Gaszähler Größe G100
+    GAS_G160 = "GAS_G160"  #: Gaszähler Größe G160
+    GAS_G250 = "GAS_G250"  #: Gaszähler Größe G250
+    GAS_G400 = "GAS_G400"  #: Gaszähler Größe G400
+    GAS_G650 = "GAS_G650"  #: Gaszähler Größe G650
+    GAS_G1000 = "GAS_G1000"  #: Gaszähler Größe G1000
+    GAS_G1600 = "GAS_G1600"  #: Gaszähler Größe G1600
+    GAS_G2500 = "GAS_G2500"  #: Gaszähler Größe G2500
+    IMPULSGEBER_G4_G100 = "IMPULSGEBER_G4_G100"  #: Impulsgeber für Zähler G4 - G100
+    IMPULSGEBER_G100 = "IMPULSGEBER_G100"  #: Impulsgeber für Zähler größer G100
+    TELEFONANSCHLUSS = "TELEFONANSCHLUSS"  #: Telefonanschluss
+    MODEM_GSM = "MODEM_GSM"  #: Modem-GSM
+    MODEM_GPRS = "MODEM_GPRS"  #: Modem-GPRS
+    MODEM_FUNK = "MODEM_FUNK"  #: Modem-Funk
+    MODEM_GSM_O_LG = "MODEM_GSM_O_LG"  #: vom Messstellenbetreiber beigestelltes GSM-Modem ohne Lastgangmessung
+    MODEM_GSM_M_LG = "MODEM_GSM_M_LG"  #: vom Messstellenbetreiber beigestelltes GSM-Modem mit Lastgangmessung
+    MODEM_FESTNETZ = "MODEM_FESTNETZ"  #: vom Messstellenbetreiber beigestelltes Festnetz-Modem
+    MODEM_GPRS_M_LG = "MODEM_GPRS_M_LG"  #: vom Messstellenbetreiber bereitgestelltes GPRS-Modem Lastgangmessung
+    PLC_KOM = "PLC_KOM"  #: PLC-Kom.-Einrichtung (Powerline Communication)
+    ETHERNET_KOM = "ETHERNET_KOM"  #: Ethernet-Kom.-Einricht. LAN/WLAN
+    DSL_KOM = "DSL_KOM"  #: DSL-Kommunikationseinrichtung
+    LTE_KOM = "LTE_KOM"  #: LTE-Kommunikationseinrichtung
+    KOMPAKT_MU = "KOMPAKT_MU"  #: Kompaktmengenumwerter
+    SYSTEM_MU = "SYSTEM_MU"  #: Systemmengenumwerter
+    TEMPERATUR_MU = "TEMPERATUR_MU"  #: Temperaturmengenumwerter
+    ZUSTANDS_MU = "ZUSTANDS_MU"  #: Zustandsmengenumwerter
+    UNBESTIMMT = "UNBESTIMMT"  #: Unbestimmtes Merkmal
diff --git a/src/bo4e/enum/gueltigkeitstyp.py b/src/bo4e/enum/gueltigkeitstyp.py
new file mode 100644
index 000000000..feba41c91
--- /dev/null
+++ b/src/bo4e/enum/gueltigkeitstyp.py
@@ -0,0 +1,14 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Gueltigkeitstyp(StrEnum):
+    """
+    Übersicht der verschiedenen Gültigkeiten zur Umsetzung von Positiv- bzw. Negativlisten.
+    """
+
+    NUR_IN = "NUR_IN"  #: Ein so eingeschränktes Merkmal gilt nur mit den angebenen Werten
+    NICHT_IN = "NICHT_IN"  #: Ein so eingeschränktes Merkmal gilt nicht mit den angebenen Werten
+    NUR_IN_KOMBINATION_MIT = (
+        "NUR_IN_KOMBINATION_MIT"  #: Die Kriterien mit diesem Gültigkeitstyp werden miteinander kombiniert
+    )
diff --git a/src/bo4e/enum/kalkulationsmethode.py b/src/bo4e/enum/kalkulationsmethode.py
new file mode 100644
index 000000000..021be7744
--- /dev/null
+++ b/src/bo4e/enum/kalkulationsmethode.py
@@ -0,0 +1,25 @@
+# pylint: disable=missing-module-docstring, line-too-long
+from bo4e.enum.strenum import StrEnum
+
+
+class Kalkulationsmethode(StrEnum):
+    """
+    Auflistung der verschiedenen Berechnungsmethoden für ein Preisblatt.
+    """
+
+    STUFEN = "STUFEN"  #: Stufenmodell, d.h. die Gesamtmenge wird in eine Stufe eingeordnet und für die gesamte Menge gilt der so ermittelte Preis
+    ZONEN = "ZONEN"  #: Zonenmodell, d.h. die Gesamtmenge wird auf die Zonen aufgeteilt und für die Teilmengen gilt der jeweilige Preis der Zone.
+    VORZONEN_GP = "VORZONEN_GP"  #: Vorzonengrundpreis
+    SIGMOID = "SIGMOID"  #: Sigmoidfunktion
+    BLINDARBEIT_GT_50_PROZENT = "BLINDARBEIT_GT_50_PROZENT"  #: Blindarbeit oberhalb 50% der Wirkarbeit
+    BLINDARBEIT_GT_40_PROZENT = "BLINDARBEIT_GT_40_PROZENT"  #: Blindarbeit oberhalb 40% der Wirkarbeit
+    BLINDARBEIT_MIT_FREIMENGE = "BLINDARBEIT_MIT_FREIMENGE"  #: Blindarbeit. Freimenge ist durch cos phi oder prozentualem Anteil der Wirkarbeit angegeben.
+    AP_GP_ZONEN = "AP_GP_ZONEN"  #: Arbeits- und Grundpreis gezont
+    LP_INSTALL_LEISTUNG = "LP_INSTALL_LEISTUNG"  #: Leistungsentgelt auf Grundlage der installierten Leistung
+    AP_TRANSPORT_ODER_VERTEILNETZ = "AP_TRANSPORT_ODER_VERTEILNETZ"  #: AP auf Grundlage Transport- oder Verteilnetz
+    AP_TRANSPORT_ODER_VERTEILNETZ_ORTSVERTEILNETZ_SIGMOID = "AP_TRANSPORT_ODER_VERTEILNETZ_ORTSVERTEILNETZ_SIGMOID"  #: AP auf Grundlage Transport- oder Verteilnetz, Ortsverteilnetz über Sigmoid
+    LP_JAHRESVERBRAUCH = "LP_JAHRESVERBRAUCH"  #: Leistungsentgelt auf Grundlage des Jahresverbrauchs
+    LP_TRANSPORT_ODER_VERTEILNETZ = "LP_TRANSPORT_ODER_VERTEILNETZ"  #: LP auf Grundlage Transport- oder Verteilnetz
+    LP_TRANSPORT_ODER_VERTEILNETZ_ORTSVERTEILNETZ_SIGMOID = "LP_TRANSPORT_ODER_VERTEILNETZ_ORTSVERTEILNETZ_SIGMOID"  #: LP auf Grundlage Transport- oder Verteilnetz, Ortsverteilnetz über Sigmoid
+    FUNKTIONEN = "FUNKTIONEN"  #: Funktionsbezogene Leistungsermittlung bei Verbräuchen oberhalb der SLP Grenze. (ähnlich Sigmoid)
+    VERBRAUCH_UEBER_SLP_GRENZE_FUNKTIONSBEZOGEN_WEITERE_BERECHNUNG_ALS_LGK = "VERBRAUCH_UEBER_SLP_GRENZE_FUNKTIONSBEZOGEN_WEITERE_BERECHNUNG_ALS_LGK"  #: Bei einem Verbrauch über der SLP-Grenze (letzte Staffelgrenze überschritten) erfolgt die Berechnung funktionsbezogen (s.o.) als LGK.
diff --git a/src/bo4e/enum/kostenklasse.py b/src/bo4e/enum/kostenklasse.py
new file mode 100644
index 000000000..0a6a2e728
--- /dev/null
+++ b/src/bo4e/enum/kostenklasse.py
@@ -0,0 +1,15 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Kostenklasse(StrEnum):
+    """
+    Kostenklassen bilden die oberste Ebene der verschiedenen Kosten.
+    In der Regel werden die Gesamtkosten einer Kostenklasse in einer App berechnet.
+    """
+
+    FREMDKOSTEN = "FREMDKOSTEN"  #: Fremdkosten
+    BESCHAFFUNG = "BESCHAFFUNG"  #: Beschaffung
+    SELBSTKOSTEN = "SELBSTKOSTEN"  #: Selbstkosten
+    MARGEN = "MARGEN"  #: Margen
+    ENERGIEVERSORGUNGSKOSTEN = "ENERGIEVERSORGUNGSKOSTEN"  #: Energieversorgungskosten
diff --git a/src/bo4e/enum/kundengruppe.py b/src/bo4e/enum/kundengruppe.py
new file mode 100644
index 000000000..57dcc3229
--- /dev/null
+++ b/src/bo4e/enum/kundengruppe.py
@@ -0,0 +1,44 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Kundengruppe(StrEnum):
+    """
+    Kundengruppe für eine Marktlokation (orientiert sich an den Standard-Lastprofilen).
+    """
+
+    RLM = "RLM"  #: Kunde mit registrierender Leistungsmessung (kein SLP)
+    RLM_KOMMUNAL = "RLM_KOMMUNAL"  #: Kommunale Abnahmestelle leistungsgemessen
+    SLP_KOMMUNAL = "SLP_KOMMUNAL"  #: Kommunale Abnahmestelle nicht leistungsgemessen
+    SLP_S_G0 = "SLP_S_G0"  #: Gewerbe allgemein
+    SLP_S_G1 = "SLP_S_G1"  #: Werktags
+    SLP_S_G2 = "SLP_S_G2"  #: Verbrauch in Abendstunden
+    SLP_S_G3 = "SLP_S_G3"  #: Gewerbe durchlaufend
+    SLP_S_G4 = "SLP_S_G4"  #: Laden, Friseur
+    SLP_S_G5 = "SLP_S_G5"  #: Bäckerei mit Backstube
+    SLP_S_G6 = "SLP_S_G6"  #: Wochenendbetrieb
+    SLP_S_G7 = "SLP_S_G7"  #: Mobilfunksendestation
+    SLP_S_L0 = "SLP_S_L0"  #: Landwirtschaft allgemein
+    SLP_S_L1 = "SLP_S_L1"  #: Landwirtschaft mit Milchwirtschaft/Nebenerwerbs-Tierzucht
+    SLP_S_L2 = "SLP_S_L2"  #: Übrige Landwirtschaftsbetriebe
+    SLP_S_H0 = "SLP_S_H0"  #: Haushalt allgemein
+    SLP_S_SB = "SLP_S_SB"  #: Straßenbeleuchtung
+    SLP_S_HZ = "SLP_S_HZ"  #: Nachtspeicherheizung
+    SLP_S_WP = "SLP_S_WP"  #: Wärmepumpe
+    SLP_S_EM = "SLP_S_EM"  #: Elektromobilität
+    SLP_S_HZ_GEM = "SLP_S_HZ_GEM"  #: Nachtspeicherheizung gemeinsame Messung
+    SLP_G_GKO = "SLP_G_GKO"  #: Gebietskörpersch., Kreditinst. u. Versich., Org. o. Erwerbszw. & öff. Einr.
+    SLP_G_STANDARD = "SLP_G_STANDARD"  #: Standardkundengruppe für Gas
+    SLP_G_GHA = "SLP_G_GHA"  #: Einzelhandel, Großhandel
+    SLP_G_GMK = "SLP_G_GMK"  #: Metall, Kfz
+    SLP_G_GBD = "SLP_G_GBD"  #: sonst. betr. Dienstleistungen
+    SLP_G_GGA = "SLP_G_GGA"  #: Beherbergung
+    SLP_G_GBH = "SLP_G_GBH"  #: Gaststätten
+    SLP_G_GBA = "SLP_G_GBA"  #: Bäckereien
+    SLP_G_GWA = "SLP_G_GWA"  #: Wäschereien
+    SLP_G_GGB = "SLP_G_GGB"  #: Gartenbau
+    SLP_G_GPD = "SLP_G_GPD"  #: Papier und Druck
+    SLP_G_GMF = "SLP_G_GMF"  #: haushaltsähnliche Gewerbebetriebe
+    SLP_G_HEF = "SLP_G_HEF"  #: Einfamilienhaushalt
+    SLP_G_HMF = "SLP_G_HMF"  #: Mehrfamilienhaushalt
+    SLP_G_HKO = "SLP_G_HKO"  #: Kochgas
diff --git a/src/bo4e/enum/kundengruppeka.py b/src/bo4e/enum/kundengruppeka.py
new file mode 100644
index 000000000..6c085b70a
--- /dev/null
+++ b/src/bo4e/enum/kundengruppeka.py
@@ -0,0 +1,29 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class KundengruppeKA(StrEnum):
+    """
+    Eine Aufzählung zur Einordnung für die Höhe der Konzessionsabgabe.
+    """
+
+    S_SCHWACHLAST = "S_SCHWACHLAST"  #: Strom
+    S_TARIF_25000 = "S_TARIF_25000"  #: Strom
+    S_TARIF_100000 = "S_TARIF_100000"  #: Strom
+    S_TARIF_500000 = "S_TARIF_500000"  #: Strom
+    S_TARIF_G_500000 = "S_TARIF_G_500000"  #: Strom
+    S_SONDERKUNDE = "S_SONDERKUNDE"  #: Strom
+    G_KOWA_25000 = "G_KOWA_25000"  #: Gas
+    G_KOWA_100000 = "G_KOWA_100000"  #: Gas
+    G_KOWA_500000 = "G_KOWA_500000"  #: Gas
+    G_KOWA_G_500000 = "G_KOWA_G_500000"  #: Gas
+    G_TARIF_25000 = "G_TARIF_25000"  #: Gas
+    G_TARIF_100000 = "G_TARIF_100000"  #: Gas
+    G_TARIF_500000 = "G_TARIF_500000"  #: Gas
+    G_TARIF_G_500000 = "G_TARIF_G_500000"  #: Gas
+    G_SONDERKUNDE = "G_SONDERKUNDE"  #: Gas
+    SONDER_KAS = "SONDER_KAS"  #: beides
+    SONDER_SAS = "SONDER_SAS"  #: beides
+    SONDER_TAS = "SONDER_TAS"  #: beides
+    SONDER_TKS = "SONDER_TKS"  #: Gas
+    SONDER_TSS = "SONDER_TSS"  #: Strom
diff --git a/src/bo4e/enum/kundentyp.py b/src/bo4e/enum/kundentyp.py
new file mode 100644
index 000000000..0177b0054
--- /dev/null
+++ b/src/bo4e/enum/kundentyp.py
@@ -0,0 +1,24 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Kundentyp(StrEnum):
+    """
+    Auflistung der Typen von Endkunden. Daraus kann das Verbrauchsprofil abgeleitet werden.
+    """
+
+    GEWERBE = "GEWERBE"  #: Gewerbekunden
+    PRIVAT = "PRIVAT"  #: Privatkunden
+    LANDWIRT = "LANDWIRT"  #: Landwirte
+    SONSTIGE = "SONSTIGE"  #: Sonstige Endkunden
+    HAUSHALT = "HAUSHALT"  #: Haushaltskunden
+    DIREKTHEIZUNG = "DIREKTHEIZUNG"  #: Direktheizungen
+    GEMEINSCHAFT_MFH = "GEMEINSCHAFT_MFH"  #: Gemeinschaftseinrichtungen von MFH
+    KIRCHE = "KIRCHE"  #: Kirchen und caritative Einrichtungen
+    KWK = "KWK"  #: KWK-Anlagen
+    LADESAEULE = "LADESAEULE"  #: Ladesäulen
+    BELEUCHTUNG_OEFFENTLICH = "BELEUCHTUNG_OEFFENTLICH"  #: Öffentliche Beleuchtungen
+    BELEUCHTUNG_STRASSE = "BELEUCHTUNG_STRASSE"  #: Straßenbeleuchtungen
+    SPEICHERHEIZUNG = "SPEICHERHEIZUNG"  #: Speicherheizungen
+    UNTERBR_EINRICHTUNG = "UNTERBR_EINRICHTUNG"  #: Unterbrechbare Verbrauchseinrichtungen
+    WAERMEPUMPE = "WAERMEPUMPE"  #: Wärmepumpen
diff --git a/src/bo4e/enum/leistungstyp.py b/src/bo4e/enum/leistungstyp.py
new file mode 100644
index 000000000..1c59d651b
--- /dev/null
+++ b/src/bo4e/enum/leistungstyp.py
@@ -0,0 +1,46 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+# pylint:disable=empty-docstring
+# no docstring in official docs as of 2021-12-01
+class Leistungstyp(StrEnum):
+    """ """
+
+    ARBEITSPREIS_WIRKARBEIT = "ARBEITSPREIS_WIRKARBEIT"  #: Arbeitspreis zur Abrechnung der Wirkarbeit
+    LEISTUNGSPREIS_WIRKLEISTUNG = "LEISTUNGSPREIS_WIRKLEISTUNG"  #: Leistungspreis zur Abrechnung der Wirkleistung
+    ARBEITSPREIS_BLINDARBEIT_IND = (
+        "ARBEITSPREIS_BLINDARBEIT_IND"  #: Arbeitspreis zur Abrechnung der Blindarbeit induktiv
+    )
+    ARBEITSPREIS_BLINDARBEIT_KAP = (
+        "ARBEITSPREIS_BLINDARBEIT_KAP"  #: Arbeitspreis zur Abrechnung der Blindarbeit kapazitiv
+    )
+    GRUNDPREIS = "GRUNDPREIS"  #: Grundpreis (pro Zeiteinheit)
+    GRUNDPREIS_ARBEIT = "GRUNDPREIS_ARBEIT"  #: Grundpreis, der auf die Arbeit berechnet wird (bei RLM)
+    GRUNDPREIS_LEISTUNG = "GRUNDPREIS_LEISTUNG"  #: Grundpreis, der auf die Leistung berechnet wird (bei RLM)
+    MEHRMINDERMENGE = "MEHRMINDERMENGE"  #: Mehr- oder Mindermenge
+    MESSSTELLENBETRIEB = "MESSSTELLENBETRIEB"  #: Preis pro Zeiteinheit
+    MESSDIENSTLEISTUNG = "MESSDIENSTLEISTUNG"  #: Preis pro Zeiteinheit
+    MESSDIENSTLEISTUNG_INKL_MESSUNG = (
+        "MESSDIENSTLEISTUNG_INKL_MESSUNG"  #: MDL inklusive der Messung (ab 2017), Preis pro Zeiteinheit
+    )
+    ABRECHNUNG = "ABRECHNUNG"  #: Preis pro Zeiteinheit
+    KONZESSIONS_ABGABE = "KONZESSIONS_ABGABE"  #: Konzessionsabgabe
+    KWK_UMLAGE = "KWK_UMLAGE"  #: KWK-Umlage
+    OFFSHORE_UMLAGE = "OFFSHORE_UMLAGE"  #: Offshore-Haftungsumlage
+    ABLAV_UMLAGE = "ABLAV_UMLAGE"  #: Umlage für abschaltbare Lasten
+    SONDERKUNDEN_UMLAGE = "SONDERKUNDEN_UMLAGE"  #: §19 StromNEV Umlage
+    REGELENERGIE_UMLAGE = "REGELENERGIE_UMLAGE"  #: Regelenergieumlage
+    BILANZIERUNG_UMLAGE = "BILANZIERUNG_UMLAGE"  #: Bilanzierungsumlage
+    AUSLESUNG_ZUSAETZLICH = "AUSLESUNG_ZUSAETZLICH"  #: Zusätzliche Auslesung (pro Vorgang)
+    ABLESUNG_ZUSAETZLICH = "ABLESUNG_ZUSAETZLICH"  #: Zusätzliche Ablesung (pro Vorgang)
+    ABRECHNUNG_ZUSAETZLICH = "ABRECHNUNG_ZUSAETZLICH"  #: Zusätzliche Abresung (pro Vorgang)
+    SPERRUNG = "SPERRUNG"  #: Sperrung einer Abnahmestelle
+    ENTSPERRUNG = "ENTSPERRUNG"  #: Entsperrung einer Abnahmestelle
+    MAHNKOSTEN = "MAHNKOSTEN"  #: Mahnkosten
+    INKASSOKOSTEN = "INKASSOKOSTEN"  #: Inkassokosten
+    EEG_UMLAGE = "EEG_UMLAGE"  #: EEG-Umlage
+    ENERGIESTEUER = "ENERGIESTEUER"  #: Strom- oder Erdgassteuer
+    NETZPREIS = "NETZPREIS"  #: Netzpreis
+    MESSPREIS = "MESSPREIS"  #: Messpreis
+    SONSTIGER_PREIS = "SONSTIGER_PREIS"  #: Sonstiger_Preis
diff --git a/src/bo4e/enum/lokationstyp.py b/src/bo4e/enum/lokationstyp.py
new file mode 100644
index 000000000..9cc91cf51
--- /dev/null
+++ b/src/bo4e/enum/lokationstyp.py
@@ -0,0 +1,11 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Lokationstyp(StrEnum):
+    """
+    Gibt an, ob es sich um eine Markt- oder Messlokation handelt.
+    """
+
+    MALO = "MALO"  #: Marktlokation
+    MELO = "MELO"  #: Messlokation
diff --git a/src/bo4e/enum/medium.py b/src/bo4e/enum/medium.py
new file mode 100644
index 000000000..01bb2301f
--- /dev/null
+++ b/src/bo4e/enum/medium.py
@@ -0,0 +1,13 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Medium(StrEnum):
+    """
+    Gibt ein physikalisches Medium an.
+    """
+
+    STROM = "STROM"  #: STROM
+    GAS = "GAS"  #: GAS
+    WASSER = "WASSER"  #: WASSER
+    DAMPF = "DAMPF"  #: DAMPF
diff --git a/src/bo4e/enum/mengenoperator.py b/src/bo4e/enum/mengenoperator.py
new file mode 100644
index 000000000..9947e0def
--- /dev/null
+++ b/src/bo4e/enum/mengenoperator.py
@@ -0,0 +1,12 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Mengenoperator(StrEnum):
+    """
+    Angabe, wie eine Menge in Bezug auf einen Wert zu bilden ist.
+    """
+
+    KLEINER_ALS = "KLEINER_ALS"  #: KLEINER_ALS
+    GROESSER_ALS = "GROESSER_ALS"  #: GROESSER_ALS
+    GLEICH = "GLEICH"  #: GLEICH
diff --git a/src/bo4e/enum/messart.py b/src/bo4e/enum/messart.py
new file mode 100644
index 000000000..e293fff9d
--- /dev/null
+++ b/src/bo4e/enum/messart.py
@@ -0,0 +1,12 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Messart(StrEnum):
+    """
+    Gibt an, auf welche Art gemessen wurde.
+    """
+
+    AKTUELLERWERT = "AKTUELLERWERT"  #: AKTUELLERWERT
+    MITTELWERT = "MITTELWERT"  #: MITTELWERT
+    MAXIMALWERT = "MAXIMALWERT"  #: MAXIMALWERT
diff --git a/src/bo4e/enum/messgroesse.py b/src/bo4e/enum/messgroesse.py
new file mode 100644
index 000000000..0ef5511a7
--- /dev/null
+++ b/src/bo4e/enum/messgroesse.py
@@ -0,0 +1,22 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Messgroesse(StrEnum):
+    """
+    Gibt die physikalische Größe an, die gemessen wurde.
+    """
+
+    STROM = "STROM"  #: Strom
+    SPANNUNG = "SPANNUNG"  #: Spannung
+    WIRKLEISTUNG = "WIRKLEISTUNG"  #: Wirkleistung
+    BLINDLEISTUNG = "BLINDLEISTUNG"  #: Blindleistung
+    DRUCK = "DRUCK"  #: Druck
+    LASTGANG = "LASTGANG"  #: Lastgang
+    LASTPROFIL = "LASTPROFIL"  #: Lastprofil
+    TEMPERATUR = "TEMPERATUR"  #: Temperatur
+    ZZAHL = "ZZAHL"  #: Zustandszahl
+    BRENNWERT = "BRENNWERT"  #: Brennwert
+    GRADTZAGSZAHLEN = "GRADTZAGSZAHLEN"  #: Gradtagszahlen
+    VOLUMENSTROM = "VOLUMENSTROM"  #: Volumenstrom
+    PREISE = "PREISE"  #: Preise
diff --git a/src/bo4e/enum/messpreistyp.py b/src/bo4e/enum/messpreistyp.py
new file mode 100644
index 000000000..5fd87ac6c
--- /dev/null
+++ b/src/bo4e/enum/messpreistyp.py
@@ -0,0 +1,33 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Messpreistyp(StrEnum):
+    """
+    Festlegung, welcher Typ von Messung mit einem Preis belegt wird
+    """
+
+    MESSPREIS_G2_5 = "MESSPREIS_G2_5"  #: MESSPREIS_G2_5
+    MESSPREIS_G4 = "MESSPREIS_G4"  #: MESSPREIS_G4
+    MESSPREIS_G6 = "MESSPREIS_G6"  #: MESSPREIS_G6
+    MESSPREIS_G10 = "MESSPREIS_G10"  #: MESSPREIS_G10
+    MESSPREIS_G16 = "MESSPREIS_G16"  #: MESSPREIS_G16
+    MESSPREIS_G25 = "MESSPREIS_G25"  #: MESSPREIS_G25
+    MESSPREIS_G40 = "MESSPREIS_G40"  #: MESSPREIS_G40
+    ELEKTRONISCHER_AUFSATZ = "ELEKTRONISCHER_AUFSATZ"  #: ELEKTRONISCHER_AUFSATZ
+    SMART_METER_MESSPREIS_G2_5 = "SMART_METER_MESSPREIS_G2_5"  #: SMART_METER_MESSPREIS_G2_5
+    SMART_METER_MESSPREIS_G4 = "SMART_METER_MESSPREIS_G4"  #: SMART_METER_MESSPREIS_G4
+    SMART_METER_MESSPREIS_G6 = "SMART_METER_MESSPREIS_G6"  #: SMART_METER_MESSPREIS_G6
+    SMART_METER_MESSPREIS_G10 = "SMART_METER_MESSPREIS_G10"  #: SMART_METER_MESSPREIS_G10
+    SMART_METER_MESSPREIS_G16 = "SMART_METER_MESSPREIS_G16"  #: SMART_METER_MESSPREIS_G16
+    SMART_METER_MESSPREIS_G25 = "SMART_METER_MESSPREIS_G25"  #: SMART_METER_MESSPREIS_G25
+    SMART_METER_MESSPREIS_G40 = "SMART_METER_MESSPREIS_G40"  #: SMART_METER_MESSPREIS_G40
+    VERRECHNUNGSPREIS_ET_WECHSEL = "VERRECHNUNGSPREIS_ET_WECHSEL"  #: VERRECHNUNGSPREIS_ET_WECHSEL
+    VERRECHNUNGSPREIS_ET_DREH = "VERRECHNUNGSPREIS_ET_DREH"  #: VERRECHNUNGSPREIS_ET_DREH
+    VERRECHNUNGSPREIS_ZT_WECHSEL = "VERRECHNUNGSPREIS_ZT_WECHSEL"  #: VERRECHNUNGSPREIS_ZT_WECHSEL
+    VERRECHNUNGSPREIS_ZT_DREH = "VERRECHNUNGSPREIS_ZT_DREH"  #: VERRECHNUNGSPREIS_ZT_DREH
+    VERRECHNUNGSPREIS_L_ET = "VERRECHNUNGSPREIS_L_ET"  #: VERRECHNUNGSPREIS_L_ET
+    VERRECHNUNGSPREIS_L_ZT = "VERRECHNUNGSPREIS_L_ZT"  #: VERRECHNUNGSPREIS_L_ZT
+    VERRECHNUNGSPREIS_SM = "VERRECHNUNGSPREIS_SM"  #: VERRECHNUNGSPREIS_SM
+    AUFSCHLAG_WANDLER = "AUFSCHLAG_WANDLER"  #: AUFSCHLAG_WANDLER
+    AUFSCHLAG_TARIFSCHALTUNG = "AUFSCHLAG_TARIFSCHALTUNG"  #: AUFSCHLAG_TARIFSCHALTUNG
diff --git a/src/bo4e/enum/messwertstatus.py b/src/bo4e/enum/messwertstatus.py
new file mode 100644
index 000000000..47dd1d927
--- /dev/null
+++ b/src/bo4e/enum/messwertstatus.py
@@ -0,0 +1,17 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Messwertstatus(StrEnum):
+    """
+    Der Status eines Zählerstandes
+    """
+
+    ABGELESEN = "ABGELESEN"  #: ABGELESEN
+    ERSATZWERT = "ERSATZWERT"  #: ERSATZWERT
+    VORSCHLAGSWERT = "VORSCHLAGSWERT"  #: VORSCHLAGSWERT
+    NICHT_VERWENDBAR = "NICHT_VERWENDBAR"  #: NICHT_VERWENDBAR
+    PROGNOSEWERT = "PROGNOSEWERT"  #: PROGNOSEWERT
+    VORLAEUFIGERWERT = "VORLAEUFIGERWERT"  #: VORLAEUFIGERWERT
+    ENERGIEMENGESUMMIERT = "ENERGIEMENGESUMMIERT"  #: ENERGIEMENGESUMMIERT
+    FEHLT = "FEHLT"  #: FEHLT
diff --git a/src/bo4e/enum/messwertstatuszusatz.py b/src/bo4e/enum/messwertstatuszusatz.py
new file mode 100644
index 000000000..44458c17b
--- /dev/null
+++ b/src/bo4e/enum/messwertstatuszusatz.py
@@ -0,0 +1,58 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Messwertstatuszusatz(StrEnum):
+    """
+    Aufzählung von zusätzlichen Informationen zum Status, beispielsweise in Lastgängen oder Zählwerkständen.
+    """
+
+    Z84_LEERSTAND = "Z84_LEERSTAND"  #: Z84_LEERSTAND
+    Z85_REALERZAEHLERUEBERLAUFGEPRUEFT = "Z85_REALERZAEHLERUEBERLAUFGEPRUEFT"  #: Z85_REALERZAEHLERUEBERLAUFGEPRUEFT
+    Z86_PLAUSIBELWGKONTROLLABLESUNG = "Z86_PLAUSIBELWGKONTROLLABLESUNG"  #: Z86_PLAUSIBELWGKONTROLLABLESUNG
+    Z87_PLAUSIBELWGKUNDENHINWEIS = "Z87_PLAUSIBELWGKUNDENHINWEIS"  #: Z87_PLAUSIBELWGKUNDENHINWEIS
+    ZC3_AUSTAUSCHDESERSATZWERTES = "ZC3_AUSTAUSCHDESERSATZWERTES"  #: ZC3_AUSTAUSCHDESERSATZWERTES
+    Z88_VERGLEICHSMESSUNG_GEEICHT = "Z88_VERGLEICHSMESSUNG(GEEICHT)"  #: Z88_VERGLEICHSMESSUNG(GEEICHT)
+    Z89_VERGLEICHSMESSUNG_NICHTGEEICHT = "Z89_VERGLEICHSMESSUNG(NICHTGEEICHT)"  #: Z89_VERGLEICHSMESSUNG(NICHTGEEICHT)
+    Z90_MESSWERTNACHBILDUNGAUSGEEICHTENWERTEN = (
+        "Z90_MESSWERTNACHBILDUNGAUSGEEICHTENWERTEN"  #: Z90_MESSWERTNACHBILDUNGAUSGEEICHTENWERTEN
+    )
+    Z91_MESSWERTNACHBILDUNGAUSNICHTGEEICHTENWERTEN = (
+        "Z91_MESSWERTNACHBILDUNGAUSNICHTGEEICHTENWERTEN"  #: Z91_MESSWERTNACHBILDUNGAUSNICHTGEEICHTENWERTEN
+    )
+    Z92_INTERPOLATION = "Z92_INTERPOLATION"  #: Z92_INTERPOLATION
+    Z93_HALTEWERT = "Z93_HALTEWERT"  #: Z93_HALTEWERT
+    Z94_BILANZIERUNGNETZABSCHNITT = "Z94_BILANZIERUNGNETZABSCHNITT"  #: Z94_BILANZIERUNGNETZABSCHNITT
+    Z95_HISTORISCHEMESSWERTE = "Z95_HISTORISCHEMESSWERTE"  #: Z95_HISTORISCHEMESSWERTE
+    ZJ2_STATISTISCHEMETHODE = "ZJ2_STATISTISCHEMETHODE"  #: ZJ2_STATISTISCHEMETHODE
+    Z74_KEINZUGANG = "Z74_KEINZUGANG"  #: Z74_KEINZUGANG
+    Z75_KOMMUNIKATIONSSTOERUNG = "Z75_KOMMUNIKATIONSSTOERUNG"  #: Z75_KOMMUNIKATIONSSTOERUNG
+    Z76_NETZAUSFALL = "Z76_NETZAUSFALL"  #: Z76_NETZAUSFALL
+    Z77_SPANNUNGSAUSFALL = "Z77_SPANNUNGSAUSFALL"  #: Z77_SPANNUNGSAUSFALL
+    Z78_GERAETEWECHSEL = "Z78_GERAETEWECHSEL"  #: Z78_GERAETEWECHSEL
+    Z79_KALIBRIERUNG = "Z79_KALIBRIERUNG"  #: Z79_KALIBRIERUNG
+    Z80_GERAETARBEITETAUSSERHALBDERBETRIEBSBEDINGUNGEN = (
+        "Z80_GERAETARBEITETAUSSERHALBDERBETRIEBSBEDINGUNGEN"  #: Z80_GERAETARBEITETAUSSERHALBDERBETRIEBSBEDINGUNGEN
+    )
+    Z81_MESSEINRICHTUNGGESTOERT_DEFEKT = "Z81_MESSEINRICHTUNGGESTOERT_DEFEKT"  #: Z81_MESSEINRICHTUNGGESTOERT_DEFEKT
+    Z82_UNSICHERHEITMESSUNG = "Z82_UNSICHERHEITMESSUNG"  #: Z82_UNSICHERHEITMESSUNG
+    Z98_BERUECKSICHTIGUNGSTOERMENGENZAEHLWERK = (
+        "Z98_BERUECKSICHTIGUNGSTOERMENGENZAEHLWERK"  #: Z98_BERUECKSICHTIGUNGSTOERMENGENZAEHLWERK
+    )
+    Z99_MENGENUMWERTUNGUNVOLLSTAENDIG = "Z99_MENGENUMWERTUNGUNVOLLSTAENDIG"  #: Z99_MENGENUMWERTUNGUNVOLLSTAENDIG
+    ZA0_UHRZEITGESTELLT_SYNCHRONISATION = "ZA0_UHRZEITGESTELLT_SYNCHRONISATION"  #: ZA0_UHRZEITGESTELLT_SYNCHRONISATION
+    ZA1_MESSWERTUNPLAUSIBEL = "ZA1_MESSWERTUNPLAUSIBEL"  #: ZA1_MESSWERTUNPLAUSIBEL
+    ZC2_TARIFSCHALTGERAETDEFEKT = "ZC2_TARIFSCHALTGERAETDEFEKT"  #: ZC2_TARIFSCHALTGERAETDEFEKT
+    ZC4_IMPULSWERTIGKEITNICHTAUSREICHEND = (
+        "ZC4_IMPULSWERTIGKEITNICHTAUSREICHEND"  #: ZC4_IMPULSWERTIGKEITNICHTAUSREICHEND
+    )
+    ZA3_FALSCHERWANDLERFAKTOR = "ZA3_FALSCHERWANDLERFAKTOR"  #: ZA3_FALSCHERWANDLERFAKTOR
+    ZA4_FEHLERHAFTEABLESUNG = "ZA4_FEHLERHAFTEABLESUNG"  #: ZA4_FEHLERHAFTEABLESUNG
+    ZA5_AENDERUNGDERBERECHNUNG = "ZA5_AENDERUNGDERBERECHNUNG"  #: ZA5_AENDERUNGDERBERECHNUNG
+    ZA6_UMBAUDERMESSLOKATION = "ZA6_UMBAUDERMESSLOKATION"  #: ZA6_UMBAUDERMESSLOKATION
+    ZA7_DATENBEARBEITUNGSFEHLER = "ZA7_DATENBEARBEITUNGSFEHLER"  #: ZA7_DATENBEARBEITUNGSFEHLER
+    ZA8_BRENNWERTKORREKTUR = "ZA8_BRENNWERTKORREKTUR"  #: ZA8_BRENNWERTKORREKTUR
+    ZA9_Z_ZAHL_KORREKTUR = "ZA9_Z-ZAHL-KORREKTUR"  #: ZA9_Z-ZAHL-KORREKTUR
+    ZB0_STOERUNG_DEFEKTMESSEINRICHTUNG = "ZB0_STOERUNG_DEFEKTMESSEINRICHTUNG"  #: ZB0_STOERUNG_DEFEKTMESSEINRICHTUNG
+    ZB9_AENDERUNGTARIFSCHALTZEITEN = "ZB9_AENDERUNGTARIFSCHALTZEITEN"  #: ZB9_AENDERUNGTARIFSCHALTZEITEN
+    ZG3_UMSTELLUNGGASQUALITAET = "ZG3_UMSTELLUNGGASQUALITAET"  #: ZG3_UMSTELLUNGGASQUALITAET
diff --git a/src/bo4e/enum/nnrechnungsart.py b/src/bo4e/enum/nnrechnungsart.py
new file mode 100644
index 000000000..fec7a1b1a
--- /dev/null
+++ b/src/bo4e/enum/nnrechnungsart.py
@@ -0,0 +1,11 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class NNRechnungsart(StrEnum):
+    """
+    Abbildung verschiedener in der INVOIC angegebenen Rechnungsarten.
+    """
+
+    HANDELSRECHNUNG = "HANDELSRECHNUNG"  #: HANDELSRECHNUNG
+    SELBSTAUSGESTELLT = "SELBSTAUSGESTELLT"  #: SELBSTAUSGESTELLT
diff --git a/src/bo4e/enum/nnrechnungstyp.py b/src/bo4e/enum/nnrechnungstyp.py
new file mode 100644
index 000000000..73a93b038
--- /dev/null
+++ b/src/bo4e/enum/nnrechnungstyp.py
@@ -0,0 +1,18 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class NNRechnungstyp(StrEnum):
+    """
+    Abbildung verschiedener in der INVOIC angegebenen Rechnungstypen.
+    """
+
+    ABSCHLUSSRECHNUNG = "ABSCHLUSSRECHNUNG"  #: ABSCHLUSSRECHNUNG
+    ABSCHLAGSRECHNUNG = "ABSCHLAGSRECHNUNG"  #: ABSCHLAGSRECHNUNG
+    TURNUSRECHNUNG = "TURNUSRECHNUNG"  #: TURNUSRECHNUNG
+    MONATSRECHNUNG = "MONATSRECHNUNG"  #: MONATSRECHNUNG
+    WIMRECHNUNG = "WIMRECHNUNG"  #: WIMRECHNUNG
+    ZWISCHENRECHNUNG = "ZWISCHENRECHNUNG"  #: ZWISCHENRECHNUNG
+    INTEGRIERTE_13TE_RECHNUNG = "INTEGRIERTE_13TE_RECHNUNG"  #: INTEGRIERTE_13TE_RECHNUNG
+    ZUSAETZLICHE_13TE_RECHNUNG = "ZUSAETZLICHE_13TE_RECHNUNG"  #: ZUSAETZLICHE_13TE_RECHNUNG
+    MEHRMINDERMENGENRECHNUNG = "MEHRMINDERMENGENRECHNUNG"  #: MEHRMINDERMENGENRECHNUNG
diff --git a/src/bo4e/enum/oekolabel.py b/src/bo4e/enum/oekolabel.py
new file mode 100644
index 000000000..944130b4b
--- /dev/null
+++ b/src/bo4e/enum/oekolabel.py
@@ -0,0 +1,21 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Oekolabel(StrEnum):
+    """
+    Aufzählung der Labels für Öko-Strom von verschiedenen Herausgebern.
+    """
+
+    ENERGREEN = "ENERGREEN"  #: ENERGREEN
+    GASGREEN_GRUENER_STROM = "GASGREEN_GRUENER_STROM"  #: GASGREEN_GRUENER_STROM
+    GASGREEN = "GASGREEN"  #: GASGREEN
+    GRUENER_STROM_GOLD = "GRUENER_STROM_GOLD"  #: GRUENER_STROM_GOLD
+    GRUENER_STROM_SILBER = "GRUENER_STROM_SILBER"  #: GRUENER_STROM_SILBER
+    GRUENER_STROM = "GRUENER_STROM"  #: GRUENER_STROM
+    GRUENES_GAS = "GRUENES_GAS"  #: GRUENES_GAS
+    NATURWATT_STROM = "NATURWATT_STROM"  #: NATURWATT_STROM
+    OK_POWER = "OK_POWER"  #: OK_POWER
+    RENEWABLE_PLUS = "RENEWABLE_PLUS"  #: RENEWABLE_PLUS
+    WATERGREEN = "WATERGREEN"  #: WATERGREEN
+    WATERGREEN_PLUS = "WATERGREEN_PLUS"  #: WATERGREEN_PLUS
diff --git a/src/bo4e/enum/oekozertifikat.py b/src/bo4e/enum/oekozertifikat.py
new file mode 100644
index 000000000..6100cb1e3
--- /dev/null
+++ b/src/bo4e/enum/oekozertifikat.py
@@ -0,0 +1,26 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Oekozertifikat(StrEnum):
+    """
+    Zertifikate für Ökostrom von verschiedenen Herausgebern.
+    """
+
+    CMS_EE01 = "CMS_EE01"  #: CMS_EE01
+    CMS_EE02 = "CMS_EE02"  #: CMS_EE02
+    EECS = "EECS"  #: EECS
+    FRAUNHOFER = "FRAUNHOFER"  #: FRAUNHOFER
+    BET = "BET"  #: BET
+    KLIMA_INVEST = "KLIMA_INVEST"  #: KLIMA_INVEST
+    LGA = "LGA"  #: LGA
+    FREIBERG = "FREIBERG"  #: FREIBERG
+    RECS = "RECS"  #: RECS
+    REGS_EGL = "REGS_EGL"  #: REGS_EGL
+    TUEV = "TUEV"  #: TUEV
+    TUEV_HESSEN = "TUEV_HESSEN"  #: TUEV_HESSEN
+    TUEV_NORD = "TUEV_NORD"  #: TUEV_NORD
+    TUEV_RHEINLAND = "TUEV_RHEINLAND"  #: TUEV_RHEINLAND
+    TUEV_SUED = "TUEV_SUED"  #: TUEV_SUED
+    TUEV_SUED_EE01 = "TUEV_SUED_EE01"  #: TUEV_SUED_EE01
+    TUEV_SUED_EE02 = "TUEV_SUED_EE02"  #: TUEV_SUED_EE02
diff --git a/src/bo4e/enum/preisgarantietyp.py b/src/bo4e/enum/preisgarantietyp.py
new file mode 100644
index 000000000..09a38242a
--- /dev/null
+++ b/src/bo4e/enum/preisgarantietyp.py
@@ -0,0 +1,13 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Preisgarantietyp(StrEnum):
+    """
+    Aufzählung der Möglichkeiten für die Vergabe von Preisgarantien
+    """
+
+    ALLE_PREISBESTANDTEILE_BRUTTO = "ALLE_PREISBESTANDTEILE_BRUTTO"  #: ALLE_PREISBESTANDTEILE_BRUTTO
+    ALLE_PREISBESTANDTEILE_NETTO = "ALLE_PREISBESTANDTEILE_NETTO"  #: ALLE_PREISBESTANDTEILE_NETTO
+    PREISBESTANDTEILE_OHNE_ABGABEN = "PREISBESTANDTEILE_OHNE_ABGABEN"  #: PREISBESTANDTEILE_OHNE_ABGABEN
+    NUR_ENERGIEPREIS = "NUR_ENERGIEPREIS"  #: NUR_ENERGIEPREIS
diff --git a/src/bo4e/enum/preismodell.py b/src/bo4e/enum/preismodell.py
new file mode 100644
index 000000000..c53d22d48
--- /dev/null
+++ b/src/bo4e/enum/preismodell.py
@@ -0,0 +1,11 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Preismodell(StrEnum):
+    """
+    Bezeichnung der Preismodelle in Ausschreibungen für die Energielieferung.
+    """
+
+    FESTPREIS = "FESTPREIS"  #: FESTPREIS
+    TRANCHE = "TRANCHE"  #: TRANCHE
diff --git a/src/bo4e/enum/preisstatus.py b/src/bo4e/enum/preisstatus.py
new file mode 100644
index 000000000..c30881958
--- /dev/null
+++ b/src/bo4e/enum/preisstatus.py
@@ -0,0 +1,11 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Preisstatus(StrEnum):
+    """
+    Statusinformation für Preise
+    """
+
+    VORLAEUFIG = "VORLAEUFIG"  #: vorläufig
+    ENDGUELTIG = "ENDGUELTIG"  #: endgültig
diff --git a/src/bo4e/enum/preistyp.py b/src/bo4e/enum/preistyp.py
new file mode 100644
index 000000000..90ad7e966
--- /dev/null
+++ b/src/bo4e/enum/preistyp.py
@@ -0,0 +1,19 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Preistyp(StrEnum):
+    """
+    Aufschlüsselung der Preistypen in Tarifen.
+    """
+
+    GRUNDPREIS = "GRUNDPREIS"  #: Grundpreis
+    ARBEITSPREIS_EINTARIF = "ARBEITSPREIS_EINTARIF"  #: Arbeitspreis_ET
+    ARBEITSPREIS_HT = "ARBEITSPREIS_HT"  #: Arbeitspreis_HT
+    ARBEITSPREIS_NT = "ARBEITSPREIS_NT"  #: Arbeitspreis_NT
+    LEISTUNGSPREIS = "LEISTUNGSPREIS"  #: Leistungspreis
+    MESSPREIS = "MESSPREIS"  #: Messpreis
+    ENTGELT_ABLESUNG = "ENTGELT_ABLESUNG"  #: Entgelt fuer Ablesung
+    ENTGELT_ABRECHNUNG = "ENTGELT_ABRECHNUNG"  #: Entgelt fuer Abrechnung
+    ENTGELT_MSB = "ENTGELT_MSB"  #: Entgelt für MSB (Entgelt für Einbau, Betrieb und Wartung der Messtechnik)
+    PROVISION = "PROVISION"  #: Provision
diff --git a/src/bo4e/enum/rechnungslegung.py b/src/bo4e/enum/rechnungslegung.py
new file mode 100644
index 000000000..71f1fbf69
--- /dev/null
+++ b/src/bo4e/enum/rechnungslegung.py
@@ -0,0 +1,14 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Rechnungslegung(StrEnum):
+    """
+    Aufzählung der Möglichkeiten zur Rechnungslegung in Ausschreibungen.
+    """
+
+    MONATSRECHN = "MONATSRECHN"  #: monatsscharfe Rechnung
+    ABSCHL_MONATSRECHN = "ABSCHL_MONATSRECHN"  #: Abschlag mit Monatsrechnung
+    ABSCHL_JAHRESRECHN = "ABSCHL_JAHRESRECHN"  #: Abschlag mit Jahresrechnung
+    MONATSRECHN_JAHRESRECHN = "MONATSRECHN_JAHRESRECHN"  #: Monatsrechnung mit Jahresrechnung
+    VORKASSE = "VORKASSE"  #: Vorkasse
diff --git a/src/bo4e/enum/rechnungsstatus.py b/src/bo4e/enum/rechnungsstatus.py
new file mode 100644
index 000000000..4c2a9fcbb
--- /dev/null
+++ b/src/bo4e/enum/rechnungsstatus.py
@@ -0,0 +1,14 @@
+# pylint: disable=missing-module-docstring,line-too-long
+from bo4e.enum.strenum import StrEnum
+
+
+class Rechnungsstatus(StrEnum):
+    """
+    Abbildung verschiedener Zustände, die im Rahmen der Rechnungsbearbeitung durchlaufen werden.
+    """
+
+    UNGEPRUEFT = "UNGEPRUEFT"  #: Die Rechnung wurde erstellt bzw ist eingegangen, wurde aber noch nicht geprüft.
+    GEPRUEFT_OK = "GEPRUEFT_OK"  #: Die Rechnung wurde geprüft und als korrekt befunden.
+    GEPRUEFT_FEHLERHAFT = "GEPRUEFT_FEHLERHAFT"  #: Bei der Prüfung der Rechnung hat sich herausgestellt, dass die Rechnung Fehler aufweist.
+    GEBUCHT = "GEBUCHT"  #: Die Buchhaltung hat die Rechnung aufgenommen und berücksichtigt.
+    BEZAHLT = "BEZAHLT"  #: Die Rechnung wurde beglichen.
diff --git a/src/bo4e/enum/rechnungstyp.py b/src/bo4e/enum/rechnungstyp.py
new file mode 100644
index 000000000..eca47d796
--- /dev/null
+++ b/src/bo4e/enum/rechnungstyp.py
@@ -0,0 +1,19 @@
+# pylint: disable=missing-module-docstring, line-too-long
+from bo4e.enum.strenum import StrEnum
+
+
+class Rechnungstyp(StrEnum):
+    """
+    Abbildung verschiedener Rechnungstypen zur Kennzeichnung von Rechnungen
+    """
+
+    ENDKUNDENRECHNUNG = (
+        "ENDKUNDENRECHNUNG"  #: Eine Rechnung vom Lieferanten an einen Endkunden über die Lieferung von Energie.
+    )
+    NETZNUTZUNGSRECHNUNG = "NETZNUTZUNGSRECHNUNG"  #: Eine Rechnung vom Netzbetreiber an den Netznutzer. (i.d.R. der Lieferant) über die Netznutzung.
+    MEHRMINDERMENGENRECHNUNG = "MEHRMINDERMENGENRECHNUNG"  #: Eine Rechnung vom Netzbetreiber an den Netznutzer. (i.d.R. der Lieferant) zur Abrechnung von Mengen-Differenzen zwischen Bilanzierung und Messung.
+    MESSSTELLENBETRIEBSRECHNUNG = (
+        "MESSSTELLENBETRIEBSRECHNUNG"  #: Rechnung eines Messstellenbetreibers an den Messkunden.
+    )
+    BESCHAFFUNGSRECHNUNG = "BESCHAFFUNGSRECHNUNG"  #: Rechnungen zwischen einem  Händler und Einkäufer von Energie.
+    AUSGLEICHSENERGIERECHNUNG = "AUSGLEICHSENERGIERECHNUNG"  #: Rechnung an den Verursacher von Ausgleichsenergie.
diff --git a/src/bo4e/enum/regionskriteriumtyp.py b/src/bo4e/enum/regionskriteriumtyp.py
new file mode 100644
index 000000000..187f7c8b3
--- /dev/null
+++ b/src/bo4e/enum/regionskriteriumtyp.py
@@ -0,0 +1,48 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Regionskriteriumtyp(StrEnum):
+    """
+    Klassifizierung der Kriterien für eine regionale Eingrenzung.
+    """
+
+    BUNDESLANDKENNZIFFER = "BUNDESLANDKENNZIFFER"  #: offizielle Bundeslandkennziffer
+    BUNDESLAND_NAME = "BUNDESLAND_NAME"  #: Bundesland Name
+    MARKTGEBIET_NUMMER = "MARKTGEBIET_NUMMER"  #: offizielle Marktgebiet-Codenummer
+    MARKTGEBIET_NAME = "MARKTGEBIET_NAME"  #: Marktgebiet Name
+    REGELGEBIET_NUMMER = "REGELGEBIET_NUMMER"  #: offizielle Regelgebiet Nummer
+    REGELGEBIET_NAME = "REGELGEBIET_NAME"  #: Regelgebiet Name
+    NETZ_STROM = "NETZ_STROM"  #: Identifikation des Netzes Strom
+    NETZ_GAS = "NETZ_GAS"  #: Identifikation des Netzes Gas
+    NETZBETREIBER_NUMMER_STROM = "NETZBETREIBER_NUMMER_STROM"  #: offizielle Netzbetreiber-Codenummer Strom
+    NETZBETREIBER_NUMMER_GAS = "NETZBETREIBER_NUMMER_GAS"  #: offizielle Netzbetreiber-Codenummer Gas
+    NETZBETREIBER_NAME_STROM = "NETZBETREIBER_NAME_STROM"  #: Netzbetreiber Name Strom
+    NETZBETREIBER_NAME_GAS = "NETZBETREIBER_NAME_GAS"  #: Netzbetreiber Name Gas
+    BILANZIERUNGS_GEBIET_NUMMER = (
+        "BILANZIERUNGS_GEBIET_NUMMER"  #: Strom: Bilanzierungsgebietsnummer, Gas: Netzkontonummer
+    )
+    MSB_NUMMER = "MSB_NUMMER"  #: offizielle Messstellenbetreiber-Codenummer
+    MSB_NAME = "MSB_NAME"  #: Name des MSB
+    VERSORGER_NUMMER = "VERSORGER_NUMMER"  #: offizielle Lieferanten-Codenummer eines Versorgers
+    VERSORGER_NAME = "VERSORGER_NAME"  #: Name eines Versorgers
+    GRUNDVERSORGER_NUMMER_STROM = (
+        "GRUNDVERSORGER_NUMMER_STROM"  #: offizielle Lieferanten-Codenummer des Strom-Grundversorgers
+    )
+    GRUNDVERSORGER_NAME_STROM = "GRUNDVERSORGER_NAME_STROM"  #: Name des Strom-Grundversorgers
+    GRUNDVERSORGER_NUMMER_GAS = (
+        "GRUNDVERSORGER_NUMMER_GAS"  #: offizielle Lieferanten-Codenummer des Gas-Grundversorgers
+    )
+    GRUNDVERSORGER_NAME_GAS = "GRUNDVERSORGER_NAME_GAS"  #: Name des Gas-Grundversorgers
+    KREIS_NAME = "KREIS_NAME"  #: Kreis
+    KREISKENNZIFFER = "KREISKENNZIFFER"  #: offizielle Kreiskennziffer
+    GEMEINDE_NAME = "GEMEINDE_NAME"  #: Gemeinde
+    GEMEINDEKENNZIFFER = "GEMEINDEKENNZIFFER"  #: offizielle Gemeindekennziffer
+    POSTLEITZAHL = "POSTLEITZAHL"  #: Postleitzahl
+    ORT = "ORT"  #: Ort
+    POSTORT = "POSTORT"  #: Kriterium bestehend aus Postleitzahl und Ort
+    EINWOHNERZAHL_GEMEINDE = "EINWOHNERZAHL_GEMEINDE"  #: Einwohnerzahl Gemeinde
+    EINWOHNERZAHL_ORT = "EINWOHNERZAHL_ORT"  #: Einwohnerzahl Ort
+    KM_UMKREIS = "KM_UMKREIS"  #: km Umkreis
+    BUNDESWEIT = "BUNDESWEIT"  #: Bundesweite Betrachtung
+    PLZ_BEREICH = "PLZ_BEREICH"  #: Postleitzahlenbereich
diff --git a/src/bo4e/enum/steuerkennzeichen.py b/src/bo4e/enum/steuerkennzeichen.py
new file mode 100644
index 000000000..b7aac668a
--- /dev/null
+++ b/src/bo4e/enum/steuerkennzeichen.py
@@ -0,0 +1,16 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Steuerkennzeichen(StrEnum):
+    """
+    Zur Kennzeichnung verschiedener Steuersätze und Verfahren.
+    """
+
+    UST_0 = "UST_0"  #: Keine Umsatzsteuer, bzw. nicht steuerbar.
+    UST_19 = "UST_19"  #: Umsatzsteuer 19%
+    UST_7 = "UST_7"  #: Umsatzsteuer 7%
+    VST_0 = "VST_0"  #: Keine Vorsteuer, bzw. nicht steuerbar.
+    VST_19 = "VST_19"  #: Vorsteuer 19%
+    VST_7 = "VST_7"  #: Vorsteuer 7%
+    RCV = "RCV"  #: Reverse Charge Verfahren (Umkehrung der Steuerpflicht)
diff --git a/src/bo4e/enum/tarifkalkulationsmethode.py b/src/bo4e/enum/tarifkalkulationsmethode.py
new file mode 100644
index 000000000..a7cd46baa
--- /dev/null
+++ b/src/bo4e/enum/tarifkalkulationsmethode.py
@@ -0,0 +1,14 @@
+# pylint: disable=missing-module-docstring,line-too-long
+from bo4e.enum.strenum import StrEnum
+
+
+class Tarifkalkulationsmethode(StrEnum):
+    """
+    Auflistung der verschiedenen Berechnungsmethoden für ein Preisblatt.
+    """
+
+    KEINE = "KEINE"  #: Es wird keine Berechnung durchgeführt, sondern lediglich die Menge mit dem Preis multipliziert.
+    STAFFELN = "STAFFELN"  #: Staffelmodell, d.h. die Gesamtmenge wird in eine Staffel eingeordnet und für die gesamte Menge gilt der so ermittelte Preis
+    ZONEN = "ZONEN"  #: Zonenmodell, d.h. die Gesamtmenge wird auf die Zonen aufgeteilt und für die Teilmengen gilt der jeweilige Preis der Zone.
+    BESTABRECHNUNG_STAFFEL = "BESTABRECHNUNG_STAFFEL"  #: Bestabrechnung innerhalb der Staffelung
+    PAKETPREIS = "PAKETPREIS"  #: Preis für ein Paket (eine Menge).
diff --git a/src/bo4e/enum/tarifmerkmal.py b/src/bo4e/enum/tarifmerkmal.py
new file mode 100644
index 000000000..69eae9259
--- /dev/null
+++ b/src/bo4e/enum/tarifmerkmal.py
@@ -0,0 +1,18 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Tarifmerkmal(StrEnum):
+    """
+    Produktmerkmale im Zusammenhang mit der Tarifdefinition.
+    """
+
+    STANDARD = "STANDARD"  #: Standardprodukt
+    VORKASSE = "VORKASSE"  #: Vorkassenprodukt
+    PAKET = "PAKET"  #: Paketpreisprodukt
+    KOMBI = "KOMBI"  #: Kombiprodukt
+    FESTPREIS = "FESTPREIS"  #: Festpreisprodukt
+    BAUSTROM = "BAUSTROM"  #: Baustromprodukt
+    HAUSLICHT = "HAUSLICHT"  #: Hauslichtprodukt
+    HEIZSTROM = "HEIZSTROM"  #: Heizstromprodukt
+    ONLINE = "ONLINE"  #: Onlineprodukt
diff --git a/src/bo4e/enum/tarifregionskriterium.py b/src/bo4e/enum/tarifregionskriterium.py
new file mode 100644
index 000000000..37f009a6a
--- /dev/null
+++ b/src/bo4e/enum/tarifregionskriterium.py
@@ -0,0 +1,14 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Tarifregionskriterium(StrEnum):
+    """
+    Mit diesen Kriterien können regionale Bereiche definiert werden.
+    """
+
+    NETZ_NUMMER = "NETZ_NUMMER"  #: Netznummer
+    POSTLEITZAHL = "POSTLEITZAHL"  #: Postleitzahl
+    ORT = "ORT"  #: Ort
+    GRUNDVERSORGER_NUMMER = "GRUNDVERSORGER_NUMMER"  #: Nummer des Grundversorgers
+    REGION = "REGION"  #: Referenz auf ein BO Region (URL)
diff --git a/src/bo4e/enum/tariftyp.py b/src/bo4e/enum/tariftyp.py
new file mode 100644
index 000000000..dfd271ab8
--- /dev/null
+++ b/src/bo4e/enum/tariftyp.py
@@ -0,0 +1,13 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Tariftyp(StrEnum):
+    """
+    Zur Differenzierung von Grund/Ersatzversorgungstarifen und sonstigen angebotenen Tarifen.
+    """
+
+    GRUND_ERSATZVERSORGUNG = "GRUND_ERSATZVERSORGUNG"  #: Grund- und Ersatzversorgung
+    GRUNDVERSORGUNG = "GRUNDVERSORGUNG"  #: Grundversorgung
+    ERSATZVERSORGUNG = "ERSATZVERSORGUNG"  #: Ersatzversorgung
+    SONDERTARIF = "SONDERTARIF"  #: Sondertarif
diff --git a/src/bo4e/enum/tarifzeit.py b/src/bo4e/enum/tarifzeit.py
new file mode 100644
index 000000000..63a5ace40
--- /dev/null
+++ b/src/bo4e/enum/tarifzeit.py
@@ -0,0 +1,12 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Tarifzeit(StrEnum):
+    """
+    Zur Kennzeichnung verschiedener Tarifzeiten, beispielsweise zur Bepreisung oder zur Verbrauchsermittlung.
+    """
+
+    TZ_STANDARD = "TZ_STANDARD"  #: Tarifzeit Standard für Eintarif-Konfigurationen
+    TZ_HT = "TZ_HT"  #: Tarifzeit für Hochtarif bei Mehrtarif-Konfigurationen
+    TZ_NT = "TZ_NT"  #: Tarifzeit für Niedrigtarif bei Mehrtarif-Konfigurationen
diff --git a/src/bo4e/enum/vertragsform.py b/src/bo4e/enum/vertragsform.py
new file mode 100644
index 000000000..33258e56b
--- /dev/null
+++ b/src/bo4e/enum/vertragsform.py
@@ -0,0 +1,12 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Vertragsform(StrEnum):
+    """
+    Aufzählung der Möglichkeiten zu Vertragsformen in Ausschreibungen.
+    """
+
+    ONLINE = "ONLINE"  #: Online
+    DIREKT = "DIREKT"  #: Direkt
+    FAX = "FAX"  #: Auftragsfax
diff --git a/src/bo4e/enum/voraussetzungen.py b/src/bo4e/enum/voraussetzungen.py
new file mode 100644
index 000000000..64b9d7fcd
--- /dev/null
+++ b/src/bo4e/enum/voraussetzungen.py
@@ -0,0 +1,76 @@
+# pylint: disable=missing-module-docstring, line-too-long
+from bo4e.enum.strenum import StrEnum
+
+
+class Voraussetzungen(StrEnum):
+    """
+    Voraussetzungen, die erfüllt sein müssen, damit dieser Tarif zur Anwendung kommen kann.
+    """
+
+    EINZUGSERMAECHTIGUNG = "EINZUGSERMAECHTIGUNG"  #: Einzugsermaechtigung
+    ZEITPUNKT = "ZEITPUNKT"  #: Vertrag muss zu einem bestimmten Zeitpunkt noch bestehen
+    LIEFERANBINDUNG_EINE = "LIEFERANBINDUNG_EINE"  #: Lieferantenbindung für diese Energieart
+    LIEFERANBINDUNG_ALLE = (
+        "LIEFERANBINDUNG_ALLE"  #: Lieferantenbindung für alle Energiearten, die der Versorger anbietet
+    )
+    GEWERBE = "GEWERBE"  #: Gewerbenachweis
+    LASTPROFIL = "LASTPROFIL"  #: Kunde muss einem bestimmten Lastprofil zuzuordnen sein
+    ZAEHLERTYP_GROESSE = "ZAEHLERTYP_GROESSE"  #: bestimmter Zaehlertyp oder Zaehlergroeße
+    AUSSCHLUSS_GROSSVERBRAUCHER = "AUSSCHLUSS_GROSSVERBRAUCHER"  #: Ausschluss von Großverbrauchern wie Industriekunden oder produzierendes Gewerbe
+    NEUKUNDE = "NEUKUNDE"  #: Neukunden ohne bisherige Lieferanbindung
+    BESTIMMTE_VERTRAGSFORMALITAETEN = "BESTIMMTE_VERTRAGSFORMALITAETEN"  #: bestimmte Vertragsformalitaeten wie z.B. Anmeldeformular muss an bestimmte Adresse versandt werden
+    SELBSTABLESUNG = "SELBSTABLESUNG"  #: Selbstablesung durch den Kunden
+    ONLINEVORAUSSETZUNG = "ONLINEVORAUSSETZUNG"  #: Onlinevoraussetzung
+    MINDESTUMSATZ = (
+        "MINDESTUMSATZ"  #: Mindestumsatz in einer bestimmten Zeiteinheit wie z.B. Mindestjahresumsatz 2500 EURO
+    )
+    ZUSATZPRODUKT = (
+        "ZUSATZPRODUKT"  #: Zusatzprodukt zu bereits bestehendem Lieferverhaeltnis beim Versorger in dieser Energieart
+    )
+    NEUKUNDE_MIT_VORAUSSETZUNGEN = (
+        "NEUKUNDE_MIT_VORAUSSETZUNGEN"  #: geworbener Neukunde muss bestimmte Voraussetzungen erfüllen
+    )
+    DIREKTVERTRIEB = "DIREKTVERTRIEB"  #: Kunde wird durch Direktvertrieb gewonnen
+    ANSCHLUSSART = "ANSCHLUSSART"  #: Anlage mit bestimmter Anschlussart wie z.B. Festanschluss
+    ANSCHLUSSWERT = "ANSCHLUSSWERT"  #: bestimmte Anschlusswerte wie z. B. mindestens 30 kW
+    ALTER_KUNDENANLAGE = (
+        "ALTER_KUNDENANLAGE"  #: Alter einer Kundenanlage (z.B. Anlage wurde nach dem 01.01.2005 installiert)
+    )
+    ANLAGEBESCHAFFENHEIT = (
+        "ANLAGEBESCHAFFENHEIT"  #: bestimmte Anlagebeschaffenheit, wie bivalente Energieversorgung, Geräte o.ä.
+    )
+    BETRIEBSSTUNDENBEGRENZUNG = (
+        "BETRIEBSSTUNDENBEGRENZUNG"  #: Betriebsstundenbegrenzung z.B. max 1500h/a oder mindestens 1000h/a
+    )
+    FREIGABEZEITEN = "FREIGABEZEITEN"  #: vorgeschriebene Freigabezeiten
+    FAMILIENSTRUKTUR = (
+        "FAMILIENSTRUKTUR"  #: Familienstruktur wie z.B. bestimmte Anzahl Kinder oder Personen im Haushalt oder Eheleute
+    )
+    MITGLIEDSCHAFT = "MITGLIEDSCHAFT"  #: Mitgliedschaft in bestimmten Vereinen oder Verbaenden
+    STAATLICHE_FOERDERUNG = "STAATLICHE_FOERDERUNG"  #: staatliche Foerderung wie z.B. Sozialtarif oder Studentenausweis
+    BESONDERE_VERBRAUCHSSTELLE = (
+        "BESONDERE_VERBRAUCHSSTELLE"  #: besondere Verbrauchsstellen wie Kirchen, Vereinsgebaeude usw.
+    )
+    NIEDRIGENERGIE = "NIEDRIGENERGIE"  #: Niedrigenergieaustattung des Hauses
+    ORTSTEILE_LIEFERGEBIET = "ORTSTEILE_LIEFERGEBIET"  #: nur für bestimmte Ortsteile in diesem Liefergebiet
+    WAERMEBEDARF_ERDGAS = "WAERMEBEDARF_ERDGAS"  #: Wärmebedarf wird nur oder überwiegend mit Erdgas gedeckt
+    MAX_ZAEHLER_LIEFERSTELLEN = "MAX_ZAEHLER_LIEFERSTELLEN"  #: beschränkt auf max. Anzahl Zähler oder Abnahmestellen
+    LIEFERUNGSBESCHRAENKUNG_GASART = (
+        "LIEFERUNGSBESCHRAENKUNG_GASART"  #: Lieferungsbeschraenkung auf bestimmte Gasart, wie H-Gas oder L-Gas
+    )
+    KOMBI_BONI = (
+        "KOMBI_BONI"  #: Kombination von Boni, von denen mindestens einer sehr unwahrscheinlich zu erreichen ist
+    )
+    ALTVERTRAG = "ALTVERTRAG"  #: nur für Altvertraege, die weiterhin gueltig sind
+    VORGESCHRIEBENE_ZUSATZANLAGE = (
+        "VORGESCHRIEBENE_ZUSATZANLAGE"  #: vorgeschriebene Zusatzanlage wie z.B. Solaranlage etc.
+    )
+    MEHRERE_ZAEHLER_ABNAHMESTELLEN = "MEHRERE_ZAEHLER_ABNAHMESTELLEN"  #: mehr als 1 Zaehler oder 1 Abnahmestelle
+    BESTIMMTER_ABNAHMEFALL = (
+        "BESTIMMTER_ABNAHMEFALL"  #: bestimmter Abnahmefall wie z.B. nur Gemeinschaftsheizungen o.ae.
+    )
+    ZUSATZMODALITAET = "ZUSATZMODALITAET"  #: Zahlungsmodalitaet wie z.B. halbjaehrliche Zahlungsweise
+    NACHWEIS_ZAHLUNGSFAEHIGKEIT = (
+        "NACHWEIS_ZAHLUNGSFAEHIGKEIT"  #: Nachweis der Zahlungsfaehigkeit wie z.B. Bonitaetsprüfung
+    )
+    UMSTELLUNG_ENERGIEART = "UMSTELLUNG_ENERGIEART"  #: Umstellung der Energieart
diff --git a/src/bo4e/enum/waehrungscode.py b/src/bo4e/enum/waehrungscode.py
new file mode 100644
index 000000000..f6aec55c1
--- /dev/null
+++ b/src/bo4e/enum/waehrungscode.py
@@ -0,0 +1,191 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Waehrungscode(StrEnum):
+    """
+    Aufzählung der Währungscodes.
+    """
+
+    AED = "AED"  #: UAE Dirham
+    AFN = "AFN"  #: Afghani
+    ALL = "ALL"  #: Lek
+    AMD = "AMD"  #: Armenian Dram
+    ANG = "ANG"  #: Netherlands Antillean Guilder
+    AOA = "AOA"  #: Kwanza
+    ARS = "ARS"  #: Argentine Peso
+    AUD = "AUD"  #: Australian Dollar
+    AWG = "AWG"  #: Aruban Florin
+    AZN = "AZN"  #: Azerbaijanian Manat
+    BAM = "BAM"  #: Convertible Mark
+    BBD = "BBD"  #: Barbados Dollar
+    BDT = "BDT"  #: Taka
+    BGN = "BGN"  #: Bulgarian Lev
+    BHD = "BHD"  #: Bahraini Dinar
+    BIF = "BIF"  #: Burundi Franc
+    BMD = "BMD"  #: Bermudian Dollar
+    BND = "BND"  #: Brunei Dollar
+    BOB = "BOB"  #: Boliviano
+    BOV = "BOV"  #: Mvdol
+    BRL = "BRL"  #: Brazilian Real
+    BSD = "BSD"  #: Bahamian Dollar
+    BTN = "BTN"  #: Ngultrum
+    BWP = "BWP"  #: Pula
+    BYN = "BYN"  #: Belarusian Ruble
+    BYR = "BYR"  #: Belarusian Ruble
+    BZD = "BZD"  #: Belize Dollar
+    CAD = "CAD"  #: Canadian Dollar
+    CDF = "CDF"  #: Congolese Franc
+    CHE = "CHE"  #: WIR Euro
+    CHF = "CHF"  #: Swiss Franc
+    CHW = "CHW"  #: WIR Franc
+    CLF = "CLF"  #: Unidad de Fomento
+    CLP = "CLP"  #: Chilean Peso
+    CNY = "CNY"  #: Yuan Renminbi
+    COP = "COP"  #: Colombian Peso
+    COU = "COU"  #: Unidad de Valor Real
+    CRC = "CRC"  #: Costa Rican Colon
+    CUC = "CUC"  #: Peso Convertible
+    CUP = "CUP"  #: Cuban Peso
+    CVE = "CVE"  #: Cape Verde Escudo
+    CZK = "CZK"  #: Czech Koruna
+    DJF = "DJF"  #: Djibouti Franc
+    DKK = "DKK"  #: Danish Krone
+    DOP = "DOP"  #: Dominican Peso
+    DZD = "DZD"  #: Algerian Dinar
+    EGP = "EGP"  #: Egyptian Pound
+    ERN = "ERN"  #: Nakfa
+    ETB = "ETB"  #: Ethiopian Birr
+    EUR = "EUR"  #: Euro
+    FJD = "FJD"  #: Fiji Dollar
+    FKP = "FKP"  #: Falkland Islands Pound
+    GBP = "GBP"  #: Pound Sterling
+    GEL = "GEL"  #: Lari
+    GHS = "GHS"  #: Ghana Cedi
+    GIP = "GIP"  #: Gibraltar Pound
+    GMD = "GMD"  #: Dalasi
+    GNF = "GNF"  #: Guinea Franc
+    GTQ = "GTQ"  #: Quetzal
+    GYD = "GYD"  #: Guyana Dollar
+    HKD = "HKD"  #: Hong Kong Dollar
+    HNL = "HNL"  #: Lempira
+    HRK = "HRK"  #: Croatian Kuna
+    HTG = "HTG"  #: Gourde
+    HUF = "HUF"  #: Forint
+    IDR = "IDR"  #: Rupiah
+    ILS = "ILS"  #: New Israeli Sheqel
+    INR = "INR"  #: Indian Rupee
+    IQD = "IQD"  #: Iraqi Dinar
+    IRR = "IRR"  #: Iranian Rial
+    ISK = "ISK"  #: Iceland Krona
+    JMD = "JMD"  #: Jamaican Dollar
+    JOD = "JOD"  #: Jordanian Dinar
+    JPY = "JPY"  #: Yen
+    KES = "KES"  #: Kenyan Shilling
+    KGS = "KGS"  #: Som
+    KHR = "KHR"  #: Riel
+    KMF = "KMF"  #: Comoro Franc
+    KPW = "KPW"  #: North Korean Won
+    KRW = "KRW"  #: Won
+    KWD = "KWD"  #: Kuwaiti Dinar
+    KYD = "KYD"  #: Cayman Islands Dollar
+    KZT = "KZT"  #: Tenge
+    LAK = "LAK"  #: Kip
+    LBP = "LBP"  #: Lebanese Pound
+    LKR = "LKR"  #: Sri Lanka Rupee
+    LRD = "LRD"  #: Liberian Dollar
+    LSL = "LSL"  #: Loti
+    LTL = "LTL"  #: Lithuanian Litas
+    LYD = "LYD"  #: Libyan Dinar
+    MAD = "MAD"  #: Moroccan Dirham
+    MDL = "MDL"  #: Moldovan Leu
+    MGA = "MGA"  #: Malagasy Ariary
+    MKD = "MKD"  #: Denar
+    MMK = "MMK"  #: Kyat
+    MNT = "MNT"  #: Tugrik
+    MOP = "MOP"  #: Pataca
+    MRO = "MRO"  #: Ouguiya
+    MUR = "MUR"  #: Mauritius Rupee
+    MVR = "MVR"  #: Rufiyaa
+    MWK = "MWK"  #: Kwacha
+    MXN = "MXN"  #: Mexican Peso
+    MXV = "MXV"  #: Mexican Unidad de Inversion (UDI)
+    MYR = "MYR"  #: Malaysian Ringgit
+    MZN = "MZN"  #: Mozambique Metical
+    NAD = "NAD"  #: Namibia Dollar
+    NGN = "NGN"  #: Naira
+    NIO = "NIO"  #: Cordoba Oro
+    NOK = "NOK"  #: Norwegian Krone
+    NPR = "NPR"  #: Nepalese Rupee
+    NZD = "NZD"  #: New Zealand Dollar
+    OMR = "OMR"  #: Rial Omani
+    PAB = "PAB"  #: Balboa
+    PEN = "PEN"  #: Nuevo Sol
+    PGK = "PGK"  #: Kina
+    PHP = "PHP"  #: Philippine Peso
+    PKR = "PKR"  #: Pakistan Rupee
+    PLN = "PLN"  #: Zloty
+    PYG = "PYG"  #: Guarani
+    QAR = "QAR"  #: Qatari Rial
+    RON = "RON"  #: New Romanian Leu
+    RSD = "RSD"  #: Serbian Dinar
+    RUB = "RUB"  #: Russian Ruble
+    RUR = "RUR"  #: Russian Ruble
+    RWF = "RWF"  #: Rwanda Franc
+    SAR = "SAR"  #: Saudi Riyal
+    SBD = "SBD"  #: Solomon Islands Dollar
+    SCR = "SCR"  #: Seychelles Rupee
+    SDG = "SDG"  #: Sudanese Pound
+    SEK = "SEK"  #: Swedish Krona
+    SGD = "SGD"  #: Singapore Dollar
+    SHP = "SHP"  #: Saint Helena Pound
+    SLL = "SLL"  #: Leone
+    SOS = "SOS"  #: Somali Shilling
+    SRD = "SRD"  #: Surinam Dollar
+    SSP = "SSP"  #: South Sudanese Pound
+    STD = "STD"  #: Dobra
+    SVC = "SVC"  #: El Salvador Colon
+    SYP = "SYP"  #: Syrian Pound
+    SZL = "SZL"  #: Lilangeni
+    THB = "THB"  #: Baht
+    TJS = "TJS"  #: Somoni
+    TMT = "TMT"  #: Turkmenistan New Manat
+    TND = "TND"  #: Tunisian Dinar
+    TOP = "TOP"  #: Paʻanga
+    TRY = "TRY"  #: Turkish Lira
+    TTD = "TTD"  #: Trinidad and Tobago Dollar
+    TWD = "TWD"  #: New Taiwan Dollar
+    TZS = "TZS"  #: Tanzanian Shilling
+    UAH = "UAH"  #: Hryvnia
+    UGX = "UGX"  #: Uganda Shilling
+    USD = "USD"  #: US Dollar
+    USN = "USN"  #: US Dollar (Next day)
+    USS = "USS"  #: US Dollar (Same day)
+    UYI = "UYI"  #: Uruguay Peso en Unidades Indexadas (URUIURUI)
+    UYU = "UYU"  #: Peso Uruguayo
+    UZS = "UZS"  #: Uzbekistan Sum
+    VEF = "VEF"  #: Bolivar
+    VND = "VND"  #: Dong
+    VUV = "VUV"  #: Vatu
+    WST = "WST"  #: Tala
+    XAF = "XAF"  #: CFA Franc BEAC
+    XAG = "XAG"  #: Silver
+    XAU = "XAU"  #: Gold
+    XBA = "XBA"  #: Bond Markets Unit European Composite Unit (EURCO)
+    XBB = "XBB"  #: Bond Markets Unit European Monetary Unit (E.M.U.-6)
+    XBC = "XBC"  #: Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
+    XBD = "XBD"  #: Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
+    XCD = "XCD"  #: East Caribbean Dollar
+    XDR = "XDR"  #: SDR (Special Drawing Right)
+    XOF = "XOF"  #: CFA Franc BCEAO
+    XPD = "XPD"  #: Palladium
+    XPF = "XPF"  #: CFP Franc
+    XPT = "XPT"  #: Platinum
+    XSU = "XSU"  #: Sucre
+    XTS = "XTS"  #: Codes specifically reserved for testing purposes
+    XUA = "XUA"  #: ADB Unit of Account
+    XXX = "XXX"  #: The codes assigned for transactions where no currency ist involved
+    YER = "YER"  #: Yemeni Rial
+    ZAR = "ZAR"  #: Rand
+    ZMW = "ZMW"  #: Zambian Kwacha
+    ZWL = "ZWL"  #: Zimbabwe Dollar
diff --git a/src/bo4e/enum/waehrungseinheit.py b/src/bo4e/enum/waehrungseinheit.py
new file mode 100644
index 000000000..838725d91
--- /dev/null
+++ b/src/bo4e/enum/waehrungseinheit.py
@@ -0,0 +1,11 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Waehrungseinheit(StrEnum):
+    """
+    In diesem Enum werden die Währungen und ihre Untereinheiten definiert, beispielsweise für die Verwendung in Preisen.
+    """
+
+    EUR = "EUR"  #: Euro
+    CT = "CT"  #: Eurocent
diff --git a/src/bo4e/enum/wertermittlungsverfahren.py b/src/bo4e/enum/wertermittlungsverfahren.py
new file mode 100644
index 000000000..508ea8ab2
--- /dev/null
+++ b/src/bo4e/enum/wertermittlungsverfahren.py
@@ -0,0 +1,11 @@
+# pylint: disable=missing-module-docstring
+from bo4e.enum.strenum import StrEnum
+
+
+class Wertermittlungsverfahren(StrEnum):
+    """
+    Gibt an, ob es sich um eine Prognose oder eine Messung handelt, beispielsweise bei der Abbildung eines Verbrauchs.
+    """
+
+    PROGNOSE = "PROGNOSE"  #: Prognose
+    MESSUNG = "MESSUNG"  #: Messung


Test patch:
diff --git a/tests/test_enums.py b/tests/test_enums.py
index b33c0aeed..397345022 100644
--- a/tests/test_enums.py
+++ b/tests/test_enums.py
@@ -4,6 +4,7 @@
 from typing import List, Optional, TypeVar
 
 import pytest  # type:ignore[import]
+
 from bo4e.enum import anrede
 from bo4e.enum.strenum import StrEnum