Source code for _gettsim.transfers.kinderzuschl.kinderzuschl_eink

from _gettsim.shared import dates_active

aggregation_kinderzuschl_eink = {
    "_kinderzuschl_anz_kinder_anspruch_tu": {
        "source_col": "kindergeld_anspruch",
        "aggr": "sum",
    },
}


[docs]def kinderzuschl_bruttoeink_eltern_m( arbeitsl_geld_2_bruttoeink_m: float, eltern: bool, ) -> float: """Calculate parental gross income for calculation of child benefit. This variable is used to check whether the minimum income threshold for child benefit is met. Parameters ---------- arbeitsl_geld_2_bruttoeink_m See :func:`arbeitsl_geld_2_bruttoeink_m`. eltern See :func:`eltern`. Returns ------- """ if eltern: out = arbeitsl_geld_2_bruttoeink_m else: out = 0.0 return out
[docs]def kinderzuschl_eink_eltern_m( arbeitsl_geld_2_eink_m: float, eltern: bool, ) -> float: """Parental income (after deduction of taxes, social insurance contributions, and other deductions) for calculation of child benefit. Parameters ---------- arbeitsl_geld_2_eink_m_tu See :func:`arbeitsl_geld_2_eink_m_tu`. eltern See basic input variable :ref:`eltern <eltern>`. Returns ------- """ if eltern: out = arbeitsl_geld_2_eink_m else: out = 0.0 return out
[docs]@dates_active(end="2010-12-31", change_name="kinderzuschl_eink_regel_m_tu") def kinderzuschl_eink_regel_m_tu_arbeitsl_geld_2_params_old( _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh: float, alleinerz_tu: bool, arbeitsl_geld_2_params: dict, ) -> float: """Calculate income relevant for calculation of child benefit until 2010. Parameters ---------- _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh See :func:`_arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh`. alleinerz_tu See :func:`alleinerz_tu`. arbeitsl_geld_2_params See params documentation :ref:`arbeitsl_geld_2_params <arbeitsl_geld_2_params>`. Returns ------- """ if alleinerz_tu: out = arbeitsl_geld_2_params["regelsatz"] * ( 1 + _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh ) else: out = ( arbeitsl_geld_2_params["regelsatz"] * arbeitsl_geld_2_params["anteil_regelsatz"]["zwei_erwachsene"] * 2 ) return float(out)
[docs]@dates_active(start="2011-01-01") def kinderzuschl_eink_regel_m_tu( _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh: float, alleinerz_tu: bool, arbeitsl_geld_2_params: dict, ) -> float: """Calculate income relevant for calculation of child benefit since 2011. Parameters ---------- _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh See :func:`_arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh`. alleinerz_tu See :func:`alleinerz_tu`. arbeitsl_geld_2_params See params documentation :ref:`arbeitsl_geld_2_params <arbeitsl_geld_2_params>`. Returns ------- """ if alleinerz_tu: out = arbeitsl_geld_2_params["regelsatz"][1] * ( 1 + _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh ) else: out = arbeitsl_geld_2_params["regelsatz"][2] * 2 return float(out)
[docs]def kinderzuschl_eink_relev_m_tu( kinderzuschl_eink_regel_m_tu: float, kinderzuschl_kost_unterk_m_tu: float ) -> float: """Aggregate relevant income and rental costs. Parameters ---------- kinderzuschl_eink_regel_m_tu See :func:`kinderzuschl_eink_regel_m_tu`. kinderzuschl_kost_unterk_m_tu See :func:`kinderzuschl_kost_unterk_m_tu`. Returns ------- """ return kinderzuschl_eink_regel_m_tu + kinderzuschl_kost_unterk_m_tu
[docs]@dates_active(end="2019-06-30") def kinderzuschl_eink_max_m_tu( kinderzuschl_eink_relev_m_tu: float, _kinderzuschl_anz_kinder_anspruch_tu: int, kinderzuschl_params: dict, ) -> float: """Calculate maximum income to be eligible for additional child benefit (Kinderzuschlag). There is a maximum income threshold, depending on the need, plus the potential kiz receipt (§6a (1) Nr. 3 BKGG). Parameters ---------- kinderzuschl_eink_relev_m_tu See :func:`kinderzuschl_eink_relev_m_tu`. _kinderzuschl_anz_kinder_anspruch_tu See :func:`_kinderzuschl_anz_kinder_anspruch_tu`. kinderzuschl_params See params documentation :ref:`kinderzuschl_params <kinderzuschl_params>`. Returns ------- """ out = ( kinderzuschl_eink_relev_m_tu + kinderzuschl_params["maximum"] * _kinderzuschl_anz_kinder_anspruch_tu ) kindersofortzuschl = kinderzuschl_params.get("kindersofortzuschl", 0.0) out += kindersofortzuschl * _kinderzuschl_anz_kinder_anspruch_tu return out
[docs]def kinderzuschl_eink_min_m_tu( anz_kinder_tu: int, alleinerz_tu: bool, kinderzuschl_params: dict, ) -> float: """Calculate minimal claim of child benefit (kinderzuschlag). Min income to be eligible for KIZ (different for singles and couples) (§6a (1) Nr. 2 BKGG). Parameters ---------- anz_kinder_hh See basic input variable :ref:`anz_kinder_hh <anz_kinder_hh>`. alleinerz_hh See basic input variable :ref:`alleinerz_hh <alleinerz_hh>`. kinderzuschl_params See params documentation :ref:`kinderzuschl_params <kinderzuschl_params>`. Returns ------- """ if anz_kinder_tu == 0: out = 0.0 elif alleinerz_tu: out = kinderzuschl_params["min_eink_alleinerz"] else: out = kinderzuschl_params["min_eink_paare"] return out
[docs]def kinderzuschl_kindereink_abzug_m( kindergeld_anspruch: bool, bruttolohn_m: float, kind_unterh_erhalt_m: float, unterhaltsvors_m: float, kinderzuschl_params: dict, ) -> float: """Child benefit after children income for each eligible child is considered. (§6a (3) S.3 BKGG) Parameters ---------- kindergeld_anspruch See :func:`kindergeld_anspruch`. bruttolohn_m See basic input variable :ref:`bruttolohn_m <bruttolohn_m>`. kind_unterh_erhalt_m See basic input variable :ref:`kind_unterh_erhalt_m <kind_unterh_erhalt_m>`. unterhaltsvors_m See :func:`unterhaltsvors_m`. kinderzuschl_params See params documentation :ref:`kinderzuschl_params <kinderzuschl_params>`. Returns ------- """ out = kindergeld_anspruch * ( kinderzuschl_params["maximum"] - kinderzuschl_params["entzugsrate_kind"] * (bruttolohn_m + kind_unterh_erhalt_m + unterhaltsvors_m) ) return max(out, 0.0)
[docs]def kinderzuschl_eink_anrechn_m_tu( kinderzuschl_eink_eltern_m_tu: float, kinderzuschl_eink_relev_m_tu: float, kinderzuschl_params: dict, ) -> float: """Calculate parental income subtracted from child benefit. (§6a (6) S. 3 BKGG) Parameters ---------- kinderzuschl_eink_eltern_m_tu See :func:`kinderzuschl_eink_eltern_m_tu`. kinderzuschl_eink_relev_m_tu See :func:`kinderzuschl_eink_relev_m_tu`. kinderzuschl_params See params documentation :ref:`kinderzuschl_params <kinderzuschl_params>`. Returns ------- """ out = kinderzuschl_params["entzugsrate_eltern"] * ( kinderzuschl_eink_eltern_m_tu - kinderzuschl_eink_relev_m_tu ) return max(out, 0.0)