Source code for _gettsim.social_insurance_contributions.ges_pflegev

from _gettsim.shared import dates_active


[docs]def ges_pflegev_zusatz_kinderlos( hat_kinder: bool, alter: int, sozialv_beitr_params: dict, ) -> bool: """Whether additional care insurance contribution for childless individuals applies. ToDo: Make dependent on year. Current implementation is deliberately ugly. Parameters ---------- hat_kinder See basic input variable :ref:`hat_kinder <hat_kinder>`. alter See basic input variable :ref:`alter <alter>`. Returns ------- """ if "ges_pflegev_zusatz_kinderlos_mindestalter" in sozialv_beitr_params: altersgrenze = sozialv_beitr_params["ges_pflegev_zusatz_kinderlos_mindestalter"] else: altersgrenze = 9999 out = (not hat_kinder) and alter >= altersgrenze return out
[docs]def ges_pflegev_beitr_m( # noqa: PLR0913 geringfügig_beschäftigt: bool, ges_pflegev_beitr_rente_m: float, ges_pflegev_beitr_selbst_m: float, _ges_pflegev_beitr_midijob_arbeitn_m: float, ges_pflegev_zusatz_kinderlos: bool, _ges_krankenv_bruttolohn_m: float, sozialv_beitr_params: dict, in_gleitzone: bool, selbstständig: bool, ) -> float: """Contribution for each individual to the public care insurance. Parameters ---------- geringfügig_beschäftigt See :func:`geringfügig_beschäftigt`. ges_pflegev_beitr_rente_m See :func:`ges_pflegev_beitr_rente_m`. ges_pflegev_beitr_selbst_m See :func:`ges_pflegev_beitr_selbst_m`. _ges_pflegev_beitr_midijob_arbeitn_m See :func:`_ges_pflegev_beitr_midijob_arbeitn_m`. ges_pflegev_zusatz_kinderlos See :func:`ges_pflegev_zusatz_kinderlos`. _ges_krankenv_bruttolohn_m See :func:`_ges_krankenv_bruttolohn_m`. sozialv_beitr_params See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`. in_gleitzone See :func:`in_gleitzone`. selbstständig See basic input variable :ref:`selbstständig <selbstständig>`. Returns ------- """ # Calculate care insurance contributions for regular jobs. beitr_regulär_beschäftigt_m = ( _ges_krankenv_bruttolohn_m * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["standard"] ) # Add additional contribution for childless individuals if ges_pflegev_zusatz_kinderlos: beitr_regulär_beschäftigt_m += ( _ges_krankenv_bruttolohn_m * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["zusatz_kinderlos"] ) if selbstständig: out = ges_pflegev_beitr_selbst_m elif geringfügig_beschäftigt: out = 0.0 elif in_gleitzone: out = _ges_pflegev_beitr_midijob_arbeitn_m else: out = beitr_regulär_beschäftigt_m # Add the care insurance contribution for pensions return out + ges_pflegev_beitr_rente_m
[docs]def ges_pflegev_beitr_arbeitg_m( geringfügig_beschäftigt: bool, _ges_pflegev_beitr_midijob_arbeitg_m: float, _ges_krankenv_bruttolohn_m: float, sozialv_beitr_params: dict, in_gleitzone: bool, selbstständig: bool, ) -> float: """Contribution of the respective employer to the public care insurance. Parameters ---------- geringfügig_beschäftigt See :func:`geringfügig_beschäftigt`. _ges_pflegev_beitr_midijob_arbeitg_m See :func:`_ges_pflegev_beitr_midijob_arbeitg_m`. _ges_krankenv_bruttolohn_m See :func:`_ges_krankenv_bruttolohn_m`. sozialv_beitr_params See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`. in_gleitzone See :func:`in_gleitzone`. selbstständig See basic input variable :ref:`selbstständig <selbstständig>`. Returns ------- """ # Calculate care insurance contributions for regular jobs. beitr_regulär_beschäftigt_m = ( _ges_krankenv_bruttolohn_m * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["standard"] ) if selbstständig: out = 0.0 if geringfügig_beschäftigt: out = 0.0 elif in_gleitzone: out = _ges_pflegev_beitr_midijob_arbeitg_m else: out = beitr_regulär_beschäftigt_m return out
[docs]def ges_pflegev_beitr_selbst_m( ges_pflegev_zusatz_kinderlos: bool, _ges_krankenv_bemessungsgrundlage_eink_selbst: float, sozialv_beitr_params: dict, ) -> float: """Calculate care insurance contributions for self-employed individuals. Self-employed pay the full contribution (employer + employee), which is either assessed on their self-employement income or 3/4 of the 'Bezugsgröße' Parameters ---------- ges_pflegev_zusatz_kinderlos See :func:`ges_pflegev_zusatz_kinderlos`. _ges_krankenv_bemessungsgrundlage_eink_selbst See :func:`_ges_krankenv_bemessungsgrundlage_eink_selbst`. sozialv_beitr_params See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`. Returns ------- Monthly care insurance contributions for self employed income. """ out = ( _ges_krankenv_bemessungsgrundlage_eink_selbst * 2 * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["standard"] ) # Add additional contribution for childless individuals if ges_pflegev_zusatz_kinderlos: out += ( _ges_krankenv_bemessungsgrundlage_eink_selbst * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["zusatz_kinderlos"] ) return out
[docs]def ges_pflegev_beitr_rente_m( ges_pflegev_zusatz_kinderlos: bool, _ges_krankenv_bemessungsgrundlage_rente_m: float, sozialv_beitr_params: dict, ) -> float: """Calculating the contribution to health insurance for pension income. Parameters ---------- ges_pflegev_zusatz_kinderlos See :func:`ges_pflegev_zusatz_kinderlos`. _ges_krankenv_bemessungsgrundlage_rente_m See :func:`_ges_krankenv_bemessungsgrundlage_rente_m`. sozialv_beitr_params See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`. Returns ------- Monthly health insurance contributions for pension income. """ out = ( _ges_krankenv_bemessungsgrundlage_rente_m * 2 * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["standard"] ) # Add additional contribution for childless individuals if ges_pflegev_zusatz_kinderlos: out += ( _ges_krankenv_bemessungsgrundlage_rente_m * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["zusatz_kinderlos"] ) return out
def _ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m( midijob_bemessungsentgelt_m: float, sozialv_beitr_params: dict, ges_pflegev_zusatz_kinderlos: bool, ) -> float: """Sum of employee and employer long-term care insurance contributions. Parameters ---------- midijob_bemessungsentgelt_m See :func:`midijob_bemessungsentgelt_m`. ges_pflegev_zusatz_kinderlos See :func:`ges_pflegev_zusatz_kinderlos`. sozialv_beitr_params See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`. Returns ------- """ gesamtbeitrag_midijob_m = ( midijob_bemessungsentgelt_m * 2 * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["standard"] ) # Add additional contribution for childless individuals if ges_pflegev_zusatz_kinderlos: gesamtbeitrag_midijob_m += ( midijob_bemessungsentgelt_m * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["zusatz_kinderlos"] ) return gesamtbeitrag_midijob_m @dates_active( end="2022-09-30", change_name="_ges_pflegev_beitr_midijob_arbeitg_m", ) def _ges_pflegev_beitr_midijob_arbeitg_m_anteil_bruttolohn( bruttolohn_m: float, sozialv_beitr_params: dict, ) -> float: """Calculating the employer care 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_pflegev"]["standard"] return out @dates_active(start="2022-10-01", change_name="_ges_pflegev_beitr_midijob_arbeitg_m") def _ges_pflegev_beitr_midijob_arbeitg_m_residuum( _ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m: float, _ges_pflegev_beitr_midijob_arbeitn_m: float, ) -> float: """Calculating the employer care insurance contribution since October 2022. Parameters ---------- _ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m See :func:`_ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m`. _ges_pflegev_beitr_midijob_arbeitn_m See :func:`_ges_pflegev_beitr_midijob_arbeitn_m`. Returns ------- """ out = ( _ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m - _ges_pflegev_beitr_midijob_arbeitn_m ) return out @dates_active( end="2022-09-30", change_name="_ges_pflegev_beitr_midijob_arbeitn_m", ) def _ges_pflegev_beitr_midijob_arbeitn_m_residuum( _ges_pflegev_beitr_midijob_arbeitg_m: float, _ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m: float, ) -> float: """Calculating the employee care insurance contribution until September 2022. Parameters ---------- _ges_pflegev_beitr_midijob_arbeitg_m See :func:`_ges_pflegev_beitr_midijob_arbeitg_m`. _ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m See :func:`_ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m`. Returns ------- """ out = ( _ges_pflegev_beitr_midijob_sum_arbeitn_arbeitg_m - _ges_pflegev_beitr_midijob_arbeitg_m ) return out @dates_active(start="2022-10-01", change_name="_ges_pflegev_beitr_midijob_arbeitn_m") def _ges_pflegev_beitr_midijob_arbeitn_m_anteil_beitragspfl_einnahme( ges_pflegev_zusatz_kinderlos: bool, _midijob_beitragspfl_einnahme_arbeitn_m: float, midijob_bemessungsentgelt_m: float, sozialv_beitr_params: dict, ) -> float: """Calculating the employee care insurance contribution since October 2022. Parameters ---------- ges_pflegev_zusatz_kinderlos See :func:`ges_pflegev_zusatz_kinderlos`. midijob_bemessungsentgelt_m See :func:`midijob_bemessungsentgelt_m`. _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 ------- """ # Calculate the employee care insurance contribution an_beitr_midijob_m = ( _midijob_beitragspfl_einnahme_arbeitn_m * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["standard"] ) # Add additional contribution for childless individuals if ges_pflegev_zusatz_kinderlos: an_beitr_midijob_m += ( midijob_bemessungsentgelt_m * sozialv_beitr_params["beitr_satz"]["ges_pflegev"]["zusatz_kinderlos"] ) return an_beitr_midijob_m