# Arbeitslosengeld-Rechner Validation Checklist

**Last Updated:** 2025-01-27

## Implementation Summary

The Arbeitslosengeld-Rechner (ALG 1 Calculator) has been successfully implemented at:

- **File:** `v2/pages/tools_arbeitslosengeld_rechner.php`
- **URL:** `/tools/arbeitslosengeld-rechner`

### Features Implemented

✅ **Calculator Logic**

- ALG 1 calculation: 60% of netto (67% with children)
- Maximum amounts: €2,390 (West) / €2,320 (East) for 2025
- Duration calculation: Age-based (12-24 months)
- Side income calculation: Freibetrag (165€) and deductions
- Brutto to Netto conversion (estimate ~65%)

✅ **UI/UX**

- Responsive form with progressive disclosure
- Real-time calculation with debouncing (300ms)
- Result cards with detailed breakdown
- Mobile-optimized (44px touch targets)
- Error handling and validation

✅ **Export Functionality**

- Excel export via `/v2/api/generate_excel.php`
- PDF export (print dialog)
- Export buttons with proper styling

✅ **SEO/AEO/GEO**

- 15 FAQs addressing top keyword questions
- Schema markup: HowTo, FAQPage, WebPage, BreadcrumbList
- Optimized meta tags and headings
- Natural keyword integration

## Validation Checklist

### 1. Functional Testing

#### Calculation Accuracy

- [ ] Test with official Arbeitsagentur calculator examples
- [ ] Verify edge cases:
  - [ ] Minimum income (should calculate correctly)
  - [ ] Maximum income (should cap at €2,390/€2,320)
  - [ ] Age 50+ duration calculation (should add 2 months per year)
  - [ ] Age 58+ duration (should cap at 24 months)
  - [ ] Side income below Freibetrag (165€) - no deduction
  - [ ] Side income above Freibetrag - correct deduction (20% per €100)
  - [ ] Side income maximum reduction (80% of ALG 1)

#### Form Validation

- [ ] Test invalid inputs:
  - [ ] Negative income → Error message
  - [ ] Income > 10,000€ → Error message
  - [ ] Age < 16 or > 67 → Error message
  - [ ] Employment months < 0 or > 24 → Error message
  - [ ] Negative side income → Error message
- [ ] Test empty fields:
  - [ ] Missing income → Error message
  - [ ] Missing age → Error message
  - [ ] Employment months optional (should work without it)
- [ ] Test real-time validation:
  - [ ] Error messages appear/disappear correctly
  - [ ] Results update on input change (debounced)

#### Export Functionality

- [ ] Excel export:
  - [ ] File downloads correctly
  - [ ] File opens in Excel
  - [ ] Data is formatted correctly
  - [ ] All calculation data included
- [ ] PDF export:
  - [ ] Print dialog opens
  - [ ] Content displays correctly
  - [ ] All calculation data included
  - [ ] Formatting is correct

### 2. SEO Validation

#### Schema Markup

- [ ] Validate with Google Rich Results Test:
  - [ ] HowTo schema validates correctly
  - [ ] FAQPage schema validates correctly
  - [ ] WebPage schema validates correctly
  - [ ] BreadcrumbList schema validates correctly
- [ ] Test URL: https://search.google.com/test/rich-results

#### Meta Tags

- [ ] Title length: 50-60 characters ✅ (Current: 58 chars)
- [ ] Description length: 155-160 characters ✅ (Current: 157 chars)
- [ ] Canonical URL set correctly ✅
- [ ] Open Graph tags present ✅
- [ ] Twitter Card tags present ✅

#### Content

- [ ] H1 contains primary keyword ✅ ("Arbeitslosengeld-Rechner 2025")
- [ ] H2-H6 hierarchy correct ✅
- [ ] Keyword density natural (not over-optimized)
- [ ] Internal links present (CTA buttons, footer)
- [ ] FAQs address top search queries ✅

### 3. Mobile UX Testing

#### Responsiveness

- [ ] Test on iOS Safari:
  - [ ] Form inputs work correctly
  - [ ] No zoom on input focus (font-size: 16px)
  - [ ] Touch targets ≥ 44px ✅
  - [ ] Layout adapts correctly
- [ ] Test on Android Chrome:
  - [ ] Form inputs work correctly
  - [ ] No zoom on input focus
  - [ ] Touch targets ≥ 44px ✅
  - [ ] Layout adapts correctly

#### Keyboard Navigation

- [ ] Tab order logical
- [ ] Focus states visible
- [ ] Enter key submits form (if applicable)
- [ ] Mobile keyboard types correct (number inputs)

#### Accessibility

