Einkommensteuer — Veranlagungsschema § 2 EStG + Tarif § 32a EStG (VZ 2026) Stand: 2026-05-29

Einkommensteuer — Veranlagungsschema § 2 EStG + Tarif § 32a EStG (VZ 2026)

Bildet die Einkommensteuer-Kaskade nach § 2 EStG ab, schließt mit dem tariflichen Einkommensteuerbetrag (§ 32a) und der festzusetzenden Einkommensteuer (§ 2 Abs.

est

est.findsl

Einkommensteuer — Veranlagungsschema § 2 EStG + Tarif § 32a EStG (VZ 2026)

Bildet die Einkommensteuer-Kaskade nach § 2 EStG ab, schließt mit dem tariflichen Einkommensteuerbetrag (§ 32a) und der festzusetzenden Einkommensteuer (§ 2 Abs. 6). Maßgebliche Quelle: examples/est/estg.xml (juris-Stand 2026-05-06), § 32a/§ 32 Abs. 6 in der konsolidierten Fassung „ab Veranlagungszeitraum 2026".

Gesetzliche Reihenfolge (jede Stufe = eigene Funktion, auditierbar): Summe der Einkünfte (§ 2 Abs. 1–3) → Gesamtbetrag der Einkünfte (§ 2 Abs. 3) → Einkommen (§ 2 Abs. 4) → zu versteuerndes Einkommen (§ 2 Abs. 5) → tarifliche Einkommensteuer (§ 32a) → festzusetzende Einkommensteuer (§ 2 Abs. 6).

Echte Rechenvorschrift (modelliert) — auch mehr-entitätig:

  • § 32 Abs. 6 Kinderfreibetrag/BEA je Kind über Liste<Kind> (3.414 € + 1.464 € je Kind, Verdopplung Satz 2/3 per Faktor, Zwölftelung Satz 5, Auslands­kürzung Satz 4) → aggregiert.
  • § 33 Abs. 1/3 außergewöhnliche Belastungen: Summe der zwangsläufigen Aufwendungen abzüglich der zumutbaren Belastung (§ 33 Abs. 3, staffelweise über die drei GdE-Stufen × vier Personengruppen).
  • § 10b Abs. 1 Spenden: abziehbar bis zum Höchstbetrag max(20 % GdE; 4 ‰ (Umsätze + Löhne)).
  • Die gesamte § 2-Verknüpfungs-Arithmetik + § 32a-Tarif + § 2 Abs. 6.

Geprüfte Eingabe, weil anderes Recht / Verfahren (nicht Tooling- Grenze):

  • Ermittlung der sieben Einkunftsarten je Art (Gewinn §§ 4–7k/13a, Überschuss §§ 8–9a, § 20 Abs. 9, AfA § 7 mehrperiodig) — saldierter Betrag je Art als Eingabe.
  • § 24a / § 24b / § 13 Abs. 3 — Beträge als Eingabe (eigene §§).
  • Übrige Sonderausgaben §§ 10–10c außer § 10b (Vorsorge­aufwen- dungen mit eigenen Höchstbeträgen/Günstigerprüfung) — Aggregat- Eingabe sonstigeSonderausgaben.
  • Verlustabzug § 10d (mehrperiodig) — negatives zvE → 0 tariflich, Verlustabzug selbst nicht modelliert.
  • Sachverhalte je Kind (Kindschaftsverhältnis → faktor, Auslands-Ländergruppe → auslandsfaktor, Berücksichtigungs­monate) und die § 33-Zwangsläufigkeit/Angemessenheit (§ 33 Abs. 2), § 10b-Empfänger-Voraussetzungen (§ 10b Abs. 2) — Sachverhalt.
  • § 32a Abs. 6 Witwen-/Gnadensplitting; § 2 Abs. 6-Komponenten (§§ 34c/35/35a/32d Abs. 3/4 …) als zwei gerichtete Aggregat-Eingaben; Annexsteuern (SolZ, KiSt). Verfahren/eigene Gesetze.

Modellierungs-Entscheidung (Statut schweigt): jede listen- abgeleitete Kategorie-Abzugssumme (Kinderfreibetrag, abziehbare agB, abziehbare Spenden) wird auf volle Euro abgerundet (.abrunden() mit Euro-Kontext), bevor sie in die Euro-Kaskade eingeht — deterministisch, konsistent mit § 32a Abs. 1 Satz 1 (zvE auf volle Euro), fiskuskonservativ.

Konstanten

konst GFB

konst GFB: Euro = 12.348

Grundfreibetrag — bis zu diesem zu versteuernden Einkommen beträgt die tarifliche Einkommensteuer 0 (§ 32a Absatz 1 Satz 2 Nummer 1).

Quelle: § 32a Absatz 1 Satz 2 Nummer 1 EStG — § 32a EStG

konst ZONE_2_OBERGRENZE

konst ZONE_2_OBERGRENZE: Euro = 17.799

Obere Grenze der Eingangs-Progressionszone (Zone 2).

Quelle: § 32a Absatz 1 Satz 2 Nummer 2 EStG — § 32a EStG

konst ZONE_3_OBERGRENZE

konst ZONE_3_OBERGRENZE: Euro = 69.878

Obere Grenze der Hauptprogressionszone (Zone 3).

Quelle: § 32a Absatz 1 Satz 2 Nummer 3 EStG — § 32a EStG

konst ZONE_4_OBERGRENZE

konst ZONE_4_OBERGRENZE: Euro = 277.825

Obere Grenze der ersten Proportionalzone (Zone 4); darüber Zone 5.

Quelle: § 32a Absatz 1 Satz 2 Nummer 4 EStG — § 32a EStG

konst ZEHNTAUSEND

konst ZEHNTAUSEND: Ganzzahl = 10.000

Teiler für die Größen „y" und „z": ein Zehntausendstel des den jeweiligen Sockel übersteigenden, auf vollen Euro abgerundeten zvE (§ 32a Absatz 1 Satz 3 und 4).

Quelle: § 32a Absatz 1 Satz 3 und 4 EStG — § 32a EStG

konst ZONE_2_PROGRESSION

konst ZONE_2_PROGRESSION: Dezimal = 914,51

Progressionskoeffizient der Zone 2 (Faktor vor y²).

Quelle: § 32a Absatz 1 Satz 2 Nummer 2 EStG — § 32a EStG

konst ZONE_2_LINEAR

konst ZONE_2_LINEAR: Dezimal = 1.400

Linearer Koeffizient der Zone 2 (Faktor vor y).

Quelle: § 32a Absatz 1 Satz 2 Nummer 2 EStG — § 32a EStG

konst ZONE_3_PROGRESSION

konst ZONE_3_PROGRESSION: Dezimal = 173,10

Progressionskoeffizient der Zone 3 (Faktor vor z²).

Quelle: § 32a Absatz 1 Satz 2 Nummer 3 EStG — § 32a EStG

konst ZONE_3_LINEAR

konst ZONE_3_LINEAR: Dezimal = 2.397

Linearer Koeffizient der Zone 3 (Faktor vor z).

Quelle: § 32a Absatz 1 Satz 2 Nummer 3 EStG — § 32a EStG

konst ZONE_3_KONSTANTE

konst ZONE_3_KONSTANTE: Dezimal = 1.034,87

Konstanter Summand der Zone 3 (Anschluss an Zone 2).

Quelle: § 32a Absatz 1 Satz 2 Nummer 3 EStG — § 32a EStG

konst ZONE_4_SATZ

konst ZONE_4_SATZ: Prozent = 42%

Grenzsteuersatz der Proportionalzone 4 (Spitzensteuersatz).

Quelle: § 32a Absatz 1 Satz 2 Nummer 4 EStG — § 32a EStG

konst ZONE_4_ABZUG

konst ZONE_4_ABZUG: EuroCent = 11.135,63

Abzugsbetrag der Zone 4 (0,42 · x − ZONE_4_ABZUG).

Quelle: § 32a Absatz 1 Satz 2 Nummer 4 EStG — § 32a EStG

konst ZONE_5_SATZ

konst ZONE_5_SATZ: Prozent = 45%

Grenzsteuersatz der Proportionalzone 5 („Reichensteuer").

Quelle: § 32a Absatz 1 Satz 2 Nummer 5 EStG — § 32a EStG

konst ZONE_5_ABZUG

konst ZONE_5_ABZUG: EuroCent = 19.470,38

Abzugsbetrag der Zone 5 (0,45 · x − ZONE_5_ABZUG).

Quelle: § 32a Absatz 1 Satz 2 Nummer 5 EStG — § 32a EStG

konst KINDERFREIBETRAG

konst KINDERFREIBETRAG: Euro = 3.414

Kinderfreibetrag (sächliches Existenzminimum) je Kind.

Quelle: § 32 Absatz 6 Satz 1 EStG — § 32 EStG

konst BEA_FREIBETRAG

konst BEA_FREIBETRAG: Euro = 1.464

Freibetrag Betreuungs-/Erziehungs-/Ausbildungsbedarf (BEA) je Kind.

Quelle: § 32 Absatz 6 Satz 1 EStG — § 32 EStG

konst ZWOELF

konst ZWOELF: Ganzzahl = 12

Teiler für die Zwölftelung je nicht erfüllten Kalendermonat.

Quelle: § 32 Absatz 6 Satz 5 EStG — § 32 EStG

konst ZMB_STUFE_1

konst ZMB_STUFE_1: Euro = 15.340

Erste GdE-Stufe der zumutbaren Belastung (§ 33 Abs. 3).

Quelle: § 33 Absatz 3 EStG — § 33 EStG

konst ZMB_STUFE_2

konst ZMB_STUFE_2: Euro = 51.130

Zweite GdE-Stufe der zumutbaren Belastung (§ 33 Abs. 3).

Quelle: § 33 Absatz 3 EStG — § 33 EStG

konst ZMB_OHNE_KIND_GRUND_1

konst ZMB_OHNE_KIND_GRUND_1: Prozent = 5%

Zumutbare Belastung — keine Kinder, Grundtarif (§ 32a Abs. 1): Stufe 1/2/3.

Quelle: § 33 Absatz 3 Satz 1 Nummer 1 Buchstabe a EStG — § 33 EStG

konst ZMB_OHNE_KIND_GRUND_2

konst ZMB_OHNE_KIND_GRUND_2: Prozent = 6%

Quelle: § 33 Absatz 3 Satz 1 Nummer 1 Buchstabe a EStG — § 33 EStG

konst ZMB_OHNE_KIND_GRUND_3

konst ZMB_OHNE_KIND_GRUND_3: Prozent = 7%

Quelle: § 33 Absatz 3 Satz 1 Nummer 1 Buchstabe a EStG — § 33 EStG

konst ZMB_OHNE_KIND_SPLIT_1

konst ZMB_OHNE_KIND_SPLIT_1: Prozent = 4%

Zumutbare Belastung — keine Kinder, Splitting (§ 32a Abs. 5/6): Stufe 1/2/3.

Quelle: § 33 Absatz 3 Satz 1 Nummer 1 Buchstabe b EStG — § 33 EStG

konst ZMB_OHNE_KIND_SPLIT_2

konst ZMB_OHNE_KIND_SPLIT_2: Prozent = 5%

Quelle: § 33 Absatz 3 Satz 1 Nummer 1 Buchstabe b EStG — § 33 EStG

konst ZMB_OHNE_KIND_SPLIT_3

konst ZMB_OHNE_KIND_SPLIT_3: Prozent = 6%

Quelle: § 33 Absatz 3 Satz 1 Nummer 1 Buchstabe b EStG — § 33 EStG

konst ZMB_1_2_KINDER_1

konst ZMB_1_2_KINDER_1: Prozent = 2%

Zumutbare Belastung — ein oder zwei Kinder: Stufe 1/2/3.

Quelle: § 33 Absatz 3 Satz 1 Nummer 2 Buchstabe a EStG — § 33 EStG

konst ZMB_1_2_KINDER_2

konst ZMB_1_2_KINDER_2: Prozent = 3%

Quelle: § 33 Absatz 3 Satz 1 Nummer 2 Buchstabe a EStG — § 33 EStG

konst ZMB_1_2_KINDER_3

konst ZMB_1_2_KINDER_3: Prozent = 4%

Quelle: § 33 Absatz 3 Satz 1 Nummer 2 Buchstabe a EStG — § 33 EStG

konst ZMB_AB_3_KINDER_1

konst ZMB_AB_3_KINDER_1: Prozent = 1%

Zumutbare Belastung — drei oder mehr Kinder: Stufe 1/2/3.

Quelle: § 33 Absatz 3 Satz 1 Nummer 2 Buchstabe b EStG — § 33 EStG

konst ZMB_AB_3_KINDER_2

konst ZMB_AB_3_KINDER_2: Prozent = 1%

Quelle: § 33 Absatz 3 Satz 1 Nummer 2 Buchstabe b EStG — § 33 EStG

konst ZMB_AB_3_KINDER_3

konst ZMB_AB_3_KINDER_3: Prozent = 2%

Quelle: § 33 Absatz 3 Satz 1 Nummer 2 Buchstabe b EStG — § 33 EStG

konst SPENDEN_HB_GDE

konst SPENDEN_HB_GDE: Prozent = 20%

Spenden-Höchstbetrag Variante 1: Anteil des Gesamtbetrags der Einkünfte.

Quelle: § 10b Absatz 1 Satz 1 Nummer 1 EStG — § 10b EStG

konst SPENDEN_HB_UMSATZ

konst SPENDEN_HB_UMSATZ: Prozent = 0,4%

Spenden-Höchstbetrag Variante 2: Promille der Umsätze + Löhne (4 ‰).

Quelle: § 10b Absatz 1 Satz 1 Nummer 2 EStG — § 10b EStG

Datensätze

datensatz Kind

datensatz Kind(
    faktor:                Ganzzahl = 1,       // § 32 Abs. 6 Satz 2/3
    berücksichtigteMonate: Ganzzahl = 12,     // § 32 Abs. 6 Satz 5
    auslandsfaktor:        Prozent = 100%,     // § 32 Abs. 6 Satz 4
)

Sachverhalte je Kind (§ 32 Abs. 6). Die Beträge sind Gesetz; diese Felder sind die Sachverhalts-Eingaben je Kind.

Feld Typ Bedeutung
faktor Ganzzahl 1 = einfacher Freibetrag; 2 = verdoppelt (§ 32 Abs. 6 Satz 2/3 — Kind zu beiden Ehegatten bzw. Satz-3-Fälle)
berücksichtigteMonate Ganzzahl Monate mit erfüllten Voraussetzungen (§ 32 Abs. 6 Satz 5: je fehlendem Monat 1/12)
auslandsfaktor Prozent Ländergruppen-Anteil für Auslandskinder (§ 32 Abs. 6 Satz 4; 100 % = Inlandskind)

Quelle: § 32 Absatz 6 EStG — § 32 EStG

datensatz EinkommensteuerFall

datensatz EinkommensteuerFall(
    einkuenfteLandUndForstwirtschaft:   Euro = 0,            // § 2 Abs. 1 Nr. 1
    einkuenfteGewerbebetrieb:           Euro = 0,            // § 2 Abs. 1 Nr. 2
    einkuenfteSelbstaendigeArbeit:      Euro = 0,            // § 2 Abs. 1 Nr. 3
    einkuenfteNichtselbstaendigeArbeit: Euro = 0,            // § 2 Abs. 1 Nr. 4
    einkuenfteKapitalvermoegen:         Euro = 0,            // § 2 Abs. 1 Nr. 5
    einkuenfteVermietungVerpachtung:    Euro = 0,            // § 2 Abs. 1 Nr. 6
    sonstigeEinkuenfte:                 Euro = 0,            // § 2 Abs. 1 Nr. 7
    altersentlastungsbetrag:            Euro = 0,            // § 24a
    entlastungsbetragAlleinerziehende:  Euro = 0,            // § 24b
    freibetragLandUndForstwirtschaft:   Euro = 0,            // § 13 Abs. 3
    sonstigeSonderausgaben:             Euro = 0,            // §§ 10–10c o. § 10b
    spenden:                            Liste<Euro> = []<Euro>,   // § 10b Abs. 1
    umsaetzeUndLoehne:                  Euro = 0,            // § 10b Abs. 1 S. 1 Nr. 2
    aussergewoehnlicheAufwendungen:     Liste<Euro> = []<Euro>,   // § 33
    kinder:                             Liste<Kind> = []<Kind>,   // § 32 Abs. 6
    sonstigeAbzuegeVomEinkommen:        Euro = 0,            // § 2 Abs. 5 S. 1
    tarifart:                           Tarifart = Grundtarif,    // §§ 26, 26b
    anrechnungenUndErmaessigungen:      Euro = 0,            // § 2 Abs. 6 S. 1
    hinzurechnungen:                    Euro = 0,            // § 2 Abs. 6 S. 1–3
)

Eingaben für die Einkommensteuer-Veranlagung.

Feld Typ Bedeutung
einkuenfteLandUndForstwirtschaft Euro Einkünfte § 2 Abs. 1 Nr. 1 (§§ 13–14)
einkuenfteGewerbebetrieb Euro Einkünfte § 2 Abs. 1 Nr. 2 (§§ 15–17)
einkuenfteSelbstaendigeArbeit Euro Einkünfte § 2 Abs. 1 Nr. 3 (§ 18)
einkuenfteNichtselbstaendigeArbeit Euro Einkünfte § 2 Abs. 1 Nr. 4 (§ 19)
einkuenfteKapitalvermoegen Euro veranlagte Einkünfte § 2 Abs. 1 Nr. 5 (§ 20)
einkuenfteVermietungVerpachtung Euro Einkünfte § 2 Abs. 1 Nr. 6 (§ 21)
sonstigeEinkuenfte Euro sonstige Einkünfte § 2 Abs. 1 Nr. 7 (§ 22)
altersentlastungsbetrag Euro Altersentlastungsbetrag (§ 24a)
entlastungsbetragAlleinerziehende Euro Entlastungsbetrag Alleinerziehende (§ 24b)
freibetragLandUndForstwirtschaft Euro Abzug nach § 13 Absatz 3
sonstigeSonderausgaben Euro Sonderausgaben §§ 10–10c ohne § 10b (Vorsorge u. a. — anderes Recht)
spenden Liste<Euro> abziehbare Zuwendungen § 10b Abs. 1 (Voraussetzungen Abs. 2 = Sachverhalt)
umsaetzeUndLoehne Euro Basis der 4-‰-Höchstbetrags- Variante (§ 10b Abs. 1 Satz 1 Nr. 2)
aussergewoehnlicheAufwendungen Liste<Euro> zwangsläufige Aufwendungen § 33 (Abs. 2 = Sachverhalt), vor zumutbarer Belastung
kinder Liste<Kind> zu berücksichtigende Kinder (§ 32 Abs. 6)
sonstigeAbzuegeVomEinkommen Euro sonstige vom Einkommen abzuziehende Beträge (§ 2 Abs. 5 Satz 1)
tarifart Tarifart Grund- oder Splittingtarif (§§ 26, 26b)
anrechnungenUndErmaessigungen Euro § 2 Abs. 6 „vermindert um"
hinzurechnungen Euro § 2 Abs. 6 „vermehrt um" (S. 1–3)

Quelle: § 2 EStG — § 2 EStG

datensatz EinkommensteuerErgebnis

datensatz EinkommensteuerErgebnis(
    summeDerEinkuenfte:                      Euro,   // § 2 Abs. 1–3
    gesamtbetragDerEinkuenfte:               Euro,   // § 2 Abs. 3
    kinderfreibetraege:                      Euro,   // § 32 Abs. 6
    abziehbareAussergewoehnlicheBelastungen: Euro,   // § 33
    einkommen:                               Euro,   // § 2 Abs. 4
    zuVersteuerndesEinkommen:                Euro,   // § 2 Abs. 5
    tariflicheEinkommensteuer:               Euro,   // § 32a
    festzusetzendeEinkommensteuer:           Euro,   // § 2 Abs. 6
)

Ergebnis der Veranlagung — jede Zwischengröße der gesetzlichen Reihenfolge des § 2 EStG als eigenes Feld (Schritt-für-Schritt-Audit).

Feld Typ Bedeutung
summeDerEinkuenfte Euro Summe der Einkünfte (§ 2 Abs. 1–3)
gesamtbetragDerEinkuenfte Euro Gesamtbetrag der Einkünfte (§ 2 Abs. 3)
kinderfreibetraege Euro Freibeträge § 32 Abs. 6 (aggregiert)
abziehbareAussergewoehnlicheBelastungen Euro § 33 nach zumutbarer Belastung
einkommen Euro Einkommen (§ 2 Abs. 4)
zuVersteuerndesEinkommen Euro zu versteuerndes Einkommen (§ 2 Abs. 5)
tariflicheEinkommensteuer Euro tarifliche Einkommensteuer (§ 32a)
festzusetzendeEinkommensteuer Euro festzusetzende Einkommensteuer (§ 2 Abs. 6)

Quelle: § 2 EStG — § 2 EStG

Funktionen

fn EstGrundtarif

fn EstGrundtarif(zve: Euro): Euro

Tariflicher Einkommensteuerbetrag nach dem Grundtarif (§ 32a Absatz 1 EStG). Das zu versteuernde Einkommen ist nach Satz 1 auf volle Euro abgerundet zu verstehen (durch den Euro-Typ bereits ganzzahlig). Der sich ergebende Steuerbetrag wird nach Satz 6 auf den nächsten vollen Euro abgerundet.

Mit den Hilfsgrößen y=zvEGFB10000y = \frac{\text{zvE} - \text{GFB}}{10000} (Zone 2) und z=zvEZONE_210000z = \frac{\text{zvE} - \text{ZONE\_2}}{10000} (Zone 3) lautet der Tarif zonenweise:

ESt(zvE)={0zvEGFB(a2y+b2)yZone 2(a3z+b3)z+c3Zone 30,42zvEC4Zone 40,45zvEC5Zone 5\text{ESt}(\text{zvE}) = \begin{cases} 0 & \text{zvE} \le \text{GFB} \\ (a_2\,y + b_2)\,y & \text{Zone 2} \\ (a_3\,z + b_3)\,z + c_3 & \text{Zone 3} \\ 0{,}42 \cdot \text{zvE} - C_4 & \text{Zone 4} \\ 0{,}45 \cdot \text{zvE} - C_5 & \text{Zone 5} \end{cases}

Parameter

Name Beschreibung
zve zu versteuerndes Einkommen in vollen Euro (geprüfte Eingabe, ≥ 0; negativ → abbruch)

Rückgabe — tarifliche Einkommensteuer in vollen Euro (Grundtarif)

Quelle: § 32a Absatz 1 EStG — § 32a EStG

fn EstSplitting

fn EstSplitting(zve: Euro): Euro

Tariflicher Einkommensteuerbetrag nach dem Splitting-Verfahren für zusammen veranlagte Ehegatten (§ 32a Absatz 5 EStG): das Zweifache des Steuerbetrags, der sich für die Hälfte des gemeinsam zu versteuernden Einkommens nach Absatz 1 ergibt. Die Hälfte wird nach Absatz 1 Satz 1 auf volle Euro abgerundet.

Parameter

Name Beschreibung
zve gemeinsam zu versteuerndes Einkommen der Ehegatten in vollen Euro (geprüfte Eingabe, ≥ 0; negativ → abbruch)

Rückgabe — tarifliche Einkommensteuer in vollen Euro (Splitting)

Quelle: § 32a Absatz 5 EStG — § 32a EStG

fn SummeDerEinkuenfte

fn SummeDerEinkuenfte(fall: EinkommensteuerFall): Euro

Summe der Einkünfte (§ 2 Absatz 1 und 2 EStG): Summe der sieben Einkunftsarten. Negative Einkünfte einzelner Arten mindern die Summe (einkunftsartübergreifende Verlustverrechnungs­beschränkungen sind anderes Recht und in den Eingaben bereits berücksichtigt).

Parameter

Name Beschreibung
fall die Veranlagungseingaben

Rückgabe — Summe der Einkünfte in vollen Euro

Quelle: § 2 Absatz 1 und 2 EStG — § 2 EStG

fn GesamtbetragDerEinkuenfte

fn GesamtbetragDerEinkuenfte(summe: Euro, fall: EinkommensteuerFall): Euro

Gesamtbetrag der Einkünfte (§ 2 Absatz 3 EStG): Summe der Einkünfte vermindert um Altersentlastungsbetrag (§ 24a), Entlastungsbetrag für Alleinerziehende (§ 24b) und Abzug nach § 13 Absatz 3.

Parameter

Name Beschreibung
summe Summe der Einkünfte (Stufe zuvor)
fall die Veranlagungseingaben

Rückgabe — Gesamtbetrag der Einkünfte in vollen Euro

Quelle: § 2 Absatz 3 EStG — § 2 EStG

fn KinderfreibetragGesamt

fn KinderfreibetragGesamt(kinder: Liste<Kind>): Euro

Kinderfreibetrag + BEA-Freibetrag, aggregiert über alle Kinder (§ 32 Absatz 6 EStG): je Kind (3.414 + 1.464) · faktor · berücksichtigteMonate/12 · auslandsfaktor; die Summe wird auf volle Euro abgerundet (Modellierungs-Entscheidung, s. Datei-Doc).

Parameter

Name Beschreibung
kinder die zu berücksichtigenden Kinder

Rückgabe — Gesamt-Freibetrag in vollen Euro

Quelle: § 32 Absatz 6 EStG — § 32 EStG

fn ZumutbareBelastung

fn ZumutbareBelastung(gde: Euro, kinderzahl: Ganzzahl, tarifart: Tarifart): EuroCent

Zumutbare Belastung (§ 33 Absatz 3 EStG) — staffelweise über die drei GdE-Stufen (bis 15.340 / bis 51.130 / darüber), mit den Prozentsätzen der vier Personengruppen (keine Kinder Grund/Splitting, 1–2 Kinder, ≥ 3 Kinder). „Kinder" sind die mit Freibetrag § 32 Abs. 6 oder Kindergeld-Anspruch (§ 33 Abs. 3 Satz 2 — hier kinderzahl).

Parameter

Name Beschreibung
gde Gesamtbetrag der Einkünfte
kinderzahl Zahl der zu berücksichtigenden Kinder
tarifart Grund- oder Splittingtarif (nur bei 0 Kindern relevant)

Rückgabe — zumutbare Belastung (EuroCent-genau)

Quelle: § 33 Absatz 3 EStG — § 33 EStG

fn AbziehbareAussergewoehnlicheBelastungen

fn AbziehbareAussergewoehnlicheBelastungen(fall: EinkommensteuerFall, gde: Euro): Euro

Abziehbare außergewöhnliche Belastungen (§ 33 Absatz 1 EStG): Summe der zwangsläufigen Aufwendungen, soweit sie die zumutbare Belastung (§ 33 Abs. 3) übersteigt; nie negativ, auf volle Euro abgerundet.

Parameter

Name Beschreibung
fall die Veranlagungseingaben
gde Gesamtbetrag der Einkünfte (Bezugsgröße der zumutbaren Belastung)

Rückgabe — abziehbarer Betrag in vollen Euro

Quelle: § 33 Absatz 1 EStG — § 33 EStG

fn AbziehbareSpenden

fn AbziehbareSpenden(fall: EinkommensteuerFall, gde: Euro): Euro

Abziehbare Spenden (§ 10b Absatz 1 EStG): Summe der Zuwendungen, gedeckelt auf den Höchstbetrag = größerer Wert aus 20 % des Gesamtbetrags der Einkünfte und 4 ‰ der Umsätze + Löhne; auf volle Euro abgerundet.

Parameter

Name Beschreibung
fall die Veranlagungseingaben
gde Gesamtbetrag der Einkünfte (Bezugsgröße Variante 1)

Rückgabe — abziehbare Spenden in vollen Euro

Quelle: § 10b Absatz 1 EStG — § 10b EStG

fn Einkommen

fn Einkommen(gesamtbetrag: Euro, fall: EinkommensteuerFall): Euro

Einkommen (§ 2 Absatz 4 EStG): Gesamtbetrag der Einkünfte vermindert um die Sonderausgaben (sonstige + abziehbare Spenden § 10b) und die abziehbaren außergewöhnlichen Belastungen (§ 33).

Parameter

Name Beschreibung
gesamtbetrag Gesamtbetrag der Einkünfte (Stufe zuvor)
fall die Veranlagungseingaben

Rückgabe — Einkommen in vollen Euro

Quelle: § 2 Absatz 4 EStG — § 2 EStG

fn ZuVersteuerndesEinkommen

fn ZuVersteuerndesEinkommen(einkommen: Euro, fall: EinkommensteuerFall): Euro

Zu versteuerndes Einkommen (§ 2 Absatz 5 Satz 1 EStG): Einkommen vermindert um die Freibeträge nach § 32 Absatz 6 (Kinder) und die sonstigen vom Einkommen abzuziehenden Beträge.

Parameter

Name Beschreibung
einkommen Einkommen (Stufe zuvor)
fall die Veranlagungseingaben

Rückgabe — zu versteuerndes Einkommen in vollen Euro (kann bei Verlusten negativ sein — § 10d nicht modelliert)

Quelle: § 2 Absatz 5 Satz 1 EStG — § 2 EStG

fn TariflicheEinkommensteuer

fn TariflicheEinkommensteuer(zve: Euro, tarifart: Tarifart): Euro

Tarifliche Einkommensteuer (§ 32a EStG): Grund- oder Splittingtarif. Negatives zvE → 0 (§ 32a für negatives zvE nicht definiert; § 10d Verlustabzug ist Verfahren, nicht modelliert).

Parameter

Name Beschreibung
zve zu versteuerndes Einkommen in vollen Euro
tarifart Grund- oder Splittingtarif

Rückgabe — tarifliche Einkommensteuer in vollen Euro

Quelle: § 32a Absatz 1 und 5 EStG — § 32a EStG

fn FestzusetzendeEinkommensteuer

fn FestzusetzendeEinkommensteuer(tariflich: Euro, fall: EinkommensteuerFall): Euro

Festzusetzende Einkommensteuer (§ 2 Absatz 6 EStG): tarifliche Steuer vermindert um Anrechnungen/Steuerermäßigungen, vermehrt um Hinzurechnungen (Komponenten + Kappungen = anderes Recht/Eingabe; keine Untergrenze — der Wortlaut sieht keine vor).

Parameter

Name Beschreibung
tariflich tarifliche Einkommensteuer (Stufe zuvor)
fall die Veranlagungseingaben

Rückgabe — festzusetzende Einkommensteuer in vollen Euro

Quelle: § 2 Absatz 6 EStG — § 2 EStG

fn BerechneEinkommensteuer

fn BerechneEinkommensteuer(fall: EinkommensteuerFall): EinkommensteuerErgebnis

Orchestrator — vollständige Veranlagung in gesetzlicher Reihenfolge (§ 2 EStG). Füllt jede Zwischengröße ins Ergebnis-Datensatz.

Parameter

Name Beschreibung
fall die Veranlagungseingaben

Rückgabe — das Veranlagungsergebnis mit allen Zwischengrößen

Quelle: § 2 EStG, § 32a EStG — § 2 EStG, § 32a EStG

Explizit ausgeschlossene Konstellationen

In Stelle Begründung
EstGrundtarif Z. 218 § 32a Absatz 1 EStG: zu versteuerndes Einkommen darf nicht negativ sein (zvE=${zve}) · Quelle: § 32a Absatz 1 EStG
EstSplitting Z. 247 § 32a Absatz 5 EStG: gemeinsam zu versteuerndes Einkommen darf nicht negativ sein (zvE=${zve}) · Quelle: § 32a Absatz 5 EStG

est.test

est.test.findsl

Akzeptanztests — Einkommensteuer § 2 + § 32a EStG (VZ 2026)

Sollwerte von Hand aus dem Wortlaut gerechnet (Quelle examples/est/estg.xml, Fassung „ab Veranlagungszeitraum 2026"). § 32a Satz 6: Steuerbetrag auf vollen Euro abgerundet.

Tarif-Größen: y = (zvE − 12.348)/10.000, z = (zvE − 17.799)/10.000. Zonen: Nr. 2 (914,51·y + 1.400)·y; Nr. 3 (173,10·z + 2.397)·z + 1.034,87; Nr. 4 0,42·x − 11.135,63; Nr. 5 0,45·x − 19.470,38. Splitting (Abs. 5) = 2·Grundtarif(⌊zvE/2⌋).

§ 32 Abs. 6: je Kind (3.414 + 1.464)·faktor·Monate/12·auslandsfaktor. § 33 Abs. 3 zumutbare Belastung staffelweise (Stufen 15.340 / 51.130; Sätze ohne Kind Grund 5/6/7 %, Splitting 4/5/6 %; 1–2 Kinder 2/3/4 %; ≥3 Kinder 1/1/2 %). § 10b: Spenden ≤ max(20 % GdE; 4 ‰ Umsätze+Löhne). Modellierungs-Entscheidung: Kategorie-Abzugssummen auf volle Euro abgerundet (s. est.findsl Datei-Doc).

Prüfungen

prüfe § 32a Abs. 1 Nr. 1 EStG — Zone 1 (Grundfreibetrag)

prüfe "§ 32a Abs. 1 Nr. 1 EStG — Zone 1 (Grundfreibetrag)"

Testfall — zvE = 0 → 0

EstGrundtarif(0) == 0

Testfall — zvE = Grundfreibetrag 12.348 → 0 (bis-Grenze inklusiv)

EstGrundtarif(12.348) == 0

Testfall — zvE = 12.349 (Zone-2-Beginn) → 0 (Steuer rundet auf 0 ab)

// y = 1/10000 = 0,0001 → (914,51·0,0001 + 1.400)·0,0001
        //   = 0,14000914… → abrunden 0
        EstGrundtarif(12.349) == 0

prüfe § 32a Abs. 1 Nr. 2 EStG — Zone 2 (Eingangsprogression)

prüfe "§ 32a Abs. 1 Nr. 2 EStG — Zone 2 (Eingangsprogression)"

Testfall — zvE = 15.000

// y = (15.000 − 12.348)/10.000 = 0,2652
        // (914,51·0,2652 + 1.400)·0,2652 = 435,5984… → abrunden 435
        EstGrundtarif(15.000) == 435

Testfall — zvE = 17.799 (obere Grenze Zone 2)

// y = (17.799 − 12.348)/10.000 = 0,5451
        // (914,51·0,5451 + 1.400)·0,5451 = 1.034,99… → abrunden 1.034
        EstGrundtarif(17.799) == 1.034

prüfe § 32a Abs. 1 Nr. 3 EStG — Zone 3 (Hauptprogression)

prüfe "§ 32a Abs. 1 Nr. 3 EStG — Zone 3 (Hauptprogression)"

Testfall — zvE = 17.800 (Zone-3-Beginn)

// z = (17.800 − 17.799)/10.000 = 0,0001
        // (173,10·0,0001 + 2.397)·0,0001 + 1.034,87 = 1.035,109… → 1.035
        EstGrundtarif(17.800) == 1.035

Testfall — zvE = 50.000

// z = (50.000 − 17.799)/10.000 = 3,2201
        // (173,10·3,2201 + 2.397)·3,2201 + 1.034,87 = 10.548,… → 10.548
        EstGrundtarif(50.000) == 10.548

Testfall — zvE = 69.878 (obere Grenze Zone 3)

EstGrundtarif(69.878) == 18.213

prüfe § 32a Abs. 1 Nr. 4 EStG — Zone 4 (Proportionalzone, 42 %)

prüfe "§ 32a Abs. 1 Nr. 4 EStG — Zone 4 (Proportionalzone, 42 %)"

Testfall — zvE = 69.879 (Zone-4-Beginn, stetiger Anschluss)

// 0,42·69.879 − 11.135,63 = 18.213,55 → abrunden 18.213
        EstGrundtarif(69.879) == 18.213

Testfall — zvE = 100.000

// 0,42·100.000 − 11.135,63 = 30.864,37 → abrunden 30.864
        EstGrundtarif(100.000) == 30.864

Testfall — zvE = 277.825 (obere Grenze Zone 4)

// 0,42·277.825 − 11.135,63 = 105.550,87 → abrunden 105.550
        EstGrundtarif(277.825) == 105.550

prüfe § 32a Abs. 1 Nr. 5 EStG — Zone 5 (Proportionalzone, 45 %)

prüfe "§ 32a Abs. 1 Nr. 5 EStG — Zone 5 (Proportionalzone, 45 %)"

Testfall — zvE = 277.826 (Zone-5-Beginn)

// 0,45·277.826 − 19.470,38 = 105.551,32 → abrunden 105.551
        EstGrundtarif(277.826) == 105.551

Testfall — zvE = 300.000

// 0,45·300.000 − 19.470,38 = 115.529,62 → abrunden 115.529
        EstGrundtarif(300.000) == 115.529

prüfe § 32a Abs. 5 EStG — Splitting-Verfahren

prüfe "§ 32a Abs. 5 EStG — Splitting-Verfahren"

Testfall — zvE = 200.000 → 2 · Grundtarif(100.000) = 2 · 30.864

EstSplitting(200.000) == 61.728

Testfall — zvE = 100.001 → Hälfte 50.000 (abgerundet) → 2 · 10.548

EstSplitting(100.001) == 21.096

Testfall — zvE = 150.000 → Hälfte 75.000 → 2 · Grundtarif(75.000)

// 0,42·75.000 − 11.135,63 = 20.364,37 → 20.364 ; 2·20.364
        EstSplitting(150.000) == 40.728

prüfe § 32a EStG — unzulässige Eingaben (abbruch)

prüfe "§ 32a EStG — unzulässige Eingaben (abbruch)"

Testfall — negatives zvE (Grundtarif) ist nicht definiert (erwartet abbruch)

var n: Euro = -1
        EstGrundtarif(n)

Testfall — negatives gemeinsames zvE (Splitting) ist nicht definiert (erwartet abbruch)

var n: Euro = -2
        EstSplitting(n)

prüfe § 2 EStG — Kaskade mit § 32 Abs. 6 / § 33 / § 10b (Listen)

prüfe "§ 2 EStG — Kaskade mit § 32 Abs. 6 / § 33 / § 10b (Listen)"

Testfall — Fall K — Single, 2 Kinder, agB- + Spenden-Posten

// GdE 60.000. zumutbare Belastung (2 Kinder, Stufen 2/3/4 %):
        //   2%·15.340 + 3%·(51.130−15.340) + 4%·(60.000−51.130)
        //   = 306,80 + 1.073,70 + 354,80 = 1.735,30
        // agB abziehbar = nichtNeg(5.000 − 1.735,30).abrunden() = 3.264
        // Spenden abziehbar = min(2.000; 20%·60.000=12.000) = 2.000
        // SA = 4.000 + 2.000 = 6.000
        // KFB = ((3.414+1.464)·1·12/12·100% ·2 Kinder).abrunden() = 9.756
        // Einkommen = 60.000 − 6.000 − 3.264 = 50.736
        // zvE = 50.736 − 9.756 = 40.980 → Grundtarif = 7.521
        var e: EinkommensteuerErgebnis = BerechneEinkommensteuer(EinkommensteuerFall(
            einkuenfteNichtselbstaendigeArbeit = 60.000,
            sonstigeSonderausgaben             = 4.000,
            spenden                            = [2.000],
            aussergewoehnlicheAufwendungen     = [5.000],
            kinder                             = [Kind(), Kind()],
        ))
        e.gesamtbetragDerEinkuenfte == 60.000
            und e.kinderfreibetraege == 9.756
            und e.abziehbareAussergewoehnlicheBelastungen == 3.264
            und e.einkommen == 50.736
            und e.zuVersteuerndesEinkommen == 40.980
            und e.tariflicheEinkommensteuer == 7.521
            und e.festzusetzendeEinkommensteuer == 7.521

Testfall — Fall S — Splitting, 3 Kinder (eines halbjährig), Spenden gekappt

// SdE = 100.000 → GdE 100.000. zumutbar (3 Kinder, 1/1/2 %):
        //   1%·15.340 + 1%·35.790 + 2%·48.870 = 153,40+357,90+977,40 = 1.488,70
        // agB abziehbar = (8.000 − 1.488,70).abrunden() = 6.511
        // Spenden abziehbar = min(30.000; max(20%·100.000=20.000; 0)) = 20.000
        // KFB Splitting faktor 2: 2·4.878·2 + 4.878·2·6/12 = 19.512 + 4.878 = 24.390
        // Einkommen = 100.000 − 20.000 − 6.511 = 73.489
        // zvE = 73.489 − 24.390 = 49.099 → Splitting=2·Grundtarif(24.549)=5.462
        // festzusetzend = 5.462 − 2.500 + 600 = 3.562
        var e: EinkommensteuerErgebnis = BerechneEinkommensteuer(EinkommensteuerFall(
            einkuenfteNichtselbstaendigeArbeit = 100.000,
            spenden                            = [10.000, 20.000],
            aussergewoehnlicheAufwendungen     = [3.000, 5.000],
            kinder                             = [
                Kind(faktor = 2),
                Kind(faktor = 2),
                Kind(faktor = 2, berücksichtigteMonate = 6),
            ],
            tarifart                           = Splitting,
            anrechnungenUndErmaessigungen      = 2.500,
            hinzurechnungen                    = 600,
        ))
        e.kinderfreibetraege == 24.390
            und e.abziehbareAussergewoehnlicheBelastungen == 6.511
            und e.einkommen == 73.489
            und e.zuVersteuerndesEinkommen == 49.099
            und e.tariflicheEinkommensteuer == 5.462
            und e.festzusetzendeEinkommensteuer == 3.562

Testfall — Fall L — agB unter zumutbarer Belastung → 0 abziehbar

// GdE 40.000, 0 Kinder, Grundtarif: zumutbar
        //   5%·15.340 + 6%·(40.000−15.340) = 767 + 1.479,60 = 2.246,60
        // 1.000 < 2.246,60 → abziehbare agB = 0
        var e: EinkommensteuerErgebnis = BerechneEinkommensteuer(EinkommensteuerFall(
            einkuenfteNichtselbstaendigeArbeit = 40.000,
            aussergewoehnlicheAufwendungen     = [1.000],
        ))
        e.abziehbareAussergewoehnlicheBelastungen == 0
            und e.einkommen == 40.000
            und e.zuVersteuerndesEinkommen == 40.000
            und e.tariflicheEinkommensteuer == 7.209

Testfall — Fall 0 — leere Listen ≙ alte Skalar-0-Kaskade (Regressionsanker)

var e: EinkommensteuerErgebnis = BerechneEinkommensteuer(EinkommensteuerFall(
            einkuenfteNichtselbstaendigeArbeit = 50.000,
        ))
        e.kinderfreibetraege == 0
            und e.abziehbareAussergewoehnlicheBelastungen == 0
            und e.einkommen == 50.000
            und e.zuVersteuerndesEinkommen == 50.000
            und e.tariflicheEinkommensteuer == 10.548