{
"generated_at": "2026-03-12T11:40:25Z",
"ahb_file": "UTILMD_AHB_Gas_1_1_außerordentliche_20251211.xml",
"format_version": "FV2604",
"conditions": {
"508": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation describing the semantic meaning of a date field. No condition logic to evaluate.",
"description_hash": "67845c9f",
"is_external": false
},
"35": {
"confidence": "high",
"reasoning": "DTM C507 composite: elements[0][0]=qualifier (Z01), elements[0][1]=DE2380 (date value). Checks if 4th character (index 3) of DE2380 equals 'T' (Termin = fixed date). Matches Example 8 pattern.",
"description_hash": "4f52c394",
"is_external": false
},
"621": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "6169d177",
"is_external": false
},
"212": {
"confidence": "medium",
"reasoning": "Checks if any NAD in SG12 has DE3124 (C058 first component, elements[2][0]) absent or empty. Without group-scoped navigation, falls back to message-wide NAD check.",
"description_hash": "b5c09245",
"is_external": false
},
"17": {
"confidence": "high",
"reasoning": "'Wenn bereits eine bestätigte Kündigung durch Kunde oder MP vorhanden' — whether a confirmed cancellation by the customer or market participant already exists requires access to external business state (prior transactions, contract history) not present in the current EDIFACT message.",
"description_hash": "3ae99890",
"is_external": true
},
"328": {
"confidence": "high",
"reasoning": "Checks for IMD segment where C272 DE7081 (elements[1][0]) = Z36 and C273 DE7009 (elements[2][0]) = Z12. The '++' notation means elements[0] (DE7077) is empty; Z36 lives in C272 at elements[1][0] and Z12 in C273 at elements[2][0] per the MIG schema annotations [Z36=] and [Z12=, Z13=].",
"description_hash": "59daa1bc",
"is_external": false
},
"130": {
"confidence": "medium",
"reasoning": "'Wenn an Messlokation vorhanden' is interpreted as: a Messlokation section exists in the message, indicated by SEQ+Z18 (Daten der Messlokation) in SG8. Returns True when such a section is present.",
"description_hash": "e6eba96d",
"is_external": false
},
"68": {
"confidence": "high",
"reasoning": "Count all CCI+Z19 (Bilanzkreis) segments across the message. True when more than two occurrences.",
"description_hash": "432deca0",
"is_external": false
},
"576": {
"confidence": "high",
"reasoning": "[SEEDED] From FV2504",
"description_hash": "713e5866",
"is_external": false
},
"216": {
"confidence": "medium",
"reasoning": "CCI+++Z88 means elements[2][0]=='Z88' (Netznutzung). CAV+Z74:::Z08 means elements[0][0]=='Z74' and elements[0][3]=='Z08' (Direkter Vertrag). Uses parent-child group navigation to check co-occurrence within the same SG10 instance.",
"description_hash": "babbeb49",
"is_external": false
},
"219": {
"confidence": "medium",
"reasoning": "'Wenn an Marktlokation vorhanden' — whether specific data exists at the market location is a registry/master-data lookup that cannot be derived from the EDIFACT message content. Marked external.",
"description_hash": "7d998d8c",
"is_external": true
},
"33": {
"confidence": "medium",
"reasoning": "Wenn in Abmeldung ein Bilanzierungsende vorhanden: BGM+E02 identifies the message as Abmeldung (de-registration), DTM+159 is Bilanzierungsende. Both must coexist.",
"description_hash": "c2391377",
"is_external": false
},
"268": {
"confidence": "high",
"reasoning": "External condition: whether the DE3207 country code is listed with 'X' in the PLZ column of the EDI@Energy European country code list requires an external code list lookup — cannot be evaluated from EDIFACT message content.",
"description_hash": "532d2567",
"is_external": true
},
"106": {
"confidence": "high",
"reasoning": "In SG8 instances where SEQ+Z01 (Daten der Marktlokation) is present, check if child SG10 contains CCI with DE7037=ZA6 (Prognosegrundlage: Prognose auf Basis von Profilen) at elements[2][0]. Uses parent-child navigation.",
"description_hash": "919232fd",
"is_external": false
},
"78": {
"confidence": "high",
"reasoning": "STS+7 with C556.DE9013=E02 (Transaktionsgrund: Einzug in Neuanlage) must NOT be present. elements[0][0]=7 is the category qualifier, elements[2][0]=DE9013 is the reason code. Negate the positive check.",
"description_hash": "0cee2c1b",
"is_external": false
},
"241": {
"confidence": "high",
"reasoning": "External condition: whether the NAD+MR recipient (Nachrichtenempfänger) acts in the role of MSB (Messstellenbetreiber) cannot be determined from EDIFACT content — requires external market role registry lookup.",
"description_hash": "cf2a70c6",
"is_external": true
},
"249": {
"confidence": "medium",
"reasoning": "Checks that all STS+E01 segments have identical DE1131 values (elements[2][1] — Codeliste, Code within C556). Returns True when all values match the first occurrence. Message-wide fallback without per-SG4 grouping.",
"description_hash": "db65781e",
"is_external": false
},
"274": {
"confidence": "medium",
"reasoning": "Checks co-occurrence of SEQ+Z20 and PIA+5 in same SG8, then verifies the OBIS code (elements[1][0]) matches pattern '7-b:X.X.X' where b is variable (any subgroup) and suffix is one of the 16 listed measurement quantities. EDIFACT ?. decoded as literal colon. OBIS suffix match is message-wide as a secondary filter.",
"description_hash": "e644ccb3",
"is_external": false
},
"490": {
"confidence": "high",
"reasoning": "References an external date range table from Kapitel 3.5 'Prozesszeitpunkt bei MESZ mit UTC' — the valid date ranges for MESZ (Central European Summer Time) periods cannot be determined from the EDIFACT message itself.",
"description_hash": "d566ca5a",
"is_external": true
},
"11": {
"confidence": "high",
"reasoning": "Negation of condition 7 (STS+7++ZG9/ZH1/ZH2). If none of those Transaktionsgrund codes are present, condition is True.",
"description_hash": "321d0c62",
"is_external": false
},
"147": {
"confidence": "medium",
"reasoning": "'Wenn in Anfrage vorhanden' — whether something is present in the original inquiry/request message is a cross-message business context that cannot be determined from the current EDIFACT message alone. Marked external.",
"description_hash": "e4b87f85",
"is_external": true
},
"200": {
"confidence": "high",
"reasoning": "BGM elements[0] is C002, elements[0][0] is DE1001 (Kategorie). BGM+Z26 means elements[0][0]=\"Z26\" (Vorläufige Meldung zur Marktraumumstellung). has_qualifier checks elements[elem][0] directly.",
"description_hash": "04a6317b",
"is_external": false
},
"601": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing which IDs to include, always applies unconditionally.",
"description_hash": "55b3c5f4",
"is_external": false
},
"643": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "d4a51acc",
"is_external": false
},
"590": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing which IDs to include, always applies unconditionally.",
"description_hash": "d190b4c7",
"is_external": false
},
"907": {
"confidence": "high",
"reasoning": "Format condition: max 4 decimal places. Applies to QTY segment value at elements[0][1]. Direct use of validate_max_decimal_places helper.",
"description_hash": "cb9ee7ba",
"is_external": false
},
"2335": {
"confidence": "medium",
"reasoning": "Condition states: to be given exactly once for each SEQ+Z02 (OBIS-Daten der Marktlokation) where PIA+5 transmits OBIS code 7-20:99.33.17 or 7-0:33.86.0. Per segment structure reference, PIA elements[1][0] (DE7140) holds the OBIS code. Checks message-wide PIA+5 for the target OBIS values, then verifies SEQ+Z02 is present. Since PIA is always nested in the same SG8 as its SEQ, message-wide PIA check is a valid approximation when group navigator is unavailable.",
"description_hash": "5cb76c47",
"is_external": false
},
"571": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing which market partner triggers the process based on Transaktionsgrund codes (LFA for ZG9, LFN for ZH0, NB for ZH1). Always applies unconditionally.",
"description_hash": "a62b6b47",
"is_external": false
},
"230": {
"confidence": "medium",
"reasoning": "Compares the later of DTM+Z21 and DTM+Z09 (end of Turnuszeitraum) against DTM+92 (start date). Date formats differ across the three DTM qualifiers (Z21=CCYYMM/format 106, Z09=format 602, DTM+92=CCYYMMDDHHMM/format 303), so comparison is normalized to the CCYYMM prefix (first 6 chars). The exact definition of 'sich ergebendes Datum' from Z21+Z09 introduces some ambiguity — using max(Z21,Z09) as the best approximation.",
"description_hash": "3d0160be",
"is_external": false
},
"636": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "c639fa99",
"is_external": false
},
"902": {
"confidence": "high",
"reasoning": "Format condition: value must be >= 0. Applies to QTY segment value at elements[0][1]. Direct use of validate_numeric helper.",
"description_hash": "08daa39a",
"is_external": false
},
"2286": {
"confidence": "high",
"reasoning": "Condition states: to be given at least once for each SEQ+Z18 (Daten der Messlokation). As a boolean applicability condition, True when any SG8 instance contains SEQ with qualifier Z18 at elements[0][0].",
"description_hash": "54d011cf",
"is_external": false
},
"333": {
"confidence": "high",
"reasoning": "Checks for IMD segment where C272 DE7081 (elements[1][0]) = Z36 and C273 DE7009 (elements[2][0]) = Z13. Structurally identical to condition 328 but selects the Z13 (Alle Identifikationsdaten) variant instead of Z12. MIG schema confirms Z13 is a valid value for DE7009 in C273 ([Z12=, Z13=]).",
"description_hash": "6870aa3e",
"is_external": false
},
"934": {
"confidence": "high",
"reasoning": "Format condition checking HHMM = 0400. Uses validate_hhmm_equals helper on the DTM value. Searches all DTM segments and validates the time component. High confidence as it directly maps to the validate_hhmm_equals helper.",
"description_hash": "d06a46c8",
"is_external": false
},
"362": {
"confidence": "high",
"reasoning": "True when no STS+E01 segment has Prüfschritt code A03 or A17 at elements[2][0]. Same pattern as condition 361 but checking A17 instead of A04.",
"description_hash": "dfcdeefa",
"is_external": false
},
"935": {
"confidence": "high",
"reasoning": "Format condition checking HHMM = 0500. Uses validate_hhmm_equals helper on the DTM value. Analogous to 934 but checking 0500 (summer time / UTC offset variant for gas supply times in the German energy market).",
"description_hash": "192bd97e",
"is_external": false
},
"4": {
"confidence": "high",
"reasoning": "'Wenn MP-ID in SG2 NAD+MR in der Rolle LF' — the NAD+MR segment contains the recipient's MP-ID, but whether that market participant holds the role of Lieferant (LF) is external business context not encoded in the EDIFACT message itself.",
"description_hash": "55130474",
"is_external": true
},
"36": {
"confidence": "high",
"reasoning": "STS: elements[0][0]='E01' (Status-Kategorie: Antwort), elements[2][0] is DE9013 (status reason code, C556 composite). ZC5 = Ablehnung andere Anmeldung in Bearbeitung. has_qualified_value finds STS where qualifier matches and then checks the target element.",
"description_hash": "63e626a8",
"is_external": false
},
"133": {
"confidence": "medium",
"reasoning": "'Wenn an der übermittelten Marktlokation / Messlokation vorhanden' — whether a specific data element exists at the transmitted market or metering location is a business/registry lookup that cannot be determined from the EDIFACT message content alone. Marked external.",
"description_hash": "088f9d0d",
"is_external": true
},
"951": {
"confidence": "high",
"reasoning": "Zählpunktbezeichnung is 33 alphanumeric characters — validate_zahlpunkt covers this exactly. In UTILMD Gas, the Zählpunkt is identified via LOC+Z19, element[1][0].",
"description_hash": "f35fc481",
"is_external": false
},
"13": {
"confidence": "high",
"reasoning": "Negation of STS+E01++Z01 (Status der Antwort: Zustimmung mit Terminänderung). elements[0][0]='E01', elements[2][0]='Z01'. Condition is True when this status is absent.",
"description_hash": "95c62c31",
"is_external": false
},
"165": {
"confidence": "high",
"reasoning": "'Wenn bekannt' — the classic 'if known' external condition. Whether a piece of information (e.g., a date or value) is known to the sender is runtime business context outside the message. Marked external.",
"description_hash": "963140b3",
"is_external": true
},
"7": {
"confidence": "high",
"reasoning": "STS Transaktionsgrund: elements[0][0]=Statuskategorie='7', elements[2][0]=Statusanlass code. Check for ZG9/ZH1/ZH2 using has_qualified_value.",
"description_hash": "101bffb4",
"is_external": false
},
"953": {
"confidence": "high",
"reasoning": "validate_malo_or_zahlpunkt covers both cases exactly: 11-digit MaLo-ID with Luhn check digit, or 33-character Zählpunktbezeichnung. The identifier is typically in a LOC segment's element[1][0]. High confidence because the helper is a direct match for the condition description.",
"description_hash": "0e6a91c8",
"is_external": false
},
"567": {
"confidence": "high",
"reasoning": "Pure Hinweis label identifying the 'Neulieferant' role. No condition logic to evaluate.",
"description_hash": "e0f57266",
"is_external": false
},
"202": {
"confidence": "high",
"reasoning": "STS 'Status der Antwort' has elements[0][0]=\"E01\" (qualifier) and elements[1][0]=DE4405 (Status, Code). Finds STS where qualifier is E01 and checks elements[1][0] for value ZG2 (Gültiges Ergebnis nach der Datenprüfung).",
"description_hash": "6bc1f9f5",
"is_external": false
},
"66": {
"confidence": "high",
"reasoning": "Count all CCI+Z19 (Bilanzkreis) segments across the message. True when more than one occurrence. Message-wide count is correct since 'im Vorgang' means across the whole transaction.",
"description_hash": "c5b8359a",
"is_external": false
},
"952": {
"confidence": "medium",
"reasoning": "DIN 43863-5 Gerätenummer is an alphanumeric device identifier with a max length of 20 characters. No dedicated validator exists, so validate_max_length(20) is used as the structural check. The exact segment/element depends on the AHB table position — IDE is the most common carrier for device IDs in UTILMD Gas, with PIA as a fallback. Medium confidence due to uncertainty about the exact segment without the full AHB table context.",
"description_hash": "1871f37e",
"is_external": false
},
"70": {
"confidence": "high",
"reasoning": "Count all CCI+Z19 (Bilanzkreis) segments across the message. True when exactly five occurrences.",
"description_hash": "92ec7e79",
"is_external": false
},
"644": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation describing how E01 is used when the corresponding Anmeldung contained E02. Always applies unconditionally.",
"description_hash": "66c57193",
"is_external": false
},
"213": {
"confidence": "high",
"reasoning": "Simple qualifier presence check: NAD+Z09 (Kunde des Lieferanten) exists when elements[0][0]=='Z09'.",
"description_hash": "f6780d06",
"is_external": false
},
"912": {
"confidence": "high",
"reasoning": "Format condition: max 6 decimal places. Applies to QTY segment value at elements[0][1]. Direct use of validate_max_decimal_places helper.",
"description_hash": "8464aa40",
"is_external": false
},
"2287": {
"confidence": "high",
"reasoning": "Condition states: to be given at least once for each SEQ+Z03 (Zähleinrichtungsdaten). As a boolean applicability condition, True when any SG8 instance contains SEQ with qualifier Z03 at elements[0][0].",
"description_hash": "e8615b2d",
"is_external": false
},
"48": {
"confidence": "high",
"reasoning": "Same structure as condition 36. STS: elements[0][0]='E01' (Antwort-Statuskategorie), elements[2][0]=DE9013 status reason code. E14 = Ablehnung Sonstiges. has_qualified_value handles the co-element check on the same segment.",
"description_hash": "5fe27cd1",
"is_external": false
},
"15": {
"confidence": "high",
"reasoning": "STS+E01++Z34 (Status der Antwort: Ablehnung Mehrfachkündigung): elements[0][0]='E01' (Statuskategorie), elements[2][0]='Z34' (Statusanlass). Direct has_qualified_value check.",
"description_hash": "254c0e3d",
"is_external": false
},
"527": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation about which identifiers must be included. No condition logic to evaluate.",
"description_hash": "b26a1121",
"is_external": false
},
"938": {
"confidence": "high",
"reasoning": "Format condition 'Möglicher Wert: <= 10' checks that the numeric value is at most 10. Uses validate_numeric with '<=' operator on the QTY value element.",
"description_hash": "6ca307d1",
"is_external": false
},
"1": {
"confidence": "high",
"reasoning": "'Wenn Aufteilung vorhanden' — whether message splitting is active is a runtime business context decision that cannot be determined from the EDIFACT message content alone.",
"description_hash": "4ebb4e5c",
"is_external": true
},
"361": {
"confidence": "high",
"reasoning": "True when no STS+E01 segment has Prüfschritt code A03 or A04 at elements[2][0]. Notation resolved confirms elements[2] is C556 (Statusanlass/Prüfschritt) with A03/A04 values. Negation of existence check.",
"description_hash": "833a0f5a",
"is_external": false
},
"559": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation clarifying that the correspondence address field is not an identification field. No condition logic to evaluate.",
"description_hash": "4c48eb52",
"is_external": false
},
"166": {
"confidence": "medium",
"reasoning": "'Wenn vorhanden' — generic 'if present/available' without a specific segment reference. When used as a standalone condition this refers to business data availability that cannot be determined from the EDIFACT message structure alone. Marked external.",
"description_hash": "fae4710e",
"is_external": true
},
"937": {
"confidence": "high",
"reasoning": "Format condition 'keine Nachkommastelle' means no decimal places allowed, i.e., max 0 decimal places. Uses validate_max_decimal_places(val, 0) on the QTY value, which is the most common numeric value segment in UTILMD.",
"description_hash": "e3f49bb8",
"is_external": false
},
"500": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing how to choose the code based on the category of the message being cancelled. Always applies unconditionally.",
"description_hash": "90cddaf7",
"is_external": false
},
"510": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation describing usage context for ESV deregistration. No condition logic to evaluate.",
"description_hash": "72d664cc",
"is_external": false
},
"19": {
"confidence": "high",
"reasoning": "SG10 is a child group of SG8. Find SG8 instances where SEQ+Z01 (Daten der Marktlokation, elements[0][0]='Z01') is present, then check if their SG10 children contain CCI with elements[2][0]='ZC0' (Prognose auf Basis von Werten). The CCI+++ZC0 notation places the qualifier at elements[2][0] per segment structure.",
"description_hash": "2ce7666f",
"is_external": false
},
"252": {
"confidence": "medium",
"reasoning": "DE0068 is the Common Access Reference in UNH (elements[2][0]). Checks if it is present and non-empty in any UNH segment.",
"description_hash": "87b3eb73",
"is_external": false
},
"491": {
"confidence": "high",
"reasoning": "References an external date range table from Kapitel 3.6 'Prozesszeitpunkt bei MEZ mit UTC' — the valid date ranges for MEZ (Central European Time) periods cannot be determined from the EDIFACT message itself.",
"description_hash": "798c2c48",
"is_external": true
},
"583": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing field usage, always applies unconditionally.",
"description_hash": "9727b89c",
"is_external": false
},
"622": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "04b6eeeb",
"is_external": false
},
"14": {
"confidence": "high",
"reasoning": "'Wenn Datum bekannt' — whether a specific date is known is a runtime business context condition that cannot be determined from the EDIFACT message content alone.",
"description_hash": "d089cab4",
"is_external": true
},
"64": {
"confidence": "high",
"reasoning": "Simple qualifier existence: DTM+158 (Bilanzierungsbeginn) at elements[0][0].",
"description_hash": "a8edfdd7",
"is_external": false
},
"2": {
"confidence": "high",
"reasoning": "UNH DE0070 (Übermittlungsfolgenummer) is at elements[3][0] per the segment structure reference. Check if it equals '1'.",
"description_hash": "31d5d244",
"is_external": false
},
"502": {
"confidence": "high",
"reasoning": "Hinweis condition — purely informational annotation about when Ersatzbelieferung applies. Contains no boolean predicate. Always returns True.",
"description_hash": "43d66d01",
"is_external": false
},
"28": {
"confidence": "high",
"reasoning": "Checks message-wide whether any DTM segment with elements[0][0]='93' (Ende zum) is present.",
"description_hash": "379d10ac",
"is_external": false
},
"51": {
"confidence": "high",
"reasoning": "Whether the delivery end/start is retroactive (rückwirkend) requires comparing the delivery date against a system reference date or business process clock — this is a business context determination that cannot be made from the EDIFACT message content alone.",
"description_hash": "f2ebdab8",
"is_external": true
},
"283": {
"confidence": "high",
"reasoning": "External condition: whether the message recipient is the currently assigned Lieferant (supplier) at the Nachrichtendatum requires external business context from the market registry — not derivable from EDIFACT message content.",
"description_hash": "13f0997a",
"is_external": true
},
"336": {
"confidence": "medium",
"reasoning": "\"Wenn in Änderungsmeldung gefüllt\" means the condition applies when this field is populated in the context of an amendment message (Änderungsmeldung). Whether a given transmission constitutes an amendment depends on business context (the PID / Vorgang type) that cannot be reliably determined from the raw EDIFACT segments alone. Delegated to external provider.",
"description_hash": "eaa7fa09",
"is_external": true
},
"2119": {
"confidence": "high",
"reasoning": "Condition states the segment group is to be given exactly once per SG8 SEQ+Z13 (Smartmeter-Gateway). As a boolean applicability condition, True when any SG8 instance contains SEQ with qualifier Z13 at elements[0][0].",
"description_hash": "8e48029e",
"is_external": false
},
"209": {
"confidence": "medium",
"reasoning": "Checks if any DTM segment has DE2379 (elements[0][2]) equal to '303'. 'Im selben Segment' implies checking the format code component within the same DTM segment context; falls back to message-wide check without segment-level navigation.",
"description_hash": "0e2d44dd",
"is_external": false
},
"574": {
"confidence": "high",
"reasoning": "[SEEDED] From FV2504",
"description_hash": "a1e18cd6",
"is_external": false
},
"2284": {
"confidence": "high",
"reasoning": "Condition states: to be given exactly once for each Messlokations-ID in SG5 LOC+172 (Meldepunkt) DE3225. As a boolean applicability condition, True when any SG5 instance contains LOC with qualifier 172 at elements[0][0].",
"description_hash": "b0478343",
"is_external": false
},
"39": {
"confidence": "high",
"reasoning": "Whether the LF (Lieferant) intends to transmit a meter reading (Zählerstand) is an intent/agreement outside the current EDIFACT message — it reflects a bilateral agreement or process state that cannot be derived from message segments alone.",
"description_hash": "7c58b9f1",
"is_external": true
},
"566": {
"confidence": "high",
"reasoning": "Pure Hinweis label identifying the 'Altlieferant' role. No condition logic to evaluate.",
"description_hash": "6182ad8a",
"is_external": false
},
"108": {
"confidence": "medium",
"reasoning": "Kundenwertverfahren (e.g., TU München) is a specific billing methodology determined by contract terms, not derivable from the EDIFACT message content itself.",
"description_hash": "a793b602",
"is_external": true
},
"81": {
"confidence": "high",
"reasoning": "FTX+ABO where C107.DE4441 (elements[2][0]) = Z05. Per MIG schema, the code Z05 (Änderung vorhanden) is at elements[2][0] in the C107 composite, not elements[1]. AHB shorthand notation is overridden by the authoritative segment structure reference.",
"description_hash": "b6eafc83",
"is_external": false
},
"427": {
"confidence": "high",
"reasoning": "References external codelist 'Codeliste der Standard-Messprodukte Gas' from Kapitel 3 — cannot be evaluated from EDIFACT message segments alone; requires access to the external codelist.",
"description_hash": "e562240b",
"is_external": true
},
"138": {
"confidence": "high",
"reasoning": "Directly checks absence of LOC segment with qualifier 172 (Meldepunkt) at elements[0]. Returns True when no such LOC segment exists in the message.",
"description_hash": "66e06dca",
"is_external": false
},
"345": {
"confidence": "high",
"reasoning": "Check if LOC+172 (Meldepunkt) in SG5 has a 33-character identifier at elements[1][0] (DE3225). 33-character IDs are German MALO-IDs. Direct string length check.",
"description_hash": "f55b927f",
"is_external": false
},
"572": {
"confidence": "high",
"reasoning": "Hinweis informational annotation — always applies unconditionally.",
"description_hash": "58a57b5c",
"is_external": false
},
"58": {
"confidence": "medium",
"reasoning": "DE3055 (Verantwortliche Stelle für die Codepflege) appears at CCI elements[2][2] in CCI — Klimazone/Temperaturmessstelle. Checks any CCI in the message has that code. 'In diesem CCI' implies context-local check; falls back to message-wide.",
"description_hash": "081389d4",
"is_external": false
},
"277": {
"confidence": "medium",
"reasoning": "'Wenn Zuordnung vorhanden' most likely refers to Bilanzkreiszuordnung zur Marktlokation, indicated by STS+Z18 per the MIG segment reference. Medium confidence as 'Zuordnung' could refer to other assignments in different PID contexts.",
"description_hash": "e2f1e3f9",
"is_external": false
},
"203": {
"confidence": "high",
"reasoning": "Check STS segment where elements[0][0]==\"7\" (Statuskategorie=7) and elements[2][0] (Statusanlass) is one of E06, Z39, ZC6, ZC7, ZT6, ZT7. The has_qualified_value helper covers this pattern exactly.",
"description_hash": "ac674e3a",
"is_external": false
},
"77": {
"confidence": "high",
"reasoning": "In any SG8 instance where SEQ+Z03 (Zähleinrichtungsdaten) is present, CAV+Z30 (Identifikation/Nummer des Gerätes) is absent. Uses same-group absence helper.",
"description_hash": "2e4bb8df",
"is_external": false
},
"442": {
"confidence": "medium",
"reasoning": "Condition is True when NO SG8 with SEQ+Z09 (Mengenumwerterdaten) has a co-occurring RFF+MG. Implemented by negating any_group_has_co_occurrence. Medium confidence because the 'same device number as meter' cross-reference aspect cannot be fully validated without knowing which meter device number to compare against.",
"description_hash": "3ff742e0",
"is_external": false
},
"930": {
"confidence": "high",
"reasoning": "Format condition: max 2 decimal places. Applies to QTY segment value at elements[0][1]. Direct use of validate_max_decimal_places helper.",
"description_hash": "30e8c861",
"is_external": false
},
"655": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about OBIS code assignment when Zähler is connected to Mengenumwerter. Always applies unconditionally.",
"description_hash": "3db6ca4a",
"is_external": false
},
"69": {
"confidence": "high",
"reasoning": "Count all CCI+Z19 (Bilanzkreis) segments across the message. True when more than three occurrences.",
"description_hash": "7ec31f5d",
"is_external": false
},
"560": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation clarifying the non-identification use of meter reading card address data. No condition logic to evaluate.",
"description_hash": "58cc7c2e",
"is_external": false
},
"324": {
"confidence": "low",
"reasoning": "Similar to condition 315: requires validating completeness of OBIS codes at the Zähleinrichtung level against the EDI@Energy OBIS code list (Kap. 4) and Messprodukt-Codes from 'Codeliste der Konfigurationen' Kap. 5.2. Cannot be determined from EDIFACT message content alone without external reference data.",
"description_hash": "d156d789",
"is_external": true
},
"501": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing where the value originates (from DTM+157 of the assignment list). Always applies unconditionally.",
"description_hash": "454cdf46",
"is_external": false
},
"511": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation describing usage context, not a boolean predicate. Always returns True.",
"description_hash": "cc90bcbd",
"is_external": false
},
"129": {
"confidence": "medium",
"reasoning": "Whether the supplier has contract knowledge about the amount of a special KA (Sonder-Kapazitätsanteil) is contract-based knowledge. Cannot be derived from the EDIFACT message.",
"description_hash": "7004cb99",
"is_external": true
},
"46": {
"confidence": "medium",
"reasoning": "In SG8 with SEQ+Z35 (Lastprofildaten), check SG10 children for CCI+Z12 (Lastprofil, elements[0][0]='Z12') AND a Klimazone CCI with DE3055=293 at elements[2][2] (responsible agency code = BDEW/GS1-DE). Uses collect_group_values to find Z35 SG8 instances by index, then navigator for SG10 child traversal.",
"description_hash": "332ba921",
"is_external": false
},
"84": {
"confidence": "high",
"reasoning": "STS with C601.DE9015=E01 (Status der Antwort) and C556.DE9013=Z35 (Ablehnung der Abmeldeanfrage). elements[0][0]=E01 is category, elements[2][0]=Z35 is the Prüfschritt code.",
"description_hash": "c678bc5e",
"is_external": false
},
"98": {
"confidence": "medium",
"reasoning": "'Wenn MP-ID in SG2 NAD+MS in der Rolle NB' — while we can confirm NAD+MS exists in the message, determining whether that market participant ID is registered in the role of Netzbetreiber (NB) requires an external role/master-data lookup. Cannot be derived from the EDIFACT message content alone.",
"description_hash": "b51d892c",
"is_external": true
},
"3": {
"confidence": "low",
"reasoning": "This condition requires comparing across multiple split messages to determine which has the highest Übermittlungsfolgenummer. This is an external condition — the validator would need to know about all messages in the split set and their sequence numbers, which is not available from a single EDIFACT message.",
"description_hash": "3502aab6",
"is_external": true
},
"92": {
"confidence": "medium",
"reasoning": "'Wenn Wert innerhalb SG bzw. Segment geändert wird' — whether a value was changed compared to a prior state cannot be determined from the EDIFACT message alone; requires external business context comparing current vs previous transmission.",
"description_hash": "91b75fa8",
"is_external": true
},
"37": {
"confidence": "high",
"reasoning": "Whether a registration/change is time-limited (befristet) is a business property of the registration itself. Matches the known external condition pattern 'Wenn befristet' → registration_is_time_limited documented in CLAUDE.md.",
"description_hash": "8ae2fa4a",
"is_external": true
},
"26": {
"confidence": "medium",
"reasoning": "Zählpunktbezeichnung format contains non-digit characters (typically alphanumeric string). Negates condition 25's all-digit check. Returns True if DE3225 of LOC+172 is non-empty and contains at least one non-digit character.",
"description_hash": "0585333d",
"is_external": false
},
"577": {
"confidence": "high",
"reasoning": "[SEEDED] From FV2504",
"description_hash": "38a15778",
"is_external": false
},
"581": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing field usage, always applies unconditionally.",
"description_hash": "c0a5d56f",
"is_external": false
},
"5": {
"confidence": "high",
"reasoning": "'Wenn MP-ID in SG2 NAD+MS in der Rolle LF' — the NAD+MS segment contains the sender's MP-ID, but whether that market participant holds the role of Lieferant (LF) is external business context not encoded in the EDIFACT message itself.",
"description_hash": "a1466d0d",
"is_external": true
},
"24": {
"confidence": "high",
"reasoning": "Checks message-wide whether any DTM segment with elements[0][0]='Z21' (Termin der Netznutzungsabrechnung) is present.",
"description_hash": "83eea6a7",
"is_external": false
},
"637": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "849c0f3f",
"is_external": false
},
"638": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "92f36b7c",
"is_external": false
},
"654": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about data relevance to the addressed market partner. Always applies unconditionally.",
"description_hash": "8e1d3102",
"is_external": false
},
"513": {
"confidence": "medium",
"reasoning": "Hinweis describing precedence rule between QTY+Y02 and QTY+31. Partial implementation checks whether QTY+Y02 is present (i.e. the rule is active). Full semantic enforcement (exclusive use) cannot be expressed as a simple ConditionResult.",
"description_hash": "8e54734d",
"is_external": false
},
"47": {
"confidence": "medium",
"reasoning": "Logical negation of condition 46: CCI+Z12 Klimazone DE3055=293 NOT present in SG10 under SG8+Z35. Propagates Unknown to maintain three-valued semantics.",
"description_hash": "da6a7cc7",
"is_external": false
},
"65": {
"confidence": "high",
"reasoning": "Whether a market area overlap (Marktgebietsüberlappung) exists and which balance groups (Bilanzkreise) of the LF have free capacity at the NB is entirely a market topology and capacity question — it depends on external registry/capacity data that is not encoded in the EDIFACT message itself.",
"description_hash": "ef0b34cd",
"is_external": true
},
"494": {
"confidence": "high",
"reasoning": "This is a Hinweis — an informational annotation describing the semantic meaning of the date field (must be the document creation time or earlier). It does not encode a boolean predicate derivable from other segments; it is a constraint description that always applies unconditionally.",
"description_hash": "e0eddcc9",
"is_external": false
},
"556": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing fallback address logic (use Marktlokation address if no correspondence address available). Always applies unconditionally.",
"description_hash": "757114fc",
"is_external": false
},
"257": {
"confidence": "high",
"reasoning": "Checks that SEQ+Z02 (OBIS-Daten der Marktlokation) and PIA with OBIS code '7-0:33.86.0' (EDIFACT escape ?. decoded as literal colon) co-occur in the same SG8 instance.",
"description_hash": "634cbfce",
"is_external": false
},
"507": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation describing the semantic meaning of a date field. No condition logic to evaluate.",
"description_hash": "f261bf57",
"is_external": false
},
"16": {
"confidence": "high",
"reasoning": "STS+E01++Z12 (Status der Antwort: Ablehnung Vertragsbindung): elements[0][0]='E01', elements[2][0]='Z12'. Direct has_qualified_value check.",
"description_hash": "01e37a5a",
"is_external": false
},
"2061": {
"confidence": "medium",
"reasoning": "Condition states the segment/group is to be given exactly once per SG4 IDE (Vorgang). As a boolean applicability condition, this is True when the IDE segment (Vorgangsidentifikator) is present, indicating the SG4 context exists. Cardinality enforcement (exactly once) is a structural rule beyond a simple boolean evaluator.",
"description_hash": "6282c707",
"is_external": false
},
"9": {
"confidence": "high",
"reasoning": "Negation of STS+7++ZE4 presence. If no STS+7 exists or ZE4 is not the value, condition 'nicht vorhanden' is True. Only False when ZE4 is explicitly found.",
"description_hash": "1f2a0b03",
"is_external": false
},
"25": {
"confidence": "medium",
"reasoning": "Marktlokations-ID in German gas market is a numeric (all-digit) identifier. LOC+172 has elements[0][0]='172', elements[1][0]=DE3225. Checks if value consists entirely of ASCII digits. Returns Unknown if no LOC+172 exists.",
"description_hash": "ebb975a2",
"is_external": false
},
"368": {
"confidence": "high",
"reasoning": "\"Es sind alle Codes aus der Codeliste G_0009 erlaubt\" is an informational note stating that all codes from code list G_0009 are permitted for this field. It is a permissive annotation about valid values, not a boolean predicate — equivalent to a Hinweis. Always returns True.",
"description_hash": "6c1d28dd",
"is_external": false
},
"137": {
"confidence": "medium",
"reasoning": "'Nicht bei Neuanlage' — the condition is True when the transaction reason is NOT E02 (Neubau / new installation). Finds STS with elements[0][0]=\"7\" (Transaktionsgrund), checks elements[2][0] for E02, and negates the result.",
"description_hash": "11a2de30",
"is_external": false
},
"504": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation noting Z22 is shared with Strom but the Einspeisevergütungsintervall reference is irrelevant for Gas. Contains no boolean predicate. Always returns True.",
"description_hash": "c2e1f14d",
"is_external": false
},
"651": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about Marktraumumstellung Gas process. Always applies unconditionally.",
"description_hash": "98ebc4e0",
"is_external": false
},
"18": {
"confidence": "high",
"reasoning": "DTM+93 (Ende zum): elements[0][0]=qualifier='93'. lacks_qualifier returns True when no DTM with qualifier 93 exists in the message.",
"description_hash": "b2b52d1a",
"is_external": false
},
"127": {
"confidence": "medium",
"reasoning": "Whether the supplier knows from their contract that the customer has no high KA (Kapazitätsanteil) is contract-based knowledge external to the EDIFACT message. Cannot be determined from segment data alone.",
"description_hash": "c59beaeb",
"is_external": true
},
"931": {
"confidence": "high",
"reasoning": "Format condition: ZZZ = +00 means UTC timezone. Applies to DTM segment value at elements[0][1] (the datetime string which embeds timezone, e.g. '202505312200+00'). Uses validate_timezone_utc helper which checks the timezone portion of the value.",
"description_hash": "825c510c",
"is_external": false
},
"123": {
"confidence": "medium",
"reasoning": "Collects device IDs (via RFF+MG or RFF+Z11) from all SG8 instances that have SEQ+Z20. Returns True if any device ID appears in at least two such instances, indicating at least one further SG8 references the same device. Requires navigator for proper group-scoped traversal.",
"description_hash": "c65110f0",
"is_external": false
},
"29": {
"confidence": "high",
"reasoning": "Whether balancing (Bilanzierung) takes place is a business context fact about market participant configuration — it cannot be determined from the EDIFACT message content alone.",
"description_hash": "2ee6d67e",
"is_external": true
},
"128": {
"confidence": "high",
"reasoning": "Checks if any SG10 instance (child of SG8) contains a CAV segment with code TAS, TKS, SAS, or KAS at elements[0][0]. These are Konzessionsabgabe sub-types. The group path SG4→SG8→SG10 correctly targets CAV segments in child groups.",
"description_hash": "405942ea",
"is_external": false
},
"950": {
"confidence": "high",
"reasoning": "Format condition for Marktlokations-ID. Uses validate_malo_id which checks 11-digit Luhn check digit format. Extracts from LOC+Z16 segment (Z16 is the EDIFACT qualifier for Marktlokation in UTILMD Gas), elements[1][0] holds the ID value.",
"description_hash": "a9ddfaec",
"is_external": false
},
"10": {
"confidence": "high",
"reasoning": "STS+Z17 means Statuskategorie (elements[0][0]) == 'Z17', which is the Transaktionsgrundergänzung für befristete Anmeldung segment. Simple qualifier check.",
"description_hash": "532a5167",
"is_external": false
},
"505": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about when Übergangsversorgung applies (§ 38a EnWG, bilateral agreement). Contains no boolean predicate. Always returns True.",
"description_hash": "c32f41b8",
"is_external": false
},
"367": {
"confidence": "high",
"reasoning": "True when a STS+E01 segment exists with Prüfschritt code A04 at elements[2][0] (C556 DE9013). Notation resolved confirms elements[2] holds A04. Direct use of has_qualified_value helper.",
"description_hash": "4914eff7",
"is_external": false
},
"2353": {
"confidence": "high",
"reasoning": "Condition states: to be given at least once for each SEQ+Z09 (Mengenumwerter-Daten). As a boolean applicability condition, True when any SG8 instance contains SEQ with qualifier Z09 at elements[0][0].",
"description_hash": "e2d813e2",
"is_external": false
},
"573": {
"confidence": "high",
"reasoning": "[SEEDED] From FV2504",
"description_hash": "03badedc",
"is_external": false
},
"276": {
"confidence": "high",
"reasoning": "Simple qualifier check for DTM+92 (Beginn zum) in SG4 via elements[0][0]=='92'.",
"description_hash": "1f38de55",
"is_external": false
},
"558": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation indicating voluntary data exchange. No condition logic to evaluate.",
"description_hash": "dea71226",
"is_external": false
},
"32": {
"confidence": "high",
"reasoning": "BGM elements[0][0] is DE1001 (document name code). E03 = Änderungsmeldungen. Direct qualifier check.",
"description_hash": "f0bcae17",
"is_external": false
},
"570": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation labeling this as the previous network operator (Netzbetreiber Alt). Always applies unconditionally.",
"description_hash": "3cae0941",
"is_external": false
},
"584": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing field usage, always applies unconditionally.",
"description_hash": "d7954b75",
"is_external": false
},
"205": {
"confidence": "high",
"reasoning": "Checks absence of QTY segment with qualifier Y02 (TUM Kundenwert) at elements[0][0]. Returns True when no QTY+Y02 exists anywhere in the message.",
"description_hash": "7f34a39b",
"is_external": false
},
"528": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation about date carryover from request. No condition logic to evaluate.",
"description_hash": "eea84db1",
"is_external": false
},
"315": {
"confidence": "low",
"reasoning": "This condition requires validating completeness of OBIS codes against an external code list (EDI@Energy Codeliste der OBIS-Kennzahlen, Kap. 4 and 4.6) and cross-referencing Messprodukt-Codes from 'Codeliste der Konfigurationen' Kap. 5.2. This cannot be determined from the EDIFACT message content alone — it requires external reference data about required OBIS codes per configuration.",
"description_hash": "1d08e79a",
"is_external": true
},
"12": {
"confidence": "high",
"reasoning": "DTM+471 (Ende zum nächstmöglichem Termin): elements[0][0]=qualifier='471'. lacks_qualifier returns True when no such DTM exists.",
"description_hash": "c8244b0e",
"is_external": false
},
"530": {
"confidence": "high",
"reasoning": "Pure Hinweis annotation about data completeness requirements at a given date. No condition logic to evaluate.",
"description_hash": "76504406",
"is_external": false
}
}
}