# Krankengeld-Rechner — documentation

**Last updated:** 2026-04-09

## UI / Kurzarbeitergeld parity

- **Form:** Brutto/Netto in **2-Spalten-Grid** (md) mit **ausgerichteten Hint-Zeilen** (`kg-hint-slot`, `kg-brutto-row-label`). **Netto schätzen** wie KUG **Weitere Angaben** (Toggle + Panel mit `aria-expanded` / `aria-controls`). Im Panel: **Steuerklasse** (`fieldset`/`legend`) **| Bundesland** (`select`); darunter eine Zeile **Kirchensteuer** (`role="group"`, sichtbarer Titel `div#kg-church-heading` mit `kg-net-pair-label`) + einzeilige **`kg-church-control`** (Checkbox) **| Anzahl Kinder** (`label` + `input`). Ab **md** richten **`kg-net-church-children-row`** (CSS-Grid: Label / Steuerfeld / Hinweis; `margin-top` auf Inputs in dieser Zeile wird überschrieben, damit globales `.calculator-form input` den Hinweis nicht überdeckt) die beiden Spalten aus; Styles in **Inline-`<style>`** in [`tools_krankengeld_rechner.php`](../../../v2/pages/tools_krankengeld_rechner.php).
- **Ablauf bei Krankheit (Orientierung):** Panel **`kg-flow-panel`** — kritische Farben/Gradient und Schritt-Badges liegen in **[`v2/css/tools-pages.css`](../../../v2/css/tools-pages.css)** unter **`.calculator-form .kg-flow-panel__*`** (nicht nur Tailwind-Arbitrary-Utilities; das gebündelte `tools-pages.min.css` enthält kein vollständiges JIT-Tailwind). Icon/Überschrift im Panel-Header: Klassen **`kg-flow-head-icon`**, **`kg-flow-head-lead`**.
- **Scoped CSS (Rest):** Inline `<style>` in **`tools_krankengeld_rechner.php`** — Präfix **`kg-*`** (Ergebnisbereich, Select, Segmente, Netto-Zeile). Bei Layout-Anpassungen parallel **`tools_kurzarbeitergeld_rechner.php`** (`kug-*`) prüfen; langfristig Auslagerung siehe [`TOOL_CALCULATOR_UI_PARITY.md`](./TOOL_CALCULATOR_UI_PARITY.md).
- **Ergebnis:** `kg-results-shell` — KPI-Karten (blau Krankengeld, **slate** Einkommenslücke), optionaler **Balken** zur Netto-Deckung (`netReplacementPercent`), **Rechenweg** als einzige Zwischenwerte-Ansicht (offen standardmäßig; keine doppelte Kachel-Zeile), Accordion **Deine Angaben**, **Disclaimer-Streifen** unten.
- **Verhalten:** Nach erfolgreicher Berechnung **smooth scroll** zum Ergebnis (`handleSubmit` + `$refs.kgResultsSection`).

## Overview

| Field | Value |
|--------|--------|
| **Name** | Krankengeld-Rechner / Krankengeldrechner |
| **Slug** | `krankengeld-rechner` |
| **URL** | https://www.ordio.com/tools/krankengeld-rechner |
| **PHP** | `v2/pages/tools_krankengeld_rechner.php` |
| **Partials** | `v2/includes/tools/krankengeld-rechner/calculator-section.php`, `seo-content.php` (with `<!-- SEO Content Sections -->`) |
| **FAQ marker** | `<!-- FAQ Section -->` in `tools_krankengeld_rechner.php` before `render-faq-json.php` (required for `audit-tools-content-blocks.py`) |
| **JS modules** | `v2/js/krankengeld/` (`constants.js`, `utils.js`, `helpers.js`, `export.js`, `calculator.js`) |
| **FAQs** | `v2/data/tools-faqs/krankengeld_rechner.json` |

## Optional Netto-Schätzung

The page loads **`v2/js/shared/german-monthly-net-from-gross.min.js`**. The **„Netto schätzen“** panel (Alpine `showNetEstimate`, opened via toggle) calls `window.ordioGermanMonthlyNet.computeMonthlyNetPayroll()` with the same defaults as the Kurzarbeitergeld tool (gKV, Zusatzbeitrag 2,5&nbsp;%, Steuerklasse/Bundesland/Kinder). Filled net is flagged as estimated for UX copy and exports (`Netto-Quelle` in CSV/PDF); **payslip net remains the gold standard** for the 90&nbsp;% cap.

## Calculation (v1 proxy)

Documented in **`docs/content/tools/krankengeld-rechner/LEGAL_MODEL.md`**. Implementation summary:

1. **Bemessungs-Brutto** = `min(Bruttolohn_monatlich, KV_BBG_monatlich)` (proxy from annual BBG ÷ 12).
2. **70 %-Komponente** = `0.7 × Bemessungs-Brutto`.
3. **Netto-Obergrenze** = `0.9 × Nettolohn_monatlich` (user should use recent payslip net).
4. **Krankengeld-Proxy (Monat)** = `min(70 %-Komponente, Netto-Obergrenze)`.
5. **Tageswert (Anzeige)** ≈ Monatswert ÷ 30 (Orientierungswert, not official Kalendertag-Regelentgelt).

**Lücke** = Nettolohn minus Proxy (before member KV/PV on sickness benefit; optional nuance in UI copy).

## Maintenance

