Source code for _gettsim.social_insurance_contributions.ges_rentenv
from _gettsim.shared import dates_active
[docs]def ges_rentenv_beitr_m(
geringfügig_beschäftigt: bool,
_ges_rentenv_beitr_midijob_arbeitn_m: float,
_ges_rentenv_beitr_bruttolohn_m: float,
sozialv_beitr_params: dict,
in_gleitzone: bool,
) -> float:
"""Contribution for each individual to the pension insurance.
Parameters
----------
geringfügig_beschäftigt
See :func:`geringfügig_beschäftigt`.
_ges_rentenv_beitr_midijob_arbeitn_m
See :func:`_ges_rentenv_beitr_midijob_arbeitn_m`.
_ges_rentenv_beitr_bruttolohn_m
See :func:`_ges_rentenv_beitr_bruttolohn_m`.
sozialv_beitr_params
See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`.
in_gleitzone
See :func:`in_gleitzone`.
Returns
-------
"""
ges_rentenv_beitr_regular_job_m = (
_ges_rentenv_beitr_bruttolohn_m
* sozialv_beitr_params["beitr_satz"]["ges_rentenv"]
)
if geringfügig_beschäftigt:
out = 0.0
elif in_gleitzone:
out = _ges_rentenv_beitr_midijob_arbeitn_m
else:
out = ges_rentenv_beitr_regular_job_m
return out
[docs]def ges_rentenv_beitr_arbeitg_m(
geringfügig_beschäftigt: bool,
_ges_rentenv_beitr_midijob_arbeitg_m: float,
_ges_rentenv_beitr_bruttolohn_m: float,
sozialv_beitr_params: dict,
in_gleitzone: bool,
bruttolohn_m: float,
) -> float:
"""Contribution of the respective employer to the pension insurance.
Parameters
----------
geringfügig_beschäftigt
See :func:`geringfügig_beschäftigt`.
_ges_rentenv_beitr_midijob_arbeitg_m
See :func:`_ges_rentenv_beitr_midijob_arbeitg_m`.
_ges_rentenv_beitr_bruttolohn_m
See :func:`_ges_rentenv_beitr_bruttolohn_m`.
sozialv_beitr_params
See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`.
in_gleitzone
See :func:`in_gleitzone`.
bruttolohn_m
See basic input variable :ref:`bruttolohn_m <bruttolohn_m>`.
Returns
-------
"""
ges_rentenv_beitr_regular_job_m = (
_ges_rentenv_beitr_bruttolohn_m
* sozialv_beitr_params["beitr_satz"]["ges_rentenv"]
)
if geringfügig_beschäftigt:
out = bruttolohn_m * sozialv_beitr_params["ag_abgaben_geringf"]["ges_rentenv"]
elif in_gleitzone:
out = _ges_rentenv_beitr_midijob_arbeitg_m
else:
out = ges_rentenv_beitr_regular_job_m
return out
def _ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m(
midijob_bemessungsentgelt_m: float,
sozialv_beitr_params: dict,
) -> float:
"""Calculating the sum of employee and employer pension insurance contribution for
midijobs.
Parameters
----------
midijob_bemessungsentgelt_m
See :func:`midijob_bemessungsentgelt_m`.
sozialv_beitr_params
See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`.
Returns
-------
"""
ges_beitr_midijob = (
midijob_bemessungsentgelt_m
* 2
* sozialv_beitr_params["beitr_satz"]["ges_rentenv"]
)
return ges_beitr_midijob
@dates_active(
end="2022-09-30",
change_name="_ges_rentenv_beitr_midijob_arbeitg_m",
)
def _ges_rentenv_beitr_midijob_arbeitg_m_anteil_bruttolohn(
bruttolohn_m: float,
sozialv_beitr_params: dict,
) -> float:
"""Calculating the employer unemployment insurance contribution until September
2022.
Parameters
----------
bruttolohn_m
See basic input variable :ref:`bruttolohn_m <bruttolohn_m>`.
sozialv_beitr_params
See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`.
Returns
-------
"""
out = bruttolohn_m * sozialv_beitr_params["beitr_satz"]["ges_rentenv"]
return out
@dates_active(start="2022-10-01", change_name="_ges_rentenv_beitr_midijob_arbeitg_m")
def _ges_rentenv_beitr_midijob_arbeitg_m_residuum(
_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m: float,
_ges_rentenv_beitr_midijob_arbeitn_m: float,
) -> float:
"""Calculating the employer unemployment insurance contribution since October 2022.
Parameters
----------
_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m
See :func:`_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m`.
_ges_rentenv_beitr_midijob_arbeitn_m
See :func:`_ges_rentenv_beitr_midijob_arbeitn_m`.
Returns
-------
"""
out = (
_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m
- _ges_rentenv_beitr_midijob_arbeitn_m
)
return out
@dates_active(
end="2022-09-30",
change_name="_ges_rentenv_beitr_midijob_arbeitn_m",
)
def _ges_rentenv_beitr_midijob_arbeitn_m_residuum(
_ges_rentenv_beitr_midijob_arbeitg_m: float,
_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m: float,
) -> float:
"""Calculating the employee unemployment insurance contribution until September
2022.
Parameters
----------
_ges_rentenv_beitr_midijob_arbeitg_m
See :func:`_ges_rentenv_beitr_midijob_arbeitg_m`.
_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m
See :func:`_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m`.
Returns
-------
"""
an_beitr_midijob = (
_ges_rentenv_beitr_midijob_sum_arbeitn_arbeitg_m
- _ges_rentenv_beitr_midijob_arbeitg_m
)
return an_beitr_midijob
@dates_active(start="2022-10-01", change_name="_ges_rentenv_beitr_midijob_arbeitn_m")
def _ges_rentenv_beitr_midijob_arbeitn_m_anteil_beitragspfl_einnahme(
_midijob_beitragspfl_einnahme_arbeitn_m: float,
sozialv_beitr_params: dict,
) -> float:
"""Calculating the employee unemployment insurance contribution since October 2022.
Parameters
----------
_midijob_beitragspfl_einnahme_arbeitn_m
See :func:`_midijob_beitragspfl_einnahme_arbeitn_m`.
sozialv_beitr_params
See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`.
Returns
-------
"""
an_beitr_midijob = (
_midijob_beitragspfl_einnahme_arbeitn_m
* sozialv_beitr_params["beitr_satz"]["ges_rentenv"]
)
return an_beitr_midijob
def _ges_rentenv_beitr_bruttolohn_m(
bruttolohn_m: float,
_ges_rentenv_beitr_bemess_grenze_m: float,
) -> float:
"""Calculate the wage subject to pension and unemployment insurance contributions.
Parameters
----------
bruttolohn_m
See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`.
_ges_rentenv_beitr_bemess_grenze_m
See :func:`_ges_rentenv_beitr_bemess_grenze_m`.
Returns
-------
"""
out = min(bruttolohn_m, _ges_rentenv_beitr_bemess_grenze_m)
return out