# Formulas Reference - 2026 Calculator Analysis

**Date:** 2026-01-07  
**Purpose:** Document all calculation formulas used in calculators

## Minijob Calculator Formulas

### Mode 1: Basic Mode (Employee Perspective)

**Formula:**

```
If Rentenversicherung = false (exempt):
  Netto = Brutto

If Rentenversicherung = true:
  RV-Abzug = Brutto × 3.6%
  Netto = Brutto - RV-Abzug
```

**Legal Basis:** Minijob regulations (SGB IV)

**Validation:**

- Brutto: 0-603 € (2026 Minijob Grenze)

---

### Mode 2: Advanced Mode (Employee Perspective)

**Hourly to Monthly Conversion:**

```
Brutto = Stundenlohn × Stunden/Woche × 4.33
If Brutto > 603: Brutto = 603 (capped at Minijob Grenze)
```

**Net Calculation:**

```
Same as Basic Mode
```

**Net Hourly Rate:**

```
Netto pro Stunde = Netto / (Stunden/Woche × 4.33)
```

**Legal Basis:** Minijob regulations, Arbeitszeitgesetz

---

### Mode 3: Employer Mode

**Gewerblich (Commercial) Contributions:**

```
RV = Brutto × 15%
KV = Brutto × 13%
Pauschalsteuer = Brutto × 2%
Umlage U1 = Brutto × ~1.0%
Umlage U2 = Brutto × 0.24%
Umlage U3 = Brutto × ~0.09%
Unfallversicherung = Brutto × ~1.3%
Total = ~32.63% of Brutto
```

**Privathaushalt (Private Household) Contributions:**

```
RV = Brutto × 5%
KV = Brutto × 5%
Pauschalsteuer = Brutto × 2%
Umlage U1 = Brutto × 0.9%
Umlage U2 = Brutto × 0.24%
Total = ~13.14% of Brutto
```

**Legal Basis:** Minijob-Zentrale regulations

---

### Mode 4: Vacation Mode

**Vacation Entitlement:**

```
Full Year Entitlement = (24 days / 6 days) × Workdays per Week
Full Year Entitlement = 4 × Workdays per Week

If started mid-year:
  Months Worked = 13 - Start Month
  Entitlement = ceil((Full Year Entitlement / 12) × Months Worked)
```

**Legal Basis:** BUrlG (Bundesurlaubsgesetz)

---

## Midijob Calculator Formulas

### Gleitzone Calculation (F-Factor)

**Beitragspflichtiges Entgelt:**

```
If Brutto ≤ 2000 (Midijob Obergrenze):
  Beitragspflichtiges Entgelt = F-Factor × Brutto
  F-Factor = 0.6683 (2026)

  Ensure: Beitragspflichtiges Entgelt ≥ 603.01 (Untergrenze)

If Brutto > 2000:
  Beitragspflichtiges Entgelt = Brutto (full contributions)
```

**Legal Basis:** SGB IV §20 (Gleitzone)

---

### Social Security Contributions

**Employee Contributions (on Beitragspflichtiges Entgelt):**

```
RV = Beitragspflichtiges Entgelt × 9.3% (if not exempt)
ALV = Beitragspflichtiges Entgelt × 1.3%
KV = Beitragspflichtiges Entgelt × (7.3% + Zusatzbeitrag%)
PV = CalculatePflegeversicherung(Beitragspflichtiges Entgelt, 'employee')
```

**Employer Contributions (on Beitragspflichtiges Entgelt):**

```
RV = Beitragspflichtiges Entgelt × 9.3%
ALV = Beitragspflichtiges Entgelt × 1.3%
KV = Beitragspflichtiges Entgelt × 7.3%
PV = CalculatePflegeversicherung(Beitragspflichtiges Entgelt, 'employer')
```

**Legal Basis:** SGB IV, Sozialversicherungsbeitragssätze

---

### Pflegeversicherung Calculation

**Standard Rates:**

```
If Kinderanzahl > 0:
  Rate = 1.7% employee (3.4% total)

If Kinderanzahl = 0 AND Age ≥ 23:
  Rate = 1.875% employee (3.75% total) OR 2.1% employee (4.2% total)?
  ⚠️ DISCREPANCY: Needs verification

If Bundesland = Sachsen (DE-SN):
  Employee: 2.025%
  Employer: 1.025%
```

**Legal Basis:** SGB XI (Pflegeversicherungsgesetz)

---

### Income Tax Calculation (2026 Formula - CORRECT)

**Taxable Income (zvE):**

```
If Steuerklasse = 6:
  zvE = max(0, Jahresbrutto - Kinderfreibetrag - Sonderausgaben - Werbungskosten - Jahresfreibetrag)

Else:
  zvE = max(0, Jahresbrutto - Grundfreibetrag - Kinderfreibetrag - Sonderausgaben - Werbungskosten - Jahresfreibetrag)
```

**Tax Brackets (2026):**

```
If zvE ≤ 12348:
  Jahressteuer = zvE × 0.14

Else if zvE ≤ 68429:
  Jahressteuer = 1693.44 + (zvE - 12348) × 0.24

Else if zvE ≤ 277825:
  Jahressteuer = 15213.36 + (zvE - 68429) × 0.42

Else:
  Jahressteuer = 103159.68 + (zvE - 277825) × 0.45
```

**Tax Class Adjustments:**

```
SK 1, 4: No adjustment
SK 2: zvE = max(0, zvE - 4260) // Entlastungsbetrag
SK 3: zvE = zvE / 2 // Ehegattensplitting
SK 5: zvE = zvE × 1.6 // Approximation
SK 6: zvE = zvE + Grundfreibetrag // No Grundfreibetrag for second job
```

**Legal Basis:** EStG §32a (Einkommensteuergesetz)

**⚠️ ISSUE:** Midijob calculator uses old formula (starts at 17005) - needs update!

---

### Solidaritätszuschlag Calculation (2026 - CORRECT)

**Formula:**

```
JahresLohnsteuer = MonatlicheLohnsteuer × 12

If Steuerklasse = 3 or 4 (married):
  Freigrenze = 40700 €
Else:
  Freigrenze = 20350 €

If JahresLohnsteuer > Freigrenze:
  Solidaritätszuschlag = (JahresLohnsteuer - Freigrenze) × 0.119 × 0.055
Else:
  Solidaritätszuschlag = 0

MonatlicherSolidaritätszuschlag = Solidaritätszuschlag / 12
```

**Legal Basis:** SolZG (Solidaritätszuschlaggesetz)

**⚠️ ISSUE:** Both calculators use old values - needs update!

---

### Kirchensteuer Calculation

**Formula:**

```
If Kirchensteuer = true:
  If Bundesland = Bayern OR Baden-Württemberg:
    Kirchensteuer = Lohnsteuer × 8%
  Else:
    Kirchensteuer = Lohnsteuer × 9%
Else:
  Kirchensteuer = 0
```

**Legal Basis:** State church tax laws

---

### Net Salary Calculation

**Formula:**

```
Gesamtabzüge = SozialversicherungArbeitnehmer + Lohnsteuer +
                Solidaritätszuschlag + Kirchensteuer

Nettogehalt = Bruttogehalt - Gesamtabzüge
```

---

## Stundenlohn Calculator Formulas

### Conversion Formulas

**Stundenlohn from Monatslohn:**

```
Stundenlohn = Monatslohn / (Wochenstunden × 4.3333)
```

**Stundenlohn from Jahreslohn:**

```
Stundenlohn = Jahreslohn / (Wochenstunden × 52)
```

**Monatslohn from Stundenlohn:**

```
Monatslohn = Stundenlohn × Wochenstunden × 4.3333
```

**Jahreslohn from Stundenlohn:**

```
Jahreslohn = Stundenlohn × Wochenstunden × 52
```

**Legal Basis:** Standard time conversion formulas

---

### Pro Mode Calculations

**Uses same formulas as Brutto-Netto calculator:**

- Tax calculation (2026 formula)
- Social security contributions
- Solidaritätszuschlag
- Kirchensteuer

---

## Arbeitslosengeld Calculator Formulas

### Base ALG Calculation

**Formula:**

```
If Income Type = 'brutto':
  NettoIncome = BruttoIncome × 0.80 // Pauschalabzug 20%

If Has Children:
  ALG Percentage = 67%
Else:
  ALG Percentage = 60%

Base ALG = NettoIncome × (ALG Percentage / 100)
```

**Legal Basis:** SGB III §150

---

### Maximum Cap Application

