# Stundenlohnrechner 2026 Update - Next Steps & Testing Guide

**Last Updated:** 2026-01-07  
**Status:** Ready for Testing

## Overview

This document provides comprehensive testing instructions and verification steps for the Stundenlohnrechner 2026 update.

## Pre-Testing Verification

### Code Verification Commands

Run these commands to verify all updates are in place:

```bash
# Verify no 2025 references remain
grep -r "2025" v2/pages/tools_stundenlohnrechner.php
grep -r "2025" v2/js/tools-stundenlohn-calculator.js

# Verify no old Mindestlohn values remain
grep -r "12,82\|12\.82" v2/pages/tools_stundenlohnrechner.php
grep -r "12,82\|12\.82" v2/js/tools-stundenlohn-calculator.js

# Verify no old Minijob values remain (where referring to limit)
grep -r "556" v2/pages/tools_stundenlohnrechner.php | grep -v "color\|#"
grep -r "556" v2/js/tools-stundenlohn-calculator.js | grep -v "color\|#"

# Verify 2026 values are present
grep -r "2026" v2/pages/tools_stundenlohnrechner.php | wc -l
grep -r "13,90\|13\.90" v2/pages/tools_stundenlohnrechner.php | wc -l
grep -r "603" v2/pages/tools_stundenlohnrechner.php | grep -i "minijob\|grenze" | wc -l
```

**Expected Results:**
- No 2025 references in content (only in comments/history if needed)
- No old Mindestlohn values (12.82)
- No old Minijob limit values (556) in relevant contexts
- Multiple 2026 references present
- Multiple 13.90 references present
- Multiple 603 references in Minijob context

## Manual Testing Checklist

### 1. Basic Calculation Testing

#### Test Case 1.1: Minimum Wage Calculation
**Input:**
- Hourly wage: €13.90
- Weekly hours: 40
- Tax class: 1 (Single)
- Health insurance: Standard (GKV)
- Additional rate: 2.9%

**Expected Results:**
- ✅ Compliance check: Should show "Mindestlohn 2026" badge as compliant
- ✅ Monthly brutto: €2,410.80 (13.90 × 40 × 4.3333)
- ✅ GKV contribution: ~€210.95 (monthly brutto × 8.75%)
- ✅ Netto should be calculated correctly

**Verification Steps:**
1. Navigate to `/tools/stundenlohnrechner`
2. Enter €13.90 as hourly wage
3. Set weekly hours to 40
4. Select tax class 1
5. Verify compliance badge shows green "Mindestlohn 2026"
6. Verify all calculations match expected values

#### Test Case 1.2: Typical Wage Calculation
**Input:**
- Hourly wage: €20.00
- Weekly hours: 40
- Tax class: 1 (Single)
- Health insurance: Standard (GKV)
- Additional rate: 2.9%

**Expected Results:**
- ✅ Monthly brutto: €3,466.64
- ✅ GKV contribution: ~€303.33 (monthly brutto × 8.75%)
- ✅ Tax calculation: Should use 2026 formula with Grundfreibetrag €12,348
- ✅ All deductions should be correct

**Verification Steps:**
1. Enter €20.00 as hourly wage
2. Verify all deduction calculations
3. Check tax amount matches 2026 tax tables
4. Verify GKV contribution uses 2.9% Zusatzbeitrag

#### Test Case 1.3: High Wage Calculation (BBG Test)
**Input:**
- Hourly wage: €50.00
- Weekly hours: 40
- Tax class: 1 (Single)
- Health insurance: Standard (GKV)
- Additional rate: 2.9%

**Expected Results:**
- ✅ Monthly brutto: €8,666.60
- ✅ GKV contribution: Should cap at €5,812.50 × 8.75% = €508.59
- ✅ RV contribution: Should cap at €8,450 × 9.3% = €785.85
- ✅ BBG limits should be applied correctly

**Verification Steps:**
1. Enter €50.00 as hourly wage
2. Verify GKV contribution caps at BBG limit
3. Verify RV contribution caps at BBG limit
4. Check that contributions don't exceed BBG thresholds

