diff --git a/Dienstplan_Portable.html b/Dienstplan_Portable.html
index 3b84e6c..af9cbb1 100644
--- a/Dienstplan_Portable.html
+++ b/Dienstplan_Portable.html
@@ -448,7 +448,7 @@
Berechnungsregeln (Variante 2 - Streng)
Schwelle: Gesamter Bonus wird nur gezahlt, wenn WE-Einheiten ≥ 2,0.
- Bei Erreichen: WT = 250 EUR/Einheit, WE = 450 EUR/Einheit (abzgl. 1,0 Einheit Abzug).
+ Bei Erreichen: WT = 250 EUR/Einheit, WE = 450 EUR/Einheit (abzgl. 2,0 Einheiten Abzug).
Unter Schwelle: Keine Auszahlung (weder WT noch WE).
WE-Tage: Fr, Sa, So, Feiertage und Vortage von Feiertagen.
@@ -576,7 +576,7 @@ const CONFIG = {
RATE_WT: 250,
RATE_WE: 450,
THRESHOLD: 2.0,
- DEDUCTION: 1.0,
+ DEDUCTION: 2.0,
TOLERANCE: 0.0001
};
@@ -1071,7 +1071,7 @@ class DienstplanApp {
csv += 'WT;Werktag (Montag-Donnerstag ohne Feiertag/Vortag)\n';
csv += 'WE-Tag;"Freitag, Samstag, Sonntag, Feiertag oder Tag vor Feiertag"\n';
csv += 'Schwelle;"Mindestens 2,0 WE-Einheiten für Bonuszahlung erforderlich"\n';
- csv += 'Sätze;"WT = 250 EUR/Einheit, WE = 450 EUR/Einheit (abzgl. 1,0 Abzug)"\n';
+ csv += 'Sätze;"WT = 250 EUR/Einheit, WE = 450 EUR/Einheit (abzgl. 2,0 Abzug)"\n';
// Download CSV file
const blob = new Blob([csv], { type: 'text/csv;charset=utf-8' });
@@ -1373,7 +1373,7 @@ class DienstplanApp {
Vergütung bei Erreichen der Schwelle:
- Werktage (WT): 250 € pro Einheit
- - WE-Tage: 450 € pro Einheit (abzüglich 1,0 Einheit Abzug, Freitag zuerst)
+ - WE-Tage: 450 € pro Einheit (abzüglich 2,0 Einheiten Abzug, Freitag zuerst)
Unter Schwelle: Keine Bonuszahlung (weder WT noch WE)
diff --git a/README.md b/README.md
index 69e94b4..4e0e728 100644
--- a/README.md
+++ b/README.md
@@ -103,7 +103,7 @@ Die Datei landet in `output/Dienstplan_YYYY_MM_NRW.xlsx`.
- **WE-Tag**: Fr/Sa/So + Feiertag + Vortag Feiertag
- **WT-Tag**: Alle anderen Tage (250 € pro Einheit)
-- **WE-Vergütung**: Nur wenn Monatssumme ≥ 2,0 WE-Einheiten → 450 €/Einheit, dann Abzug 1,0 (zuerst von Freitag)
+- **WE-Vergütung**: Nur wenn Monatssumme ≥ 2,0 WE-Einheiten → 450 €/Einheit, dann Abzug 2,0 (zuerst von Freitag)
- **Unter Schwelle**: WE-Dienste = 0 € (nicht als WT vergütet)
Details siehe `SPECIFICATION.md`.
diff --git a/SPECIFICATION.md b/SPECIFICATION.md
index f135c53..b0a7d7c 100644
--- a/SPECIFICATION.md
+++ b/SPECIFICATION.md
@@ -279,17 +279,17 @@ Beispiel-Formel (als hilfsweise Matrix in Checks):
A hat 1,75 WE und 1,0 WT → Auszahlung_WE = 0 €; Auszahlung_WT = 0 €; Auszahlung_Gesamt = 0 €.
2) **Genau Schwelle**:
- A hat 2,0 WE (Fr 1,0 + Sa 1,0) → Abzug 1,0 (zuerst Fr) → WE_bezahlt = 1,0 → 450 €.
+ A hat 2,0 WE (Fr 1,0 + Sa 1,0) → Abzug 2,0 (zuerst Fr) → WE_bezahlt = 0,0 → 0 €.
3) **Über Schwelle ohne Freitag**:
- A hat 2,0 WE (nur Sa+So) → Abzug 1,0 aus „Andere" → WE_bezahlt = 1,0 → 450 €.
+ A hat 2,0 WE (nur Sa+So) → Abzug 2,0 aus „Andere" → WE_bezahlt = 0,0 → 0 €.
4) **Starke Überdeckung**:
- A hat 3,5 WE → Abzug 1,0 → WE_bezahlt = 2,5 → 2,5×450 €.
+ A hat 3,5 WE → Abzug 2,0 → WE_bezahlt = 1,5 → 1,5×450 € = 675 €.
5) **Splits rund um 2,0**:
- A hat Fr 0,4 + Sa 0,6 + So 1,0 → Summe 2,0 → Abzug 1,0
- (0,4 von Fr, 0,6 von Andere) → WE_bezahlt = 1,0 → 450 €.
+ A hat Fr 0,4 + Sa 0,6 + So 1,0 → Summe 2,0 → Abzug 2,0
+ (0,4 von Fr, 1,6 von Andere) → WE_bezahlt = 0,0 → 0 €.
6) **Unter Schwelle, nur WE-Tage**:
A hat 1,0 WE, 0 WT → Auszahlung_WE = 0 €; Auszahlung_Gesamt = 0 €.
@@ -300,9 +300,9 @@ Beispiel-Formel (als hilfsweise Matrix in Checks):
## Edge-Cases und Präzisierungen
-- Abzug nur einmal pro Person/Monat (fix 1,0), und nur wenn Schwelle erreicht.
+- Abzug nur einmal pro Person/Monat (fix 2,0), und nur wenn Schwelle erreicht.
- Der Vortag eines Feiertags ist WE-Tag – unabhängig davon, welcher Wochentag er ist.
-- Wenn WE_Freitag < 1,0, wird der restliche Abzug (bis 1,0) von WE_Andere genommen.
+- Wenn WE_Freitag < 2,0, wird der restliche Abzug (bis 2,0) von WE_Andere genommen.
- Monatswechsel: Daten genau per >=Monat_Auswahl und <=EOMONAT(Monat_Auswahl;0) filtern.
- Rundungstoleranz 1e-4 bei Schwelle und Datumssummen (Splits wie 0,33/0,67).
- Tabellen-Namen („tblPlan", „tblFeiertage", „tblAuswertung") konsequent verwenden.
@@ -324,11 +324,11 @@ Lieferumfang (empfohlen):
- 18.11.2025: Korrektur Variante 2: **Gesamter Bonus (WT + WE) wird nur gezahlt, wenn WE_Summe ≥ 2,0**.
Unter Schwelle: Auszahlung_Gesamt = 0 € (weder WT noch WE).
- 14.11.2025: Umstellung auf Variante 2 (streng). WE-Vergütung nur bei WE_Summe ≥ 2,0,
- anschließend Abzug 1,0 (Freitag zuerst). Unterhalb der Schwelle: WE-Auszahlung = 0 €.
+ anschließend Abzug 2,0 (Freitag zuerst). Unterhalb der Schwelle: WE-Auszahlung = 0 €.
- 13.11.2025: Vorversion (Variante 1) mit WE-Auszahlung ab erstem WE-Dienst und Abzug nach Schwelle (ersetzt).
## Kurztext (für Blatt „Regeln" als Readme-Hinweis)
-„WE-Tag = Fr/Sa/So/Feiertag/Vortag (BL-abhängig). Variante 2 (streng): Gesamter Bonus (WT + WE) wird nur gezahlt, wenn im Monat ≥ 2,0 WE-Einheiten erreicht werden. Bei Erreichen der Schwelle: WT 250 €/Einheit, WE 450 €/Einheit mit Abzug 1,0 (Freitag zuerst). Unter Schwelle: 0 € Auszahlung. Splits anteilig. Monat und Bundesland oben wählen."
+„WE-Tag = Fr/Sa/So/Feiertag/Vortag (BL-abhängig). Variante 2 (streng): Gesamter Bonus (WT + WE) wird nur gezahlt, wenn im Monat ≥ 2,0 WE-Einheiten erreicht werden. Bei Erreichen der Schwelle: WT 250 €/Einheit, WE 450 €/Einheit mit Abzug 2,0 (Freitag zuerst). Unter Schwelle: 0 € Auszahlung. Splits anteilig. Monat und Bundesland oben wählen."
— Ende der README —
diff --git a/android-app/IMPLEMENTATION_SUMMARY.md b/android-app/IMPLEMENTATION_SUMMARY.md
index 55e510f..392424c 100644
--- a/android-app/IMPLEMENTATION_SUMMARY.md
+++ b/android-app/IMPLEMENTATION_SUMMARY.md
@@ -78,8 +78,8 @@ Implements NRW Variante 2 (streng) rules:
#### Unit Tests (PayrollCalculatorTest.kt)
Comprehensive test coverage including:
1. **Under threshold test**: 1.75 WE + 1.0 WT → WE payout 0€, WT payout 250€
-2. **Exactly at threshold test**: 2.0 WE → WE payout 450€ (1.0 unit after deduction)
-3. **Over threshold test**: 3.5 WE → WE payout 1125€ (2.5 units after deduction)
+2. **Exactly at threshold test**: 2.0 WE → WE payout 0€ (0.0 units after 2.0 deduction)
+3. **Over threshold test**: 3.5 WE → WE payout 675€ (1.5 units after 2.0 deduction)
4. **Friday deduction priority test**: Verifies deduction comes from Friday first
5. **Multiple employees test**: Separate calculations per employee
diff --git a/android-app/app/src/main/java/com/dienstplan/nrw/data/PayrollCalculator.kt b/android-app/app/src/main/java/com/dienstplan/nrw/data/PayrollCalculator.kt
index 48aafb4..25ebe44 100644
--- a/android-app/app/src/main/java/com/dienstplan/nrw/data/PayrollCalculator.kt
+++ b/android-app/app/src/main/java/com/dienstplan/nrw/data/PayrollCalculator.kt
@@ -14,7 +14,7 @@ import kotlin.math.min
* - WT-Tag (Weekday): All other days
* - WT compensation: 250€ per unit (only if threshold reached)
* - WE compensation: Only paid if monthly total >= 2.0 WE units (threshold)
- * - If threshold reached: 450€ per WE unit, then deduct exactly 1.0 WE unit
+ * - If threshold reached: 450€ per WE unit, then deduct exactly 2.0 WE units
* - Deduction priority: Friday first, then other WE days
* - Below threshold: 0€ for all shifts (neither WT nor WE)
*/
diff --git a/webapp/app.js b/webapp/app.js
index b03568f..0b5193a 100644
--- a/webapp/app.js
+++ b/webapp/app.js
@@ -526,7 +526,7 @@ class DienstplanApp {
csv += 'WE/Feiertag Tage;"Freitag, Samstag, Sonntag, Feiertag oder Tag vor Feiertag"\n';
csv += 'Schwelle;"Mindestens 2,0 WE-Einheiten für Bonuszahlung erforderlich"\n';
csv += 'Sätze;"Normale Tage = 250 EUR/Einheit, WE/Feiertag = 450 EUR/Einheit"\n';
- csv += 'Abzug;"Bei Erreichen der Schwelle wird 1,0 WE-Einheit abgezogen"\n';
+ csv += 'Abzug;"Bei Erreichen der Schwelle werden 2,0 WE-Einheiten abgezogen"\n';
// Download CSV file
const blob = new Blob([csv], { type: 'text/csv;charset=utf-8' });
@@ -835,7 +835,7 @@ class DienstplanApp {
Vergütung bei Erreichen der Schwelle:
- Werktage (WT): 250 € pro Einheit
- - WE-Tage: 450 € pro Einheit (abzüglich 1,0 Einheit Abzug, Freitag zuerst)
+ - WE-Tage: 450 € pro Einheit (abzüglich 2,0 Einheiten Abzug, Freitag zuerst)
Unter Schwelle: Keine Bonuszahlung (weder WT noch WE)