# Brutto-Netto-Rechner - Comprehensive Documentation

**Last Updated:** 2026-01-08

## Tool Overview

### Basic Information

- **Tool Name:** Brutto-Netto-Rechner (Gross-to-Net Salary Calculator)
- **Slug:** `brutto-netto-rechner`
- **URL:** `https://www.ordio.com/tools/brutto-netto-rechner`
- **Status:** Available
- **Last Updated:** 2026-01-21

### Purpose

Comprehensive calculator for converting gross salary to net salary in Germany for 2026. Calculates net income after all deductions including income tax (Lohnsteuer), solidarity surcharge, church tax, health insurance, nursing care insurance, pension insurance, and unemployment insurance. Supports all 6 tax classes, all German states, and various employment types (full-time, part-time, Minijob, Midijob). Based on official German tax and social security contribution rates.

### Use Cases

- **Employees:** Calculate net salary from gross salary
- **Job Seekers:** Understand net income for salary negotiations
- **HR Professionals:** Calculate net salary for job offers
- **Employers:** Understand employee net income for compensation planning
- **Financial Planners:** Plan household budgets based on net income

### Real-World Scenarios

**Scenario 1: Job Seeker Evaluating Salary Offer**

- **User:** Professional considering new job offer
- **Situation:** Offered €50,000 gross salary, Tax Class I, living in Berlin
- **Goal:** Understand actual take-home pay to evaluate offer
- **Steps:**
  1. Enter €50,000 Bruttolohn
  2. Select Tax Class I
  3. Select Berlin (Bundesland)
  4. Review detailed breakdown: taxes, social security, net income
  5. Compare with current net income
- **Result:** Sees €50,000 gross = ~€32,000 net, can make informed decision
- **Related Tools:** [Einkommensteuer-Rechner](einkommensteuer-rechner-documentation.md) (for annual tax overview), [Minijob-Rechner](minijob-rechner-documentation.md) (if considering part-time)

**Scenario 2: HR Manager Preparing Job Offer**

- **User:** HR professional creating compensation package
- **Situation:** Need to offer €45,000 net salary, determine required gross salary
- **Goal:** Calculate gross salary needed to achieve target net income
- **Steps:**
  1. Use reverse calculation (trial and error)
  2. Start with estimated gross (e.g., €65,000)
  3. Calculate net, adjust gross until net matches target
  4. Consider different tax classes if applicable
  5. Document final gross salary for offer
- **Result:** Determines €65,000 gross needed for €45,000 net (Tax Class I)
- **Related Tools:** [Einkommensteuer-Rechner](einkommensteuer-rechner-documentation.md) (for tax planning), [Stundenlohnrechner](stundenlohnrechner-documentation.md) (for hourly rate conversion)

**Scenario 3: Married Couple Planning Household Budget**

- **User:** Married couple (Tax Class III/V) planning finances
- **Situation:** One spouse earns €60,000, other earns €30,000, planning monthly budget
- **Goal:** Calculate combined net income for budgeting
- **Steps:**
  1. Calculate net for Tax Class III (€60,000): ~€42,000 net
  2. Calculate net for Tax Class V (€30,000): ~€20,000 net
  3. Add net incomes together
  4. Use for monthly budget planning
- **Result:** Combined net income ~€62,000/year (~€5,167/month)
- **Related Tools:** [Einkommensteuer-Rechner](einkommensteuer-rechner-documentation.md) (for joint tax return planning)

**Scenario 4: Employee Comparing Full-Time vs Part-Time**

- **User:** Employee considering reducing hours
- **Situation:** Currently €60,000 full-time, considering 50% part-time (€30,000)
- **Goal:** Understand net income impact of reducing hours
- **Steps:**
  1. Calculate current net: €60,000 gross = ~€38,000 net
  2. Calculate part-time net: €30,000 gross = ~€22,000 net
  3. Compare net income difference
  4. Evaluate if 50% reduction in hours is worth 42% reduction in net
- **Result:** Sees net income drops from €38,000 to €22,000, can make informed decision
- **Related Tools:** [Minijob-Rechner](minijob-rechner-documentation.md) (if considering Minijob), [Midijob-Rechner](midijob-rechner-documentation.md) (if considering Midijob range)

### Target Audience

- Employees in Germany
- Job seekers
- HR professionals
- Employers
- Financial planners

### Visual Description

**Hero Section:**

- Layout: Centered hero section with headline and description
- Headline: Large bold headline "Brutto Netto Rechner 2026: Kostenlos Nettoeinkommen berechnen" with blue accent
- Description: Paragraph explaining calculator features (all tax classes, all states, current rates, detailed breakdown)
- Trust Indicators: Badges showing "2026 aktuell", "100% kostenlos"
- Background: Subtle dot pattern background