### 2. Compliance Check Testing

#### Test Case 2.1: Mindestlohn Compliance - At Minimum
**Input:**
- Hourly wage: €13.90
- Weekly hours: 40

**Expected Results:**
- ✅ Compliance badge: Green "Mindestlohn 2026"
- ✅ Message: Should indicate compliance with minimum wage

**Verification Steps:**
1. Enter exactly €13.90
2. Verify green compliance badge appears
3. Check compliance message is correct

#### Test Case 2.2: Mindestlohn Compliance - Below Minimum
**Input:**
- Hourly wage: €13.00
- Weekly hours: 40

**Expected Results:**
- ✅ Compliance badge: Red "Mindestlohn 2026"
- ✅ Message: Should warn about non-compliance
- ✅ Should indicate minimum wage requirement

**Verification Steps:**
1. Enter €13.00 (below minimum)
2. Verify red compliance badge appears
3. Check warning message is displayed
4. Verify message mentions €13.90 minimum

#### Test Case 2.3: Minijob Compliance Check
**Input:**
- Hourly wage: €15.00
- Weekly hours: 10 (monthly: ~€650)

**Expected Results:**
- ✅ Should check if monthly income exceeds €603
- ✅ If above €603, should indicate not a Minijob
- ✅ If at or below €603, should indicate Minijob status

**Verification Steps:**
1. Enter wage and hours that result in ~€650/month
2. Verify Minijob compliance check works
3. Adjust hours to result in exactly €603/month
4. Verify Minijob status is correctly identified

### 3. Tax Calculation Testing

#### Test Case 3.1: Tax Class 1 (Single) - Low Income
**Input:**
- Hourly wage: €15.00
- Weekly hours: 40
- Tax class: 1
- Yearly income: ~€31,200

**Expected Results:**
- ✅ Tax should use Grundfreibetrag €12,348
- ✅ Taxable income: €18,852
- ✅ Tax should be calculated using 2026 progressive formula
- ✅ Should be in Zone 2 or Zone 3 of tax brackets

**Verification Steps:**
1. Select tax class 1
2. Verify tax calculation
3. Check tax amount matches 2026 tax calculator or official tables
4. Verify Grundfreibetrag is applied correctly

#### Test Case 3.2: Tax Class 3 (Married, Higher Earner)
**Input:**
- Hourly wage: €30.00
- Weekly hours: 40
- Tax class: 3
- Yearly income: ~€62,400

**Expected Results:**
- ✅ Tax-free allowance: €24,696 (2 × Grundfreibetrag)
- ✅ Tax should be lower than tax class 1 for same income
- ✅ Ehegattensplitting should be applied

**Verification Steps:**
1. Select tax class 3
2. Verify tax-free allowance is doubled
3. Compare tax amount with tax class 1 for same income
4. Verify splitting calculation is correct

#### Test Case 3.3: Tax Class 2 (Single Parent)
**Input:**
- Hourly wage: €20.00
- Weekly hours: 40
- Tax class: 2
- Yearly income: ~€41,600

**Expected Results:**
- ✅ Entlastungsbetrag: €4,260 should be applied
- ✅ Tax should be lower than tax class 1
- ✅ Single parent relief should be visible

**Verification Steps:**
1. Select tax class 2
2. Verify Entlastungsbetrag is applied
3. Compare with tax class 1
4. Verify relief amount is correct

#### Test Case 3.4: Solidaritätszuschlag Threshold
**Input:**
- Hourly wage: €25.00
- Weekly hours: 40
- Tax class: 1
- Yearly income: ~€52,000

**Expected Results:**
- ✅ Taxable income after Grundfreibetrag: ~€39,652
- ✅ Income tax: Should be calculated
- ✅ Solidaritätszuschlag: Should be 0 if taxable income < €20,350
- ✅ If taxable income > €20,350, SolZ should be 5.5% of income tax

**Verification Steps:**
1. Test with income just below €20,350 threshold
2. Verify SolZ is 0
3. Test with income just above €20,350 threshold
4. Verify SolZ is calculated correctly (5.5% of income tax)

