Lohnsteuer & Einkommensteuer nach BMF-Programmablaufplan 2026 — offline, typisiert, zero dependencies.
Project description
Lohn- und Einkommensteuer nach dem BMF-Programmablaufplan 2026: offline, typisiert, ohne externe Abhängigkeiten.
Installation · Schnellstart · API · PyPI
lohnsteuer-bmf
pip install und loslegen: kein Code-Generator, kein PAP-XML-Parsing, keine
Laufzeit-Abhängigkeiten. Die Steuerwerte für 2026 sind gegen Primärquellen
verifiziert (§32a EStG, BMF-PAP 2026, SV-Rechengrößenverordnung 2026).
- 🔌 Zero Dependencies — reine Standardbibliothek, nichts zu auditieren
- 📴 Offline — keine Netzwerk-Calls, kein PAP-XML-Parsing zur Laufzeit
- 🧮 Primärquellen-verifiziert — §32a EStG, BMF-PAP 2026, SV-RechGrV 2026
- 🏷️ Vollständig typisiert — PEP 561 (
py.typed),mypy --strict - 🐍 Python 3.10 – 3.14 — getestet auf Linux, Windows und macOS
🇬🇧 English speakers: scroll down for the English section.
Installation
pip install lohnsteuer-bmf
Python ≥ 3.10 (getestet bis 3.14) · keine Abhängigkeiten.
Schnellstart
Die häufigste Frage zuerst — Steuerklasse 1, 5.000 € brutto/Monat, 2026:
from lohnsteuer_bmf import berechne_lohnsteuer_pap
ergebnis = berechne_lohnsteuer_pap(
brutto_jahr=60_000.0, # 5.000 € * 12
steuerklasse=1,
bundesland="Nordrhein-Westfalen",
mit_kirchensteuer=False,
kinder=0,
geburtsjahr=1990,
kv_zusatzbeitrag=2.9, # durchschnittlicher Zusatzbeitrag 2026
ist_sachsen=False,
jahr=2026,
)
print(ergebnis)
# {'lohnsteuer_monat': 777.33, 'soli_monat': 0.0, 'kirchensteuer_monat': 0.0,
# 'zve_jahr': 46464.0, 'vorsorgepauschale': 12270.0}
Einkommensteuer-Tarif (§32a EStG)
from lohnsteuer_bmf import berechne_einkommensteuer_tarif
t = berechne_einkommensteuer_tarif(zve=50_000, jahr=2026)
print(t["einkommensteuer"], t["grenzsteuersatz"], t["tarifzone"]["name"])
# 10548.0 35.0 'Obere Progressionszone'
Bausteine
from lohnsteuer_bmf import (
einkommensteuer, # §32a EStG, Grundtarif
einkommensteuer_splitting, # §32a Abs. 5 EStG, Ehegattensplitting
solidaritaetszuschlag, # §3/§4 SolzG inkl. Milderungszone
kirchensteuer, # 8 % (BY, BW) / 9 % (übrige Länder)
)
einkommensteuer(50_000, 2026) # 10548
einkommensteuer_splitting(100_000, 2026) # 21096
solidaritaetszuschlag(30_864, jahr=2026) # 1251.17
kirchensteuer(10_000, "Bayern") # 800.0
Was ist drin
| Funktion | Rechtsgrundlage |
|---|---|
berechne_lohnsteuer_pap |
BMF-Programmablaufplan 2026 (BMF-Schreiben v. 12.11.2025) |
berechne_zve |
zu versteuerndes Einkommen aus Brutto (Vorsorgepauschale etc.) |
berechne_einkommensteuer_tarif |
§32a EStG inkl. Grenz-/Durchschnittssteuersatz |
einkommensteuer / einkommensteuer_splitting |
§32a Abs. 1 / Abs. 5 EStG |
solidaritaetszuschlag |
§3/§4 SolzG |
kirchensteuer |
Landeskirchensteuergesetze |
Unterstützte Steuerjahre: 2024, 2025, 2026.
Stand der Verifikation (2026-06-07): Alle drei Steuerjahre sind gegen amtliche Primärquellen geprüft — 2024 final (Grundfreibetrag 11.784 €, BGBl. 2024 I Nr. 386 / BMF EStH 2024), 2025 (Steuerfortentwicklungsgesetz, BGBl. 2024 I Nr. 449 / BMF EStH 2025), 2026 (§32a EStG, gesetze-im-internet) — zusätzlich durch einen Kontinuitäts-Check an allen Tarif-Zonengrenzen abgesichert.
Brauchst du mehr als Lohn-/Einkommensteuer?
Dieses Paket ist die offene Commodity-Schicht. Die breite Abdeckung — rund 58 weitere deutsche Rechner inkl. Sozialleistungen (Bürgergeld, Wohngeld, Elterngeld, Gewerbe-/Grunderwerb-/Erbschaftsteuer, Krypto, Photovoltaik u.v.m.), Batch-Endpoints und Gemeinde-Hebesätze — gibt es als gehostete REST-API:
👉 rechner-hub.de/steuerrechner-api
Genauigkeit & Haftung
Die Berechnungen folgen den offiziellen BMF-Formeln, ersetzen aber keine Steuerberatung. Alle Angaben ohne Gewähr. Das Paket bildet die maschinelle Lohnsteuer-/ESt-Berechnung ab, nicht jeden Einzelfall des Veranlagungsverfahrens.
Lizenz
MIT © 2026 L1nch-lab
English
German wage tax (Lohnsteuer) and income tax (Einkommensteuer) per the official BMF payroll algorithm (Programmablaufplan) 2026 — offline, typed, zero dependencies.
pip install lohnsteuer-bmf
Quick start — tax class 1, €5,000 gross/month, 2026:
from lohnsteuer_bmf import berechne_lohnsteuer_pap
result = berechne_lohnsteuer_pap(
brutto_jahr=60_000.0, # 5,000 EUR * 12
steuerklasse=1, # tax class 1
bundesland="Nordrhein-Westfalen",
mit_kirchensteuer=False, # church tax
kinder=0, # children
geburtsjahr=1990, # birth year
kv_zusatzbeitrag=2.9, # avg. health-insurance surcharge 2026
ist_sachsen=False, # Saxony special rule
jahr=2026, # tax year
)
print(result["lohnsteuer_monat"]) # 777.33 (monthly wage tax in EUR)
What's included: monthly Lohnsteuer (BMF-PAP 2026), the §32a income-tax tariff (incl. spouse splitting, marginal/average rates), solidarity surcharge and church tax. Tax years 2024–2026 — all three verified against official primary sources (as of 2026-06-07). Python ≥ 3.10, zero dependencies.
Need the full breadth (≈58 more German calculators incl. social benefits, batch endpoints, municipal trade-tax rates)? Use the hosted REST API: rechner-hub.de/steuerrechner-api.
Not tax advice — provided as is. Licensed under MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lohnsteuer_bmf-2026.1.tar.gz.
File metadata
- Download URL: lohnsteuer_bmf-2026.1.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78e20966afd4554aafab167d10a9fcc1b5559dbe0626d287a7880901619d2acb
|
|
| MD5 |
d0eb52ffe5fb48696a828a884de50cef
|
|
| BLAKE2b-256 |
6c9fbc44de7527f51ba6f5c53acae105040720c2ca52181a66a140c8b8c6d893
|
Provenance
The following attestation bundles were made for lohnsteuer_bmf-2026.1.tar.gz:
Publisher:
release.yml on L1nch-lab/lohnsteuer-bmf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lohnsteuer_bmf-2026.1.tar.gz -
Subject digest:
78e20966afd4554aafab167d10a9fcc1b5559dbe0626d287a7880901619d2acb - Sigstore transparency entry: 1974820774
- Sigstore integration time:
-
Permalink:
L1nch-lab/lohnsteuer-bmf@a43fd55ac4679e56b4bdb8734a257eff48bc3b5c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/L1nch-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a43fd55ac4679e56b4bdb8734a257eff48bc3b5c -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file lohnsteuer_bmf-2026.1-py3-none-any.whl.
File metadata
- Download URL: lohnsteuer_bmf-2026.1-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28484a9bc9d3752d6cc5e940a632c7575cf88ab152fc39ac3036fcaf86d5d05f
|
|
| MD5 |
193f036679f4cb3e57f629904a1ddb95
|
|
| BLAKE2b-256 |
c4d9ac855fbffb5e47c8d03e496b0b1fdf0804f7ac672a2e7df699d546dbd130
|
Provenance
The following attestation bundles were made for lohnsteuer_bmf-2026.1-py3-none-any.whl:
Publisher:
release.yml on L1nch-lab/lohnsteuer-bmf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lohnsteuer_bmf-2026.1-py3-none-any.whl -
Subject digest:
28484a9bc9d3752d6cc5e940a632c7575cf88ab152fc39ac3036fcaf86d5d05f - Sigstore transparency entry: 1974820979
- Sigstore integration time:
-
Permalink:
L1nch-lab/lohnsteuer-bmf@a43fd55ac4679e56b4bdb8734a257eff48bc3b5c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/L1nch-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a43fd55ac4679e56b4bdb8734a257eff48bc3b5c -
Trigger Event:
workflow_dispatch
-
Statement type: