{
"generated_at": "2026-03-12T10:12:37Z",
"ahb_file": "MSCONS_AHB_3_1f_Fehlerkorrektur_20250623.xml",
"format_version": "FV2504",
"conditions": {
"97": {
"confidence": "medium",
"reasoning": "Whether this transmission is caused by a gas quality changeover (H-Gas/L-Gas conversion) cannot be determined from EDIFACT message content alone — it is a business context condition.",
"description_hash": "a2653008",
"is_external": true
},
"546": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation about when a reference to Stammdatenänderung must be provided. Always applies unconditionally.",
"description_hash": "78388ebe",
"is_external": false
},
"556": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "eb0a6c9d",
"is_external": false
},
"81": {
"confidence": "low",
"reasoning": "Whether the sender (NAD+MS) is acting in the role of ÜNB (Übertragungsnetzbetreiber) cannot be determined from the EDIFACT message content alone — it requires external market participant role registry context.",
"description_hash": "0a4f0609",
"is_external": true
},
"932": {
"confidence": "high",
"reasoning": "Format condition: HHMM = 2200 means the time portion of the DTM value must be 22:00. Uses validate_hhmm_equals helper.",
"description_hash": "943b98c4",
"is_external": false
},
"2003": {
"confidence": "high",
"reasoning": "Cardinality annotation stating the segment group appears exactly two times per SG9 LIN instance. This is an informational structural constraint describing required multiplicity, not a boolean predicate evaluated against a single field's presence. Treated as Hinweis — always True.",
"description_hash": "0d195b57",
"is_external": false
},
"83": {
"confidence": "medium",
"reasoning": "STS 'Grundlage der Energiemenge' has elements[0][0]='10' (Statuskategorie) and elements[1][0]=status code. STS lives in SG10 (child of SG9). Condition is True when NO STS with category 10 and status Z38 exists within SG9/SG10 scope. Using any_group_has_qualified_value on SG9->SG10 path then negating. Group scope is approximate — a precise check would traverse SG9 instances and their SG10 children.",
"description_hash": "6b75d048",
"is_external": false
},
"71": {
"confidence": "high",
"reasoning": "BGM document name code (DE1001) is at elements[0][0]. Check equals 'Z39'.",
"description_hash": "0929af95",
"is_external": false
},
"85": {
"confidence": "medium",
"reasoning": "Same pattern as condition 83 but for status code Z36. True when no STS+10+Z36 is present in any SG10 within the SG9 scope.",
"description_hash": "cee5148d",
"is_external": false
},
"933": {
"confidence": "high",
"reasoning": "Format condition: HHMM = 2300 means the time portion of the DTM value must be 23:00. Uses validate_hhmm_equals helper.",
"description_hash": "b5e9c81e",
"is_external": false
},
"91": {
"confidence": "high",
"reasoning": "BGM elements[0][0] = DE1001 (Dokumentenname, Code). Checks if BGM segment has code Z42 at elements[0][0]. Z42 is a valid DE1001 code. Simple qualifier existence check.",
"description_hash": "6d7d3887",
"is_external": false
},
"42": {
"confidence": "high",
"reasoning": "Checks if the message recipient (NAD+MR) holds the market role MSB (Messstellenbetreiber). Like all role checks, this requires an external registry lookup — the EDIFACT message only carries the MP-ID, not the associated role.",
"description_hash": "e0fcdd50",
"is_external": true
},
"526": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "8b2596fc",
"is_external": false
},
"531": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation documenting the origin of a value from a referenced MSCONS message. Always returns True.",
"description_hash": "531eaeab",
"is_external": false
},
"35": {
"confidence": "high",
"reasoning": "The NAD+MS contains the MP-ID of the sender, but the market participant role (MSB = Messstellenbetreiber) is maintained in an external role registry. The EDIFACT message only carries the ID, not the role assignment.",
"description_hash": "8774bc22",
"is_external": true
},
"558": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "e39113dd",
"is_external": false
},
"543": {
"confidence": "high",
"reasoning": "Hinweis — informational annotation about the origin of the value (BGM+Z23 DE1004 from the corresponding ORDERS). Always applies unconditionally.",
"description_hash": "07a3451d",
"is_external": false
},
"494": {
"confidence": "medium",
"reasoning": "'Das hier genannte Datum muss der Zeitpunkt sein, zu dem das Dokument erstellt wurde, oder ein Zeitpunkt, der davor liegt' — the date in this DE must be the document creation time or earlier. Implemented by comparing the target DTM value to DTM+137 (Nachrichtendatum / document creation date). Medium confidence because 'this DE' is context-dependent without the full AHB table cross-reference. String comparison on CCYYMMDDHHMM format is lexicographically valid for datetime ordering.",
"description_hash": "785470ce",
"is_external": false
},
"73": {
"confidence": "high",
"reasoning": "1-b:1.9.e has both channel b and tariff e variable, so use contains(':1.9.'). The :3.9.0 and :4.9.0 codes have fixed tariff so use ends_with. Fixed-channel codes 1-66:13.9.0/14.9.0 are checked as exact strings.",
"description_hash": "6d1f469a",
"is_external": false
},
"574": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation describing the origin of a field value, always applies unconditionally.",
"description_hash": "6830acc6",
"is_external": false
},
"577": {
"confidence": "high",
"reasoning": "Hinweis condition — detailed informational note about energy quantity reporting when Messlokation ends before Marktlokation. Always returns True unconditionally.",
"description_hash": "b3a412d3",
"is_external": false
},
"917": {
"confidence": "high",
"reasoning": "Format 'max. 4 Vorkommastellen' — at most 4 integer digits before the decimal point. Uses validate_max_integer_digits(val, 4) on QTY elements[0][1] (DE6060). Leading minus sign is stripped by the helper.",
"description_hash": "208e519e",
"is_external": false
},
"934": {
"confidence": "high",
"reasoning": "Format condition: HHMM = 0400 means the time portion of the DTM value must be 04:00. Uses validate_hhmm_equals helper.",
"description_hash": "d06a46c8",
"is_external": false
},
"572": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "3de4e710",
"is_external": false
},
"128": {
"confidence": "medium",
"reasoning": "A regular reading (e.g. Kundenablesung) is distinguished from a meter-change reading by the absence of DTM+60 (Ausführungs-/Änderungszeitpunkt) in the same SG10. DTM+9 presence confirms it is a reading at all; DTM+60 absence confirms it is not due to a meter/config change. Group path SG9→SG10 matches MSCONS LIN-group context; fallback to message-wide if no navigator.",
"description_hash": "0f6b1b4e",
"is_external": false
},
"138": {
"confidence": "high",
"reasoning": "Whether the energy amount is a correction for a value originating from an iMS (intelligentes Messsystem / smart meter) cannot be determined from the EDIFACT message content alone — it requires business context about the type of metering system and the nature of the correction. Marked as external.",
"description_hash": "80cce785",
"is_external": true
},
"126": {
"confidence": "low",
"reasoning": "'Wenn Plausibilisierungshinweise vorliegen' — whether plausibility notes (Plausibilisierungshinweise) exist is a business processing outcome that cannot be determined from the EDIFACT message content alone. It depends on prior validation or processing steps in the market communication workflow.",
"description_hash": "173ffade",
"is_external": true
},
"149": {
"confidence": "medium",
"reasoning": "Checks presence of DTM+163 (Beginn Messperiode) — the direct inverse of condition 145. Message-wide approximation of the SG10-scoped intent within the enclosing LIN group.",
"description_hash": "e46169f8",
"is_external": false
},
"131": {
"confidence": "high",
"reasoning": "Simple absence check: condition is True when no RFF segment with qualifier AGK (elements[0][0]) exists in the message.",
"description_hash": "6f8ea95f",
"is_external": false
},
"70": {
"confidence": "high",
"reasoning": "BGM document name code (DE1001) is at elements[0][0]. Check equals 'BK'.",
"description_hash": "5b82c5b2",
"is_external": false
},
"513": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Bilanzierungsgebiet designation. Always applies unconditionally.",
"description_hash": "701e36c8",
"is_external": false
},
"119": {
"confidence": "high",
"reasoning": "LOC+172 in SG6 where DE3225 (elements[1][0] per segment reference) is present and non-empty indicates the Marktlokations-ID is specified. If no LOC+172 exists, condition is False.",
"description_hash": "9fd5a5ca",
"is_external": false
},
"960": {
"confidence": "medium",
"reasoning": "Netzlokations-ID uses the same 11-digit Luhn-check format as Marktlokations-ID (validate_malo_id). In MSCONS, Netzlokation is typically referenced via LOC+Z17. Segment structure reference does not include LOC for MSCONS, so Z17 qualifier is assumed from German energy market convention.",
"description_hash": "0ce0bd80",
"is_external": false
},
"491": {
"confidence": "medium",
"reasoning": "Checks whether the datetime value falls within German winter time (MEZ, UTC+1) using the is_mez_utc helper. Medium confidence because 'diesem DE' is context-dependent — without knowing the exact field the condition is applied to in the AHB table, we check the first DTM value available. The is_mez_utc helper applies the EU DST rule to determine MEZ vs MESZ.",
"description_hash": "5e5e4325",
"is_external": false
},
"545": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing a business rule about meter readings during quantity splits. Always applies unconditionally.",
"description_hash": "a2ae3953",
"is_external": false
},
"84": {
"confidence": "medium",
"reasoning": "Same pattern as condition 83 but for status code Z39. True when no STS+10+Z39 is present in any SG10 within the SG9 scope.",
"description_hash": "e604e544",
"is_external": false
},
"554": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "135f179c",
"is_external": false
},
"27": {
"confidence": "high",
"reasoning": "Checks for PIA segment with qualifier 5 (elements[0]) and exact OBIS code '1-1:1.9.0' at elements[1][0] (DE7140). The EDIFACT escape '1-1?:1.9.0' resolves to literal '1-1:1.9.0'.",
"description_hash": "1ceed6e5",
"is_external": false
},
"143": {
"confidence": "high",
"reasoning": "Checks whether any COM segment has DE3155 (elements[0][1]) equal to TE (telephone), FX (fax), AJ (email address), or AL (first telephone alternate). Uses low-level access for the same reason as condition 142.",
"description_hash": "d9351e4d",
"is_external": false
},
"12": {
"confidence": "high",
"reasoning": "Negation of condition 11. True when no PIA+5 segment has one of the listed reactive-power OBIS codes at elements[1][0].",
"description_hash": "54845daf",
"is_external": false
},
"108": {
"confidence": "medium",
"reasoning": "Checks PIA+5 for OBIS codes matching pattern '7-{channel}:99.41.16' or '7-{channel}:99.42.16' (Wirkenergie-Kennzahlen). The '?' in AHB notation is the EDIFACT release character escaping the colon; parsed segments will contain literal colon. Channel variable 'b' matched via starts_with(\"7-\").",
"description_hash": "4f910978",
"is_external": false
},
"1": {
"confidence": "high",
"reasoning": "Whether this was requested via ORDERS is business context outside the EDIFACT message. Cannot be determined from segments alone.",
"description_hash": "b16ca843",
"is_external": true
},
"935": {
"confidence": "high",
"reasoning": "Format condition: HHMM = 0500 means the time portion of the DTM value must be 05:00. Uses validate_hhmm_equals helper.",
"description_hash": "192bd97e",
"is_external": false
},
"523": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "8b288973",
"is_external": false
},
"129": {
"confidence": "medium",
"reasoning": "A meter-change reading is identified by the co-occurrence of DTM+9 (Ablesedatum) and DTM+60 (Ausführungs-/Änderungszeitpunkt) within the same SG10 instance. Uses direct navigator iteration to check co-occurrence within a single group instance (any_group_has_co_occurrence would have ambiguity for same-tag different qualifiers). Falls back to message-wide check without navigator.",
"description_hash": "bde47945",
"is_external": false
},
"99": {
"confidence": "high",
"reasoning": "PIA in SG9 where elements[0][0]='5', elements[1][0]='WID' (wind energy OBIS code), elements[1][1]='Z08'. Message-wide check.",
"description_hash": "8a7f356c",
"is_external": false
},
"132": {
"confidence": "medium",
"reasoning": "Checks if LOC+172 is absent entirely, or if DE3225 (elements[1][0], the Bezeichnung) is empty/missing within the LOC+172 segment. Returns True in either case as the condition is 'DE3225 nicht vorhanden'.",
"description_hash": "468209a2",
"is_external": false
},
"134": {
"confidence": "high",
"reasoning": "Checks for a DTM segment where DE2005 (elements[0][0]) == \"9\" (Ablesedatum) and DE2379 (elements[0][2]) == \"102\" (CCYYMMDD format code). has_qualified_value finds segments with qualifier 9 and then checks the format code component.",
"description_hash": "6f856dd9",
"is_external": false
},
"125": {
"confidence": "medium",
"reasoning": "Checks PIA+5 for specific OBIS code patterns: '7-0:52.0.22' (fixed channel 0), '7-{b}:53.0.16', '7-{b}:55.0.16', '7-{b}:55.0.20', '7-{b}:55.0.22' (variable channel). These are Blindenergie/Leistungsmessungs-Kennzahlen. Uses contains() to match the OBIS suffix after the channel variable.",
"description_hash": "6a7bc2c9",
"is_external": false
},
"22": {
"confidence": "high",
"reasoning": "Whether Aufteilung (message splitting) is present is business context that cannot be determined from the EDIFACT message alone.",
"description_hash": "4ebb4e5c",
"is_external": true
},
"529": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation documenting the origin of a value. Always returns True.",
"description_hash": "c4771722",
"is_external": false
},
"77": {
"confidence": "high",
"reasoning": "Checks if the message recipient (NAD+MR) is the Registrierungsbehörde (RB) for HKN-R (Herkunftsnachweise). This is a specialised market role that must be looked up in an external registry — not derivable from the MP-ID alone in the EDIFACT message.",
"description_hash": "882af98a",
"is_external": true
},
"144": {
"confidence": "high",
"reasoning": "Checks whether RFF+AGK (elements[0][0] == \"AGK\") is present in SG7 and has a non-empty DE1154 value (elements[0][1]). Returns False if no such RFF segment exists, True if it exists with a non-empty configuration ID.",
"description_hash": "54161910",
"is_external": false
},
"904": {
"confidence": "medium",
"reasoning": "Format condition requiring exactly 16 characters. Applied to QTY value (most common numeric format condition target in MSCONS). Confidence is medium because the exact target segment/element is not specified in the condition text — QTY is the most likely candidate in MSCONS context.",
"description_hash": "3e7ca914",
"is_external": false
},
"86": {
"confidence": "medium",
"reasoning": "Same pattern as condition 83 but for status code Z37. True when no STS+10+Z37 is present in any SG10 within the SG9 scope.",
"description_hash": "571367d3",
"is_external": false
},
"87": {
"confidence": "medium",
"reasoning": "Checks that DTM+163 in SG6 (with LOC+172) equals the minimum DTM+163 across all SG10 instances beneath that SG6's SG9 children. Medium confidence because the SG9→SG10 child navigation uses a local child instance index (si) passed to the grandchild API, which may behave differently depending on navigator implementation details for two-level child traversal.",
"description_hash": "6781c96a",
"is_external": false
},
"92": {
"confidence": "high",
"reasoning": "QTY elements[0][0] = DE6063 (Menge, Qualifier). Value 67 is a valid DE6063 code per the segment reference. Checks any SG10 instance (within SG9) for a QTY segment with quantity qualifier 67.",
"description_hash": "f425028c",
"is_external": false
},
"142": {
"confidence": "high",
"reasoning": "Checks whether any COM segment has DE3155 (elements[0][1], communication channel qualifier) equal to 'EM' (email). Uses low-level segment access since has_qualified_value's qualifier matching operates on elements[N][0] but here we need to check elements[0][1].",
"description_hash": "eaf06e02",
"is_external": false
},
"937": {
"confidence": "high",
"reasoning": "Format: keine Nachkommastelle means the value must have 0 decimal places. Uses validate_max_decimal_places with 0.",
"description_hash": "e3f49bb8",
"is_external": false
},
"18": {
"confidence": "medium",
"reasoning": "Affirmative version of condition 17. True when any PIA+5 has OBIS code matching the '1-{channel}:9.99.0' pattern (combined heat/power or special metering). Medium confidence due to pattern matching.",
"description_hash": "d23e50cf",
"is_external": false
},
"512": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Bilanzkreisbezeichnung. Always applies unconditionally.",
"description_hash": "b84f32fc",
"is_external": false
},
"90": {
"confidence": "high",
"reasoning": "BGM elements[0][0] = DE1001 (Dokumentenname, Code). Checks if BGM segment has code Z41 at elements[0][0]. Z41 is a valid DE1001 code. Simple qualifier existence check.",
"description_hash": "1b9152be",
"is_external": false
},
"528": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation documenting the origin of a value. Always returns True.",
"description_hash": "f1e27795",
"is_external": false
},
"490": {
"confidence": "high",
"reasoning": "Standard MESZ check: verifies that the CCYYMMDDHHMM datetime value at this data element falls within German summer time (MESZ / UTC+2) as defined in AHB chapter 3.5. Uses the is_mesz_utc() format validation helper which implements the EU DST rule (last Sunday of March 01:00 UTC through last Sunday of October 01:00 UTC). Matches Example 25 pattern exactly.",
"description_hash": "cb594882",
"is_external": false
},
"46": {
"confidence": "high",
"reasoning": "LOC+172 qualifier at elements[0][0], DE3225 at elements[1][0]. Check character length == 11. Returns Unknown if no LOC+172 is present.",
"description_hash": "e5f564c8",
"is_external": false
},
"525": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "fccafa3d",
"is_external": false
},
"520": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "0db225b9",
"is_external": false
},
"32": {
"confidence": "high",
"reasoning": "The NAD+MS contains the MP-ID of the sender, but the market participant role (NB = Netzbetreiber) is maintained in an external role registry. The EDIFACT message only carries the ID, not the role assignment.",
"description_hash": "71b05dd3",
"is_external": true
},
"117": {
"confidence": "high",
"reasoning": "Whether the market participant ID belongs to the electricity sector (Sparte Strom) cannot be determined from EDIFACT message content — requires external market participant registry lookup.",
"description_hash": "f3221dba",
"is_external": true
},
"524": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "8474b9a6",
"is_external": false
},
"568": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about usage restrictions for 1:n market/measurement location relationships. Always returns True.",
"description_hash": "fb05b32d",
"is_external": false
},
"2": {
"confidence": "medium",
"reasoning": "Parses year+month from DTM+163 (first) and DTM+164 (last) in format 303 (YYYYMMDDHHmm). Computes calendar-month difference. 'Mindestens einen Monat' interpreted as end month > start month (calendar boundary). Medium confidence due to ambiguity between calendar-month vs. 30-day interpretation.",
"description_hash": "24224d64",
"is_external": false
},
"575": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about using the Netzlokation ID. Always returns True unconditionally.",
"description_hash": "9592f83e",
"is_external": false
},
"502": {
"confidence": "high",
"reasoning": "Starts with 'Hinweis:' — informational annotation describing cardinality and usage context for energy amounts (Energiemenge) from start of calendar year to Lieferbeginn. Not a boolean predicate. Always returns True.",
"description_hash": "f452cf6e",
"is_external": false
},
"72": {
"confidence": "high",
"reasoning": "PIA+5 OBIS codes: three patterns with variable channel b use starts_with('1-') plus suffix check; the 13.6.0 and 14.6.0 variants have fixed channel 66 so they are checked as exact strings.",
"description_hash": "702e2059",
"is_external": false
},
"576": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about cardinality of DE3148. Always returns True unconditionally.",
"description_hash": "b7cc061b",
"is_external": false
},
"532": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation documenting the origin of a value from the cancelled MSCONS message. Always returns True.",
"description_hash": "08b29aa5",
"is_external": false
},
"559": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation describing when a correction reason must be provided. Always returns True.",
"description_hash": "8938ce21",
"is_external": false
},
"925": {
"confidence": "high",
"reasoning": "Format 'max. 5 Nachkommastellen' — at most 5 decimal places. Uses validate_max_decimal_places(val, 5) on QTY elements[0][1] (DE6060). Returns True if no decimal point or <= 5 decimal places; False if more; Unknown if no QTY segment.",
"description_hash": "b05855b2",
"is_external": false
},
"910": {
"confidence": "high",
"reasoning": "Format '< 0 oder ≥ 0' means the value may be any real number (negative or non-negative — this covers all real numbers). The only format constraint is that it parses as a valid floating-point number. Applies to QTY elements[0][1] (DE6060).",
"description_hash": "063d57bb",
"is_external": false
},
"506": {
"confidence": "high",
"reasoning": "Starts with 'Hinweis:' — informational annotation describing the usage context (Einspeisemengen and Gas hourly transmission). Not a boolean predicate. Always returns True.",
"description_hash": "c69e750b",
"is_external": false
},
"68": {
"confidence": "high",
"reasoning": "BGM document name code (DE1001) is at elements[0][0]. has_qualifier checks elements[0][0] == '7'.",
"description_hash": "3b330761",
"is_external": false
},
"145": {
"confidence": "medium",
"reasoning": "Checks absence of DTM+163 (Beginn Messperiode) in the message. The condition references the same SG10 context within the enclosing LIN group; without the exact MSCONS group path this is a message-wide approximation. Note: DTM+163 also appears in SG6 (Übertragungszeitraum), so this may yield false-negatives for the SG10-scoped intent.",
"description_hash": "600f49bb",
"is_external": false
},
"553": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing the origin of a reference value from a prior ORDERS message. Always applies unconditionally.",
"description_hash": "0fc91f50",
"is_external": false
},
"80": {
"confidence": "high",
"reasoning": "Checks if the message recipient (NAD+MR) holds the market role ÜNB (Übertragungsnetzbetreiber). Role membership cannot be determined from the EDIFACT message alone and requires an external market participant registry lookup.",
"description_hash": "c6f25d4d",
"is_external": true
},
"148": {
"confidence": "medium",
"reasoning": "An interval value (Wert in einem Zeitintervall) is signalled by the presence of DTM+163 (Beginn Messperiode) in SG10. If Beginn Messperiode is present, the value spans a time interval rather than being a single point.",
"description_hash": "e7bda451",
"is_external": false
},
"902": {
"confidence": "high",
"reasoning": "Format condition checking that QTY value is >= 0. Uses validate_numeric helper on QTY element[0][1] (the quantity value after the qualifier).",
"description_hash": "08daa39a",
"is_external": false
},
"2001": {
"confidence": "high",
"reasoning": "Cardinality annotation stating the segment group appears exactly once per UNH (message). This is a structural constraint / informational note describing allowed multiplicity, not a boolean predicate evaluated against message content. Treated as Hinweis — always True.",
"description_hash": "aaf62e79",
"is_external": false
},
"127": {
"confidence": "low",
"reasoning": "'Wenn ein Korrekturgrund anzugeben ist' — whether a correction reason must be specified is a business context condition (e.g., this is a corrected/amended message) that cannot be derived from the EDIFACT message structure alone. It depends on the transaction history and correction workflow context.",
"description_hash": "96c97668",
"is_external": true
},
"133": {
"confidence": "medium",
"reasoning": "Checks that when DTM+7 (Nutzungszeitpunkt, format 303 CCYYMMDDHHMM) and DTM+9 (Ablesedatum, format 102 CCYYMMDD) co-exist in the same SG10 instance, the CCYYMMDD date part of DTM+7 must equal or be at most 1 calendar day different from DTM+9. Uses a Julian Day Number formula for correct cross-month/year date arithmetic. MSCONS SG10 path assumed as SG5.SG6.SG10 based on the tx_group=SG5 and SG6 being the measurement period container; medium confidence due to path uncertainty.",
"description_hash": "021a6403",
"is_external": false
},
"51": {
"confidence": "medium",
"reasoning": "Mutual-exclusion constraint: if 7-0:33.86.0 is present, none of the listed 52/54.x codes may appear. Returns True when constraint is satisfied (i.e. 33.86.0 absent, or 33.86.0 present but excluded codes absent). Returns True when 33.86.0 is not present because the constraint simply does not apply.",
"description_hash": "e5be8c56",
"is_external": false
},
"93": {
"confidence": "high",
"reasoning": "QTY elements[0][0] = DE6063 (Menge, Qualifier). Value 220 is a valid DE6063 code per the segment reference. Checks any SG10 instance (within SG9) for a QTY segment with quantity qualifier 220.",
"description_hash": "ee2291f6",
"is_external": false
},
"17": {
"confidence": "medium",
"reasoning": "Checks absence of PIA+5 with OBIS matching pattern '1-{channel}:9.99.0'. The 'b' is a variable channel, so pattern-matching on prefix '1-' and suffix ':9.99.0' is used. Negated because condition is 'Wenn NICHT'. Medium confidence due to pattern-based matching of OBIS code.",
"description_hash": "3f38229f",
"is_external": false
},
"518": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "066912df",
"is_external": false
},
"78": {
"confidence": "medium",
"reasoning": "PIA+5 means elements[0][0]='5'. DE7140 (OBIS code) is elements[1][0]. EDIFACT '?:' escape sequences are resolved by the parser to literal ':', so '1-66?:13.6.0' becomes '1-66:13.6.0'. Checks any SG9 group instance for PIA+5 with one of the four OBIS codes. Group path SG6->SG9 is approximate based on MSCONS structure.",
"description_hash": "523c39c1",
"is_external": false
},
"62": {
"confidence": "high",
"reasoning": "Same structure as condition 46 but length check is 33 instead of 11. DE3225 at elements[1][0].",
"description_hash": "ff9d24ca",
"is_external": false
},
"922": {
"confidence": "medium",
"reasoning": "Format: TR-ID — validates that the value is a valid Transaktionsreferenz-ID (1–35 alphanumeric characters) using validate_tr_id. In MSCONS, the document/transaction ID is typically found in BGM elements[1][0] (the document number composite). Medium confidence because the exact DE this format condition is applied to depends on the AHB field context, which could alternatively be RFF or another reference segment.",
"description_hash": "589886f8",
"is_external": false
},
"95": {
"confidence": "high",
"reasoning": "QTY in SG10 where DE6063 (elements[0][0]) has value '20'. Group-scoped check within SG10 under SG5.",
"description_hash": "3d081a29",
"is_external": false
},
"100": {
"confidence": "high",
"reasoning": "Group-scoped: within the same SG9 (LIN-initiated) instance, check if PIA+5 has elements[1][0]='AUA'. Uses any_group_has_qualified_value for scoped check. Z08 code list qualifier is implicit for OBIS-keyed PIA segments.",
"description_hash": "7634dcdf",
"is_external": false
},
"522": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "bbf732e5",
"is_external": false
},
"538": {
"confidence": "high",
"reasoning": "Hinweis — informational annotation about when ORDERS reference should be provided. Always applies unconditionally.",
"description_hash": "6d9f3523",
"is_external": false
},
"118": {
"confidence": "high",
"reasoning": "Whether the market participant ID belongs to the gas sector (Sparte Gas) cannot be determined from EDIFACT message content — requires external market participant registry lookup.",
"description_hash": "8cea5aed",
"is_external": true
},
"541": {
"confidence": "high",
"reasoning": "Hinweis — informational annotation describing when a correction reason must be provided (4 scenarios involving provisional/replacement/true values after cancellation). Always applies unconditionally.",
"description_hash": "8938ce21",
"is_external": false
},
"557": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "76877702",
"is_external": false
},
"569": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about using time specification and repeating SG9 LIN for multiple meter readings. Always returns True.",
"description_hash": "a309e008",
"is_external": false
},
"45": {
"confidence": "high",
"reasoning": "PIA+5 qualifier at elements[0][0], OBIS code at elements[1][0]. Channel 'b' is variable so check starts_with('7-') and ends_with(':99.41.16'). The '?:' in AHB notation is the EDIFACT escape for a literal colon, parsed to plain ':' in the segment value.",
"description_hash": "b1d2c349",
"is_external": false
},
"33": {
"confidence": "high",
"reasoning": "The NAD+MR contains the MP-ID of the recipient, but the market participant role (LF = Lieferant) is maintained in an external role registry. The EDIFACT message only carries the ID, not the role assignment.",
"description_hash": "788d0ae2",
"is_external": true
},
"50": {
"confidence": "high",
"reasoning": "Same pattern as condition 49 but for the 70.18.x family of OBIS codes.",
"description_hash": "691ff2a8",
"is_external": false
},
"547": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation restricting use of code 270 to pre-2021 delivery note cancellations. Always applies unconditionally.",
"description_hash": "8f5bac1a",
"is_external": false
},
"906": {
"confidence": "high",
"reasoning": "Format: max. 3 Nachkommastellen means at most 3 decimal places. Uses validate_max_decimal_places(val, 3) on the QTY quantity value.",
"description_hash": "97bdb0c7",
"is_external": false
},
"130": {
"confidence": "low",
"reasoning": "Requires DST-aware datetime arithmetic: compute the minute difference between DTM+7 (Nutzungszeitpunkt, CCYYMMDDHHMM) and DTM+60 or DTM+9 in the same SG10 group instance, then apply different upper limits depending on whether a summer→winter (≤1500 min) or winter→summer (≤1380 min) or no-transition (≤1439 min) boundary is crossed. This requires parsing UTC timestamps, converting to epoch-minutes, and detecting whether a CET/CEST DST transition falls between the two points — none of which is supported by the available helper API. Exceeds current implementation capacity.",
"description_hash": "3d1a59bf",
"is_external": false
},
"49": {
"confidence": "high",
"reasoning": "PIA+5 OBIS codes with variable channel b: check starts_with('7-') plus ends with one of ':70.16.16', ':70.16.20', ':70.16.22'.",
"description_hash": "04885506",
"is_external": false
},
"492": {
"confidence": "high",
"reasoning": "The 'Sparte' (sector: Strom/electricity) of the market participant identified in NAD+MR is not encoded in the EDIFACT message itself. It requires a lookup in an external market participant registry. Marked external.",
"description_hash": "bd78e2d8",
"is_external": true
},
"150": {
"confidence": "high",
"reasoning": "BGM elements[0][0] = DE1001 (Dokumentenname, Code). Checking elements[0][0]==\"Z69\" via has_qualifier covers the Redispatch tägliche Ausfallarbeitsüberführungszeitreihe document type directly.",
"description_hash": "4e5ec8b8",
"is_external": false
},
"67": {
"confidence": "medium",
"reasoning": "Checks whether the current MSCONS transaction references an ORDERS message. While RFF segments can carry cross-message references, the specific qualifier that marks an ORDERS reference is not provided in the segment structure reference, and determining whether a reference points to an ORDERS vs. another message type typically requires external business context about the originating transaction.",
"description_hash": "cc15c10b",
"is_external": true
},
"135": {
"confidence": "medium",
"reasoning": "Condition 135 compares the CCYYMMDD portion of a reading-date DTM against DTM+137 (Nachrichtendatum at message level). The most natural target is DTM+9 (Ablesedatum) in SG10. Both format 303 (CCYYMMDDhhmm+ZZ) and format 102 (CCYYMMDD) start with CCYYMMDD, so taking the first 8 characters works for both. DTM+137 uses format 303 so likewise the first 8 chars give the date. Lexicographic comparison of zero-padded CCYYMMDD strings is equivalent to numeric date comparison. Medium confidence because the condition description does not explicitly state which DTM qualifier it applies to; DTM+9 is the strongest candidate in the MSCONS SG10 context.",
"description_hash": "38c14908",
"is_external": false
},
"121": {
"confidence": "high",
"reasoning": "BGM with DE1001 (elements[0][0]) = 'Z43' (Redispatch Ausfallarbeitüberführungszeitreihe). Simple presence check.",
"description_hash": "78a9d047",
"is_external": false
},
"530": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation documenting the origin of a value from a referenced UTILMD message. Always returns True.",
"description_hash": "9a5af08c",
"is_external": false
},
"94": {
"confidence": "high",
"reasoning": "QTY elements[0][0] = DE6063 (Menge, Qualifier). Value 201 is a valid DE6063 code per the segment reference. Checks any SG10 instance (within SG9) for a QTY segment with quantity qualifier 201.",
"description_hash": "1822aaa1",
"is_external": false
},
"493": {
"confidence": "high",
"reasoning": "The 'Sparte' (sector: Gas) of the market participant identified in NAD+MR is not encoded in the EDIFACT message itself. It requires a lookup in an external market participant registry. Marked external.",
"description_hash": "75612dee",
"is_external": true
},
"509": {
"confidence": "high",
"reasoning": "Starts with 'Hinweis:' — informational annotation explaining that for correction energy quantities (Korrekturenergiemenge), the RFF should reference the prior MSCONS. Not a boolean predicate. Always returns True.",
"description_hash": "54ab1790",
"is_external": false
},
"908": {
"confidence": "high",
"reasoning": "Format: Mögliche Werte: 1 bis n means value must be >= 1 (positive integer starting from 1). Uses validate_numeric(val, \">=\", 1.0) on the QTY quantity value.",
"description_hash": "f0e2a917",
"is_external": false
},
"69": {
"confidence": "high",
"reasoning": "BGM document name code (DE1001) is at elements[0][0]. Check equals 'Z28'.",
"description_hash": "33002768",
"is_external": false
},
"96": {
"confidence": "high",
"reasoning": "QTY in SG10 where DE6063 (elements[0][0]) has value 'Z18'. Group-scoped check within SG10 under SG5.",
"description_hash": "f779e1f8",
"is_external": false
},
"113": {
"confidence": "high",
"reasoning": "RFF in SG7 with qualifier 'AGK' (Konfigurations-ID). Simple presence check using has_qualifier.",
"description_hash": "c2cbe5b6",
"is_external": false
},
"567": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about providing the configuration ID from the previous master data exchange. Always returns True.",
"description_hash": "ed34da0d",
"is_external": false
},
"28": {
"confidence": "high",
"reasoning": "Negation of condition 27. True when no PIA+5 segment has OBIS code '1-1:1.9.0' (Wirkenergie Bezug Tarif 1).",
"description_hash": "9853588f",
"is_external": false
},
"514": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Marktlokation ID. Always applies unconditionally.",
"description_hash": "9727b89c",
"is_external": false
},
"551": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation listing the four scenarios requiring a correction reason. Always applies unconditionally.",
"description_hash": "6bc8854b",
"is_external": false
},
"905": {
"confidence": "high",
"reasoning": "Format: max. 3 Stellen means at most 3 integer digits. Uses validate_max_integer_digits(val, 3) on the QTY value (elements[0][1] is the quantity value in QTY+qualifier:value:unit).",
"description_hash": "09d7c5d2",
"is_external": false
},
"918": {
"confidence": "medium",
"reasoning": "UNOC charset requires uppercase-only alphabetics. Checks all alphabetic characters in FTX text fields (C108, elements[3], components 0..4) are uppercase. Non-alphabetic characters (digits, punctuation) are permitted. Medium confidence — UNOC validation approximated as uppercase-only alphabetic check without full ISO 8859-1 codepoint enumeration.",
"description_hash": "96bd031d",
"is_external": false
},
"146": {
"confidence": "medium",
"reasoning": "A point-in-time value (Wert zu einem Zeitpunkt) is signalled by the presence of DTM+7 (Nutzungszeitpunkt) in SG10. If this DTM qualifier is present, the transmitted value represents a single point in time rather than an interval.",
"description_hash": "7dbaa429",
"is_external": false
},
"940": {
"confidence": "high",
"reasoning": "Format: string must start with + followed only by digits — this is a phone number format check on COM segment.",
"description_hash": "de8363bc",
"is_external": false
},
"88": {
"confidence": "medium",
"reasoning": "Mirror of condition 87 but for DTM+164 (Ende Messperiode) — checks that the SG6 transmission period end equals the maximum DTM+164 across all SG10 measurement instances under that SG6. Same navigation caveat applies for two-level SG9→SG10 child traversal.",
"description_hash": "875ca9dd",
"is_external": false
},
"101": {
"confidence": "high",
"reasoning": "Group-scoped: within the same SG9 (LIN-initiated) instance, check if PIA+5 has elements[1][0]='FPA'. Uses any_group_has_qualified_value for scoped check.",
"description_hash": "d3cce64a",
"is_external": false
},
"11": {
"confidence": "high",
"reasoning": "Checks PIA segments with qualifier 5 (elements[0]='5') for OBIS codes at elements[1][0] (DE7140). The EDIFACT '?' is an escape character, so '7-0?:52.0.22' means literal '7-0:52.0.22'. Checks all four listed OBIS codes.",
"description_hash": "bf62cd47",
"is_external": false
},
"147": {
"confidence": "medium",
"reasoning": "Checks absence of DTM+7 (Nutzungszeitpunkt) in the message, approximating the SG10-scoped check within the enclosing LIN group. Absence means the value is not a point-in-time value.",
"description_hash": "46b19683",
"is_external": false
},
"950": {
"confidence": "high",
"reasoning": "Format: Marktlokations-ID — 11-digit ID with Luhn check digit, extracted from LOC+Z16 element 1.",
"description_hash": "a9ddfaec",
"is_external": false
},
"111": {
"confidence": "high",
"reasoning": "DTM+9 (Ablesedatum) in SG10 where DE2379 (elements[0][2]) equals '303' (format code CCYYMMDDHHMM). The same-segment check verifies both qualifier and format code are present together.",
"description_hash": "b788e592",
"is_external": false
},
"79": {
"confidence": "medium",
"reasoning": "Logical negation of condition 78. True when none of the specified OBIS codes appears in any SG9 PIA+5 segment.",
"description_hash": "21cb9460",
"is_external": false
},
"909": {
"confidence": "high",
"reasoning": "Format: Mögliche Werte: 0 bis n means value must be >= 0 (non-negative). Uses validate_numeric(val, \">=\", 0.0) on the QTY quantity value.",
"description_hash": "263e3a0f",
"is_external": false
},
"98": {
"confidence": "high",
"reasoning": "PIA in SG9 where elements[0][0]='5' (qualifier), elements[1][0]='SOL' (OBIS code for solar), elements[1][1]='Z08' (code list). Checked message-wide as condition is not group-scoped.",
"description_hash": "dab9df94",
"is_external": false
},
"36": {
"confidence": "high",
"reasoning": "Checks if the message recipient (NAD+MR) holds the market role NB (Netzbetreiber). This cannot be determined from the EDIFACT message itself — the MP-ID in NAD+MR must be looked up in an external market participant registry to determine their role.",
"description_hash": "5a6a3c9f",
"is_external": true
},
"570": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "2ecc91e0",
"is_external": false
},
"48": {
"confidence": "high",
"reasoning": "PIA+5 with exact OBIS code 7-0:52.0.22 (channel fixed at 0). '?:' in AHB is EDIFACT escape for ':', yielding plain '7-0:52.0.22' in the parsed value.",
"description_hash": "5b4b89b6",
"is_external": false
},
"510": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Messlokation ID. Always applies unconditionally.",
"description_hash": "d7954b75",
"is_external": false
},
"516": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "47a49865",
"is_external": false
},
"515": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "c5f0ea1e",
"is_external": false
},
"511": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of MaBiS-ZP ID. Always applies unconditionally.",
"description_hash": "249fdf5f",
"is_external": false
},
"501": {
"confidence": "high",
"reasoning": "Starts with 'Hinweis:' — informational annotation about valid OBIS code values per EDI@Energy code list. Not a boolean predicate. Always returns True.",
"description_hash": "d08e8bcd",
"is_external": false
},
"38": {
"confidence": "high",
"reasoning": "Checks if LOC+172 (Identifikationsangabe, qualifier at elements[0]) exists and has a non-empty DE3225 value at elements[1][0] (C517 Ortsangabe). Qualifier 172 identifies Messlokation (metering location) in MSCONS SG6.",
"description_hash": "ad789259",
"is_external": false
},
"560": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation describing when a correction reason must be provided. Always returns True.",
"description_hash": "6bc8854b",
"is_external": false
},
"566": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about allowed values from previous master data exchange. Always returns True.",
"description_hash": "7eb0314b",
"is_external": false
},
"571": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "23c12272",
"is_external": false
},
"573": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "273bf57f",
"is_external": false
},
"907": {
"confidence": "high",
"reasoning": "Format: max. 4 Nachkommastellen means at most 4 decimal places. Uses validate_max_decimal_places(val, 4) on the QTY quantity value.",
"description_hash": "cb9ee7ba",
"is_external": false
},
"519": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "3434e2e6",
"is_external": false
},
"544": {
"confidence": "high",
"reasoning": "Hinweis — informational annotation about quantity splitting requirements for SG6 LOC+172 and meter readings per OBIS code. Always applies unconditionally.",
"description_hash": "9b5e1be5",
"is_external": false
},
"535": {
"confidence": "high",
"reasoning": "Hinweis — informational annotation about usage of network coupling point ID. Always applies unconditionally.",
"description_hash": "54ec09e1",
"is_external": false
},
"939": {
"confidence": "high",
"reasoning": "Format: string must contain @ and . characters — this is an email format check on COM segment.",
"description_hash": "05a09b9a",
"is_external": false
},
"141": {
"confidence": "high",
"reasoning": "Whether the MP-ID carried in SG2 NAD+MR holds the role of MGV (Marktgebietsverantwortlicher) cannot be determined from the EDIFACT message alone — it requires a market participant role registry lookup. Marked as external.",
"description_hash": "9071b503",
"is_external": true
},
"495": {
"confidence": "medium",
"reasoning": "'Der Zeitpunkt muss ≤ dem Wert im DE2380 des DTM+137 sein' — the timestamp must be ≤ DTM+137's DE2380 value. The reference segment is explicitly DTM+137 (elements[0][0]=137, value at elements[0][1]). Implemented by extracting DTM+137's value and comparing the target timestamp (DTM+163 as the most likely MSCONS candidate for this constraint) using lexicographic string ordering, which is valid for CCYYMMDDHHMM format 303 strings. Medium confidence because the specific source DE this condition is attached to in the AHB is ambiguous without the full AHB table.",
"description_hash": "15943b5e",
"is_external": false
},
"931": {
"confidence": "high",
"reasoning": "Format condition: ZZZ = +00 means the timezone portion of the DTM value must be UTC (+00). Uses validate_timezone_utc helper.",
"description_hash": "825c510c",
"is_external": false
},
"2002": {
"confidence": "high",
"reasoning": "Cardinality annotation stating the segment group appears up to three times per SG5 NAD+DP instance. This is an informational structural constraint describing allowed multiplicity, not a boolean predicate. Treated as Hinweis — always True.",
"description_hash": "b088d731",
"is_external": false
},
"951": {
"confidence": "medium",
"reasoning": "Format: Zählpunktbezeichnung — 33 alphanumeric characters. In MSCONS, Zählpunktbezeichnung typically appears in LOC+Z19. Using validate_zahlpunkt helper.",
"description_hash": "f35fc481",
"is_external": false
}
}
}