**Visual Examples (To Be Added):**

**Hero Section Screenshot:**

- Location: `docs/guides/tools-pages/screenshots/brutto-netto-rechner-hero.png`
- Description: Full hero section showing headline, description, and trust indicators
- Dimensions: 1920x1080 (desktop), 375x667 (mobile)
- Shows: Complete above-fold content with visual styling

**Calculator Form Screenshot:**

- Location: `docs/guides/tools-pages/screenshots/brutto-netto-rechner-form.png`
- Description: Calculator form showing all input fields (Bruttolohn, Steuerklasse, Bundesland, etc.)
- Dimensions: 1920x1080 (desktop)
- Shows: Input fields, radio buttons, select dropdowns, calculate button

**Result Display Screenshot:**

- Location: `docs/guides/tools-pages/screenshots/brutto-netto-rechner-results.png`
- Description: Results section showing net income, detailed breakdown cards, tax and contribution breakdowns
- Dimensions: 1920x1080 (desktop)
- Shows: Primary net income display, breakdown cards (taxes, social security), visual breakdown

**Tax Class Comparison Diagram:**

- Location: `docs/guides/tools-pages/diagrams/brutto-netto-rechner-tax-classes.svg`
- Description: Visual comparison of net income across all 6 tax classes for same gross salary
- Format: SVG (vector) for scalability
- Shows: Bar chart comparing net income by tax class, highlighting differences

**Calculator Form:**

- Layout: Centered single-column layout with grid for inputs
- Input Fields:
  - Bruttolohn: Number input (€) with validation (min: 0)
  - Steuerklasse: Radio button group (I-VI with descriptions)
  - Bundesland: Select dropdown (all 16 German states)
  - Kirchensteuer: Toggle switch (Ja/Nein)
  - Kinder: Number input (min: 0)
  - Krankenversicherung: Select dropdown (gesetzlich/privat)
  - Zusatzbeitrag: Number input (%) for health insurance
  - Alter: Number input (years, for pension insurance)
- Calculate Button: Auto-calculates on input change (debounced)
- Styling: Blue accent color (#4D8EF3), rounded inputs, responsive layout

**Result Display:**

- Layout: Below form, centered
- Results Summary: Large card showing:
  - Primary Result: Large bold display (blue accent) - Nettoeinkommen amount
  - Secondary Results: Summary cards showing:
    - Bruttolohn
    - Lohnsteuer
    - Solidaritätszuschlag
    - Kirchensteuer (if applicable)
    - Sozialabgaben gesamt
    - Krankenversicherung
    - Pflegeversicherung
    - Rentenversicherung
    - Arbeitslosenversicherung
    - Nettoeinkommen
- Detailed Breakdown: Expandable sections showing calculation details
- Export Buttons: Excel and PDF export (if implemented)
- Styling: White cards, blue accent for totals, responsive layout

### UI/UX Flow

**Initial Load:**

- Page loads with hero section visible
- Calculator form displayed with default values
- Default values:
  - Bruttolohn = 3,000€
  - Steuerklasse = I
  - Bundesland = Bayern
  - Kirchensteuer = Nein
  - Kinder = 0
  - Krankenversicherung = gesetzlich
  - Zusatzbeitrag = 1.6%
  - Alter = 30
- No results displayed initially

**Calculation Flow:**

1. User enters inputs (gross salary, tax class, state, etc.)
2. Calculation runs automatically (debounced, 300ms for numbers)
3. Results display below form
4. User can expand detailed breakdown sections
5. User can export results (if implemented)

**Input Validation:**

- Real-time validation on input change
- Error messages displayed for invalid inputs
- Calculation only runs with valid inputs

## Technical Documentation

### File Structure

- **PHP File:** `v2/pages/tools_bruttonettorechner.php` (~2,188 lines)
- **JavaScript Files:** Inline Alpine.js component in PHP file
- **CSS:** Uses shared `v2/css/tools-pages.css` plus inline critical CSS

### Calculation Modes

**Single Mode:**

The calculator has one calculation mode that handles all employment types:

**Mode: Gross-to-Net Calculation**

- **Visual Description:** Single form with all inputs, comprehensive results display
- **Purpose:** Calculate net salary from gross salary with all deductions
- **Input Fields:**
  - Bruttolohn: Number input (€), min=0, step=1, placeholder="3000"
  - Steuerklasse: Radio button group (I-VI)
    - I: Ledig
    - II: Alleinerziehend
    - III: Verheiratet, höheres Einkommen
    - IV: Verheiratet, gleiches Einkommen
    - V: Verheiratet, niedrigeres Einkommen
    - VI: Zweitjob
  - Bundesland: Select dropdown (all 16 German states)
  - Kirchensteuer: Toggle switch (Ja/Nein)
  - Kinder: Number input, min=0, step=1, placeholder="0"
  - Krankenversicherung: Select dropdown (gesetzlich/privat)
  - Zusatzbeitrag: Number input (%), min=0, step=0.1, placeholder="1.6"
  - Alter: Number input (years), min=18, max=67, placeholder="30"
- **Output Fields:**
  - Nettoeinkommen: Large display (blue accent)
  - Bruttolohn: Summary card
  - Lohnsteuer: Summary card
  - Solidaritätszuschlag: Summary card (if applicable)
  - Kirchensteuer: Summary card (if applicable)
  - Sozialabgaben gesamt: Summary card
  - Krankenversicherung: Summary card
  - Pflegeversicherung: Summary card
  - Rentenversicherung: Summary card
  - Arbeitslosenversicherung: Summary card
- **Formula:** Complex calculation involving multiple deductions
- **Calculation Steps:**
  1. Calculate income tax (Lohnsteuer) based on gross salary, tax class, and deductions
  2. Calculate solidarity surcharge (5.5% of income tax if above threshold)
  3. Calculate church tax (8-9% of income tax if applicable)
  4. Calculate social security contributions:
     - Health insurance: 7.3% + Zusatzbeitrag (employee share)
     - Nursing care insurance: 1.7% (with children) or 2.3% (without children)
     - Pension insurance: 9.3% (up to contribution assessment ceiling)
     - Unemployment insurance: 1.2% (up to contribution assessment ceiling)
  5. Calculate net income: Gross salary - All deductions
- **Example:**
  - Input: Bruttolohn = 3,000€, Steuerklasse = I, Bundesland = Bayern, Kirchensteuer = Nein, Kinder = 0, Krankenversicherung = gesetzlich, Zusatzbeitrag = 1.6%, Alter = 30
  - Calculation:
    - Lohnsteuer ≈ 350€ (based on tax class I)
    - Solidaritätszuschlag = 0€ (below threshold)
    - Kirchensteuer = 0€
    - Krankenversicherung = 3,000 × (7.3% + 1.6%) = 267€
    - Pflegeversicherung = 3,000 × 2.3% = 69€
    - Rentenversicherung = 3,000 × 9.3% = 279€
    - Arbeitslosenversicherung = 3,000 × 1.2% = 36€
    - Sozialabgaben gesamt = 267 + 69 + 279 + 36 = 651€
    - Total deductions = 350 + 0 + 0 + 651 = 1,001€
    - Nettoeinkommen = 3,000 - 1,001 = 1,999€
  - Output: Nettoeinkommen = 1,999€, Lohnsteuer = 350€, Sozialabgaben = 651€
- **Edge Cases:** Handles contribution assessment ceilings, tax class multipliers, church tax variations by state

### Constants and Thresholds

**2026 Values:**

- **Tax Constants:**

  - GRUNDFREIBETRAG: 12,348€ (annual)
  - KINDERFREIBETRAG: 6,828€ per child (annual)
  - SOLIDARITY_RATE: 5.5%
  - SOLIDARITY_THRESHOLD_SINGLE: 19,950€ (annual income tax)
  - SOLIDARITY_THRESHOLD_MARRIED: 39,900€ (annual income tax)
  - CHURCH_TAX_RATE_BW: 8% (Bayern, Baden-Württemberg)
  - CHURCH_TAX_RATE_OTHER: 9% (all other states)

- **Social Security Contribution Rates (2026):**

  - KRANKENVERSICHERUNG: 7.3% (employee share) + Zusatzbeitrag (varies by insurer)
  - PFLEGEVERSICHERUNG: 1.7% (with children) or 2.3% (without children)
  - RENTENVERSICHERUNG: 9.3% (employee share)
  - ARBEITSLOSENVERSICHERUNG: 1.3% (employee share)

- **Contribution Assessment Ceilings (2026):**
  - BEITRAGSBEMESSUNGSGRENZE_RV_AV: 8,450€/month (pension and unemployment insurance)
  - BEITRAGSBEMESSUNGSGRENZE_KV_PV: 5,812.50€/month (health and nursing care insurance)

**Previous Values (for reference):**

- 2025: Similar rates, contribution assessment ceilings updated annually

### Validation Rules

- Bruttolohn: min=0, step=1, no max limit (but practical limit ~50,000€/month)
- Steuerklasse: Must be I-VI
- Bundesland: Must be valid German state
- Kinder: min=0, step=1, integer only
- Zusatzbeitrag: min=0, step=0.1, typical range 0-3%
- Alter: min=18, max=67 (for pension insurance calculation)

### Edge Cases Handled

- Contribution assessment ceilings: Contributions capped at assessment ceilings
- Tax class multipliers: Different tax classes apply different multipliers
- Church tax: Only applies if toggle enabled and varies by state
- Multiple children: Kinderfreibetrag multiplied correctly
- High income: Contributions capped at assessment ceilings
- Low income: Minimum contributions apply

### Dependencies

- External Libraries: None (pure Alpine.js)
- APIs: None
- Alpine.js: Used for reactive UI (version from base/head.php)

### Code Organization

**File Structure:**

- PHP: `v2/pages/tools_bruttonettorechner.php` (~2,188 lines)
- JavaScript: Inline Alpine.js component in PHP file
- CSS: Shared `v2/css/tools-pages.css` plus inline critical CSS

**Code Patterns:**

- Alpine.js reactive data binding (`x-data`, `x-model`, `x-show`)
- Debounced calculations (300ms for numbers)
- Radio button styling (styled like select boxes)
- Input with addon styling (€ symbol)

### Functions & Methods

**Main Component Function:**

- Function Name: `bruttoNettoCalculator()` (inline Alpine.js component)
- Location: `v2/pages/tools_bruttonettorechner.php` (inline)
- Purpose: Main Alpine.js component with all calculator logic
- Returns: Alpine.js component object with state and methods

**Calculation Functions:**

- `calculateNetto()`: Main calculation function
  - Location: Inline in PHP file
  - Parameters: All input values
  - Returns: Complete calculation result object
- `calculateLohnsteuer()`: Calculates income tax
  - Location: Inline in PHP file
  - Parameters: Bruttolohn, Steuerklasse, Kinder, Bundesland
  - Returns: Income tax amount
- `calculateSozialabgaben()`: Calculates social security contributions
  - Location: Inline in PHP file
  - Parameters: Bruttolohn, Krankenversicherung, Zusatzbeitrag, Alter, Kinder
  - Returns: Social security contributions object

**Helper Functions:**

- `formatCurrency()`: Formats numbers as currency (€)
  - Location: Inline in PHP file
  - Parameters: amount
  - Returns: Formatted string (e.g., "3.000,00 €")
- `validateInputs()`: Validates all inputs
  - Location: Inline in PHP file
  - Parameters: All input values
  - Returns: Validation result

**Event Handlers:**

- `@input` handlers: Auto-calculation on input change (debounced)
- `x-init`: Initializes calculator on page load

### State Management

**Alpine.js State Variables:**

- `bruttolohn`: Gross salary (€)
- `steuerklasse`: Tax class (I-VI)
- `bundesland`: German state
- `kirchensteuer`: Boolean, whether church tax applies
- `kinder`: Number of children
- `krankenversicherung`: Health insurance type (gesetzlich/privat)
- `zusatzbeitrag`: Additional health insurance contribution (%)
- `alter`: Age (years)
- `results`: Calculation results object
- `showResults`: Boolean, whether to show results
- `hasError`: Boolean, whether there's an error
- `errorMessage`: String, error message text

**Computed Properties:**

- None explicitly defined (calculations triggered on input change)

**Watchers:**

- `$watch('bruttolohn')`: Triggers calculation on input change
- `$watch('steuerklasse')`: Triggers calculation on change
- `$watch('bundesland')`: Triggers calculation on change
- `$watch('kirchensteuer')`: Triggers calculation on change
- `$watch('kinder')`: Triggers calculation on input change
- `$watch('krankenversicherung')`: Triggers calculation on change
- `$watch('zusatzbeitrag')`: Triggers calculation on input change
- `$watch('alter')`: Triggers calculation on input change

**localStorage:**

- Not currently implemented

**URL Parameters:**

- Not currently implemented

## Calculation Logic

### Formula Documentation

**Primary Formula (Gross-to-Net Conversion):**

The German gross-to-net calculation involves multiple deductions:

```
Monthly Gross Salary = Bruttolohn

Step 1: Calculate Income Tax (Lohnsteuer)
  Annual Gross = Bruttolohn × 12
  Taxable Income = Annual Gross - Grundfreibetrag - (Kinder × Kinderfreibetrag)
  Income Tax = Progressive Tax Calculation (based on tax class)
  Monthly Income Tax = Annual Income Tax / 12

Step 2: Calculate Solidarity Surcharge
  If Annual Income Tax > Threshold:
    Solidarity Surcharge = Monthly Income Tax × 5.5%
  Else:
    Solidarity Surcharge = 0€

Step 3: Calculate Church Tax
  If Kirchensteuer = Ja:
    Church Tax Rate = 8% (Bayern/BW) or 9% (other states)
    Church Tax = Monthly Income Tax × Church Tax Rate
  Else:
    Church Tax = 0€

Step 4: Calculate Social Security Contributions
  Health Insurance:
    If Krankenversicherung = gesetzlich:
      Health Insurance = Bruttolohn × (7.3% + Zusatzbeitrag%)
      Capped at: BEITRAGSBEMESSUNGSGRENZE_KV_PV
    Else:
      Health Insurance = 0€ (private insurance)

  Nursing Care Insurance:
    If Kinder > 0:
      Nursing Care = Bruttolohn × 1.7%
    Else:
      Nursing Care = Bruttolohn × 2.3%
    Capped at: BEITRAGSBEMESSUNGSGRENZE_KV_PV

  Pension Insurance:
    Pension = Bruttolohn × 9.3%
    Capped at: BEITRAGSBEMESSUNGSGRENZE_RV_AV

  Unemployment Insurance:
    Unemployment = Bruttolohn × 1.2%
    Capped at: BEITRAGSBEMESSUNGSGRENZE_RV_AV

Step 5: Calculate Net Income
  Total Deductions = Income Tax + Solidarity + Church Tax + Health Insurance + Nursing Care + Pension + Unemployment
  Net Income = Gross Salary - Total Deductions
```

**Step-by-Step Process:**

1. Convert monthly gross to annual gross (× 12)
2. Calculate taxable income (annual gross - deductions)
3. Calculate annual income tax using progressive tax brackets
4. Convert annual tax to monthly tax (÷ 12)
5. Calculate solidarity surcharge (if applicable)
6. Calculate church tax (if applicable)
7. Calculate social security contributions (capped at assessment ceilings)
8. Sum all deductions
9. Calculate net income (gross - deductions)

### Example Calculation

**Input:**

- Bruttolohn: 3,000€/month
- Steuerklasse: I (Ledig)
- Bundesland: Bayern
- Kirchensteuer: Nein
- Kinder: 0
- Krankenversicherung: gesetzlich
- Zusatzbeitrag: 1.6%
- Alter: 30

**Calculation:**

1. Annual Gross = 3,000 × 12 = 36,000€
2. Taxable Income = 36,000 - 12,348 - 1,230 = 22,422€
3. Annual Income Tax ≈ 2,500€ (progressive calculation)
4. Monthly Income Tax = 2,500 / 12 ≈ 208€
5. Solidarity Surcharge = 0€ (below threshold)
6. Church Tax = 0€ (not applicable)
7. Social Security Contributions:
   - Health Insurance = 3,000 × (7.3% + 1.6%) = 267€
   - Nursing Care = 3,000 × 2.3% = 69€
   - Pension = 3,000 × 9.3% = 279€
   - Unemployment = 3,000 × 1.2% = 36€
   - Total Social Security = 267 + 69 + 279 + 36 = 651€
8. Total Deductions = 208 + 0 + 0 + 651 = 859€
9. Net Income = 3,000 - 859 = 2,141€

**Expected Result:**

- Nettoeinkommen: 2,141€
- Lohnsteuer: 208€
- Solidaritätszuschlag: 0€
- Kirchensteuer: 0€
- Sozialabgaben gesamt: 651€
  - Krankenversicherung: 267€
  - Pflegeversicherung: 69€
  - Rentenversicherung: 279€
  - Arbeitslosenversicherung: 36€

### Legal Basis

- **Einkommensteuergesetz (EStG) §32a:** Progressive income tax brackets
- **Lohnsteuerrichtlinien:** Monthly income tax calculation
- **Sozialgesetzbuch (SGB):** Social security contribution rates
- **Beitragsbemessungsgrenzen-Verordnung:** Contribution assessment ceilings
- **Kirchensteuergesetze:** Church tax rates by state

## Content Documentation

### Hero Section

- **H1:** "Brutto Netto Rechner 2026: Kostenlos Nettoeinkommen berechnen"
- **Description:** "Kostenloser Brutto Netto Rechner 2026: Nettoeinkommen, Lohnsteuer & Sozialabgaben berechnen. Aktuelle Steuersätze, alle Bundesländer & Steuerklassen."

### Educational Content Sections

1. **How It Works**

   - Step 1: Enter gross salary, tax class, state, and other details
   - Step 2: View results with detailed breakdown
   - Step 3: Understand all deductions

2. **Tax Class Information**

   - Explanation of all 6 tax classes
   - When to use each tax class
   - Impact on net income

3. **Social Security Contributions**
   - Health insurance explanation
   - Nursing care insurance explanation
   - Pension insurance explanation
   - Unemployment insurance explanation

### FAQ Section

- **Total FAQs:** 8 questions
- **FAQ Topics:**
  - Brutto vs Netto: 1 FAQ
  - Calculator functionality: 1 FAQ
  - Tax classes: 1 FAQ
  - Tax rates: 1 FAQ
  - Church tax: 1 FAQ
  - Solidarity surcharge: 1 FAQ
  - Bundesland importance: 1 FAQ
  - Minijob/Teilzeit: 1 FAQ
  - Ordio integration: 1 FAQ

**Sample FAQs:**

1. **Was ist der Unterschied zwischen Brutto und Netto?**

   - Answer: Bruttolohn is salary before deductions, Nettolohn is what you actually receive. Difference includes income tax, solidarity surcharge, church tax, and all social security contributions.

2. **Wie funktioniert der Brutto-Netto-Rechner?**

   - Answer: Enter gross salary, tax class, state, and other details. Calculator automatically applies all current tax rates and social security contributions. Results show detailed breakdown of all deductions.

3. **Welche Steuerklassen gibt es?**

   - Answer: 6 tax classes: I (Ledige), II (Alleinerziehende), III (Verheiratet, höheres Einkommen), IV (Verheiratet, gleiches Einkommen), V (Verheiratet, niedrigeres Einkommen), VI (Zweitjob). Tax class significantly affects net income.

4. **Sind die Steuersätze für 2026 aktuell?**

   - Answer: Yes, calculator uses current rates and contribution assessment ceilings for 2026. All calculations based on official guidelines from Bundesfinanzministerium and social security agencies.

5. **Wie wird die Kirchensteuer berechnet?**

   - Answer: Church tax is calculated on income tax: 8% in Bayern and Baden-Württemberg, 9% in all other states. Only applies if you're a member of a church that collects church tax.

6. **Was ist der Solidaritätszuschlag?**

   - Answer: Additional surcharge of 5.5% on income tax. There's a threshold of 19,950€ income tax (single) or 39,900€ (married). Only calculated if income tax exceeds threshold.

7. **Warum ist das Bundesland wichtig beim Brutto Netto Rechner?**

   - Answer: Bundesland affects net income mainly through church tax: Bayern & Baden-Württemberg 8%, all other states 9%. Contribution assessment ceilings are uniform nationwide since 2026.

8. **Wie berechne ich mein Nettoeinkommen bei Minijob oder Teilzeit?**
   - Answer: Minijob (up to 520€/month) has flat-rate contributions without income tax and social security. Midijob (520-2,000€) has sliding social security and reduced income tax. Teilzeit is calculated normally but proportionally based on working hours.

### Meta Tags

- **Title:** "Brutto Netto Rechner 2026: Kostenlos Nettoeinkommen berechnen - Ordio"
- **Description:** "Kostenloser Brutto Netto Rechner 2026: Nettoeinkommen, Lohnsteuer & Sozialabgaben berechnen. Aktuelle Steuersätze, alle Bundesländer & Steuerklassen."
- **Keywords:** "brutto netto rechner, brutto netto rechner 2026, netto brutto rechner, brutto netto rechner 2024, gehaltsrechner, lohnsteuer, nettoeinkommen, sozialabgaben, steuerklassen, kostenlos"

### Schema Markup

- **WebPage schema:** Page metadata
- **WebApplication schema:** Calculator application metadata
- **FAQPage schema:** 8 FAQ questions and answers
- **BreadcrumbList schema:** Navigation breadcrumbs

### Internal Linking

- Links to: Other tax calculators, Ordio Payroll product page
- Link count: ~5-10 internal links

## Change Log

### Update History

**2026-01-08:**

- Created comprehensive documentation
- Documented calculation logic and formulas
- Extracted FAQs from schema markup
- Documented technical implementation
- Added calculation examples

**Previous Updates:**

- Tool created with 2026 tax rates
- Rates updated annually for new tax year

## Annual Update Checklist

**For Annual Updates (typically January):**

- [ ] Update "Last Updated" date
- [ ] Update constants section with new values (contribution rates, assessment ceilings)
- [ ] Update example calculations with new values
- [ ] Update content sections (H1, descriptions, FAQs) with new year
- [ ] Update 2026 Update Requirements section (mark complete)
- [ ] Remove any "(pending verification)" notes
- [ ] Verify all legal references are current
- [ ] Update meta tags if needed
- [ ] Update schema markup if needed
- [ ] Test all calculations with new values
- [ ] Document changes in change log

## 2026 Update Requirements

### Immediate Updates (Required for Jan 1, 2026)

**Constants/Values:**

- [x] Contribution rates verified for 2026
- [x] Contribution assessment ceilings updated
- [x] Tax rates verified
- [x] All rates and thresholds verified

**Content:**

- [x] Updated year references: "2025" → "2026"
- [x] Updated meta tags
- [x] Updated FAQs with 2026 information

**Priority:** High

### Throughout 2026 Updates

**Scheduled Updates:**

- None currently scheduled

### Monitoring Requirements

- **Source:** Bundesfinanzministerium (BMF) tax updates, Sozialversicherungsträger contribution rate updates
- **Frequency:** Annually (typically December for next year)

## Testing

### Test Cases

**Normal Cases:**

- Test 1: 3,000€ gross, Steuerklasse I → Expected: ~2,100€ net
- Test 2: 5,000€ gross, Steuerklasse III → Expected: Higher net due to tax class benefits
- Test 3: 8,000€ gross, Steuerklasse I → Expected: Contributions capped at assessment ceilings

**Edge Cases:**

- Edge case 1: Very low income (<1,000€) → Expected: Minimum contributions apply
- Edge case 2: Very high income (>10,000€) → Expected: Contributions capped at assessment ceilings
- Edge case 3: Multiple children → Expected: Lower tax due to Kinderfreibetrag

### Code Analysis

**Key Functions Location:**

- Main component: `v2/pages/tools_bruttonettorechner.php` (inline Alpine.js)
- Calculation functions: Inline in PHP file
- Helper functions: Inline in PHP file

**Constants Location:**

- Calculation constants: Inline in PHP file or Alpine.js component
- Configuration constants: Same location

**Calculation Logic Flow:**

1. Step 1: Input received (debounced)
2. Step 2: Validation (check inputs)
3. Step 3: Calculate income tax
4. Step 4: Calculate surcharges (solidarity, church tax)
5. Step 5: Calculate social security contributions
6. Step 6: Format and display results

**State Management Flow:**

- Initialization: Default values set
- Updates: Reactive updates via Alpine.js on input change
- Dependencies: None external

**Event Handler Flow:**

- Input events: Debounced calculation triggers
- Calculation triggers: Automatic on input change
- Export triggers: Not currently implemented

### Export Functionality

**Excel Export:**

- **Status:** Not currently implemented
- **Future:** Could be added similar to Einkommensteuer-Rechner

**PDF Export:**

- **Status:** Not currently implemented
- **Future:** Could be added similar to Einkommensteuer-Rechner

### Results & Insights

**Result Display:**

- **Primary Results:** Nettoeinkommen (large display)
- **Secondary Results:** All deductions broken down
- **Result Formatting:** Currency (€), German number format
- **Result Styling:** Blue accent for primary result, summary cards

**Result Breakdowns:**

- **Tax Breakdown:** Shows income tax, solidarity, church tax separately
- **Social Security Breakdown:** Shows each contribution separately
- **Total Breakdown:** Shows gross, all deductions, net

**Insights Provided:**

- **Net Income:** Shows actual take-home pay
- **Deduction Breakdown:** Shows where money goes
- **Tax Optimization:** Different tax classes show different net incomes

### Browser Testing Results

**Desktop Browsers:**

- **Chrome:** Tested, status: Working
- **Firefox:** Tested, status: Working
- **Safari:** Tested, status: Working
- **Edge:** Tested, status: Working

**Mobile Testing:**

- **iOS Safari:** Tested, status: Working, responsive layout
- **Android Chrome:** Tested, status: Working, responsive layout
- **Mobile UI Differences:** Stacked layout, touch-friendly inputs
- **Mobile Interactions:** Touch-optimized radio buttons and inputs

**Responsive Design:**

- **Desktop (>1024px):** Full layout, side-by-side inputs
- **Tablet (768px-1024px):** Adjusted grid, stacked cards
- **Mobile (<768px):** Single column, stacked inputs, full-width cards
- **Breakpoints:** 768px, 1024px

**Accessibility:**

- **Keyboard Navigation:** Full keyboard support, tab order logical
- **Screen Reader:** ARIA labels, role attributes
- **ARIA Labels:** All inputs labeled, results announced
- **Focus Management:** Focus moves logically through form
- **Color Contrast:** WCAG AA compliant

**Performance:**

- **Page Load Time:** <2s (optimized)
- **Calculation Speed:** <50ms (debounced)
- **Large Data Handling:** Efficient for all income ranges

## Maintenance Notes

### Known Issues

- None currently documented

### Future Improvements

- Add Excel/PDF export functionality
- Add URL parameter support for pre-filling inputs
- Add share functionality
- Add historical comparison (compare 2025 vs 2026)
- Add Minijob/Midijob specific calculations

### Related Tools

**Complementary Tools:**

- **[Einkommensteuer-Rechner](einkommensteuer-rechner-documentation.md)** - Calculate annual income tax

  - Use together when: Need detailed annual tax calculation after monthly net calculation
  - Example workflow: Calculate monthly net → Use Einkommensteuer-Rechner for annual tax overview

- **[Minijob-Rechner](minijob-rechner-documentation.md)** - Calculate net salary for Minijob (€0-€603/month)

  - Use together when: Comparing Minijob income with regular employment
  - Example workflow: Calculate regular employment net → Calculate Minijob net → Compare take-home pay

- **[Midijob-Rechner](midijob-rechner-documentation.md)** - Calculate net salary for Midijob (€603-€2,000/month)

  - Use together when: Comparing Midijob income with regular employment
  - Example workflow: Calculate regular employment net → Calculate Midijob net → Compare options

- **[Stundenlohnrechner](stundenlohnrechner-documentation.md)** - Calculate hourly wage from monthly salary
  - Use together when: Converting monthly net salary to hourly rate
  - Example workflow: Calculate monthly net → Convert to hourly rate for comparison

**Alternative Tools:**

- **[Minijob-Rechner](minijob-rechner-documentation.md)** - Use instead when income is €0-€603/month

  - Use instead when: Calculating for Minijob range (no taxes, simplified calculation)

- **[Midijob-Rechner](midijob-rechner-documentation.md)** - Use instead when income is €603-€2,000/month
  - Use instead when: Calculating for Midijob range (Gleitzone calculation)

**Sequential Tools:**

- **[Einkommensteuer-Rechner](einkommensteuer-rechner-documentation.md)** - Annual tax calculation
  - Use after: Calculating monthly net salary
  - Use before: Annual tax planning and filing

## Test Coverage

### Automated Testing

The Brutto-Netto-Rechner includes comprehensive automated test coverage via `v2/scripts/dev-helpers/test-brutto-netto-calculations.js`.

**Test Suite Overview:**
- **Total Test Cases:** 51
- **Coverage Areas:**
  - Basic Calculation Tests (5 tests)
  - Tax Class Tests (7 tests)
  - State and Church Tax Tests (5 tests)
  - Children Tests (5 tests)
  - Social Security Tests (8 tests)
  - Solidarity Surcharge Tests (4 tests)
  - Tax Bracket Tests (5 tests)
  - Edge Cases (6 tests)
  - Constant Verification Tests (6 tests)

**Running Tests:**
```bash
node v2/scripts/dev-helpers/test-brutto-netto-calculations.js
```

**Test Results:** All 51 tests pass (100% pass rate)

**Key Test Scenarios:**
- Different gross salaries (low, medium, high, very high)
- All 6 tax classes (I-VI)
- All German states (with/without church tax)
- With/without children (including care insurance discounts)
- Different health insurance types (statutory, private)
- BBG application (below, at, above limits)
- Solidarity surcharge thresholds
- Tax bracket boundaries
- Edge cases (zero salary, very high salary, multiple children)

**Test Constants Verified:**
- Grundfreibetrag: 12,348€ ✅
- Kinderfreibetrag: 6,828€ ✅
- Kindergeld: 259€/month ✅
- Solidarity thresholds: 20,350€/40,700€ ✅
- BBG RV/AV: 8,450€/month ✅
- BBG KV/PV: 5,812.50€/month ✅
- All social security rates ✅

## References

### Official Sources

- **Bundesfinanzministerium:** https://www.bundesfinanzministerium.de (tax rates)
- **Bundesagentur für Arbeit:** https://www.arbeitsagentur.de (unemployment insurance)
- **Deutsche Rentenversicherung:** https://www.deutsche-rentenversicherung.de (pension insurance)
- **GKV-Spitzenverband:** https://www.gkv-spitzenverband.de (health insurance)

### Documentation Files

- [Tool Documentation Template](../TOOL_DOCUMENTATION_TEMPLATE.md)
- [Tools Inventory](../../content/tools/TOOLS_INVENTORY.md)
- [Tools Pages Guide](../README.md)
- [Einkommensteuer-Rechner Documentation](./einkommensteuer-rechner-documentation.md) - Related calculator
