[ADD] personalverrechnung: Lexis360 knowledge base (Batch 3)
Third Lexis 360 intake (44 briefings, source Stands 2025-06 to 2026-08), extending the corpus to 151 curated entries in 19 clusters. All batch-3 topics sit in the 'Entgelt: Anspruch & Abrechnung' chapter - this is the most payroll-core batch so far (SZ tariff mechanics, surcharges, commuter allowances, travel expenses, BMSVG). - 6 new clusters: reisekosten (9), pendlerforderung (9), vorsorgeleistungen (11), zuschlage (8), sonderzahlungen (4), geschenke (2); plus lb-ent-11 (Ausbildungskosten-Rueckerstattung) appended to the entgelt cluster - two URL-encoded export filenames (%c3%9f = sharp-s) normalized before intake - cross-batch reconciliation: lb-prm-04's dangling reference to 'Sonderzahlungen - Steuer' resolved against the new lb-son-04 (and lb-son-03 for the SV side); cross_refs updated - curated entries cross-checked against the verified legal inventory (RECHTSQUELLEN-Privat.md): 67-EStG staffel, 68-EStG free limits, BMSVG core values confirmed; deviations flagged, notably the 124b-Ueberstundenmassnahme 2026 citation in lb-zus-07 - the briefing cites 'Z 440 lit c'/'BGBl I 4/2026' while the verified text is Z 476 lit c idgF BGBl I 43/2026 (Aufrollung bis 30. 9. 2026), and lb-ent-01's blanket 120 EUR for 68 Abs 2 (verified: 170 EUR 2026) - further flagged points: lb-pen-09 table value 3,672 EUR (likely print error, arithmetic 2,448), PendlerVO-vs-BMF-FAQ divergence (lb-pen-01), 183-day rule Finanz vs UFS (rei), teleworker trips Finanz vs BFG/VwGH (lb-rei-07), SV status of staff participation foundations (lb-vor-01), customer gifts without SV value limit (lb-ges-02) - batch-4 candidates updated in the RUNBOOK (Abfertigung Alt, Corona-Kurzarbeit u. a.); README cluster table extended to batches 1-3 Validated: --registry 151 entries/19 clusters, --check 0 problems, structural scan over all 151 curated docs, py_compile.
This commit is contained in:
@@ -49,7 +49,7 @@ CURATED_DIR = ROOT / "personalverrechnung" / "wissensbasis" / "dokumente"
|
||||
KB_JSON = CURATED_DIR.parent / "kb.json"
|
||||
|
||||
WORK = "Lexis Briefings Personalrecht"
|
||||
BATCH = 2
|
||||
BATCH = 3
|
||||
|
||||
MONTHS = {
|
||||
"jänner": 1, "januar": 1, "februar": 2, "märz": 3, "april": 4,
|
||||
@@ -90,6 +90,14 @@ TOPIC_MAP: dict[str, str] = {
|
||||
"sachbezuge-freiwillige-sozialleistungen": "sac",
|
||||
"diverse-pramien": "prm",
|
||||
"provisionen": "prm",
|
||||
# batch 3
|
||||
"dienstreise-reisekosten": "rei",
|
||||
"ruckerstattung-ausbildungskosten": "ent",
|
||||
"vorsorgeleistungen": "vor",
|
||||
"sonderzahlungen": "son",
|
||||
"zulagen-und-zuschlage": "zus",
|
||||
"pendlerforderung": "pen",
|
||||
"sachzuwendungen-geschenke": "ges",
|
||||
}
|
||||
|
||||
# Fallback keyword scan over the ASCII topic + slug, checked after the
|
||||
@@ -121,6 +129,21 @@ KEYWORDS: list[tuple[str, str]] = [
|
||||
("provision", "prm"),
|
||||
("drittlohn", "ent"),
|
||||
("entgelt", "ent"),
|
||||
# batch 3 fallback keywords
|
||||
("dienstreise", "rei"),
|
||||
("reisekosten", "rei"),
|
||||
("taggeld", "rei"),
|
||||
("nachtigung", "rei"),
|
||||
("pendler", "pen"),
|
||||
("sonderzahlung", "son"),
|
||||
("zuschlag", "zus"),
|
||||
("zulage", "zus"),
|
||||
("vorsorge", "vor"),
|
||||
("bmsvg", "vor"),
|
||||
("mitarbeiterbeteiligung", "vor"),
|
||||
("betriebspension", "vor"),
|
||||
("geschenk", "ges"),
|
||||
("ausbildungskosten", "ent"),
|
||||
]
|
||||
|
||||
# Cluster registry: ID prefix -> display name (kb.json, INDEX).
|
||||
@@ -139,6 +162,13 @@ CLUSTERS: dict[str, str] = {
|
||||
"prm": "Prämien & Provisionen",
|
||||
"sac": "Sachbezüge & freiwillige Sozialleistungen",
|
||||
"vst": "Vorstandsmitglieder (Vorstand)",
|
||||
# batch 3
|
||||
"rei": "Dienstreise & Reisekosten",
|
||||
"vor": "Vorsorgeleistungen (BMSVG, Betriebspension, Beteiligung)",
|
||||
"son": "Sonderzahlungen",
|
||||
"zus": "Zulagen und Zuschläge",
|
||||
"pen": "Pendlerförderung",
|
||||
"ges": "Sachzuwendungen & Geschenke",
|
||||
}
|
||||
|
||||
# Frontmatter `topic` values (descriptive ASCII slugs, per approved D2
|
||||
@@ -159,6 +189,13 @@ TOPIC_TO_PREFIX: dict[str, str] = {
|
||||
"pramien": "prm",
|
||||
"sachbezuge": "sac",
|
||||
"vorstand": "vst",
|
||||
# batch 3
|
||||
"reisekosten": "rei",
|
||||
"vorsorgeleistungen": "vor",
|
||||
"sonderzahlungen": "son",
|
||||
"zuschlage": "zus",
|
||||
"pendlerforderung": "pen",
|
||||
"geschenke": "ges",
|
||||
}
|
||||
|
||||
HEADER_RE = re.compile(r"^\s*Lexis 360®\s*$")
|
||||
|
||||
Reference in New Issue
Block a user