{
"generated_at": "2026-03-12T11:36:06Z",
"ahb_file": "MSCONS_AHB_3_1g_20251001.xml",
"format_version": "FV2604",
"conditions": {
"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
},
"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
},
"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
},
"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
},
"554": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "135f179c",
"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
},
"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
},
"153": {
"confidence": "high",
"reasoning": "PIA segment structure from MIG: elements[0]=DE4347 qualifier, elements[1]=C212 with [1][0]=DE7140 (OBIS-Kennzahl). The EDIFACT notation '7-0?:33.86.0' uses '?' as escape character so the parsed value is '7-0:33.86.0'. Check both qualifier '5' and OBIS value using has_segment_matching_in_group scoped to SG9.",
"description_hash": "2ac8b35f",
"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
},
"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
},
"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
},
"551": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation listing the four scenarios requiring a correction reason. Always applies unconditionally.",
"description_hash": "6bc8854b",
"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
},
"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
},
"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
},
"113": {
"confidence": "high",
"reasoning": "RFF in SG7 with qualifier 'AGK' (Konfigurations-ID). Simple presence check using has_qualifier.",
"description_hash": "c2cbe5b6",
"is_external": false
},
"512": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Bilanzkreisbezeichnung. Always applies unconditionally.",
"description_hash": "b84f32fc",
"is_external": false
},
"514": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Marktlokation ID. Always applies unconditionally.",
"description_hash": "9727b89c",
"is_external": false
},
"515": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "c5f0ea1e",
"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
},
"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
},
"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
},
"570": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "2ecc91e0",
"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
},
"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
},
"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
},
"518": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "066912df",
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"151": {
"confidence": "high",
"reasoning": "BGM+Z27 means the BGM segment's first element (C002.DE1001, elements[0][0]) equals \"Z27\" (Bewegungsdaten im Kalenderjahr vor Lieferbeginn). has_qualifier checks exactly this.",
"description_hash": "6250ba4c",
"is_external": false
},
"529": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation documenting the origin of a value. Always returns True.",
"description_hash": "c4771722",
"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
},
"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
},
"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
},
"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
},
"69": {
"confidence": "high",
"reasoning": "BGM document name code (DE1001) is at elements[0][0]. Check equals 'Z28'.",
"description_hash": "33002768",
"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
},
"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
},
"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
},
"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
},
"24": {
"confidence": "medium",
"reasoning": "\"Bei Aufteilung\" = UNH S010 is present (splitting indicator exists). \"höchste Übermittlungsnummer\" = the last message in the sequence, identified by DE0073 (elements[3][1]) == \"F\" (final). For non-split messages S010 is absent → False. Confidence medium because EDIFACT S010 usage in MSCONS may vary.",
"description_hash": "9a0eeef0",
"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
},
"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
},
"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
},
"579": {
"confidence": "high",
"reasoning": "Starts with 'Hinweis:' — informational annotation describing monthly power price system (Monatsleistungspreissystem) metering value transmission. Not a boolean predicate, always True.",
"description_hash": "feb0bf7f",
"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
},
"538": {
"confidence": "high",
"reasoning": "Hinweis — informational annotation about when ORDERS reference should be provided. Always applies unconditionally.",
"description_hash": "6d9f3523",
"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
},
"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
},
"126": {
"confidence": "high",
"reasoning": "Whether Plausibilisierungshinweise (plausibility notes) are present is external business context — it depends on upstream validation results, not on EDIFACT message content.",
"description_hash": "173ffade",
"is_external": true
},
"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
},
"520": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "0db225b9",
"is_external": false
},
"523": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "8b288973",
"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
},
"154": {
"confidence": "high",
"reasoning": "Identical pattern to condition 153 but with OBIS-Kennzahl '7-0:33.47.0'. The '?' escape in EDIFACT notation resolves to a literal colon in the parsed value.",
"description_hash": "19bfcd85",
"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
},
"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
},
"573": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "273bf57f",
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"524": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "8474b9a6",
"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
},
"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
},
"525": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "fccafa3d",
"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
},
"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
},
"23": {
"confidence": "high",
"reasoning": "Check UNH S010 (elements[3]) component DE0070 (elements[3][0]) == \"1\". Sequence number 1 means this is the first message in a split group. If S010 is absent, no splitting is in use and the condition is False.",
"description_hash": "1dbb706e",
"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
},
"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
},
"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
},
"558": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "e39113dd",
"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
},
"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
},
"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
},
"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
},
"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
},
"511": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of MaBiS-ZP ID. Always applies unconditionally.",
"description_hash": "249fdf5f",
"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
},
"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
},
"556": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "eb0a6c9d",
"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
},
"580": {
"confidence": "high",
"reasoning": "Starts with 'Hinweis:' — informational annotation describing daily power price system (Tagesleistungspreissystem) metering value transmission. Not a boolean predicate, always True.",
"description_hash": "60836c63",
"is_external": false
},
"581": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing when monthly maximum according to WiM is transmitted. Always returns True.",
"description_hash": "565b4580",
"is_external": false
},
"127": {
"confidence": "high",
"reasoning": "Whether a Korrekturgrund (correction reason) is required is external business context — it depends on whether the message represents a correction/cancellation scenario, which cannot be determined solely from EDIFACT segment content.",
"description_hash": "96c97668",
"is_external": true
},
"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
},
"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
},
"574": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation describing the origin of a field value, always applies unconditionally.",
"description_hash": "6830acc6",
"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
},
"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
},
"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
},
"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
},
"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
},
"519": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "3434e2e6",
"is_external": false
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"152": {
"confidence": "high",
"reasoning": "BGM+7 means the BGM segment's first element (C002.DE1001, elements[0][0]) equals \"7\" (Prozessdatenbericht). has_qualifier checks exactly this.",
"description_hash": "7a851e7c",
"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
},
"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
},
"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
},
"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
},
"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
},
"578": {
"confidence": "high",
"reasoning": "Starts with 'Hinweis:' — informational annotation describing when annual power price system (Jahresleistungspreissystem) metering values are transmitted. Not a boolean predicate, always True.",
"description_hash": "3a8d5b16",
"is_external": false
},
"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
},
"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
},
"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
},
"526": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "8b2596fc",
"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
},
"535": {
"confidence": "high",
"reasoning": "Hinweis — informational annotation about usage of network coupling point ID. Always applies unconditionally.",
"description_hash": "54ec09e1",
"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
},
"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
},
"575": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about using the Netzlokation ID. Always returns True unconditionally.",
"description_hash": "9592f83e",
"is_external": false
},
"557": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always returns True.",
"description_hash": "76877702",
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"81": {
"confidence": "high",
"reasoning": "Whether NAD+MS belongs to the role ÜNB (Übertragungsnetzbetreiber) cannot be determined from the EDIFACT message alone — the MP-ID in elements[1][0] is present, but its role assignment is external business context.",
"description_hash": "0a4f0609",
"is_external": true
},
"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
},
"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
},
"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
},
"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
},
"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
},
"516": {
"confidence": "high",
"reasoning": "Hinweis informational note — always returns True unconditionally.",
"description_hash": "47a49865",
"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
},
"513": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Bilanzierungsgebiet designation. Always applies unconditionally.",
"description_hash": "701e36c8",
"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
},
"576": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation about cardinality of DE3148. Always returns True unconditionally.",
"description_hash": "b7cc061b",
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"130": {
"confidence": "medium",
"reasoning": "Iterates each SG10 instance (child of SG6 in SG5). For each SG10 containing DTM+7, checks co-located DTM+60 or DTM+9. Parses CCYYMMDDHHMM via Julian Day Number to total minutes, computes absolute difference, then selects threshold based on DST transition: MEZ→MESZ (winter→summer) = 23h, MESZ→MEZ (summer→winter) = 25h, no transition = 24h. Uses is_mesz_utc on the earlier and later timestamps to detect the transition direction. Group path SG5→SG6→SG10 assumed from MSCONS structure; medium confidence because SG path and S010 semantics need verification.",
"description_hash": "3d1a59bf",
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"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
},
"571": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "23c12272",
"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
},
"572": {
"confidence": "high",
"reasoning": "Hinweis condition — informational annotation, always applies unconditionally.",
"description_hash": "3de4e710",
"is_external": false
},
"510": {
"confidence": "high",
"reasoning": "Hinweis: informational annotation describing usage of Messlokation ID. Always applies unconditionally.",
"description_hash": "d7954b75",
"is_external": false
},
"522": {
"confidence": "high",
"reasoning": "Informational note — always applies unconditionally.",
"description_hash": "bbf732e5",
"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
}
}
}