- [ ] ARIA labels present (if needed)
- [ ] Color contrast sufficient (WCAG AA)
- [ ] Screen reader compatible
- [ ] Keyboard-only navigation works

### 4. Performance Testing

#### PageSpeed Insights

- [ ] Run PageSpeed Insights (mobile):
  - [ ] LCP < 2.5s
  - [ ] FID < 100ms
  - [ ] CLS < 0.1
  - [ ] Overall score > 90
- [ ] Run PageSpeed Insights (desktop):
  - [ ] LCP < 2.5s
  - [ ] FID < 100ms
  - [ ] CLS < 0.1
  - [ ] Overall score > 90

#### Core Web Vitals

- [ ] LCP (Largest Contentful Paint) < 2.5s
- [ ] FID (First Input Delay) < 100ms
- [ ] CLS (Cumulative Layout Shift) < 0.1

#### Optimization

- [ ] CSS minified ✅ (uses tools-pages.min.css)
- [ ] JavaScript optimized (Alpine.js in head)
- [ ] Images optimized (if any)
- [ ] Fonts preloaded ✅

### 5. Cross-Browser Testing

- [ ] Chrome (latest)
- [ ] Firefox (latest)
- [ ] Safari (latest)
- [ ] Edge (latest)
- [ ] Mobile Safari (iOS)
- [ ] Mobile Chrome (Android)

### 6. Content Validation

#### FAQs

- [ ] All 15 FAQs display correctly
- [ ] FAQ schema matches content
- [ ] Answers are accurate and helpful
- [ ] No broken links or references

#### Copy Quality

- [ ] Uses "du" throughout ✅
- [ ] Ordio mentioned naturally (if applicable)
- [ ] No competitor praise ✅
- [ ] Benefit-driven copy ✅
- [ ] Clear, concise explanations ✅

## Known Issues Fixed

✅ **Fixed:** Employment months validation - now optional (only validates if provided)
✅ **Fixed:** PHP variable reference in Alpine.js template (changed to Alpine.js expression)

## Next Steps

### Immediate (Pre-Launch)

1. **Test Calculations:** Compare results with official Arbeitsagentur calculator
2. **Validate Schemas:** Use Google Rich Results Test
3. **Test Mobile:** Verify on real devices (iOS & Android)
4. **Performance Check:** Run PageSpeed Insights

### Post-Launch

1. **Monitor Analytics:**
   - Track calculator usage rate
   - Monitor bounce rate
   - Track conversion metrics
2. **SEO Monitoring:**
   - Google Search Console for impressions/clicks
   - Track keyword rankings
   - Monitor FAQ rich results
3. **User Feedback:**
   - Collect user feedback
   - Monitor error logs
   - Track calculation accuracy reports

### Future Enhancements

- Add email collection for export (optional, following other tools pattern)
- Add calculation history (localStorage)
- Add share functionality (URL parameters)
- Add more detailed breakdown options
- Consider adding ALG 2 calculator (if needed)

## Testing Scenarios

### Scenario 1: Basic Calculation

**Input:**

- Income: 2000€ netto
- Age: 35
- Children: No
- Employment months: 24

**Expected:**

- ALG 1: 1200€ (60% of 2000€)
- Duration: 12 months

### Scenario 2: With Children

**Input:**

- Income: 2000€ netto
- Age: 35
- Children: Yes
- Employment months: 24

**Expected:**

- ALG 1: 1340€ (67% of 2000€)
- Duration: 12 months

### Scenario 3: Maximum Cap

**Input:**

- Income: 5000€ netto
- Age: 35
- Children: No
- Region: West
- Employment months: 24

**Expected:**

- ALG 1: 2390€ (capped at maximum)
- Duration: 12 months

### Scenario 4: Age-Based Duration

**Input:**

- Income: 2000€ netto
- Age: 55
- Children: No
- Employment months: 24

**Expected:**

- ALG 1: 1200€
- Duration: 22 months (12 + (55-50)\*2)

### Scenario 5: Side Income

**Input:**

- Income: 2000€ netto
- Age: 35
- Children: No
- Side income: 520€
- Employment months: 24

**Expected:**

- Base ALG 1: 1200€
- Freibetrag: 165€
- Excess: 355€
- Reduction: ~71€ (355€ / 100 \* 20%)
- Final ALG 1: ~1129€

## Notes

- The calculator uses an estimate for Brutto→Netto conversion (65%). This is a simplification and may vary based on tax class.
- Employment months validation is optional - users can calculate without providing it, but if provided and < 12, an error is shown.
- Side income calculation follows official rules: 165€ Freibetrag, then 20% reduction per 100€ excess, max 80% reduction.