### 4. Social Security Testing

#### Test Case 4.1: GKV with New Zusatzbeitrag
**Input:**
- Hourly wage: €20.00
- Weekly hours: 40
- Health insurance: Standard (GKV)
- Additional rate: 2.9%

**Expected Results:**
- ✅ GKV base rate: 7.3% (employee share)
- ✅ GKV additional: 1.45% (2.9% / 2)
- ✅ Total GKV employee: 8.75%
- ✅ Monthly GKV: Monthly brutto × 8.75%

**Verification Steps:**
1. Set additional rate to 2.9%
2. Verify GKV calculation uses 8.75% total
3. Check breakdown shows 7.3% + 1.45%
4. Verify total matches expected amount

#### Test Case 4.2: Pflegeversicherung Rates
**Input:**
- Hourly wage: €20.00
- Weekly hours: 40
- Children: 0 (childless, 23+)

**Expected Results:**
- ✅ Pflegeversicherung: 2.40% (employee share)
- ✅ Should include 0.6% surcharge for childless 23+

**Verification Steps:**
1. Set children count to 0
2. Set age to 23 or above
3. Verify Pflegeversicherung rate is 2.40%
4. Test with 1 child - should be 1.80%
5. Test with 2 children - should be 1.55%

#### Test Case 4.3: BBG Limits
**Input:**
- Hourly wage: €50.00
- Weekly hours: 40
- Monthly brutto: ~€8,666.60

**Expected Results:**
- ✅ GKV BBG: €5,812.50
- ✅ GKV contribution: €5,812.50 × 8.75% = €508.59
- ✅ RV BBG: €8,450
- ✅ RV contribution: €8,450 × 9.3% = €785.85
- ✅ Contributions should cap at BBG, not exceed

**Verification Steps:**
1. Enter high wage (€50/hour)
2. Verify GKV contribution caps at €508.59
3. Verify RV contribution caps at €785.85
4. Check that contributions don't increase beyond BBG

### 5. Export Function Testing

#### Test Case 5.1: PDF Export
**Input:**
- Any valid calculation result

**Expected Results:**
- ✅ PDF header shows "Deutsche Lohnberechnung 2026"
- ✅ PDF title shows "Stundenlohnberechnung 2026"
- ✅ All values in PDF are correct
- ✅ Mindestlohn reference shows "13,90 €/h" if applicable
- ✅ Year references show "2026"

**Verification Steps:**
1. Perform a calculation
2. Click "PDF exportieren" or PDF export button
3. Open generated PDF
4. Verify header shows "2026"
5. Verify all values match calculator results
6. Check for any "2025" references (should be none)

#### Test Case 5.2: CSV Export
**Input:**
- Any valid calculation result

**Expected Results:**
- ✅ CSV header shows "2026"
- ✅ Mindestlohn reference shows "13,90 €/h"
- ✅ Footer shows "Export erstellt mit Ordio Stundenlohnrechner 2026"
- ✅ All values in CSV are correct
- ✅ Minijob reference shows "603 €/Monat" if applicable

**Verification Steps:**
1. Perform a calculation
2. Click "CSV exportieren" or CSV export button
3. Open generated CSV file
4. Verify header shows "2026"
5. Verify footer shows "2026"
6. Check all values match calculator results
7. Verify Mindestlohn and Minijob values are correct

### 6. Schema Validation Testing

#### Test Case 6.1: Google Rich Results Test
**Steps:**
1. Navigate to: https://search.google.com/test/rich-results
2. Enter URL: `https://www.ordio.com/tools/stundenlohnrechner`
3. Click "Test URL"

**Expected Results:**
- ✅ WebApplication schema validates
- ✅ FAQPage schema validates
- ✅ SoftwareApplication schema validates
- ✅ All FAQs have correct answers
- ✅ No schema errors

**Verification:**
- Check for any schema errors
- Verify all required fields are present
- Check FAQ answers are accurate
- Verify dates show 2026

### 7. Browser Compatibility Testing

#### Test Case 7.1: Chrome (Desktop)
**Steps:**
1. Open Chrome browser
2. Navigate to `/tools/stundenlohnrechner`
3. Perform calculations
4. Test all features

**Expected Results:**
- ✅ Calculator loads correctly
- ✅ All calculations work
- ✅ Export functions work
- ✅ No console errors
- ✅ Responsive design works

#### Test Case 7.2: Firefox (Desktop)
**Steps:**
1. Open Firefox browser
2. Navigate to `/tools/stundenlohnrechner`
3. Perform calculations
4. Test all features

**Expected Results:**
- ✅ Calculator loads correctly
- ✅ All calculations work
- ✅ Export functions work
- ✅ No console errors

#### Test Case 7.3: Mobile (iOS/Android)
**Steps:**
1. Open mobile browser
2. Navigate to `/tools/stundenlohnrechner`
3. Perform calculations
4. Test all features

**Expected Results:**
- ✅ Calculator is responsive
- ✅ Touch interactions work
- ✅ Calculations work correctly
- ✅ Export functions work
- ✅ No layout issues

## Verification Commands

### Check Constants in Browser Console

Open browser console and run:

```javascript
// Check RATES_2026 object
console.log(window.stundenlohnCalculator?.RATES_2026);

// Expected values:
// MINDESTLOHN: 13.90
// MINIJOB_LIMIT: 603
// GKV_ADDITIONAL_AVERAGE: 2.9
// GKV_TOTAL: 17.5
// GKV_AN_ANTEIL: 8.75
// SOLIDARITAETSZUSCHLAG.THRESHOLD: 20350
```

### Verify Tax Calculation

```javascript
// Test tax calculation with Grundfreibetrag
const calculator = window.stundenlohnCalculator;
const yearlyBrutto = 25000;
const tax = calculator.calculateLohnsteuer(yearlyBrutto / 12);
console.log('Monthly tax:', tax);
console.log('Yearly tax:', tax * 12);

// Should use Grundfreibetrag 12348
// Taxable income: 25000 - 12348 = 12652
// Should be in Zone 2 or Zone 3
```

## Common Issues & Troubleshooting

### Issue: Calculations show old values
**Solution:** Clear browser cache and hard refresh (Ctrl+Shift+R / Cmd+Shift+R)

### Issue: Export shows "2025"
**Solution:** Verify minified JS file was regenerated (`npm run minify`)

### Issue: Tax calculation seems incorrect
**Solution:** 
1. Verify tax formula uses Grundfreibetrag 12348
2. Check tax class adjustments are applied
3. Compare with official 2026 tax calculator

### Issue: GKV contribution seems wrong
**Solution:**
1. Verify Zusatzbeitrag is set to 2.9%
2. Check GKV total is 17.5% (8.75% employee)
3. Verify BBG limit is applied if income exceeds €5,812.50

## Deployment Checklist

Before deploying to production:

- [ ] All code changes committed
- [ ] Minified assets regenerated (`npm run minify`)
- [ ] All tests passed
- [ ] Schema validation passed
- [ ] Browser testing completed
- [ ] No console errors
- [ ] All "2025" references removed
- [ ] All old values updated
- [ ] Documentation updated

## Post-Deployment Monitoring

After deployment, monitor:

1. **Error Logs:** Check for any JavaScript errors
2. **User Feedback:** Monitor for calculation complaints
3. **Schema Validation:** Re-validate schemas after deployment
4. **Performance:** Check page load times
5. **Analytics:** Monitor tool usage

## Success Criteria

✅ All calculations use 2026 values  
✅ All content shows 2026  
✅ All exports show 2026  
✅ Schema validation passes  
✅ No console errors  
✅ All compliance checks work  
✅ BBG limits apply correctly  
✅ Tax calculations match 2026 formula  

## Support

If issues are found during testing:
1. Document the issue with screenshots
2. Note the exact input values
3. Check browser console for errors
4. Verify code changes are correct
5. Report to development team
