Source code for _gettsim.social_insurance_contributions.arbeitsl_v

"""Functions for modeling unemployment and pension insurance."""
from _gettsim.shared import dates_active


[docs]def sozialv_beitr_m( ges_pflegev_beitr_m: float, ges_krankenv_beitr_m: float, ges_rentenv_beitr_m: float, arbeitsl_v_beitr_m: float, ) -> float: """Sum of all social insurance contributions of an individual. Parameters ---------- ges_pflegev_beitr_m See :func:`ges_pflegev_beitr_m`. ges_krankenv_beitr_m See :func:`ges_krankenv_beitr_m`. ges_rentenv_beitr_m See :func:`ges_rentenv_beitr_m`. arbeitsl_v_beitr_m See :func:`arbeitsl_v_beitr_m`. Returns ------- """ out = ( ges_pflegev_beitr_m + ges_krankenv_beitr_m + ges_rentenv_beitr_m + arbeitsl_v_beitr_m ) return out
[docs]def sozialv_beitr_arbeitg_m( ges_pflegev_beitr_arbeitg_m: float, ges_krankenv_beitr_arbeitg_m: float, ges_rentenv_beitr_arbeitg_m: float, arbeitsl_v_beitr_arbeitg_m: float, ) -> float: """Sum of all social insurance contributions of the respective employer. Parameters ---------- ges_pflegev_beitr_arbeitg_m See :func:`ges_pflegev_beitr_arbeitg_m`. ges_krankenv_beitr_arbeitg_m See :func:`ges_krankenv_beitr_arbeitg_m`. ges_rentenv_beitr_arbeitg_m See :func:`ges_rentenv_beitr_arbeitg_m`. arbeitsl_v_beitr_arbeitg_m See :func:`arbeitsl_v_beitr_arbeitg_m`. Returns ------- """ out = ( ges_pflegev_beitr_arbeitg_m + ges_krankenv_beitr_arbeitg_m + ges_rentenv_beitr_arbeitg_m + arbeitsl_v_beitr_arbeitg_m ) return out
def _sozialv_beitr_arbeitn_arbeitg_m( sozialv_beitr_m: float, sozialv_beitr_arbeitg_m: float, ) -> float: """Sum of all social insurance contributions of an employer and employee. Parameters ---------- sozialv_beitr_m See :func:`sozialv_beitr_m`. sozialv_beitr_arbeitg_m See :func:`sozialv_beitr_arbeitg_m`. Returns ------- """ out = sozialv_beitr_m + sozialv_beitr_arbeitg_m return out
[docs]def arbeitsl_v_beitr_m( geringfügig_beschäftigt: bool, in_gleitzone: bool, _arbeitsl_v_beitr_midijob_arbeitn_m: float, _ges_rentenv_beitr_bruttolohn_m: float, sozialv_beitr_params: dict, ) -> float: """Contribution for each individual to the unemployment insurance. Parameters ---------- geringfügig_beschäftigt See :func:`geringfügig_beschäftigt`. in_gleitzone See :func:`in_gleitzone`. _arbeitsl_v_beitr_midijob_arbeitn_m See :func:`_arbeitsl_v_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>`. Returns ------- """ arbeitsl_v_regulär_beschäftigt_m = ( _ges_rentenv_beitr_bruttolohn_m * sozialv_beitr_params["beitr_satz"]["arbeitsl_v"] ) # Set to 0 for minijobs if geringfügig_beschäftigt: out = 0.0 elif in_gleitzone: out = _arbeitsl_v_beitr_midijob_arbeitn_m else: out = arbeitsl_v_regulär_beschäftigt_m return out
[docs]def arbeitsl_v_beitr_arbeitg_m( geringfügig_beschäftigt: bool, in_gleitzone: bool, _arbeitsl_v_beitr_midijob_arbeitg_m: float, _ges_rentenv_beitr_bruttolohn_m: float, sozialv_beitr_params: dict, ) -> float: """Contribution of the respective employer to the unemployment insurance. Parameters ---------- geringfügig_beschäftigt See :func:`geringfügig_beschäftigt`. in_gleitzone See :func:`in_gleitzone`. _arbeitsl_v_beitr_midijob_arbeitg_m See :func:`_arbeitsl_v_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>`. Returns ------- """ arbeitsl_v_regulär_beschäftigt_m = ( _ges_rentenv_beitr_bruttolohn_m * sozialv_beitr_params["beitr_satz"]["arbeitsl_v"] ) # Set to 0 for minijobs if geringfügig_beschäftigt: out = 0.0 elif in_gleitzone: out = _arbeitsl_v_beitr_midijob_arbeitg_m else: out = arbeitsl_v_regulär_beschäftigt_m return out
def _arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m( midijob_bemessungsentgelt_m: float, sozialv_beitr_params: dict, ) -> float: """Calculating the sum of employee and employer unemployment 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 ------- """ out = ( midijob_bemessungsentgelt_m * 2 * sozialv_beitr_params["beitr_satz"]["arbeitsl_v"] ) return out @dates_active( end="2022-09-30", change_name="_arbeitsl_v_beitr_midijob_arbeitg_m", ) def _arbeitsl_v_beitr_midijob_arbeitg_m_anteil_bruttolohn( bruttolohn_m: float, sozialv_beitr_params: dict, ) -> float: """Calculating the employer unemployment insurance contribution until September 2022. Parameters ---------- sozialv_beitr_params See params documentation :ref:`sozialv_beitr_params <sozialv_beitr_params>`. bruttolohn_m See basic input variable :ref:`bruttolohn_m <bruttolohn_m>`. Returns ------- """ out = bruttolohn_m * sozialv_beitr_params["beitr_satz"]["arbeitsl_v"] return out @dates_active(start="2022-10-01", change_name="_arbeitsl_v_beitr_midijob_arbeitg_m") def _arbeitsl_v_beitr_midijob_arbeitg_m_residuum( _arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m: float, _arbeitsl_v_beitr_midijob_arbeitn_m: float, ) -> float: """Calculating the employer unemployment insurance contribution since October 2022. Parameters ---------- _arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m See :func:`_arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m`. _arbeitsl_v_beitr_midijob_arbeitn_m See :func:`_arbeitsl_v_beitr_midijob_arbeitn_m`. Returns ------- """ out = ( _arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m - _arbeitsl_v_beitr_midijob_arbeitn_m ) return out @dates_active( end="2022-09-30", change_name="_arbeitsl_v_beitr_midijob_arbeitn_m", ) def _arbeitsl_v_beitr_midijob_arbeitn_m_residuum( _arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m: float, _arbeitsl_v_beitr_midijob_arbeitg_m: float, ) -> float: """Calculating the employee unemployment insurance contribution until September 2022. Parameters ---------- _arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m See :func:`_arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m`. _arbeitsl_v_beitr_midijob_arbeitg_m See :func:`_arbeitsl_v_beitr_midijob_arbeitg_m`. Returns ------- """ out = ( _arbeitsl_v_beitr_midijob_sum_arbeitn_arbeitg_m - _arbeitsl_v_beitr_midijob_arbeitg_m ) return out @dates_active(start="2022-10-01", change_name="_arbeitsl_v_beitr_midijob_arbeitn_m") def _arbeitsl_v_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 ------- """ out = ( _midijob_beitragspfl_einnahme_arbeitn_m * sozialv_beitr_params["beitr_satz"]["arbeitsl_v"] ) return out