Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/_gettsim/arbeitslosengeld_2/einkommen.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,12 @@ def nettoeinkommen_vor_abzug_freibetrag_m(
@policy_function(start_date="2005-01-01")
def bruttoeinkommen_m(
einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_m: float,
einkommensteuer__einkünfte__sonstige__ohne_renten_m: float,
einkommensteuer__einkünfte__aus_selbstständiger_arbeit__betrag_m: float,
einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m: float,
einkommensteuer__einkünfte__sonstige__ohne_renten_m: float,
einkommensteuer__einkünfte__sonstige__private_und_betriebliche_renteneinnahmen_m: float,
einkommensteuer__einkünfte__aus_kapitalvermögen__kapitalerträge_m: float,
sozialversicherung__rente__altersrente__betrag_m: float,
sozialversicherung__rente__private_rente_betrag_m: float,
sozialversicherung__arbeitslosen__betrag_m: float,
elterngeld__betrag_m: float,
) -> float:
Expand All @@ -97,12 +97,12 @@ def bruttoeinkommen_m(
"""
return (
einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_m
+ einkommensteuer__einkünfte__sonstige__ohne_renten_m
+ einkommensteuer__einkünfte__aus_selbstständiger_arbeit__betrag_m
+ einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m
+ einkommensteuer__einkünfte__aus_kapitalvermögen__kapitalerträge_m
+ einkommensteuer__einkünfte__sonstige__ohne_renten_m
+ einkommensteuer__einkünfte__sonstige__private_und_betriebliche_renteneinnahmen_m
+ sozialversicherung__rente__altersrente__betrag_m
+ sozialversicherung__rente__private_rente_betrag_m
+ sozialversicherung__arbeitslosen__betrag_m
+ elterngeld__betrag_m
)
Expand Down
23 changes: 23 additions & 0 deletions src/_gettsim/einkommensteuer/einkünfte/sonstige/inputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,26 @@ def renteneinkünfte_vorjahr_m() -> float:
GETTSIM can calculate this input based on the data of the previous year using the
target `("einkommensteuer", "einkünfte", "sonstige", "renteneinkünfte_m")`.
"""


@policy_input()
def private_renteneinnahmen_m() -> float:
"""Monthly payout from private pensions without tax-favored contributions.

This refers to pension payments from plans where the original
contributions were not tax-deductible (or tax-exempt).
"""


@policy_input()
def geförderte_private_renteneinnahmen_m() -> float:
"""Monthly payout from private pensions with tax-favored contributions.

This refers to pension payments from plans where the original
contributions were tax-deductible (or tax-exempt). Primarily Riesterrente.
"""


@policy_input()
def betriebliche_renteneinnahmen_m() -> float:
"""Amount of monthly occupational pension."""
31 changes: 26 additions & 5 deletions src/_gettsim/einkommensteuer/einkünfte/sonstige/sonstige.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,19 @@ def betrag_m(
def renteneinkünfte_m(
ertragsanteil_der_rente: float,
sozialversicherung__rente__altersrente__betrag_m: float,
sozialversicherung__rente__private_rente_betrag_m: float,
geförderte_private_renteneinnahmen_m: float,
private_renteneinnahmen_m: float,
betriebliche_renteneinnahmen_m: float,
) -> float:
"""Pension income counting towards taxable income."""
return ertragsanteil_der_rente * (
sozialversicherung__rente__altersrente__betrag_m
+ sozialversicherung__rente__private_rente_betrag_m
"""Pension income counting towards taxable income.

Reference: § 22 EStG
"""
return (
ertragsanteil_der_rente
* (sozialversicherung__rente__altersrente__betrag_m + private_renteneinnahmen_m)
+ betriebliche_renteneinnahmen_m
+ geförderte_private_renteneinnahmen_m
)


Expand All @@ -48,3 +55,17 @@ def ertragsanteil_der_rente(
parameters=parameter_ertragsanteil_der_rente,
xnp=xnp,
)


@policy_function()
def private_und_betriebliche_renteneinnahmen_m(
private_renteneinnahmen_m: float,
geförderte_private_renteneinnahmen_m: float,
betriebliche_renteneinnahmen_m: float,
) -> float:
"""Private and occupational pension income."""
return (
private_renteneinnahmen_m
+ geförderte_private_renteneinnahmen_m
+ betriebliche_renteneinnahmen_m
)
27 changes: 14 additions & 13 deletions src/_gettsim/grundsicherung/im_alter/einkommen.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
@policy_function()
def einkommen_m(
erwerbseinkommen_m: float,
private_rente_betrag_m: float,
einkommen_aus_zusätzlicher_altersvorsorge_m: float,
gesetzliche_rente_m: float,
einkommensteuer__einkünfte__sonstige__ohne_renten_m: float,
einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m: float,
Expand All @@ -34,7 +34,7 @@ def einkommen_m(
total_income = (
erwerbseinkommen_m
+ gesetzliche_rente_m
+ private_rente_betrag_m
+ einkommen_aus_zusätzlicher_altersvorsorge_m
+ einkommensteuer__einkünfte__sonstige__ohne_renten_m
+ einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m
+ kapitaleinkommen_brutto_m
Expand Down Expand Up @@ -110,8 +110,8 @@ def kapitaleinkommen_brutto_m_mit_freibetrag(


@policy_function(start_date="2011-01-01")
def private_rente_betrag_m(
sozialversicherung__rente__private_rente_betrag_m: float,
def einkommen_aus_zusätzlicher_altersvorsorge_m(
einkommensteuer__einkünfte__sonstige__private_und_betriebliche_renteneinnahmen_m: float,
anrechnungsfreier_anteil_private_renteneinkünfte: PiecewisePolynomialParam,
grundsicherung__regelbedarfsstufen: Regelbedarfsstufen,
xnp: ModuleType,
Expand All @@ -121,18 +121,19 @@ def private_rente_betrag_m(

Legal reference: § 82 SGB XII Abs. 4
"""
sozialversicherung__rente__private_rente_betrag_m_amount_exempt = (
piecewise_polynomial(
x=sozialversicherung__rente__private_rente_betrag_m,
parameters=anrechnungsfreier_anteil_private_renteneinkünfte,
xnp=xnp,
)
freibetrag = piecewise_polynomial(
x=einkommensteuer__einkünfte__sonstige__private_und_betriebliche_renteneinnahmen_m,
parameters=anrechnungsfreier_anteil_private_renteneinkünfte,
xnp=xnp,
)
upper = grundsicherung__regelbedarfsstufen.rbs_1 / 2

return sozialversicherung__rente__private_rente_betrag_m - min(
sozialversicherung__rente__private_rente_betrag_m_amount_exempt,
upper,
return (
einkommensteuer__einkünfte__sonstige__private_und_betriebliche_renteneinnahmen_m
- min(
freibetrag,
upper,
)
)


Expand Down
4 changes: 2 additions & 2 deletions src/_gettsim/sozialversicherung/kranken/beitrag/einkommen.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,12 @@ def bezugsgröße_selbstständige_m(
@policy_function()
def bemessungsgrundlage_rente_m(
sozialversicherung__rente__altersrente__betrag_m: float,
sozialversicherung__rente__private_rente_betrag_m: float,
einkommensteuer__einkünfte__sonstige__betriebliche_renteneinnahmen_m: float,
beitragsbemessungsgrenze_m: float,
) -> float:
"""Pension income which is subject to health insurance contribution."""
return min(
sozialversicherung__rente__altersrente__betrag_m
+ sozialversicherung__rente__private_rente_betrag_m,
+ einkommensteuer__einkünfte__sonstige__betriebliche_renteneinnahmen_m,
beitragsbemessungsgrenze_m,
)
5 changes: 0 additions & 5 deletions src/_gettsim/sozialversicherung/rente/inputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,6 @@ def pflichtbeitragsmonate() -> float:
"""Total months of mandatory pension insurance contributions."""


@policy_input()
def private_rente_betrag_m() -> float:
"""Amount of monthly private pension."""


@policy_input()
def pflegeberücksichtigungszeiten_monate() -> float:
"""Total months of home care provision (01.01.1992-31.03.1995)."""
6 changes: 3 additions & 3 deletions src/_gettsim/unterhaltsvorschuss/unterhaltsvorschuss.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,12 +300,12 @@ def mindesteinkommen_erreicht(
@policy_function(start_date="2017-07-01")
def einkommen_m(
einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_m: float,
einkommensteuer__einkünfte__sonstige__ohne_renten_m: float,
einkommensteuer__einkünfte__aus_selbstständiger_arbeit__betrag_m: float,
einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m: float,
einkommensteuer__einkünfte__aus_kapitalvermögen__kapitalerträge_m: float,
einkommensteuer__einkünfte__sonstige__ohne_renten_m: float,
einkommensteuer__einkünfte__sonstige__private_und_betriebliche_renteneinnahmen_m: float,
sozialversicherung__rente__altersrente__betrag_m: float,
sozialversicherung__rente__private_rente_betrag_m: float,
sozialversicherung__arbeitslosen__betrag_m: float,
) -> float:
"""Calculate relevant income for advance on alimony payment."""
Expand All @@ -316,7 +316,7 @@ def einkommen_m(
+ einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m
+ einkommensteuer__einkünfte__aus_kapitalvermögen__kapitalerträge_m
+ sozialversicherung__rente__altersrente__betrag_m
+ sozialversicherung__rente__private_rente_betrag_m
+ einkommensteuer__einkünfte__sonstige__private_und_betriebliche_renteneinnahmen_m
+ sozialversicherung__arbeitslosen__betrag_m
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ inputs:
sonstige:
ohne_renten_m:
- 0.0
geförderte_private_renteneinnahmen_m:
- 0.0
private_renteneinnahmen_m:
- 0.0
betriebliche_renteneinnahmen_m:
- 0.0
gemeinsam_veranlagt:
- false
elterngeld:
Expand Down Expand Up @@ -78,8 +84,6 @@ inputs:
- 0.0
bezieht_rente:
- false
private_rente_betrag_m:
- 0.0
unterhalt:
tatsächlich_erhaltener_betrag_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,24 @@ inputs:
- 0.0
- 0.0
- 0.0
geförderte_private_renteneinnahmen_m:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
private_renteneinnahmen_m:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
betriebliche_renteneinnahmen_m:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
gemeinsam_veranlagt:
- true
- true
Expand Down Expand Up @@ -190,12 +208,6 @@ inputs:
- false
- false
- false
private_rente_betrag_m:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
unterhalt:
tatsächlich_erhaltener_betrag_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ inputs:
ohne_renten_m:
- 250.0
- 0.0
geförderte_private_renteneinnahmen_m:
- 0.0
- 0.0
private_renteneinnahmen_m:
- 0.0
- 0.0
betriebliche_renteneinnahmen_m:
- 0.0
- 0.0
gemeinsam_veranlagt:
- false
- false
Expand Down Expand Up @@ -106,9 +115,6 @@ inputs:
bezieht_rente:
- false
- false
private_rente_betrag_m:
- 0.0
- 0.0
unterhalt:
tatsächlich_erhaltener_betrag_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ inputs:
ohne_renten_m:
- 250.0
- 0.0
geförderte_private_renteneinnahmen_m:
- 0.0
- 0.0
private_renteneinnahmen_m:
- 0.0
- 0.0
betriebliche_renteneinnahmen_m:
- 0.0
- 0.0
gemeinsam_veranlagt:
- false
- false
Expand Down Expand Up @@ -106,9 +115,6 @@ inputs:
bezieht_rente:
- false
- false
private_rente_betrag_m:
- 0.0
- 0.0
unterhalt:
tatsächlich_erhaltener_betrag_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ inputs:
ohne_renten_m:
- 100.0
- 0.0
geförderte_private_renteneinnahmen_m:
- 0.0
- 0.0
private_renteneinnahmen_m:
- 0.0
- 0.0
betriebliche_renteneinnahmen_m:
- 0.0
- 0.0
gemeinsam_veranlagt:
- true
- true
Expand Down Expand Up @@ -106,9 +115,6 @@ inputs:
bezieht_rente:
- true
- true
private_rente_betrag_m:
- 0.0
- 0.0
unterhalt:
tatsächlich_erhaltener_betrag_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ inputs:
ohne_renten_m:
- 100.0
- 0.0
geförderte_private_renteneinnahmen_m:
- 0.0
- 0.0
private_renteneinnahmen_m:
- 0.0
- 0.0
betriebliche_renteneinnahmen_m:
- 0.0
- 0.0
gemeinsam_veranlagt:
- true
- true
Expand Down Expand Up @@ -106,9 +115,6 @@ inputs:
bezieht_rente:
- false
- true
private_rente_betrag_m:
- 0.0
- 0.0
unterhalt:
tatsächlich_erhaltener_betrag_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,15 @@ inputs:
ohne_renten_m:
- 100.0
- 0.0
geförderte_private_renteneinnahmen_m:
- 0.0
- 0.0
private_renteneinnahmen_m:
- 0.0
- 0.0
betriebliche_renteneinnahmen_m:
- 0.0
- 0.0
gemeinsam_veranlagt:
- true
- true
Expand Down Expand Up @@ -108,9 +117,6 @@ inputs:
bezieht_rente:
- false
- false
private_rente_betrag_m:
- 0.0
- 0.0
unterhalt:
tatsächlich_erhaltener_betrag_m:
- 0.0
Expand Down
Loading
Loading