The Problem
Economic crises, pandemics, and industry downturns trigger government mechanisms that reduce working hours without fully terminating employment. These aren't voluntary part-time arrangements — they're state-mandated programs with specific legal frameworks, benefit formulas, and social security implications that diverge fundamentally from normal payroll logic.
The core challenge: the employee's actual earnings and their social security base are no longer the same number. In Germany's Kurzarbeit (KUG), social security contributions are calculated on fictional earnings (Fiktivlohn) that don't correspond to actual pay. In Spain's ERTE, the reduction percentage creates proportional bases that follow different rules depending on whether the suspension is total or partial. In Belgium's temporary unemployment (TAO), the employer pays a declining sick-pay schedule over four weeks before the mutual fund takes over.
Key insight: Crisis payroll creates a fundamental split between what the employee receives and what the social security system treats as their earnings base. Germany's KUG calculates contributions on 80% of the lost earnings — money that was never paid. This "fictional SV base" (fiktives Entgelt, § 232a SGB V) means the payroll system must maintain two parallel earning tracks: actual pay for net calculation and fictional pay for contribution calculation.
Then add one-time payments to the mix. A Christmas bonus paid during a KUG period follows specific exclusion rules — it cannot inflate the KUG benefit calculation (§ 106 Abs. 1 SGB III). In Spain, an ERTE that overlaps with termination (finiquito) requires careful sequencing: the ERTE reduction applies to ongoing salary but not to statutory severance components. In Belgium, the transition from employer-paid sick leave to mutual fund benefits follows a multi-week schedule that interacts with the TAO status.
Each country's mechanism evolved from different labor law traditions, and each produces different arithmetic — but all share the same fundamental complexity: the payroll system must simultaneously track what was actually paid, what would have been paid, what the government compensates, and what the social security system considers as the contribution base. Four numbers, four different derivation rules, one employee.
How It Works
Germany: Kurzarbeit (KUG) — §§ 95–109 SGB III
Kurzarbeit is Germany's flagship labor market stabilization tool. During qualifying economic disruptions, employers reduce working hours (partially or fully) and employees receive Kurzarbeitergeld from the Bundesagentur für Arbeit to partially compensate the income loss.
The Soll/Ist calculation
KUG is calculated as the difference between two fictional net pay figures:
- Soll-Entgelt (target earnings) — what the employee would earn at full hours in the current period, capped at the BBG (Beitragsbemessungsgrenze) for KV/PV: EUR 66,150/year = EUR 5,512.50/month in 2026
- Ist-Entgelt (actual earnings) — what the employee actually earns at reduced hours
- KUG benefit = 60% × (Soll-Netto − Ist-Netto), or 67% if the employee has at least one child (Leistungssatz 1 vs. 2)
The "Netto" in this formula isn't the real net — it's a fictional net calculated using the KUG-Tabelle (Leistungstabelle), which applies standardized deduction rates to avoid individual tax circumstances distorting the benefit. The current rates: 20% Lohnsteuer-Pauschale, 10% SV-Pauschale for the Soll/Ist Nettodifferenz calculation.
Numerical example
Employee with Steuerklasse III, 1 child, regular salary EUR 4,500/month, hours reduced from 40 to 20 (50% reduction):
| Component | Amount | Derivation |
|---|---|---|
| Soll-Entgelt (brutto) | EUR 4,500.00 | Full monthly salary, capped at BBG KV/PV |
| Ist-Entgelt (brutto) | EUR 2,250.00 | 50% of full salary (proportional to reduced hours) |
| Soll-Netto (KUG-Tabelle) | EUR 3,141.90 | Per Leistungstabelle lookup, StKl III |
| Ist-Netto (KUG-Tabelle) | EUR 1,712.25 | Per Leistungstabelle lookup, StKl III |
| Nettodifferenz | EUR 1,429.65 | 3,141.90 − 1,712.25 |
| KUG (67%) | EUR 957.87 | 67% × 1,429.65 (Leistungssatz 1, with child) |
Fictional SV base
Social security contributions during KUG are calculated on a fictional base, not on actual earnings. Per § 232a SGB V (health insurance) and corresponding provisions in RV/AV:
Fictional SV-Brutto = Ist-Entgelt + 80% × (Soll-Entgelt − Ist-Entgelt)
In our example: EUR 2,250 + 80% × (EUR 4,500 − EUR 2,250) = EUR 2,250 + EUR 1,800 = EUR 4,050
The employer pays SV contributions on EUR 4,050 — even though the employee only receives EUR 2,250 in actual salary plus EUR 957.87 in KUG. The 80% fiction ensures the employee's social security record isn't disproportionately damaged by the reduction.
One-time payment exclusion
Per § 106 Abs. 1 SGB III, Einmalzahlungen (one-time payments like bonuses, holiday pay, 13th month) are excluded from both Soll-Entgelt and Ist-Entgelt. They don't inflate the KUG calculation — but they are still subject to normal income tax and SV contributions on the actual amount paid. This creates a split in the wage type chain: the bonus flows through the regular LSt/SV calculation but is explicitly excluded from the KUG base determination.
Spain: ERTE — Real Decreto-Ley 4/2024, Arts. 47–47bis ET
Spain's ERTE (Expediente de Regulación Temporal de Empleo) mechanism allows companies to temporarily suspend or reduce employment contracts due to economic, technical, organizational, or production causes — or force majeure.
ERTE types and reduction mechanics
| Type | Effect | Employer obligation |
|---|---|---|
| ERTE suspensivo (total) | 100% suspension — no work, no salary | Maintain SS registration, pay employer's SS share (with exonerations) |
| ERTE de reducción (partial) | 10–70% reduction in hours | Pay proportional salary for worked hours |
| ERTE por fuerza mayor | Total or partial, temporary impediment | Enhanced SS exonerations (up to 100% for SMEs) |
| ERTE RED (Mecanismo RED) | Sectoral or cyclical activation by government | Retraining obligation + salary maintenance |
Numerical example: partial ERTE (50% reduction)
Employee with base salary EUR 2,400/month, ERTE de reducción at 50%:
| Component | Amount | Derivation |
|---|---|---|
| Base salary (full) | EUR 2,400.00 | Per convenio colectivo |
| ERTE reduction | 50% | Authorized by labor authority |
| Salary paid by employer | EUR 1,200.00 | 2,400 × 50% |
| Base cotización SS (employer) | EUR 2,400.00 | Full base maintained (Art. 308 LGSS) |
| Prestación SEPE (employee) | EUR 840.00 | 70% × regulatory base for lost hours |
| IRPF retention | Applied to EUR 1,200 | Only on employer-paid portion |
The key distinction: during a partial ERTE, the full social security base is maintained (Art. 308 LGSS), even though the employee only receives proportional salary from the employer. The SEPE (Servicio Público de Empleo Estatal) pays unemployment benefit for the lost hours — 70% of the regulatory base for the first 180 days, 50% thereafter.
ERTE + Finiquito (termination overlap)
When an employee on ERTE is terminated, the finiquito (final settlement) must calculate severance and pending payments (vacaciones no disfrutadas, pagas extras prorrateadas) based on the full salary — not the ERTE-reduced salary. Art. 53.1.b) ET explicitly states that the computation salary for severance is the pre-ERTE salary. The ERTE reduction affects current pay but not accrued entitlements.
Huelga + ERTE interaction
If an employee is simultaneously on ERTE and participating in a huelga (strike), the strike suspension takes precedence for the overlapping hours. The employee receives neither salary nor ERTE benefit for strike hours — preventing double coverage. The payroll must track both statuses with their respective hour allocations.
Belgium: TAO (Tijdelijke Arbeidsongeschiktheid) — Arts. 56–70 WAO
Belgium's temporary unemployment system operates through a multi-week sick-pay schedule where the employer's obligation decreases over time, transitioning to mutual fund (mutualiteit) payments.
The four-week schedule
| Period | Payer | Rate | Legal basis |
|---|---|---|---|
| Week 1 (days 1–7) | Employer | 100% of normal salary | Art. 52 WAO |
| Week 2 (days 8–14) | Employer | 100% of capped salary | Art. 54 WAO (ceiling applies) |
| Weeks 3–4 (days 15–30) | Employer | 60% of capped salary + supplement | Art. 56 WAO |
| Day 31+ | Mutual fund | 60% of lost earnings | Art. 87 ZIV-wet |
Numerical example
Employee with monthly salary EUR 3,800 (blue collar, subject to carensdag for first-day deduction):
| Period | Daily rate | Days | Total |
|---|---|---|---|
| Day 1 (carensdag) | EUR 0.00 | 1 | EUR 0.00 |
| Days 2–7 (week 1) | EUR 173.08 | 6 | EUR 1,038.46 |
| Days 8–14 (week 2) | EUR 173.08 | 7 | EUR 1,211.54 |
| Days 15–30 (weeks 3–4) | EUR 103.85 | 16 | EUR 1,661.54 |
The daily rate for weeks 1–2 is EUR 3,800 / 21.97 working days = EUR 173.08. For weeks 3–4: 60% × EUR 173.08 = EUR 103.85. RSZ (social security) contributions apply to the full amount paid by the employer — there is no fictional base concept as in Germany.
Blue collar vs. white collar distinction
Belgium maintains a critical distinction: blue-collar workers (arbeiders/ouvriers) are subject to the carensdag (first unpaid day) and the declining schedule above. White-collar workers (bedienden/employés) receive 30 days at 100% salary from the employer before transitioning to the mutual fund. This distinction, rooted in the 1978 WAO, creates two parallel calculation paths within the same payroll system.
Where It Gets Tricky
KUG Soll/Ist: the target earnings problem
The Soll-Entgelt (target earnings) isn't simply "last month's salary." It must be calculated as the earnings the employee would have earned in the current period at full hours — accounting for any scheduled pay increases, shift patterns, or variable components that would have applied. If a collective agreement increases wages effective April 1 and the KUG period spans March–May, the Soll-Entgelt changes mid-period.
Furthermore, the Soll-Entgelt is capped at the BBG for KV/PV (EUR 5,512.50/month in 2026). An employee earning EUR 7,000/month has Soll-Entgelt of EUR 5,512.50 for KUG purposes — but their actual SV contributions may hit the RV/AV BBG (EUR 7,550/month in 2026). The two ceilings diverge, creating different caps for different purposes within the same payslip.
One-time payment exclusion from KUG base
When a Christmas bonus of EUR 3,000 is paid in December to a KUG employee, the payroll must:
- Exclude the EUR 3,000 from Soll-Entgelt (it's not regular monthly earnings)
- Exclude the EUR 3,000 from Ist-Entgelt (same reason)
- Include the EUR 3,000 in the normal LSt calculation (Zuflussprinzip — taxed when received)
- Include the EUR 3,000 in the SV-Brutto (standard Einmalzahlung rules — § 23a SGB IV applies, including potential Märzklausel)
- Not include the EUR 3,000 in the fictional SV base for KUG (the 80% fiction applies only to the Soll/Ist difference of regular earnings)
Five different treatment paths for one payment — and getting any of them wrong either overpays KUG (fraud liability) or underpays social security (compliance violation).
ERTE + termination overlap
The interaction between ERTE and termination produces complex sequencing. When an employee on 50% ERTE is dismissed:
- Salary through termination date: 50% of base (ERTE rate)
- Severance (indemnización): calculated on 100% pre-ERTE salary (Art. 53.1.b ET)
- Unused vacation (vacaciones no disfrutadas): calculated on 100% base
- Proportional pagas extras: calculated on 100% base
- IRPF: applied to total finiquito amount (severance exempt up to statutory limit per Art. 7.e LIRPF)
- SS base for final month: full base maintained (ERTE doesn't reduce final SS contribution)
The payroll must distinguish between "current period reduced earnings" and "accrued entitlements at full rate" — two concepts that share a case field (base salary) but produce different derived values depending on context.
Fictional SV earnings diverging from actual pay
Germany's fictional SV base creates a unique accounting challenge. The employer pays SV contributions on EUR 4,050 (in our earlier example) but only pays EUR 2,250 in salary. The difference — EUR 1,800 of fictional earnings — exists only for contribution purposes. It never appears on the payslip as income, it's never taxed, and it's never paid to anyone. But the SV-Meldung reports it as the contribution base, and the Beitragsnachweis includes contributions calculated on it.
If the payroll system doesn't maintain this fictional track separately, one of two things happens: either the SV contributions are underpaid (based on actual earnings only), or the employee's gross appears inflated (because the fictional base is mixed with actual pay). Both are audit failures.
Sick pay schedule transitions (Belgium)
Belgium's declining schedule creates transition complexity when TAO starts or ends mid-week, or when a new incapacity begins before the previous one's employer obligation has expired. The 14-day "relapse rule" (Art. 58 WAO) merges two incapacity periods into one if fewer than 14 calendar days separate them — meaning the employer's week-1/week-2/week-3 counter doesn't reset. A 5-day illness followed by 10 days of work followed by another illness is treated as day 6 of the original incapacity, not day 1 of a new one.
This look-back requirement means the payroll system must track historical incapacity periods and apply the 14-day rule at the start of each new absence — adjusting the payment schedule accordingly.
How PE Solves It
Payroll Engine's crisis payroll architecture addresses these challenges through dedicated wage type chains, conditional exclusion logic, and time-segmented base calculations.
1. Dedicated KUG/ERTE wage type chains
Rather than modifying the standard salary chain, PE implements crisis calculations as parallel wage type sequences that consume the same input (base salary, hours) but produce separate outputs (KUG benefit, fictional SV base, ERTE reduction). The standard chain continues to produce normal LSt and SV results on actual earnings; the crisis chain produces the benefit/reduction calculations alongside.
For German KUG, the chain includes:
- Soll-Entgelt determination — regular earnings at full hours, capped at BBG KV/PV
- Ist-Entgelt determination — actual earnings at reduced hours
- KUG-Tabelle lookup — net difference calculation using standardized deduction tables
- KUG benefit — 60%/67% of the Nettodifferenz
- Fictional SV base — Ist + 80% × (Soll − Ist)
Each step is a separate wage type, fully auditable and individually testable. The Leistungssatz (60% vs. 67%) resolves from a case field (children yes/no) — no hardcoded branching in the calculation logic.
2. Conditional exclusion flags for one-time payments
One-time payments (Einmalzahlungen, pagas extras, holiday bonuses) are tagged with metadata that signals their exclusion from crisis calculations. When the KUG chain calculates Soll-Entgelt, it queries regular wage types only — one-time payment wage types are filtered by their collector group membership.
This is implemented through PE's collector architecture: regular monthly earnings flow into a "KUG-relevant" collector; one-time payments flow into a separate collector. The Soll-Entgelt wage type references only the KUG-relevant collector, automatically excluding bonuses without per-payment conditional logic.
3. Time-segmented base calculations
When an ERTE starts or ends mid-month, PE's time-segmentation engine handles the proportional split automatically. The ERTE reduction percentage is stored as a Period-type case field with a start date corresponding to the ERTE activation. For any payroll period that spans the ERTE boundary, PE calculates:
- Pre-ERTE days: full salary rate
- ERTE days: reduced salary rate
The same mechanism handles mid-period ERTE percentage changes (e.g., reduction increased from 30% to 50% effective the 15th). Each sub-period segment is calculated independently with its applicable rate, then aggregated for the period total.
4. Data regulation for KUG rates and tables
The KUG-Tabelle (benefit lookup table), the BBG caps, and the 80% fiction factor are stored in data regulation satellites with annual validFrom versioning. When the Bundesagentur für Arbeit updates the Leistungstabelle (which happens when tax/SV rates change), only the data satellite is updated — the wage type chain logic remains stable.
For Spain, the ERTE exoneration percentages (which vary by company size and ERTE type — e.g., 100% SS exoneration for SMEs under force majeure, 75% for larger companies) are similarly stored as lookup data. Policy changes (like the enhanced exonerations introduced during COVID-19 and partially maintained by RD-Ley 4/2024) are captured as new data satellite entries without modifying the calculation chain.
5. Parallel tracking: actual vs. fictional
PE's wage type architecture naturally supports the dual-track requirement. The standard SV calculation chain produces contributions on actual earnings; the KUG chain produces a separate "fictional SV base" wage type. The Beitragsnachweis report script queries both — using the fictional base where the employee is on KUG and the actual base otherwise. No mixing, no conditional branching in the contribution calculation itself.
Test Case References
The following integration tests validate the crisis payroll scenarios described in this article:
| Test | Country | Scenario |
|---|---|---|
WT-TC1400-DE-Kug-Basis |
DE | Basic KUG calculation: Soll/Ist determination, Nettodifferenz via KUG-Tabelle, 60%/67% benefit, fictional SV base (80% fiction) |
WT-TC1400-DE-Kug-MitEinmalzahlung |
DE | KUG with concurrent one-time payment: Einmalzahlung excluded from Soll/Ist, normal LSt/SV on bonus, KUG base unaffected |
WT-TC1400-DE-Kug-BbgKappung |
DE | KUG with high earner: Soll-Entgelt capped at BBG KV/PV, fictional SV base interaction with RV/AV BBG |
WT-TC-ES-ERTE-Parcial |
ES | Partial ERTE (50% reduction): proportional salary, maintained SS base, IRPF on employer-paid portion only |
WT-TC-ES-ERTE-Suspensivo |
ES | Total ERTE suspension: zero salary, full SS base maintenance, employer SS exoneration calculation |
WT-TC-ES-ERTE-Finiquito |
ES | ERTE + termination overlap: severance on full pre-ERTE salary, reduced salary for final worked period |
WT-TC1000-BE-TAO-Arbeider |
BE | Blue-collar TAO: carensdag, weeks 1–2 at 100%, weeks 3–4 at 60%, RSZ on employer-paid amounts |
WT-TC1000-BE-TAO-Bediende |
BE | White-collar TAO: 30 days at 100%, transition to mutual fund, no carensdag |
Crisis payroll tests validate not only the benefit calculation but also the exclusion logic — confirming that one-time payments don't contaminate KUG bases, that ERTE reductions don't affect severance calculations, and that fictional SV bases produce correct Beitragsnachweis values independently of actual net pay.
See how PE handles this
Explore the full technical implementation — KUG wage type chains, ERTE time-segmentation, TAO schedules, and conditional exclusion logic for one-time payments across crisis payroll scenarios.
Request a Demo →
Spain
Germany
Belgium