# Plan — SV-Werte-Implementierung (AP4) auf Basis TASY-LSWH-Export **Status:** Plan zur Freigabe (AGENTS.md-Workflow). Ergänzt den freigegebenen `IMPLEMENTIERUNGSPLAN-Bgld.md` (AP4/AP8) um den TASY-gestützten Wertelayer. - **Stand:** 2026-09-09 · Branch `dev-payroll` - **Quelle:** `personalverrechnung/TASY-LSWH-Export-20260324.xml` (ÖGK-Tarifsystem-Export, Gültigkeitstichtag 2026-07-01, 5 MB) ## 1. Befunde aus der Datei (verifiziert) | Aspekt | Befund | |---|---| | Aufbau | `tarife` (356) mit DN/DG-Anteil je `tarifZweig` + Gültigkeit; `tarifsets`/`tarifgruppen`/`tarifgruppeSetZuordnungen` als Zuordnungskette zu `beschaeftigtengruppen` (B-Codes, 408); `beitragbemessungsbetraege` (158 Codes) mit `bbbwerten` (612, **Cent-Werte** je von/bis) | | Zweige | KV, PV, AV, UV, **IE (Insolvenz/IESG)**, DG (SV-Dienstgeberbeitrag), AK, WF, BV, LK, SW, … | | Verifizierte 2026er Werte | Geringfügigkeitsgrenze **551,10 €** (`GFGBTG`), HBG SZ **13.860 €** (`HBGSZ`), KV-Split **3,87/3,78**, AV **2,95/2,95**, PV-DG **12,55** — deckungsgleich mit dem offiziellen SV-Werte-Report 2026 ✓ | | Raten-Auflösung | Am Stichtag gelten je Zweig 21–67 Tarif-Varianten (Sondergruppen, §-2a-AMPFG-Staffelanteile, freie DN …). Der **Standard-Angestelltensatz** muss über `beschaeftigtengruppe` (z. B. „Angestellte") → `tarifgruppeSetZuordnung` → `tarifset` → `tarife` aufgelöst werden | | Nicht enthalten | Öffentlicher FLAF-DB (§ 49a Abs 8/9 — null Treffer), Lohnsteuer, Kommunalsteuer → bleiben separate, RIS/usg-basierte Parameter (AP0) | | Offene Detailpunkte | HBG monatlich = `HBGALLG` (tgl.) × 30 oder eigener bbbwert; exakte Abbildung der §-2a-AMPFG-Staffel über Tarif-Varianten (Grenzwerte werden zusätzlich gegen den SV-Werte-Report gespiegelt) | ## 2. Zielbild Zwei Schichten — **kein Eigenbau-Speicher**, die Engine-Mechanik bleibt alleiniger Wertespeicher: 1. **Seed 2026** (`data/rule_parameters_2026.xml`): `hr.rule.parameter` + `hr.rule.parameter.value` (date_from = Stichtag) aus DIESEM Export, einmalig per Generator-Script generiert und gegen den SV-Werte-Report 2026 gespiegelt (Herkunftsnachweis wie beim GemBG-Katalog). 2. **TASY-Import-Wizard** (`gemeinde.payroll.tasy.import.wizard`, TransientModel) für die Jahrespflege (AP8): - Upload des jährlichen Exports (ir.attachment), sicheres Parsen (lxml, resolve_entities=False); - Auflösung am `gueltigkeitstichtag`: bbwerte der Mapping-Codes (Cent→€) + Standard-Raten über die Gruppenkette; fehlende/ mehrdeutige Auflösungen landen zur manuellen Klärung im Preview; - **Preview-Differenz** (Parameter, alter Wert, neuer Wert, Stichtag, Plausibilitätsprüfung ±10 % Sprungwarnung); - Bestätigung schreibt `hr.rule.parameter.value` (date_from = Stichtag; historische Werte bleiben versioniert), Protokoll. 3. **Mapping-Tabelle** `gemeinde.payroll.tasy.mapping` (TASY-Code/Zweig → rule-parameter-code) als data XML — transparent, ohne feste Werte im Code, erweiterbar (z. B. BVAEB-Export später). Regeln (AP2/AP4) konsumieren ausschließlich `payslip._rule_parameter('at_sv_kv_dn')` usw. — keine Literale (payroll-Skill-Architekturregel). ## 3. Parameter-Katalog (Seed 2026) | hr.rule.parameter | Wert 2026 | TASY-Quelle | |---|---|---| | `at_sv_gfg_monatlich` | 551.10 | GFGBTG | | `at_sv_hbg_monatlich` | 6.930,00 | HBGALLG (tgl. 231,00 × 30; Auflösung klären) | | `at_sv_hbg_sz_jaehrlich` | 13.860,00 | HBGSZ | | `at_sv_kv_dn` / `at_sv_kv_dg` | 3.87 / 3.78 | Tarif KV (Standard-Angestellte) | | `at_sv_pv_dn` / `at_sv_pv_dg` | 10.25 / 12.55 | Tarif PV | | `at_sv_av_dn` / `at_sv_av_dg` | 2.95 / 2.95 | Tarif AV | | `at_sv_uv_dg` | 1.10 | Tarif UV | | `at_sv_iesg_dg` | 0.10 | Tarif IE | | `at_sv_bv_dg` | 1.53 | Tarif BV | | `at_sv_ak_dn` / `at_sv_wf_…` | (geführt; für GemBG nicht anwendbar — Datenbasis vollständig, Anwendungslogik entscheidet) | AK/WF | | `at_sv_av_staffel_ampfg` | Grenzen 2.225/2.427/2.630 + Anteile 0/1/2 % | SV-Report + TASY-Kreuzcheck | **Getrennt gepflegt (nicht TASY):** `at_flaf_db_oeffentlich` (§ 49a Abs 8/9 — AP0/RIS), Lohnsteuer-Parameter (usp/RIS). ## 4. Umfang / Dateien ``` l10n_at_gemeinde_payroll/ models/tasy.py # gemeinde.payroll.tasy.mapping + import-wizard data/rule_parameters_2026.xml # Seed (generator-erzeugt) data/tasy_mapping.xml wizard/… (transient im models-File oder wizard/ je nach Konvention) views/tasy_views.xml # Mapping-View + Wizard-Form security/ir.model.access.csv (Ergänzung) tests/test_tasy_import.py # Parser-/Resolutions-Tests (kleines Fixture) personalverrechnung/tools/gen_sv_parameters_2026.py # Herkunftsnachweis ``` Die 5-MB-Exportdatei: **Vorschlag** unter `personalverrechnung/quellen/TASY-LSWH-Export-20260324.xml` committen (öffentliches Tarifdatenmaterial, keine Personendaten) — oder unversioniert lassen, wenn du das Repo klein halten willst (bitte entscheiden). ## 5. Tests (Rechenfälle) 1. Parser: Fixture-Slice (handgebaut, gleiche Struktur) → bbwerte Cent→€, Stichtagsfilterung, fehlende Werte → Preview-Fehler. 2. Auflösung: Standard-Raten für „Angestellte" (KV 3.87/3.78 …) aus der **echten Exportdatei** (Test liest sie aus dem Repo, wenn committet; sonst aus dem Fixture mit den verifizierten Werten). 3. Seed-Spiegelung: `at_sv_kv_dn` == 3.87 usw. gegen SV-Werte-Report (gleiche Anker wie RECHTSQUELLEN Abschnitt 4). 4. Wizard: neuer Stichtag → neue `hr.rule.parameter.value`, alte Version bleibt; Sprungwarnung bei >10 % Abweichung. 5. HBG-Rechnung tgl. × 30 gegen monatlich (je nach Auflösungsvariante). ## 6. Risiken / offene Fragen 1. Auflösungstiefe der Tarif-Varianten (Standardgruppe vs. Sonderfälle) — im Wizard als Preview-Schritt sichtbar, mehrdeutige Sätze werden nie automatisch übernommen. 2. HBG monatlich (×30-Konvention vs. eigener bbbwert) — Klärung in der Implementierung mit Quellenabgleich. 3. TASY liefert ÖGK-Werte; BVAEB-Angelegenheiten (falls je benötigt) folgen über dasselbe Mapping-Modell als eigener Import. 4. FLAF-DB öffentlich bleibt AP0 (RIS) — bewusst außerhalb TASY. 5. Verbindlichkeit: Wizard schreibt erst nach expliziter Bestätigung (kein stiller Jahresüberschreib). ## 7. Freigabe-Antrag Mit Freigabe: (a) TASY-Datei committen ja/nein (Abschnitt 4), (b) Seed 2026 generieren + `rule_parameters_2026.xml`, (c) Mapping-Modell + Import-Wizard, (d) Tests; Gesamtaufwand ~6–9 PT (in AP4/AP8-Kalkulation enthalten — ersetzt die dort angesetzte manuelle Wertepflege zum Großteil).