**Formula:**

```
If Region = 'west':
  Max ALG = 2390 €/month
Else:
  Max ALG = 2320 €/month

Final ALG = min(Base ALG, Max ALG)
```

**Legal Basis:** SGB III §150

---

### Duration Calculation

**Formula:**

```
Base Duration = Employment Months / 2
Base Duration = max(6, min(Base Duration, 12)) // Min 6, Max 12 for age < 50

If Age ≥ 50:
  Additional Months = (Age - 50) × 2
  Duration = Base Duration + Additional Months
  Duration = min(Duration, 24) // Max 24 months total
```

**Legal Basis:** SGB III §127

---

### Side Income Impact

**Formula:**

```
Freibetrag = 165 €/month

If Side Income ≤ Freibetrag:
  Reduction = 0
Else:
  Excess = Side Income - Freibetrag
  Reduction = (Excess / 100) × 20% × ALG
  Reduction = min(Reduction, ALG × 80%) // Max 80% reduction

Final ALG = ALG - Reduction
```

**Legal Basis:** SGB III §157

---

## Brutto-Netto Calculator Formulas

### Uses Same Formulas as Midijob Calculator

**Key Differences:**

- Uses correct 2026 tax formula (starts at 12348) ✅
- Uses correct 2026 Solidaritätszuschlag thresholds (20350/40700) - but currently has old values ❌
- Uses Pflegeversicherung rates: 3.4%/3.75% ✅

**See Midijob Calculator Formulas section above for details.**

---

## Mehrwertsteuer Calculator Formulas

### Net to Gross

**Formula:**

```
MwSt = Netto × (MwSt-Satz / 100)
Brutto = Netto + MwSt
```

### Gross to Net

**Formula:**

```
Netto = Brutto / (1 + (MwSt-Satz / 100))
MwSt = Brutto - Netto
```

**Legal Basis:** UStG (Umsatzsteuergesetz)

---

## Zuschlags Calculator Formulas

### Surcharge Calculation

**Formula:**

```
NachtZuschlag = NachtStunden × Stundenlohn × (NachtZuschlag% / 100)
SonntagZuschlag = SonntagStunden × Stundenlohn × (SonntagZuschlag% / 100)
FeiertagZuschlag = FeiertagStunden × Stundenlohn × (FeiertagZuschlag% / 100)
SamstagZuschlag = SamstagStunden × Stundenlohn × (SamstagZuschlag% / 100)

TotalZuschlag = NachtZuschlag + SonntagZuschlag + FeiertagZuschlag + SamstagZuschlag
TotalEarnings = BaseWage × TotalHours + TotalZuschlag
```

**Legal Basis:** Tariff agreements, Arbeitszeitgesetz

**Default Rates:**

- Nacht: 25%
- Sonntag: 50%
- Feiertag: 100%
- Samstag: 25%

**Note:** Rates are tariff-dependent, defaults may vary

---

## Arbeitszeit Calculator Formulas

### Working Time Calculation

**Formula:**

```
Work Minutes = (End Time - Start Time) - Break Minutes
Daily Hours = Work Minutes / 60
```

### Overtime Calculation

**Formula:**

```
Contract Hours = Contract Hours per Week × Weeks in Period
Actual Hours = Sum of Daily Hours
Overtime = max(0, Actual Hours - Contract Hours)
```

**Legal Basis:** Arbeitszeitgesetz, Tariff agreements

---

## Summary of Formula Issues

### Critical Issues:

1. **Midijob Tax Formula:** Uses old 2025 formula (starts at 17005) - needs update to 2026 formula (starts at 12348)
2. **Solidaritätszuschlag:** Both calculators use old thresholds - needs update to 20350/40700
3. **Pflegeversicherung:** Discrepancy between calculators - needs verification and alignment

### Verified Correct:

1. ✅ Minijob formulas
2. ✅ Gleitzone F-Factor calculation
3. ✅ ALG calculation formulas
4. ✅ Brutto-Netto tax formula (2026 correct version)
5. ✅ VAT formulas
6. ✅ Working time formulas

---

## Next Steps

1. Update Midijob tax formula to 2026 version
2. Update Solidaritätszuschlag thresholds in both calculators
3. Verify and align Pflegeversicherung rates
4. Create test cases for all formulas
5. Verify calculations against official sources
