Browser-Tool zur Optimierung der Abfindungs-Steuerstrategie nach deutschem Recht (Veranlagungszeitraum 2026).
浏览器工具,按 2026 年德国税法优化 Abfindung(遣散费)方案。
DE Deutsch · CN 中文 · 📁 Entwicklungsdoku / 开发文档
Live demo / 在线版本: https://rebula001.github.io/AbfindungsPilot/
Hinweis / 提示: Kein Support, keine externen Pull Requests. / 不提供支持,不接受外部 PR。
Das deutsche Steuerrecht ist für Normalbürger eine Black Box. Beim Unterzeichnen eines Aufhebungsvertrags mit Abfindung stehen zwei zentrale Entscheidungen an, die das Familien-Netto über zwei Steuerjahre um mehrere Tausend Euro verschieben können:
- "In welchem Jahr soll die Abfindung ausgezahlt werden?" Noch im laufenden Jahr oder Verschiebung auf das Folgejahr - der entscheidende Hebel ist die Fünftelregelung (§ 34 EStG), die nur bei niedrigem übrigen zvE im Auszahlungsjahr ihre volle Wirkung entfaltet.
- "Wann und mit welchem Monatsbrutto in den neuen Job einsteigen?" Wenn der neue Vertrag noch verhandelt wird, ist das Zusammenspiel aus ALG-I-Bezug, Progressionsvorbehalt (§ 32b EStG), SV-Beiträgen und dem Wegfall des Fünftel-Effekts intuitiv kaum zu durchschauen.
Abfindungspilot rechnet alle relevanten Kombinationen über zwei Steuerjahre in Echtzeit durch und visualisiert sie - anstatt den Nutzer raten zu lassen.
Die fachlichen Steuerannahmen sind nicht im README definiert. Maßgeblich sind die Entwicklungsdokumente 03 - Berechnungs-Engine und 09 - Abschlussaudit Berechnungslogik.
- Drei-Spalten-Layout: Eingabe (PrimeVue Forms + Projektvalidierung) - Tabellen-Vergleich - Diagramm (Chart.js)
- Single- und Familien-Modus mit Wahl zwischen Einzel- (§ 26a EStG) und Zusammenveranlagung (§ 26b EStG, Splittingtarif)
- Steuer- und Sozialversicherungsmodell für 2026 gemäß Berechnungs-Engine-Dokumentation, u. a. Fünftelregelung, Progressionsvorbehalt, Splittingtarif, KFB/Kindergeld, Soli, Kirchensteuer und KV/PV/RV/ALV
- Persistenz: localStorage-Snapshot mit 3 h TTL
- Zweisprachig: Deutsch (Default) + Chinesisch
| Schicht | Wahl |
|---|---|
| Framework | Vue 3.5 + <script setup> Composition API |
| Sprache | TypeScript 6 (strict) |
| Build | Vite 8 |
| UI | PrimeVue 4 (Aura Theme, violet) + Tailwind CSS 4 |
| Forms | @primevue/forms + projektspezifische Validierung |
| i18n | vue-i18n 11 (DE / ZH) |
| Chart | Chart.js 4 |
| Quality | ESLint 10 + Prettier 3 + Vitest Coverage + SonarCloud |
| CI/CD | GitHub Actions + GitHub Pages |
cd frontend
npm install
npm run dev # http://localhost:5173| Befehl | Wirkung |
|---|---|
npm run dev |
Vite Dev-Server |
npm run build |
Strikt: lint + format + i18n + TypeScript + Production-Build |
npm run build:fast |
Schnell: TypeScript + Production-Build |
npm run preview |
Lokaler Server für dist/ |
npm run lint:check |
ESLint |
npm run format:check |
Prettier |
npm run test |
Vitest Unit-Tests |
npm run test:coverage |
Vitest Coverage für SonarCloud |
npm run i18n:check |
DE/ZH Key-Diff (blockiert lokalen build) |
npm run sonar:all |
SonarCloud Scan + Report-Fetch |
- CI läuft bei Push/PR mit Format-, Lint-, Coverage-Test- und Build-Schritten.
- GitHub Pages wird nach erfolgreicher CI über
.github/workflows/deploy-pages.ymlveröffentlicht. - Für lokale Pages-Simulation:
cd frontend
$env:VITE_BASE_PATH = "/AbfindungsPilot/"
npm run build:fast
npm run preview
$env:VITE_BASE_PATH = $null.
├─ frontend/ # Vue/Vite-App
│ ├─ public/ # Statische Assets, robots.txt, sitemap.xml
│ ├─ scripts/ # i18n-Check + SonarCloud-Scan
│ ├─ src/
│ │ ├─ calculation/ # Reine Berechnungs-Engine (framework-frei, testbar)
│ │ ├─ components/ # Wiederverwendbare UI-Bausteine
│ │ ├─ composables/ # App-State, Berechnung, Chart-Daten
│ │ ├─ i18n/ # de.ts | zh.ts (strukturell 1:1)
│ │ ├─ tax-parameters/ # Jahresparameter, aktuell 2026
│ │ ├─ types/ # UI-/Berechnungsnahe Typen
│ │ ├─ views/ # InputView | CalculationView | ChartView
│ │ ├─ App.vue
│ │ ├─ main.ts
│ │ └─ style.css
│ ├─ tests/ # Vitest-Tests
│ ├─ index.html # SEO, Open Graph, JSON-LD
│ ├─ vite.config.ts # Vite, Vitest, Chunk-Splitting, Pages base
│ ├─ eslint.config.js
│ └─ sonar-project.properties # SonarCloud-Konfiguration ohne Tokens
├─ .github/ # CI, Pages Deployment, Dependabot, PR-Template
├─ .dev-docs/ # Entwicklungsdokumentation (DE + ZH)
├─ LICENSE
├─ NOTICE.md
├─ CONTRIBUTING.md
└─ README.md
- Keine asymmetrische KFB-Übertragung (immer hälftig)
- Kein BA-Zuschuss zur PKV während ALG-Bezug
- Keine monatliche Lohnsteuer-Vorabberechnung (nur Jahres-ESt)
- Keine Kapitalerträge (nur §§ 19 / 21 / 22 / 34)
Begründungen und vollständige Produktgrenzen stehen in 03 - Berechnungs-Engine und 09 - Abschlussaudit Berechnungslogik.
Die konkrete Quellenliste für Tarif, Sozialversicherung, Soli, Kirchensteuer und Familienwerte steht in 03 - Berechnungs-Engine. Der Jahreswechsel-Prozess ist in 10 - Jahresparameter aktualisieren dokumentiert. Die aktiven Werte liegen in frontend/src/tax-parameters/2026.json.
- 📁 Entwicklungsdokumentation - Architektur, Engine, Konventionen, Workflow
Kernfunktionen ✅ fertig. Das Projekt ist für GitHub Pages, CI, Dependabot, SonarCloud und nicht-kommerzielle Veröffentlichung vorbereitet.
PolyForm Noncommercial License 1.0.0 - Quellcode öffentlich, aber nur für nicht-kommerzielle Nutzung.
- ✅ Herunterladen, lesen, lokal modifizieren, fork für privaten Gebrauch
- ✅ Nutzung durch gemeinnützige Organisationen, Schulen, Forschung
- ❌ Jegliche kommerzielle Verwendung, kostenpflichtige Hosting-Angebote, Einsatz in gewinnorientierten Firmen
Kurzfassung in beiden Sprachen: NOTICE.md
Dieses Repository nimmt keine externen Pull Requests an. Issues sind deaktiviert. Sie dürfen jederzeit forken und Ihre eigene Variante pflegen - bitte aber nichts in dieses Repository zurückspielen.
Details: CONTRIBUTING.md
Die Steuerberechnungen sind eine bestmögliche Modellierung von § 32a / § 34 EStG, SolzG und SGB IV für 2026 - sie ersetzen keine Steuerberatung. Für verbindliche Auskünfte wenden Sie sich an einen Steuerberater oder Lohnsteuerhilfeverein.
Copyright (c) 2026 Ö_Ö
德国税法对普通人来说是一个盲盒。签 Aufhebungsvertrag(解约协议) 和 Abfindung(遣散费)时,有两个核心决策,会让两个税年的家庭净收入差几千欧元:
- “Abfindung 应该哪一年领?” 当年领还是推到下一年?关键在于 Fünftelregelung(§ 34 EStG,五分之一规则) - 它只在领取年的其他 zvE(应税所得)足够低时才真正起到节税作用。
- “新工作什么时候、以多少月薪入职?” 如果新合同还在谈,ALG I(失业救济)、Progressionsvorbehalt(§ 32b EStG,累进保留)、社保扣款,以及 Fünftelregelung 失效效应 同时在起作用,凭直觉根本算不出哪种组合最划算。
Abfindungspilot 把所有相关组合在两个税年上实时算出来并可视化,而不是让用户瞎猜。
税务假设不以 README 为准。完整公式、法条引用和审计边界见 03 - 计算引擎 与 09 - 计算逻辑终检审计。
- 三栏布局: 输入(PrimeVue Forms + 项目校验逻辑)- 表格对比 - 图表(Chart.js)
- Single(单身)和 Familie(家庭)两种模式,家庭模式可在 Einzelveranlagung(§ 26a EStG)和 Zusammenveranlagung(§ 26b EStG,Splittingtarif)之间切换
- 2026 年税务和社保模型以 计算引擎文档 为准,覆盖 Fünftelregelung、Progressionsvorbehalt、Splittingtarif、KFB/Kindergeld、Soli、Kirchensteuer 以及 KV/PV/RV/ALV
- 持久化:
localStoragesnapshot,3 小时 TTL - 双语: 德语(默认)+ 中文
| 层 | 选型 |
|---|---|
| 框架 | Vue 3.5 + <script setup> Composition API |
| 语言 | TypeScript 6 (strict) |
| 构建 | Vite 8 |
| UI | PrimeVue 4 (Aura 主题, violet) + Tailwind CSS 4 |
| 表单 | @primevue/forms + 项目自定义校验 |
| 国际化 | vue-i18n 11 (DE / ZH) |
| 图表 | Chart.js 4 |
| 质量 | ESLint 10 + Prettier 3 + Vitest Coverage + SonarCloud |
| CI/CD | GitHub Actions + GitHub Pages |
cd frontend
npm install
npm run dev # http://localhost:5173| 命令 | 作用 |
|---|---|
npm run dev |
Vite 开发服务器 |
npm run build |
严格:lint + format + i18n + TypeScript + 生产构建 |
npm run build:fast |
快速:TypeScript + 生产构建 |
npm run preview |
本地启动 dist/ |
npm run lint:check |
ESLint |
npm run format:check |
Prettier |
npm run test |
Vitest 单元测试 |
npm run test:coverage |
Vitest 覆盖率,供 SonarCloud 使用 |
npm run i18n:check |
de/zh key 差异检查(会阻断本地 build) |
npm run sonar:all |
SonarCloud 扫描 + 拉取报告 |
- CI 在 push/PR 时运行 format、lint、coverage test 和 build。
- GitHub Pages 在 CI 成功后通过
.github/workflows/deploy-pages.yml自动发布。 - 本地模拟 Pages 子路径:
cd frontend
$env:VITE_BASE_PATH = "/AbfindungsPilot/"
npm run build:fast
npm run preview
$env:VITE_BASE_PATH = $null.
├─ frontend/ # Vue/Vite App
│ ├─ public/ # 静态资源、robots.txt、sitemap.xml
│ ├─ scripts/ # i18n 检查 + SonarCloud 扫描
│ ├─ src/
│ │ ├─ calculation/ # 纯计算引擎(无框架依赖,可测试)
│ │ ├─ components/ # 可复用 UI 组件
│ │ ├─ composables/ # App 状态、计算、图表数据
│ │ ├─ i18n/ # de.ts | zh.ts(结构 1:1)
│ │ ├─ tax-parameters/ # 年度参数,目前 2026
│ │ ├─ types/ # UI / 计算相关类型
│ │ ├─ views/ # InputView | CalculationView | ChartView
│ │ ├─ App.vue
│ │ ├─ main.ts
│ │ └─ style.css
│ ├─ tests/ # Vitest 测试
│ ├─ index.html # SEO、Open Graph、JSON-LD
│ ├─ vite.config.ts # Vite、Vitest、分包、Pages base
│ ├─ eslint.config.js
│ └─ sonar-project.properties # SonarCloud 配置,不含 token
├─ .github/ # CI、Pages 部署、Dependabot、PR 模板
├─ .dev-docs/ # 开发文档(DE + ZH)
├─ LICENSE
├─ NOTICE.md
├─ CONTRIBUTING.md
└─ README.md
- 不支持 KFB 非对称转让(始终对半)
- ALG 期间 BA 对 PKV 的补贴未扣
- 不算月度 Lohnsteuer 预扣(仅年度 ESt)
- 不算资本利得(只覆盖 §§ 19 / 21 / 22 / 34)
完整理由和产品边界见 03 - 计算引擎 与 09 - 计算逻辑终检审计。
税率、社保、Soli、Kirchensteuer 和家庭参数的具体来源见 03 - 计算引擎。年度换参流程见 10 - 更新年度参数。当前生效值位于 frontend/src/tax-parameters/2026.json。
- 📁 开发文档 - 架构、引擎、规范、工作流
核心功能 ✅ 完成。 项目已准备好通过 GitHub Pages、CI、Dependabot、SonarCloud 和非商业许可证公开发布。
PolyForm Noncommercial License 1.0.0 - 源码公开,仅限非商业用途。
- ✅ 下载、阅读、本地修改、个人 fork 自留
- ✅ 慈善机构、学校、政府、研究单位的非营利使用
- ❌ 任何商业用途、付费托管服务、营利性公司内部使用
中德双语简明对照:NOTICE.md
本仓库不接受外部 Pull Request,Issues 已关闭。欢迎 fork 后自维护分支 - 请不要把代码推回本仓库。
详情见 CONTRIBUTING.md
代码中的税务计算是对 2026 年 § 32a / § 34 EStG、SolzG 与 SGB IV 的尽力建模,不构成税务咨询意见。正式申报请咨询 Steuerberater(税务师)或 Lohnsteuerhilfeverein(工资税援助协会)。
Copyright (c) 2026 Ö_Ö