1. **Constants:** `v2/js/krankengeld/constants.js` — BBG year, `GROSS_FACTOR`, `NET_CAP_FACTOR`.
2. After any JS/CSS change under `v2/js/krankengeld/` or shared tools CSS: `npm run minify` (see `minify-assets.js`).
3. **Tests:** `node v2/scripts/dev-helpers/test-krankengeld-calculations.js`
4. **FAQ / JSON-LD parity:** `php v2/scripts/dev-helpers/verify-faq-jsonld-parity.php --all-tools` (oder `--file=tools-faqs/krankengeld_rechner.json`)
5. **FAQ plain-text helper (repo-wide):** `php v2/scripts/dev-helpers/verify-faq-schema-plain-text.php`
6. **Research pipeline (optional):** `php v2/scripts/tools/run-tools-improvement-pipeline.php --tool=krankengeld-rechner`

## QA checklist (release / regression)

**Automated (lokal im Repo):**

1. `node v2/scripts/dev-helpers/test-krankengeld-calculations.js`
2. `php -l` auf `v2/pages/tools_krankengeld_rechner.php` und `v2/includes/tools/krankengeld-rechner/*.php`
3. `php v2/scripts/dev-helpers/verify-faq-jsonld-parity.php --file=tools-faqs/krankengeld_rechner.json`
4. Optional: `php v2/scripts/dev-helpers/verify-faq-schema-plain-text.php`

**Browser (lokaler Stack / Docker / Staging):** Nutze die bei euch erreichbare Basis-URL (z. B. `http://localhost:8003/...` unter Apache im Docker-Stack). Den eingebauten PHP-Dev-Server (`php -S …`) für Dauerbetrieb vermeiden (Projektregel).

- **Assets:** **jsPDF** (cdnjs), `v2/js/krankengeld/*.min.js`, `v2/js/shared/german-monthly-net-from-gross.min.js`, `v2/css/tools-pages.min.css` per **HTTP 200** prüfen (z. B. `curl -sI`).
- **Konsole:** Auf **http**-localhost sind **HubSpot**-Hinweis (kein HTTPS) und ggf. **Meta-Pixel**-/Tracking-Meldungen erwartbar und kein Hinweis auf defekten Rechner-Code. Kritisch sind unkontrollierte Fehler aus **Alpine**/`krankengeld`-Bundles.
- **Ablauf-Panel:** blauer Header, Kalender-Icon, Schritte 1–3 lesbar.
- **Kirchensteuer / Anzahl Kinder:** ab Desktop-Breite bündig; mobil gestapelt (nach Öffnen von **Netto schätzen**).
- **Netto schätzen:** Panel öffnen, ggf. Netto übernehmen, erneut berechnen.
- **Berechnen:** Wenn das **HubSpot-Chat-iframe** den Button **Krankengeld berechnen** überlagert, Submit z. B. mit **Enter** im Brutto- oder Netto-Feld auslösen (gleiches Formular).
- **Ergebnis:** KPIs, Rechenweg-Accordion, PDF/CSV (E-Mail-Gate) wie spezifiziert.

**Hinweis:** Die öffentliche URL `https://www.ordio.com/tools/krankengeld-rechner` kann je nach Deployment **404** liefern, bis die Route live ist; QA dann über eure lokale oder Staging-Umgebung mit derselben `.htaccess`-Route.

## Routing

- **`.htaccess`:** `tools/krankengeld-rechner` → page; **301** `tools/krankengeldrechner` → canonical hyphenated URL.

## Exports & analytics

- **PDF + CSV** after the same **email gate** (Name, E-Mail, `#hubspot_form_consent_kg`): [`v2/pages/tools_krankengeld_rechner.php`](../../../v2/pages/tools_krankengeld_rechner.php) modal + Alpine `exportFormat` (`CSV` | `PDF`), mirroring Kurzarbeitergeld.
- **jsPDF:** `https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js` (`defer`) — same CDN pattern as [`tools_kurzarbeitergeld_rechner.php`](../../../v2/pages/tools_kurzarbeitergeld_rechner.php). Kein striktes CSP auf den üblichen Tool-Seiten im Repo; bei härterem CSP ggf. selbst hosten.
- **Modules:** [`v2/js/krankengeld/export.js`](../../../v2/js/krankengeld/export.js) — `generateCSVContent`, `exportCSV`, `exportPDF`; Sektionen wie auf der Seite (`DEINE ANGABEN`, `ERGEBNIS`, `HINWEIS`). **`tool_data`** via `getCalculationData()` inkl. `taxClass`, `state`, `churchTax`, `numberOfChildren`, `kvBbgMonthly`, `kvBbgYear`, `year`, `netEstimateApplied`, `nettoSource`, `netReplacementPercent`, …
- **`collect-lead.php`:** `signuptype` `krankengeld`, `tool_name` „Krankengeld-Rechner“, HubSpot-Consent wie bei anderen Tools.
- **GTM `tools_export`:** `krankengeld-export-csv`, `krankengeld-export-pdf` (`GTMFormTracker.trackAPIForm`). Siehe [`docs/systems/analytics/CONVERSION_POINTS_AUDIT.md`](../../systems/analytics/CONVERSION_POINTS_AUDIT.md).

## Related internal links

- Lexikon: `/insights/lexikon/krankengeld/`
- Tools: Brutto-Netto, ALG, Kurzarbeitergeld, Elterngeld, Minijob (siehe `docs/data/tools-internal-link-mapping.json` → `krankengeld-rechner`)
- Produkt (SEO-Body): `/abwesenheiten`, `/payroll`, `/schichtplan`, `/arbeitszeiterfassung`, Vorlage `/vorlagen/abwesenheitsnotiz-vorlage`

## SEO / LLM surfaces

- OG: `v2/config/og-image-registry.php`, `v2/img/og/krankengeld-rechner.webp`
- `html/llms.txt` and `html/llms-full.txt` — after edits run `python3 v2/scripts/llms/validate-llms-metadata.py --report`
