From 848c774ebf4f42dc1a43205a741d97bfa0995649 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Mon, 21 Jul 2025 18:09:51 +0200 Subject: [PATCH 01/13] Elterngeld. --- .../calculating_elterngeld.ipynb | 20 ++++++++++--------- src/_gettsim/elterngeld/einkommen.py | 10 +++++----- src/_gettsim/elterngeld/elterngeld.py | 12 +++++------ src/_gettsim/elterngeld/inputs.py | 19 +++++++++++++++--- .../elterngeld/2017-01-01/hh_id_2.yaml | 2 +- .../elterngeld/2018-01-01/hh_id_1.yaml | 2 +- .../elterngeld/2018-01-01/hh_id_2.yaml | 2 +- .../elterngeld/2018-01-01/hh_id_3.yaml | 2 +- .../elterngeld/2018-01-01/hh_id_4.yaml | 2 +- .../elterngeld/2018-01-01/hh_id_6.yaml | 2 +- .../elterngeld/2019-01-01/hh_id_1.yaml | 2 +- .../elterngeld/2019-01-01/hh_id_3.yaml | 2 +- .../elterngeld/2019-01-01/hh_id_5.yaml | 2 +- .../elterngeld/2019-01-01/hh_id_6.yaml | 2 +- .../elterngeld/2019-01-01/hh_id_7.yaml | 2 +- .../elterngeld/2019-01-01/hh_id_8.yaml | 2 +- .../2024-01-01/income_during_elterngeld.yaml | 2 +- .../2024-01-01/maximum_elterngeld.yaml | 2 +- .../2024-01-01/minimum_elterngeld.yaml | 2 +- .../2024-01-01/net_income_approximation.yaml | 2 +- .../net_income_before_birth_1000.yaml | 2 +- .../net_income_before_birth_790.yaml | 2 +- .../2024-01-01/replacement_rate_decrease.yaml | 2 +- .../2024-04-01/taxable_income_low.yaml | 2 +- .../2024-04-01/taxable_income_too_high.yaml | 2 +- .../alleinerz_one_child_budgetsatz.yaml | 2 +- ...inerz_one_child_regelsatz_high_income.yaml | 2 +- ...einerz_one_child_regelsatz_low_income.yaml | 2 +- ...ried_one_child_budgetsatz_high_income.yaml | 2 +- ...rried_one_child_budgetsatz_low_income.yaml | 2 +- .../married_one_child_regelsatz.yaml | 2 +- ..._budgetsatz_and_regelsatz_high_income.yaml | 2 +- ...n_budgetsatz_and_regelsatz_low_income.yaml | 2 +- .../2007-01-01/born_after_abolishment.yaml | 2 +- ..._budgetsatz_and_regelsatz_high_income.yaml | 2 +- ...n_budgetsatz_and_regelsatz_low_income.yaml | 2 +- .../2019-01-01/hh_id_1.yaml | 2 +- .../2019-01-01/hh_id_2.yaml | 2 +- .../2019-01-01/hh_id_3.yaml | 2 +- .../2019-01-01/hh_id_4.yaml | 2 +- .../2019-01-01/hh_id_5.yaml | 2 +- .../2019-01-01/hh_id_6.yaml | 2 +- .../2019-01-01/hh_id_7.yaml | 2 +- .../2019-01-01/hh_id_8.yaml | 2 +- ...ne_unterschied_entgeltpunkte_ost_west.yaml | 2 +- .../2025-01-01/wohnort_ost_irrelevant.yaml | 2 +- 46 files changed, 80 insertions(+), 65 deletions(-) diff --git a/outdated_docs/how-to-guides/calculating_elterngeld.ipynb b/outdated_docs/how-to-guides/calculating_elterngeld.ipynb index 4bc231e16..f2f50ccf2 100644 --- a/outdated_docs/how-to-guides/calculating_elterngeld.ipynb +++ b/outdated_docs/how-to-guides/calculating_elterngeld.ipynb @@ -14,10 +14,10 @@ "\n", "In principle, one can compute Elterngeld in three steps:\n", "1. Compute the average monthly gross income before birth in the data.\n", - "2. Call GETTSIM with the target `elterngeld__nettoeinkommen_approximation_m` using the policy\n", + "2. Call GETTSIM with the target `elterngeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m` using the policy\n", " environment of the year **before** the child was born.\n", "3. Call GETTSIM with the target `elterngeld__betrag_m` using the outcome of step 2 as the input\n", - " for `elterngeld__nettoeinkommen_vorjahr_m` and the policy environment of the year the\n", + " for `elterngeld__mean_nettoeinkommen_in_12_monaten_vor_geburt_m` and the policy environment of the year the\n", " child was born.\n", "\n", "In the following, we will explain some more details." @@ -114,8 +114,8 @@ "### Step 2: Approximate net wage before birth\n", "\n", "GETTSIM provides an easy way to compute the relevant net wage\n", - "`elterngeld__nettoeinkommen_vorjahr_m` based on step 1 using the target\n", - "`elterngeld__nettoeinkommen_approximation_m`.\n", + "`elterngeld__mean_nettoeinkommen_in_12_monaten_vor_geburt_m` based on step 1 using the target\n", + "`elterngeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m`.\n", "\n", "We use the policy environment of January 1st of the year before the child was born (§2e\n", "Abs. 1 S. 2 BEEG). Note that this is correct regardless of the point in time when the\n", @@ -135,7 +135,7 @@ "net_wage_approximation = compute_taxes_and_transfers(\n", " data=data_before_birth,\n", " environment=environment_2023,\n", - " targets=[\"elterngeld__nettoeinkommen_approximation_m\"],\n", + " targets=[\"elterngeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m\"],\n", ")\n", "\n", "net_wage_approximation" @@ -184,7 +184,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Then, we add `elterngeld__nettoeinkommen_vorjahr_m` to the data based on step 2." + "Then, we add `elterngeld__mean_nettoeinkommen_in_12_monaten_vor_geburt_m` to the data based on step 2." ] }, { @@ -194,9 +194,11 @@ "outputs": [], "source": [ "# Add net wage approximation\n", - "data_after_birth[\"elterngeld__nettoeinkommen_vorjahr_m\"] = net_wage_approximation[\n", - " \"elterngeld__nettoeinkommen_approximation_m\"\n", - "]" + "data_after_birth[\"elterngeld__mean_nettoeinkommen_in_12_monaten_vor_geburt_m\"] = (\n", + " net_wage_approximation[\n", + " \"elterngeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m\"\n", + " ]\n", + ")" ] }, { diff --git a/src/_gettsim/elterngeld/einkommen.py b/src/_gettsim/elterngeld/einkommen.py index 661783ac5..e728d5cf5 100644 --- a/src/_gettsim/elterngeld/einkommen.py +++ b/src/_gettsim/elterngeld/einkommen.py @@ -27,13 +27,13 @@ def anzurechnendes_nettoeinkommen_m( rounding_spec=RoundingSpec(base=2, direction="down", reference="§ 2 (2) BEEG"), ) def lohnersatzanteil_einkommen_untere_grenze( - nettoeinkommen_vorjahr_m: float, + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: float, nettoeinkommensstufen_für_lohnersatzrate: dict[str, float], ) -> float: """Lower threshold for replacement rate adjustment minus net income.""" return ( nettoeinkommensstufen_für_lohnersatzrate["lower_threshold"] - - nettoeinkommen_vorjahr_m + - mean_nettoeinkommen_in_12_monaten_vor_geburt_m ) @@ -42,12 +42,12 @@ def lohnersatzanteil_einkommen_untere_grenze( rounding_spec=RoundingSpec(base=2, direction="down", reference="§ 2 (2) BEEG"), ) def lohnersatzanteil_einkommen_obere_grenze( - nettoeinkommen_vorjahr_m: float, + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: float, nettoeinkommensstufen_für_lohnersatzrate: dict[str, float], ) -> float: """Net income minus upper threshold for replacement rate adjustment.""" return ( - nettoeinkommen_vorjahr_m + mean_nettoeinkommen_in_12_monaten_vor_geburt_m - nettoeinkommensstufen_für_lohnersatzrate["upper_threshold"] ) @@ -102,7 +102,7 @@ def einkommen_vorjahr_unter_bezugsgrenze_ohne_unterscheidung_single_paar( start_date="2012-09-18", rounding_spec=RoundingSpec(base=0.01, direction="down"), ) -def nettoeinkommen_approximation_m( +def mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m( einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_m: float, lohnsteuer__betrag_m: float, lohnsteuer__betrag_soli_m: float, diff --git a/src/_gettsim/elterngeld/elterngeld.py b/src/_gettsim/elterngeld/elterngeld.py index 0c95c563d..2f880e7e7 100644 --- a/src/_gettsim/elterngeld/elterngeld.py +++ b/src/_gettsim/elterngeld/elterngeld.py @@ -85,7 +85,7 @@ def betrag_m( @policy_function(start_date="2007-01-01") def basisbetrag_m( - nettoeinkommen_vorjahr_m: float, + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: float, lohnersatzanteil: float, anzurechnendes_nettoeinkommen_m: float, max_zu_berücksichtigendes_einkommen: float, @@ -96,7 +96,7 @@ def basisbetrag_m( """ berücksichtigtes_einkommen = min( - nettoeinkommen_vorjahr_m, + mean_nettoeinkommen_in_12_monaten_vor_geburt_m, max_zu_berücksichtigendes_einkommen, ) return ( @@ -212,7 +212,7 @@ def bezugsmonate_unter_grenze_fg( @policy_function(start_date="2011-01-01") def lohnersatzanteil( - nettoeinkommen_vorjahr_m: float, + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: float, lohnersatzanteil_einkommen_untere_grenze: float, lohnersatzanteil_einkommen_obere_grenze: float, einkommensschritte_korrektur: float, @@ -229,9 +229,9 @@ def lohnersatzanteil( """ # Higher replacement rate if considered income is below a threshold if ( - nettoeinkommen_vorjahr_m + mean_nettoeinkommen_in_12_monaten_vor_geburt_m < nettoeinkommensstufen_für_lohnersatzrate["lower_threshold"] - and nettoeinkommen_vorjahr_m > 0 + and mean_nettoeinkommen_in_12_monaten_vor_geburt_m > 0 ): out = satz + ( lohnersatzanteil_einkommen_untere_grenze @@ -240,7 +240,7 @@ def lohnersatzanteil( ) # Lower replacement rate if considered income is above a threshold elif ( - nettoeinkommen_vorjahr_m + mean_nettoeinkommen_in_12_monaten_vor_geburt_m > nettoeinkommensstufen_für_lohnersatzrate["upper_threshold"] ): # Replacement rate is only lowered up to a specific value diff --git a/src/_gettsim/elterngeld/inputs.py b/src/_gettsim/elterngeld/inputs.py index bd981139e..d772ae942 100644 --- a/src/_gettsim/elterngeld/inputs.py +++ b/src/_gettsim/elterngeld/inputs.py @@ -16,10 +16,23 @@ def claimed() -> bool: @policy_input() -def nettoeinkommen_vorjahr_m() -> float: - """Net wage in the 12 months before birth of youngest child.""" +def mean_nettoeinkommen_in_12_monaten_vor_geburt_m() -> float: + """Mean net wage in the 12 months before birth of youngest child. + + To compute this value using GETTSIM: + 1. Use `elterngeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m` as + the TT target + 2. Apply it to data from the last 12 months before the birth of the youngest child + 3. Use the result as input for this column. + """ @policy_input() def zu_versteuerndes_einkommen_vorjahr_y_sn() -> float: - """Taxable income in the calendar year prior to the youngest child's birth year.""" + """Taxable income in the calendar year prior to the youngest child's birth year. + + To compute this value using GETTSIM: + 1. Use `einkommensteuer__zu_versteuerndes_einkommen_y_sn` as the TT target + 2. Apply it to data from the year prior to the youngest child's birth year + 3. Use the result as input for this column. + """ diff --git a/src/_gettsim_tests/test_data/elterngeld/2017-01-01/hh_id_2.yaml b/src/_gettsim_tests/test_data/elterngeld/2017-01-01/hh_id_2.yaml index d46055396..3deb5ac67 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2017-01-01/hh_id_2.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2017-01-01/hh_id_2.yaml @@ -29,7 +29,7 @@ inputs: - 0 claimed: - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1800.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 18260.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_1.yaml b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_1.yaml index 95352892b..7d7d7f8fe 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_1.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_1.yaml @@ -27,7 +27,7 @@ inputs: - 0 claimed: - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 0.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 0.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_2.yaml b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_2.yaml index 77d309b38..97ac09b65 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_2.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_2.yaml @@ -35,7 +35,7 @@ inputs: claimed: - true - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1800.0 - 0.0 zu_versteuerndes_einkommen_vorjahr_y_sn: diff --git a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_3.yaml b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_3.yaml index 2d543367b..7b2a0180d 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_3.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_3.yaml @@ -35,7 +35,7 @@ inputs: claimed: - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 900.0 - 3600.0 zu_versteuerndes_einkommen_vorjahr_y_sn: diff --git a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_4.yaml b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_4.yaml index fe0b025e7..3aad69f3e 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_4.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_4.yaml @@ -35,7 +35,7 @@ inputs: claimed: - false - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 0.0 - 3400.0 zu_versteuerndes_einkommen_vorjahr_y_sn: diff --git a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_6.yaml b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_6.yaml index d959ef930..420710da5 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_6.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2018-01-01/hh_id_6.yaml @@ -27,7 +27,7 @@ inputs: - 0 claimed: - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 900.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 7406.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_1.yaml b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_1.yaml index b1d629c15..60b67fe02 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_1.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_1.yaml @@ -35,7 +35,7 @@ inputs: claimed: - true - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 0.0 - 0.0 zu_versteuerndes_einkommen_vorjahr_y_sn: diff --git a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_3.yaml b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_3.yaml index c1b3736d2..563b8c899 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_3.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_3.yaml @@ -43,7 +43,7 @@ inputs: - true - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 900.0 - 0.0 - 3400.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_5.yaml b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_5.yaml index a2f29b0c3..d95346cd7 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_5.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_5.yaml @@ -35,7 +35,7 @@ inputs: claimed: - true - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 3600.0 - 0.0 zu_versteuerndes_einkommen_vorjahr_y_sn: diff --git a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_6.yaml b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_6.yaml index fdf4feaf7..0359a278c 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_6.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_6.yaml @@ -43,7 +43,7 @@ inputs: - false - false - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 0.0 - 0.0 - 900.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_7.yaml b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_7.yaml index 20c61e379..3364da461 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_7.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_7.yaml @@ -43,7 +43,7 @@ inputs: - true - true - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1800.0 - 1800.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_8.yaml b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_8.yaml index 3279e7639..b06d1e228 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_8.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2019-01-01/hh_id_8.yaml @@ -51,7 +51,7 @@ inputs: - false - false - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 0.0 - 0.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/income_during_elterngeld.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/income_during_elterngeld.yaml index 996a94b8a..b3de6aa96 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/income_during_elterngeld.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/income_during_elterngeld.yaml @@ -43,7 +43,7 @@ inputs: - true - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1000.0 - 0.0 - 3400.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/maximum_elterngeld.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/maximum_elterngeld.yaml index a2f29b0c3..d95346cd7 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/maximum_elterngeld.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/maximum_elterngeld.yaml @@ -35,7 +35,7 @@ inputs: claimed: - true - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 3600.0 - 0.0 zu_versteuerndes_einkommen_vorjahr_y_sn: diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/minimum_elterngeld.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/minimum_elterngeld.yaml index b1d629c15..60b67fe02 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/minimum_elterngeld.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/minimum_elterngeld.yaml @@ -35,7 +35,7 @@ inputs: claimed: - true - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 0.0 - 0.0 zu_versteuerndes_einkommen_vorjahr_y_sn: diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_approximation.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_approximation.yaml index d6d5f3dc6..0d9c6d6f9 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_approximation.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_approximation.yaml @@ -60,6 +60,6 @@ inputs: - false outputs: elterngeld: - nettoeinkommen_approximation_m: + mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m: - 790.0 - 158.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_1000.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_1000.yaml index f465912f2..f720cd479 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_1000.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_1000.yaml @@ -43,7 +43,7 @@ inputs: - true - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1000.0 - 0.0 - 3400.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_790.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_790.yaml index d2dd26098..cd3f8a1ee 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_790.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/net_income_before_birth_790.yaml @@ -43,7 +43,7 @@ inputs: - true - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 790.0 - 0.0 - 3400.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/replacement_rate_decrease.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/replacement_rate_decrease.yaml index 2cc15ae06..c88511b70 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-01-01/replacement_rate_decrease.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-01-01/replacement_rate_decrease.yaml @@ -39,7 +39,7 @@ inputs: - true - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1220.0 - 0.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_low.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_low.yaml index bdc41c941..4004539a0 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_low.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_low.yaml @@ -43,7 +43,7 @@ inputs: - true - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2000.0 - 13000.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_too_high.yaml b/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_too_high.yaml index c95435149..bc842579b 100644 --- a/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_too_high.yaml +++ b/src/_gettsim_tests/test_data/elterngeld/2024-04-01/taxable_income_too_high.yaml @@ -43,7 +43,7 @@ inputs: - true - false - false - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2000.0 - 13000.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml index 84a132b9a..072eff7e4 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml @@ -28,7 +28,7 @@ inputs: - 1500.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1500.0 - 0.0 erziehungsgeld: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml index 6ae8cdd57..d0e02cdb5 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml @@ -28,7 +28,7 @@ inputs: - 1700.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1700.0 - 0.0 erziehungsgeld: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml index 4392ff5a5..16ddd536d 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml @@ -28,7 +28,7 @@ inputs: - 1500.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1500.0 - 0.0 erziehungsgeld: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml index 99a48038a..85b61cf2d 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml @@ -34,7 +34,7 @@ inputs: - 5000.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1400.0 - 5000.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml index f180dbcdc..ca7919a0a 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml @@ -34,7 +34,7 @@ inputs: - 3000.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1400.0 - 3000.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml index d61de60e8..e20e7ba9f 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml @@ -34,7 +34,7 @@ inputs: - 2500.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2500.0 - 2500.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index c7afe6374..5ab78e910 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -40,7 +40,7 @@ inputs: - 0.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1400.0 - 1700.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index a7fda1e31..d6e20e55b 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -40,7 +40,7 @@ inputs: - 0.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 400.0 - 1300.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml index cea6ea40b..2ef4e8917 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml @@ -28,7 +28,7 @@ inputs: - 1500.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1500.0 - 0.0 erziehungsgeld: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index 676c13f47..0339777bf 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -40,7 +40,7 @@ inputs: - 0.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1400.0 - 1700.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index b9b18680e..87e3a5f75 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -40,7 +40,7 @@ inputs: - 0.0 - 0.0 elterngeld: - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 400.0 - 1300.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_1.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_1.yaml index fb5680af1..c912e1235 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_1.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_1.yaml @@ -138,7 +138,7 @@ inputs: - true - true - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 1000.0 - 2000.0 - 3000.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_2.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_2.yaml index bba6b9df2..e834799f0 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_2.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_2.yaml @@ -139,7 +139,7 @@ inputs: - true - true - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 7000.0 - 2500.0 - 2300.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_3.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_3.yaml index 0e2af2e65..e232f0492 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_3.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_3.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2000.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 24750.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_4.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_4.yaml index 617e7f686..b0baa4f0f 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_4.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_4.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 3000.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 36774.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_5.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_5.yaml index 850b0ad7d..238c62241 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_5.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_5.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 4000.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 48798.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_6.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_6.yaml index a37b6c220..3420d362b 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_6.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_6.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 7000.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 84822.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_7.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_7.yaml index 01840f9b9..109b52207 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_7.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_7.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2500.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 30804.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_8.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_8.yaml index 0ce48e864..9fa194783 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_8.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2019-01-01/hh_id_8.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2300.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 25962.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2023-07-01/ohne_unterschied_entgeltpunkte_ost_west.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2023-07-01/ohne_unterschied_entgeltpunkte_ost_west.yaml index e96d5d343..b909fcb90 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2023-07-01/ohne_unterschied_entgeltpunkte_ost_west.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2023-07-01/ohne_unterschied_entgeltpunkte_ost_west.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2300.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 25962.0 diff --git a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2025-01-01/wohnort_ost_irrelevant.yaml b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2025-01-01/wohnort_ost_irrelevant.yaml index 59c883479..6b3bdc8a0 100644 --- a/src/_gettsim_tests/test_data/full_taxes_and_transfers/2025-01-01/wohnort_ost_irrelevant.yaml +++ b/src/_gettsim_tests/test_data/full_taxes_and_transfers/2025-01-01/wohnort_ost_irrelevant.yaml @@ -67,7 +67,7 @@ inputs: - 0 claimed: - true - nettoeinkommen_vorjahr_m: + mean_nettoeinkommen_in_12_monaten_vor_geburt_m: - 2300.0 zu_versteuerndes_einkommen_vorjahr_y_sn: - 25962.0 From 130428eecc91b42322ab4112d7bfbd59141556f7 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Mon, 21 Jul 2025 18:41:42 +0200 Subject: [PATCH 02/13] ALG1 --- .../arbeitslosen/arbeitslosengeld.py | 63 +++++++++++-------- .../sozialversicherung/arbeitslosen/inputs.py | 12 ++++ .../arbeitslosengeld/2010-01-01/hh_id_6.yaml | 11 ++-- .../arbeitslosengeld/2011-01-01/hh_id_7.yaml | 7 +-- .../arbeitslosengeld/2019-01-01/hh_id_1.yaml | 9 +-- .../arbeitslosengeld/2019-01-01/hh_id_2.yaml | 9 +-- .../arbeitslosengeld/2019-01-01/hh_id_3.yaml | 9 +-- .../arbeitslosengeld/2019-01-01/hh_id_4.yaml | 9 +-- 8 files changed, 68 insertions(+), 61 deletions(-) diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py index ee600f52c..328dc4466 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py @@ -30,7 +30,7 @@ def betrag_m_not_implemented() -> float: def betrag_m( einkommensteuer__anzahl_kinderfreibeträge: int, grundsätzlich_anspruchsberechtigt: bool, - einkommen_vorjahr_proxy_m: float, + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m: float, satz: dict[str, float], ) -> float: """Calculate individual unemployment benefit.""" @@ -40,7 +40,10 @@ def betrag_m( arbeitsl_geld_satz = satz["erhöht"] if grundsätzlich_anspruchsberechtigt: - out = einkommen_vorjahr_proxy_m * arbeitsl_geld_satz + out = ( + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m + * arbeitsl_geld_satz + ) else: out = 0.0 @@ -113,43 +116,53 @@ def grundsätzlich_anspruchsberechtigt( @policy_function() -def einkommen_vorjahr_proxy_m( - sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_m: float, - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_m: float, +def mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y( + sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_y: float, + einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_y: float, sozialversicherungspauschale: float, einkommensteuer__parameter_einkommensteuertarif: PiecewisePolynomialParamValue, einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag: float, solidaritätszuschlag__parameter_solidaritätszuschlag: PiecewisePolynomialParamValue, xnp: ModuleType, ) -> float: - """Approximate last years income for unemployment benefit.""" - # Relevant wage is capped at the contribution thresholds - max_wage = min( - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_m, - sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_m, - ) + """Approximate last years income for unemployment benefit. - # We need to deduct lump-sum amounts for contributions, taxes and soli - prox_ssc = sozialversicherungspauschale * max_wage - - # Fictive taxes (Lohnsteuer) are approximated by applying the wage to the tax tariff - # Caution: currently wrong calculation due to - # 12 * max_wage - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag not being - # the same as zu versteuerndes einkommen - # waiting for PR Lohnsteuer #150 to be merged to correct this problem - prox_tax = piecewise_polynomial( - x=12 * max_wage + This target can be used as an input in another GETTSIM call to compute + Arbeitslosengeld. In principle, the relevant gross wage for this target is the sum + of the gross wages in the 12 months before unemployment. For most datasets, except + those with monthly income date (IAB, DRV data), the best approximation will likely + be the gross wage in the calendar year before unemployment. + """ + berücksichtigungsfähige_einnahmen = min( + einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_y, + sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_y, + ) + pauschalisierte_sozialversicherungsbeiträge = ( + sozialversicherungspauschale * berücksichtigungsfähige_einnahmen + ) + # TODO(@MImmesberger): This should likely be Lohnsteuer/Soli Lohnsteuer. However, + # not implemented before 2015 yet. + # https://github.com/iza-institute-of-labor-economics/gettsim/issues/793 + approximierte_einkommensteuer = piecewise_polynomial( + x=berücksichtigungsfähige_einnahmen - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag, parameters=einkommensteuer__parameter_einkommensteuertarif, xnp=xnp, ) - prox_soli = piecewise_polynomial( - x=prox_tax, + approximierter_soli = piecewise_polynomial( + x=approximierte_einkommensteuer, parameters=solidaritätszuschlag__parameter_solidaritätszuschlag, xnp=xnp, ) - out = max_wage - prox_ssc - prox_tax / 12 - prox_soli / 12 - return max(out, 0.0) + return max( + ( + berücksichtigungsfähige_einnahmen + - pauschalisierte_sozialversicherungsbeiträge + - approximierte_einkommensteuer + - approximierter_soli + ), + 0.0, + ) @param_function(start_date="1997-03-24") diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py b/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py index e12086ce8..5113680ce 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py @@ -5,6 +5,18 @@ from ttsim.tt_dag_elements import policy_input +@policy_input() +def mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m() -> float: + """Mean net wage in the 12 months before unemployment. + + To compute this value using GETTSIM: + 1. Use `arbeitslosengeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y` + as the TT target + 2. Apply it to data from the 12 months before the unemployment + 3. Use the result as input for this column. + """ + + @policy_input() def monate_beitragspflichtig_versichert_in_letzten_30_monaten() -> int: """Number of months of compulsory insurance in the 30 months before claiming unemployment.""" diff --git a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2010-01-01/hh_id_6.yaml b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2010-01-01/hh_id_6.yaml index 972c398cf..de326afdd 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2010-01-01/hh_id_6.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2010-01-01/hh_id_6.yaml @@ -10,6 +10,9 @@ inputs: - true sozialversicherung: arbeitslosen: + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m: + - 2500.0 + - 0.0 monate_beitragspflichtig_versichert_in_letzten_30_monaten: - 12 - 11 @@ -29,12 +32,6 @@ inputs: arbeitsstunden_w: - 0.0 - 0.0 - einkommensteuer: - einkünfte: - aus_nichtselbstständiger_arbeit: - bruttolohn_vorjahr_m: - - 2500.0 - - 0.0 familie: p_id_elternteil_1: - -1 @@ -58,5 +55,5 @@ outputs: sozialversicherung: arbeitslosen: betrag_m: - - 1021.87 + - 1675.0 - 0.0 diff --git a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2011-01-01/hh_id_7.yaml b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2011-01-01/hh_id_7.yaml index cfbfe99f3..4a4ef5496 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2011-01-01/hh_id_7.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2011-01-01/hh_id_7.yaml @@ -9,6 +9,8 @@ inputs: - false sozialversicherung: arbeitslosen: + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m: + - 2300.0 monate_beitragspflichtig_versichert_in_letzten_30_monaten: - 12 arbeitssuchend: @@ -22,11 +24,6 @@ inputs: - 66 arbeitsstunden_w: - 0.0 - einkommensteuer: - einkünfte: - aus_nichtselbstständiger_arbeit: - bruttolohn_vorjahr_m: - - 2300.0 familie: p_id_elternteil_1: - -1 diff --git a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_1.yaml b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_1.yaml index b1210d23a..7a76c446c 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_1.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_1.yaml @@ -9,6 +9,8 @@ inputs: - false sozialversicherung: arbeitslosen: + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m: + - 1000.0 monate_beitragspflichtig_versichert_in_letzten_30_monaten: - 12 arbeitssuchend: @@ -22,11 +24,6 @@ inputs: - 30 arbeitsstunden_w: - 0.0 - einkommensteuer: - einkünfte: - aus_nichtselbstständiger_arbeit: - bruttolohn_vorjahr_m: - - 1000.0 familie: p_id_elternteil_1: - -1 @@ -44,4 +41,4 @@ outputs: sozialversicherung: arbeitslosen: betrag_m: - - 465.54 + - 600.0 diff --git a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_2.yaml b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_2.yaml index 44532e3d4..4702b81b2 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_2.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_2.yaml @@ -9,6 +9,8 @@ inputs: - false sozialversicherung: arbeitslosen: + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m: + - 2000.0 monate_beitragspflichtig_versichert_in_letzten_30_monaten: - 12 arbeitssuchend: @@ -22,11 +24,6 @@ inputs: - 30 arbeitsstunden_w: - 0.0 - einkommensteuer: - einkünfte: - aus_nichtselbstständiger_arbeit: - bruttolohn_vorjahr_m: - - 2000.0 familie: p_id_elternteil_1: - -1 @@ -44,4 +41,4 @@ outputs: sozialversicherung: arbeitslosen: betrag_m: - - 789.76 + - 1200.0 diff --git a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_3.yaml b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_3.yaml index b5d1fa7ff..e1d2b6468 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_3.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_3.yaml @@ -10,6 +10,9 @@ inputs: - false sozialversicherung: arbeitslosen: + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m: + - 0.0 + - 3000.0 monate_beitragspflichtig_versichert_in_letzten_30_monaten: - 10 - 12 @@ -29,12 +32,6 @@ inputs: arbeitsstunden_w: - 0.0 - 0.0 - einkommensteuer: - einkünfte: - aus_nichtselbstständiger_arbeit: - bruttolohn_vorjahr_m: - - 0.0 - - 3000.0 familie: p_id_elternteil_1: - 4 diff --git a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_4.yaml b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_4.yaml index 63e8dc41b..fb9a602e0 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_4.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2019-01-01/hh_id_4.yaml @@ -10,6 +10,9 @@ inputs: - true sozialversicherung: arbeitslosen: + mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m: + - 4000.0 + - 0.0 monate_beitragspflichtig_versichert_in_letzten_30_monaten: - 12 - 11 @@ -29,12 +32,6 @@ inputs: arbeitsstunden_w: - 20.0 - 0.0 - einkommensteuer: - einkünfte: - aus_nichtselbstständiger_arbeit: - bruttolohn_vorjahr_m: - - 4000.0 - - 0.0 familie: p_id_elternteil_1: - -1 From 05a5d31425c0d67af12b437766c868bacc37d4e3 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Mon, 21 Jul 2025 19:07:53 +0200 Subject: [PATCH 03/13] Grundrente. --- .../sonstige/rente/inputs.py" | 9 ------- .../rente/grundrente/grundrente.py | 25 +++++++++++++++++-- .../rente/grundrente/inputs.py | 9 +++++++ .../rente/grundrente/2021-07-01/hh_id_1.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_10.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_11.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_12.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_2.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_3.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_4.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_5.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_6.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_7.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_8.yaml | 6 ++--- .../rente/grundrente/2021-07-01/hh_id_9.yaml | 6 ++--- .../grundrente/2021-07-01/married_couple.yaml | 8 +++--- 16 files changed, 59 insertions(+), 64 deletions(-) diff --git "a/src/_gettsim/einkommensteuer/eink\303\274nfte/sonstige/rente/inputs.py" "b/src/_gettsim/einkommensteuer/eink\303\274nfte/sonstige/rente/inputs.py" index 6054433b7..514d83cef 100644 --- "a/src/_gettsim/einkommensteuer/eink\303\274nfte/sonstige/rente/inputs.py" +++ "b/src/_gettsim/einkommensteuer/eink\303\274nfte/sonstige/rente/inputs.py" @@ -14,15 +14,6 @@ def alle_weiteren_m() -> float: """ -@policy_input(start_date="2021-01-01") -def gesamtbetrag_vorjahr_m() -> float: - """Income from private and public pensions in the previous year. - - GETTSIM can calculate this input based on the data of the previous year using the - target `("einkommensteuer", "einkünfte", "sonstige", "betrag_m")`. - """ - - @policy_input() def sonstige_private_vorsorge_m() -> float: """Monthly payout from private pensions without tax-favored contributions. diff --git a/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py b/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py index e20d5bb3c..e682b860e 100644 --- a/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py +++ b/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py @@ -29,7 +29,7 @@ def betrag_m(basisbetrag_m: float, anzurechnendes_einkommen_m: float) -> float: @policy_function(start_date="2021-01-01") def einkommen_m( - einkommensteuer__einkünfte__sonstige__rente__gesamtbetrag_vorjahr_m: float, + gesamteinnahmen_aus_renten_vorjahr_m: float, einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_m: float, einkommensteuer__einkünfte__aus_selbstständiger_arbeit__betrag_m: float, einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m: float, @@ -57,7 +57,7 @@ def einkommen_m( """ # Sum income over different income sources. return ( - einkommensteuer__einkünfte__sonstige__rente__gesamtbetrag_vorjahr_m + gesamteinnahmen_aus_renten_vorjahr_m + einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_m + einkommensteuer__einkünfte__aus_selbstständiger_arbeit__betrag_m # income from self-employment + einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m # rental income @@ -258,3 +258,24 @@ def grundsätzlich_anspruchsberechtigt( ) -> bool: """Has accumulated enough insured years to be eligible.""" return grundrentenzeiten_monate >= berücksichtigte_wartezeit_monate["min"] + + +@policy_function(start_date="2021-01-01") +def gesamteinnahmen_aus_renten_für_einkommensberechnung_im_folgejahr_m( + sozialversicherung__rente__altersrente__betrag_m: float, + sozialversicherung__rente__erwerbsminderung__betrag_m: float, + einkommensteuer__einkünfte__sonstige__rente__geförderte_private_vorsorge_m: float, + einkommensteuer__einkünfte__sonstige__rente__sonstige_private_vorsorge_m: float, + einkommensteuer__einkünfte__sonstige__rente__betriebliche_altersvorsorge_m: float, +) -> float: + """Income from private and public pensions in the previous year. + + This target can be used as an input in another GETTSIM call to compute Grundrente. + """ + return ( + sozialversicherung__rente__altersrente__betrag_m + + sozialversicherung__rente__erwerbsminderung__betrag_m + + einkommensteuer__einkünfte__sonstige__rente__geförderte_private_vorsorge_m + + einkommensteuer__einkünfte__sonstige__rente__sonstige_private_vorsorge_m + + einkommensteuer__einkünfte__sonstige__rente__betriebliche_altersvorsorge_m + ) diff --git a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py index adf11aa4d..d837d35b9 100644 --- a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py +++ b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py @@ -18,3 +18,12 @@ def grundrentenzeiten_monate() -> int: @policy_input(start_date="2021-01-01") def mean_entgeltpunkte() -> float: """Mean Entgeltpunkte during Bewertungszeiten.""" + + +@policy_input(start_date="2021-01-01") +def gesamteinnahmen_aus_renten_vorjahr_m() -> float: + """Income from private and public pensions in the previous year. + + GETTSIM can calculate this input based on the data of the previous year using the + target `('sozialversicherung', 'rente', 'grundrente', 'gesamteinnahmen_aus_renten_für_einkommensberechnung_im_folgejahr_m')`. + """ diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml index cf5af04eb..dceb03f6a 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml @@ -28,10 +28,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -55,6 +51,8 @@ inputs: entgeltpunkte_west: - 14.014 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 420 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml index 29225ce6a..ab2581682 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml @@ -27,10 +27,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -54,6 +50,8 @@ inputs: entgeltpunkte_west: - 41.0 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 492 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml index b9e28d2ab..e685bf305 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml @@ -29,10 +29,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -56,6 +52,8 @@ inputs: entgeltpunkte_west: - 18.5 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 372 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml index eb879da46..dd1c8edb7 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml @@ -26,10 +26,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -53,6 +49,8 @@ inputs: entgeltpunkte_west: - 0.0 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 0 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml index 6538bb64d..3c12323ed 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml @@ -28,10 +28,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -55,6 +51,8 @@ inputs: entgeltpunkte_west: - 17.5 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 420 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml index a44a1cc94..9efa5957f 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml @@ -29,10 +29,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -56,6 +52,8 @@ inputs: entgeltpunkte_west: - 21.0 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 420 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml index 4d0aee435..c4da0e308 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml @@ -28,10 +28,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -55,6 +51,8 @@ inputs: entgeltpunkte_west: - 28.8 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 480 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml index 8f1928b97..d7ef888a0 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml @@ -28,10 +28,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -55,6 +51,8 @@ inputs: entgeltpunkte_west: - 0.0 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 408 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml index aa7928733..7dff6cefd 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml @@ -27,10 +27,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -54,6 +50,8 @@ inputs: entgeltpunkte_west: - 19.2 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 300 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml index 34f481dda..cfc887d3b 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml @@ -27,10 +27,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -54,6 +50,8 @@ inputs: entgeltpunkte_west: - 19.2 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 300 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml index 8f88720c4..2aec1be55 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml @@ -27,10 +27,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -54,6 +50,8 @@ inputs: entgeltpunkte_west: - 19.2 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 300 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml index 785142ac6..fe57de7ba 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml @@ -29,10 +29,6 @@ inputs: aus_vermietung_und_verpachtung: betrag_y: - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 familie: p_id_ehepartner: - -1 @@ -56,6 +52,8 @@ inputs: entgeltpunkte_west: - 34.5 grundrente: + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 bewertungszeiten_monate: - 552 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml index 7756b538c..93b1ede3c 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml @@ -33,11 +33,6 @@ inputs: betrag_y: - 0.0 - 0.0 - sonstige: - rente: - gesamtbetrag_vorjahr_m: - - 0.0 - - 0.0 familie: p_id_ehepartner: - 1 @@ -79,6 +74,9 @@ inputs: mean_entgeltpunkte: - 15.0 - 15.0 + gesamteinnahmen_aus_renten_vorjahr_m: + - 0.0 + - 0.0 wohnort_ost_hh: - false - false From b07ca08ec74d6017a65934d84518a19b62bfa874 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Mon, 21 Jul 2025 19:38:37 +0200 Subject: [PATCH 04/13] Other inputs for Grundrente. --- .../rente/grundrente/grundrente.py | 19 +++++------ .../rente/grundrente/inputs.py | 32 +++++++++++++++++++ .../rente/grundrente/2021-07-01/hh_id_1.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_10.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_11.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_12.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_2.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_3.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_4.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_5.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_6.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_7.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_8.yaml | 19 +++++------ .../rente/grundrente/2021-07-01/hh_id_9.yaml | 19 +++++------ .../grundrente/2021-07-01/married_couple.yaml | 27 +++++++--------- 15 files changed, 148 insertions(+), 158 deletions(-) diff --git a/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py b/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py index e682b860e..bf9a7dfc0 100644 --- a/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py +++ b/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py @@ -30,10 +30,10 @@ def betrag_m(basisbetrag_m: float, anzurechnendes_einkommen_m: float) -> float: @policy_function(start_date="2021-01-01") def einkommen_m( gesamteinnahmen_aus_renten_vorjahr_m: float, - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_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__betrag_m: float, + bruttolohn_vorjahr_m: float, + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_m: float, + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_m: float, + einnahmen_aus_kapitalvermögen_vorvorjahr_m: float, ) -> float: """Income relevant for Grundrentenzuschlag before deductions. @@ -45,9 +45,6 @@ def einkommen_m( to be able to use administrative data on this income for the calculation: "It can be assumed that the tax office regularly has the data two years after the end of the assessment period, which can be retrieved from the pension insurance." - - Warning: Currently, earnings of dependent work and pensions are based on the last - year, and other income on the current year instead of the year two years ago to - avoid the need for several new input variables. - Warning: Freibeträge for income are currently not considered as `freibeträge_y` depends on pension income through `sozialversicherung__kranken__beitrag__betrag_versicherter_m` -> @@ -58,10 +55,10 @@ def einkommen_m( # Sum income over different income sources. return ( gesamteinnahmen_aus_renten_vorjahr_m - + einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_m - + einkommensteuer__einkünfte__aus_selbstständiger_arbeit__betrag_m # income from self-employment - + einkommensteuer__einkünfte__aus_vermietung_und_verpachtung__betrag_m # rental income - + einkommensteuer__einkünfte__aus_kapitalvermögen__betrag_m + + bruttolohn_vorjahr_m + + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_m + + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_m + + einnahmen_aus_kapitalvermögen_vorvorjahr_m ) diff --git a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py index d837d35b9..96e723880 100644 --- a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py +++ b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py @@ -27,3 +27,35 @@ def gesamteinnahmen_aus_renten_vorjahr_m() -> float: GETTSIM can calculate this input based on the data of the previous year using the target `('sozialversicherung', 'rente', 'grundrente', 'gesamteinnahmen_aus_renten_für_einkommensberechnung_im_folgejahr_m')`. """ + + +@policy_input(start_date="2021-01-01") +def bruttolohn_vorjahr_y() -> float: + """Earnings in the previous year. + + Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). + """ + + +@policy_input(start_date="2021-01-01") +def einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y() -> float: + """Earnings from self-employment in the year before the previous year. + + Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). + """ + + +@policy_input(start_date="2021-01-01") +def einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y() -> float: + """Earnings from rental income in the year before the previous year. + + Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). + """ + + +@policy_input(start_date="2021-01-01") +def einnahmen_aus_kapitalvermögen_vorvorjahr_y() -> float: + """Earnings from capital income in the year before the previous year. + + Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). + """ diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml index dceb03f6a..74afcebc2 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_1.yaml @@ -14,20 +14,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -53,6 +42,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 420 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml index ab2581682..8800ca9ce 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_10.yaml @@ -13,20 +13,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -52,6 +41,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 492 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml index e685bf305..ed8edf475 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_11.yaml @@ -15,20 +15,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -54,6 +43,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 372 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml index dd1c8edb7..763592508 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_12.yaml @@ -12,20 +12,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -51,6 +40,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 0 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml index 3c12323ed..820a158de 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_2.yaml @@ -14,20 +14,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -53,6 +42,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 420 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml index 9efa5957f..fdd67acaf 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_3.yaml @@ -15,20 +15,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -54,6 +43,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 420 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml index c4da0e308..fe9d23294 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_4.yaml @@ -14,20 +14,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -53,6 +42,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 480 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml index d7ef888a0..832362989 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_5.yaml @@ -14,20 +14,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -53,6 +42,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 408 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml index 7dff6cefd..74ea03a01 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_6.yaml @@ -13,20 +13,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 0.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -52,6 +41,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 300 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml index cfc887d3b..f0ce271f4 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_7.yaml @@ -13,20 +13,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 1400.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -52,6 +41,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 1400.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 300 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml index 2aec1be55..1db15c356 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_8.yaml @@ -13,20 +13,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 2400.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -52,6 +41,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 2400.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 300 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml index fe57de7ba..2e9039f4e 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/hh_id_9.yaml @@ -15,20 +15,9 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - bruttolohn_vorjahr_m: - - 1380.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 familie: p_id_ehepartner: - -1 @@ -54,6 +43,14 @@ inputs: grundrente: gesamteinnahmen_aus_renten_vorjahr_m: - 0.0 + bruttolohn_vorjahr_m: + - 1380.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 bewertungszeiten_monate: - 552 grundrentenzeiten_monate: diff --git a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml index 93b1ede3c..f8c6402c7 100644 --- a/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml +++ b/src/_gettsim_tests/test_data/sozialversicherung/rente/grundrente/2021-07-01/married_couple.yaml @@ -14,25 +14,10 @@ inputs: - 70 einkommensteuer: einkünfte: - aus_kapitalvermögen: - kapitalerträge_y: - - 0.0 - - 0.0 aus_nichtselbstständiger_arbeit: bruttolohn_m: - 0.0 - 0.0 - bruttolohn_vorjahr_m: - - 700.0 - - 700.0 - aus_selbstständiger_arbeit: - betrag_y: - - 0.0 - - 0.0 - aus_vermietung_und_verpachtung: - betrag_y: - - 0.0 - - 0.0 familie: p_id_ehepartner: - 1 @@ -68,6 +53,18 @@ inputs: bewertungszeiten_monate: - 300 - 300 + bruttolohn_vorjahr_m: + - 0.0 + - 0.0 + einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y: + - 0.0 + - 0.0 + einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y: + - 0.0 + - 0.0 + einnahmen_aus_kapitalvermögen_vorvorjahr_y: + - 0.0 + - 0.0 grundrentenzeiten_monate: - 480 - 480 From 9402bf778762f2fc69439a1c20a1dd8af89863c8 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Mon, 21 Jul 2025 19:46:22 +0200 Subject: [PATCH 05/13] Start with ErzGeld, need to handle pauschbetrag. --- .../inputs.py" | 5 ---- src/_gettsim/erziehungsgeld/erziehungsgeld.py | 24 +++++++++---------- src/_gettsim/erziehungsgeld/inputs.py | 5 ++++ .../rente/grundrente/inputs.py | 6 ++--- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git "a/src/_gettsim/einkommensteuer/eink\303\274nfte/aus_nichtselbstst\303\244ndiger_arbeit/inputs.py" "b/src/_gettsim/einkommensteuer/eink\303\274nfte/aus_nichtselbstst\303\244ndiger_arbeit/inputs.py" index 85f3ec399..04870b441 100644 --- "a/src/_gettsim/einkommensteuer/eink\303\274nfte/aus_nichtselbstst\303\244ndiger_arbeit/inputs.py" +++ "b/src/_gettsim/einkommensteuer/eink\303\274nfte/aus_nichtselbstst\303\244ndiger_arbeit/inputs.py" @@ -8,8 +8,3 @@ @policy_input() def bruttolohn_m() -> float: """Monthly wage.""" - - -@policy_input() -def bruttolohn_vorjahr_m() -> float: - """Monthly wage of previous year.""" diff --git a/src/_gettsim/erziehungsgeld/erziehungsgeld.py b/src/_gettsim/erziehungsgeld/erziehungsgeld.py index 74d089e62..85ac086ff 100644 --- a/src/_gettsim/erziehungsgeld/erziehungsgeld.py +++ b/src/_gettsim/erziehungsgeld/erziehungsgeld.py @@ -107,7 +107,7 @@ def anspruchshöhe_kind_mit_budgetsatz_m( For the calculation, the relevant income, the age of the youngest child, the income threshold and the eligibility for erziehungsgeld is needed. - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 + Legal reference: BGBl I. v. 17.02.2004 """ if ist_leistungsbegründendes_kind: out = max( @@ -154,7 +154,7 @@ def abzug_durch_einkommen_m( ) -> float: """Reduction of parental leave benefits (means-test). - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (p.209) + Legal reference: BGBl I. v. 17.02.2004 S.209 """ if ( anzurechnendes_einkommen_m > einkommensgrenze_m @@ -180,7 +180,7 @@ def _leistungsbegründendes_kind_vor_abschaffung( ) -> bool: """Eligibility for parental leave benefit (Erziehungsgeld) on child level. - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (pp.207) + Legal reference: BGBl I. v. 17.02.2004 S.207 """ if budgetsatz: out = p_id_empfänger >= 0 and alter_monate <= maximales_kindsalter_budgetsatz @@ -216,7 +216,7 @@ def _leistungsbegründendes_kind_nach_abschaffung( Abolished for children born after the cut-off date. - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (pp.207) + Legal reference: BGBl I. v. 17.02.2004 S.207 """ if budgetsatz and geburtsjahr <= abolishment_cohort: out = p_id_empfänger >= 0 and alter_monate <= maximales_kindsalter_budgetsatz @@ -238,7 +238,7 @@ def grundsätzlich_anspruchsberechtigt( ) -> bool: """Eligibility for parental leave benefit (Erziehungsgeld) on parental level. - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (p.207) + Legal reference: BGBl I. v. 17.02.2004 S.207 """ return leistungsbegründende_kinder_fg and ( arbeitsstunden_w <= maximale_wochenarbeitszeit @@ -247,7 +247,7 @@ def grundsätzlich_anspruchsberechtigt( @policy_function(start_date="2004-01-01", end_date="2008-12-31") def anzurechnendes_einkommen_y( - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_y_fg: float, + bruttolohn_vorjahr_y_fg: float, familie__anzahl_erwachsene_fg: int, ist_leistungsbegründendes_kind: bool, pauschaler_abzug_vom_einkommen: float, @@ -255,14 +255,14 @@ def anzurechnendes_einkommen_y( ) -> float: """Income relevant for means testing for parental leave benefit (Erziehungsgeld). - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (p.209) + Legal reference: BGBl I. v. 17.02.2004 S.209 There is special rule for "Beamte, Soldaten und Richter" which is not implemented yet. """ if ist_leistungsbegründendes_kind: out = ( - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_y_fg + bruttolohn_vorjahr_y_fg - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag * familie__anzahl_erwachsene_fg ) * pauschaler_abzug_vom_einkommen @@ -280,7 +280,7 @@ def einkommensgrenze_y( ) -> float: """Income threshold for parental leave benefit (Erziehungsgeld). - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (pp.208) + Legal reference: BGBl I. v. 17.02.2004 S.208 """ out = ( einkommensgrenze_ohne_geschwisterbonus @@ -301,7 +301,7 @@ def einkommensgrenze_ohne_geschwisterbonus( """Income threshold for parental leave benefit (Erziehungsgeld) before adding the bonus for additional children. - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (pp.208) + Legal reference: BGBl I. v. 17.02.2004 S.208 """ if alter_monate < altersgrenze_für_reduziertes_einkommenslimit_kind_monate: return einkommensgrenze_ohne_geschwisterbonus_kind_jünger_als_reduzierungsgrenze @@ -317,7 +317,7 @@ def einkommensgrenze_ohne_geschwisterbonus_kind_jünger_als_reduzierungsgrenze( ) -> float: """Base income threshold for parents of children younger than the age threshold. - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (pp.208) + Legal reference: BGBl I. v. 17.02.2004 S.208 """ if budgetsatz and familie__alleinerziehend_fg: return einkommensgrenze.regulär_alleinerziehend["budgetsatz"] @@ -337,7 +337,7 @@ def einkommensgrenze_ohne_geschwisterbonus_kind_älter_als_reduzierungsgrenze( ) -> float: """Base income threshold for parents of children older than age threshold. - Legal reference: Bundesgesetzblatt Jahrgang 2004 Teil I Nr. 6 (pp.208) + Legal reference: BGBl I. v. 17.02.2004 S.208 """ if budgetsatz and familie__alleinerziehend_fg: return einkommensgrenze.reduziert_alleinerziehend["budgetsatz"] diff --git a/src/_gettsim/erziehungsgeld/inputs.py b/src/_gettsim/erziehungsgeld/inputs.py index f9612184c..44b6a67b2 100644 --- a/src/_gettsim/erziehungsgeld/inputs.py +++ b/src/_gettsim/erziehungsgeld/inputs.py @@ -5,6 +5,11 @@ from ttsim.tt_dag_elements import FKType, policy_input +@policy_input(end_date="2008-12-31") +def bruttolohn_vorjahr_y() -> float: + """Gross earnings of the previous year.""" + + @policy_input(end_date="2008-12-31") def budgetsatz() -> bool: """Applied for "Budgetsatz" of parental leave benefit.""" diff --git a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py index 96e723880..0f1c8ba3c 100644 --- a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py +++ b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py @@ -39,7 +39,7 @@ def bruttolohn_vorjahr_y() -> float: @policy_input(start_date="2021-01-01") def einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y() -> float: - """Earnings from self-employment in the year before the previous year. + """Earnings from self-employment 2 years before. Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). """ @@ -47,7 +47,7 @@ def einnahmen_aus_selbstständiger_arbeit_vorvorjahr_y() -> float: @policy_input(start_date="2021-01-01") def einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y() -> float: - """Earnings from rental income in the year before the previous year. + """Earnings from rental income 2 years before. Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). """ @@ -55,7 +55,7 @@ def einnahmen_aus_vermietung_und_verpachtung_vorvorjahr_y() -> float: @policy_input(start_date="2021-01-01") def einnahmen_aus_kapitalvermögen_vorvorjahr_y() -> float: - """Earnings from capital income in the year before the previous year. + """Earnings from capital income 2 years before. Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). """ From 7622191da469aad77f9552252f6fa418e946e77d Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Mon, 21 Jul 2025 23:11:30 +0200 Subject: [PATCH 06/13] Fix tests, remove arbeitnehmerpauschale next. --- src/_gettsim/elterngeld/inputs.py | 15 ++++++--------- src/_gettsim/erziehungsgeld/erziehungsgeld.py | 4 ++-- src/_gettsim/erziehungsgeld/inputs.py | 9 +++++++-- .../arbeitslosen/arbeitslosengeld.py | 4 ++-- .../sozialversicherung/arbeitslosen/inputs.py | 8 +++----- .../alleinerz_one_child_budgetsatz.yaml | 8 ++------ ...alleinerz_one_child_regelsatz_high_income.yaml | 8 ++------ .../alleinerz_one_child_regelsatz_low_income.yaml | 8 ++------ .../married_one_child_budgetsatz_high_income.yaml | 9 ++------- .../married_one_child_budgetsatz_low_income.yaml | 9 ++------- .../2005-01-01/married_one_child_regelsatz.yaml | 9 ++------- ...dren_budgetsatz_and_regelsatz_high_income.yaml | 10 ++-------- ...ldren_budgetsatz_and_regelsatz_low_income.yaml | 10 ++-------- .../2007-01-01/born_after_abolishment.yaml | 8 ++------ ...dren_budgetsatz_and_regelsatz_high_income.yaml | 10 ++-------- ...ldren_budgetsatz_and_regelsatz_low_income.yaml | 10 ++-------- 16 files changed, 42 insertions(+), 97 deletions(-) diff --git a/src/_gettsim/elterngeld/inputs.py b/src/_gettsim/elterngeld/inputs.py index d772ae942..c77009142 100644 --- a/src/_gettsim/elterngeld/inputs.py +++ b/src/_gettsim/elterngeld/inputs.py @@ -19,11 +19,9 @@ def claimed() -> bool: def mean_nettoeinkommen_in_12_monaten_vor_geburt_m() -> float: """Mean net wage in the 12 months before birth of youngest child. - To compute this value using GETTSIM: - 1. Use `elterngeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m` as - the TT target - 2. Apply it to data from the last 12 months before the birth of the youngest child - 3. Use the result as input for this column. + To compute this value using GETTSIM set `('elterngeld', + 'mean_nettoeinkommen_für_bemessungsgrundllage_nach_geburt_m')` as the TT target and + use input data from the last 12 months before the birth of the youngest child. """ @@ -31,8 +29,7 @@ def mean_nettoeinkommen_in_12_monaten_vor_geburt_m() -> float: def zu_versteuerndes_einkommen_vorjahr_y_sn() -> float: """Taxable income in the calendar year prior to the youngest child's birth year. - To compute this value using GETTSIM: - 1. Use `einkommensteuer__zu_versteuerndes_einkommen_y_sn` as the TT target - 2. Apply it to data from the year prior to the youngest child's birth year - 3. Use the result as input for this column. + To compute this value using GETTSIM set `('einkommensteuer', + 'zu_versteuerndes_einkommen_y_sn')` as the TT target and use input data from the + year prior to the youngest child's birth year. """ diff --git a/src/_gettsim/erziehungsgeld/erziehungsgeld.py b/src/_gettsim/erziehungsgeld/erziehungsgeld.py index 85ac086ff..9babe3820 100644 --- a/src/_gettsim/erziehungsgeld/erziehungsgeld.py +++ b/src/_gettsim/erziehungsgeld/erziehungsgeld.py @@ -247,7 +247,7 @@ def grundsätzlich_anspruchsberechtigt( @policy_function(start_date="2004-01-01", end_date="2008-12-31") def anzurechnendes_einkommen_y( - bruttolohn_vorjahr_y_fg: float, + bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg: float, familie__anzahl_erwachsene_fg: int, ist_leistungsbegründendes_kind: bool, pauschaler_abzug_vom_einkommen: float, @@ -262,7 +262,7 @@ def anzurechnendes_einkommen_y( """ if ist_leistungsbegründendes_kind: out = ( - bruttolohn_vorjahr_y_fg + bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag * familie__anzahl_erwachsene_fg ) * pauschaler_abzug_vom_einkommen diff --git a/src/_gettsim/erziehungsgeld/inputs.py b/src/_gettsim/erziehungsgeld/inputs.py index 44b6a67b2..bf659a2b3 100644 --- a/src/_gettsim/erziehungsgeld/inputs.py +++ b/src/_gettsim/erziehungsgeld/inputs.py @@ -6,8 +6,13 @@ @policy_input(end_date="2008-12-31") -def bruttolohn_vorjahr_y() -> float: - """Gross earnings of the previous year.""" +def bruttolohn_vorjahr_abzüglich_werbungskosten_y() -> float: + """Gross earnings of the previous year minus Werbungskosten. + + To compute this value using GETTSIM set `('einkommensteuer', 'einkünfte', + 'aus_nichtselbstständiger_arbeit', 'einnahmen_nach_abzug_werbungskosten_y')` as the + TT target and use input data from the year prior to the youngest child's birth year. + """ @policy_input(end_date="2008-12-31") diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py index 328dc4466..95f19ff7b 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py @@ -118,7 +118,7 @@ def grundsätzlich_anspruchsberechtigt( @policy_function() def mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y( sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_y: float, - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_y: float, + einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_y: float, sozialversicherungspauschale: float, einkommensteuer__parameter_einkommensteuertarif: PiecewisePolynomialParamValue, einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag: float, @@ -134,7 +134,7 @@ def mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y( be the gross wage in the calendar year before unemployment. """ berücksichtigungsfähige_einnahmen = min( - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_vorjahr_y, + einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_y, sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_y, ) pauschalisierte_sozialversicherungsbeiträge = ( diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py b/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py index 5113680ce..dd7e83640 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py @@ -9,11 +9,9 @@ def mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m() -> float: """Mean net wage in the 12 months before unemployment. - To compute this value using GETTSIM: - 1. Use `arbeitslosengeld__mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y` - as the TT target - 2. Apply it to data from the 12 months before the unemployment - 3. Use the result as input for this column. + To compute this value using GETTSIM set `('arbeitslosengeld', + 'mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y')` as the TT + target and use input data from the 12 months before the unemployment. """ diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml index 072eff7e4..3bae13316 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml @@ -24,14 +24,10 @@ inputs: bruttolohn_m: - 1500.0 - 0.0 - bruttolohn_vorjahr_m: - - 1500.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1500.0 - 0.0 - erziehungsgeld: budgetsatz: - false - true diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml index d0e02cdb5..9a6138edc 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml @@ -24,14 +24,10 @@ inputs: bruttolohn_m: - 1400.0 - 0.0 - bruttolohn_vorjahr_m: - - 1700.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1700.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml index 16ddd536d..cddeda967 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml @@ -24,14 +24,10 @@ inputs: bruttolohn_m: - 1500.0 - 0.0 - bruttolohn_vorjahr_m: - - 1500.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1500.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml index 85b61cf2d..d2d5fd1f8 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml @@ -29,16 +29,11 @@ inputs: - 1400.0 - 5000.0 - 0.0 - bruttolohn_vorjahr_m: - - 1400.0 - - 5000.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1400.0 - 5000.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml index ca7919a0a..f989da140 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml @@ -29,16 +29,11 @@ inputs: - 1400.0 - 3000.0 - 0.0 - bruttolohn_vorjahr_m: - - 1400.0 - - 3000.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1400.0 - 3000.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml index e20e7ba9f..1c3862822 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml @@ -29,16 +29,11 @@ inputs: - 2500.0 - 2500.0 - 0.0 - bruttolohn_vorjahr_m: - - 2500.0 - - 2500.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 2500.0 - 2500.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index 5ab78e910..2bc8ba058 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -34,18 +34,12 @@ inputs: - 1700.0 - 0.0 - 0.0 - bruttolohn_vorjahr_m: - - 1400.0 - - 1700.0 - - 0.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1400.0 - 1700.0 - 0.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index d6e20e55b..5b790b39d 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -34,18 +34,12 @@ inputs: - 1300.0 - 0.0 - 0.0 - bruttolohn_vorjahr_m: - - 400.0 - - 1300.0 - - 0.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 400.0 - 1300.0 - 0.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml index 2ef4e8917..424ae8bf3 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml @@ -24,14 +24,10 @@ inputs: bruttolohn_m: - 1500.0 - 0.0 - bruttolohn_vorjahr_m: - - 1500.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1500.0 - 0.0 - erziehungsgeld: budgetsatz: - false - true diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index 0339777bf..a397dba47 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -34,18 +34,12 @@ inputs: - 1700.0 - 0.0 - 0.0 - bruttolohn_vorjahr_m: - - 1400.0 - - 1700.0 - - 0.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 1400.0 - 1700.0 - 0.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index 87e3a5f75..7ccd939f6 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -34,18 +34,12 @@ inputs: - 1300.0 - 0.0 - 0.0 - bruttolohn_vorjahr_m: - - 400.0 - - 1300.0 - - 0.0 - - 0.0 - elterngeld: - mean_nettoeinkommen_in_12_monaten_vor_geburt_m: + erziehungsgeld: + bruttolohn_vorjahr_abzüglich_werbungskosten_m: - 400.0 - 1300.0 - 0.0 - 0.0 - erziehungsgeld: budgetsatz: - false - false From 56a957e33b1133153f6466002763ac6704cfbdd5 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Mon, 21 Jul 2025 23:34:43 +0200 Subject: [PATCH 07/13] Fix test inputs. Need to fix FG grouping bug next. --- src/_gettsim/erziehungsgeld/erziehungsgeld.py | 11 ++++------- .../2005-01-01/alleinerz_one_child_budgetsatz.yaml | 2 +- .../alleinerz_one_child_regelsatz_high_income.yaml | 2 +- .../alleinerz_one_child_regelsatz_low_income.yaml | 2 +- .../married_one_child_budgetsatz_high_income.yaml | 4 ++-- .../married_one_child_budgetsatz_low_income.yaml | 4 ++-- .../2005-01-01/married_one_child_regelsatz.yaml | 4 ++-- ...children_budgetsatz_and_regelsatz_high_income.yaml | 4 ++-- ..._children_budgetsatz_and_regelsatz_low_income.yaml | 4 ++-- .../2007-01-01/born_after_abolishment.yaml | 2 +- ...children_budgetsatz_and_regelsatz_high_income.yaml | 4 ++-- ..._children_budgetsatz_and_regelsatz_low_income.yaml | 4 ++-- 12 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/_gettsim/erziehungsgeld/erziehungsgeld.py b/src/_gettsim/erziehungsgeld/erziehungsgeld.py index 9babe3820..4083390e6 100644 --- a/src/_gettsim/erziehungsgeld/erziehungsgeld.py +++ b/src/_gettsim/erziehungsgeld/erziehungsgeld.py @@ -247,11 +247,9 @@ def grundsätzlich_anspruchsberechtigt( @policy_function(start_date="2004-01-01", end_date="2008-12-31") def anzurechnendes_einkommen_y( - bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg: float, - familie__anzahl_erwachsene_fg: int, + bruttolohn_vorjahr_abzüglich_werbungskosten_y: float, ist_leistungsbegründendes_kind: bool, pauschaler_abzug_vom_einkommen: float, - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag: float, ) -> float: """Income relevant for means testing for parental leave benefit (Erziehungsgeld). @@ -262,10 +260,9 @@ def anzurechnendes_einkommen_y( """ if ist_leistungsbegründendes_kind: out = ( - bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg - - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag - * familie__anzahl_erwachsene_fg - ) * pauschaler_abzug_vom_einkommen + bruttolohn_vorjahr_abzüglich_werbungskosten_y + * pauschaler_abzug_vom_einkommen + ) else: out = 0.0 return out diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml index 3bae13316..fea422db7 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml @@ -26,7 +26,7 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1500.0 + - 1423.33 - 0.0 budgetsatz: - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml index 9a6138edc..e81b484de 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml @@ -26,7 +26,7 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1700.0 + - 1623.33 - 0.0 budgetsatz: - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml index cddeda967..911f85c98 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml @@ -26,7 +26,7 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1500.0 + - 1423.33 - 0.0 budgetsatz: - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml index d2d5fd1f8..9bc495d10 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml @@ -31,8 +31,8 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1400.0 - - 5000.0 + - 1323.33 + - 4923.33 - 0.0 budgetsatz: - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml index f989da140..f0d6a6912 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml @@ -31,8 +31,8 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1400.0 - - 3000.0 + - 1323.33 + - 2923.33 - 0.0 budgetsatz: - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml index 1c3862822..ac1029201 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml @@ -31,8 +31,8 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 2500.0 - - 2500.0 + - 2423.33 + - 2423.33 - 0.0 budgetsatz: - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index 2bc8ba058..d88b8f9ef 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -36,8 +36,8 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1400.0 - - 1700.0 + - 1323.33 + - 1623.33 - 0.0 - 0.0 budgetsatz: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index 5b790b39d..6ede5019b 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -36,8 +36,8 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 400.0 - - 1300.0 + - 323.33 + - 1223.33 - 0.0 - 0.0 budgetsatz: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml index 424ae8bf3..b9bd12a5a 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml @@ -26,7 +26,7 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1500.0 + - 1423.33 - 0.0 budgetsatz: - false diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index a397dba47..f6ecebd03 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -36,8 +36,8 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 1400.0 - - 1700.0 + - 1323.33 + - 1623.33 - 0.0 - 0.0 budgetsatz: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index 7ccd939f6..e2ef7a1a0 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -36,8 +36,8 @@ inputs: - 0.0 erziehungsgeld: bruttolohn_vorjahr_abzüglich_werbungskosten_m: - - 400.0 - - 1300.0 + - 323.33 + - 1223.33 - 0.0 - 0.0 budgetsatz: From 0d31de1c8e6e7b43c6600d30783da078c80acdc5 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Tue, 22 Jul 2025 10:15:31 +0200 Subject: [PATCH 08/13] Fix ErzGeld bug. --- src/_gettsim/erziehungsgeld/erziehungsgeld.py | 50 ++++++++----------- .../alleinerz_one_child_budgetsatz.yaml | 4 +- ...inerz_one_child_regelsatz_high_income.yaml | 4 +- ...einerz_one_child_regelsatz_low_income.yaml | 4 +- ...ried_one_child_budgetsatz_high_income.yaml | 4 +- ...rried_one_child_budgetsatz_low_income.yaml | 4 +- .../married_one_child_regelsatz.yaml | 4 +- ..._budgetsatz_and_regelsatz_high_income.yaml | 4 +- ...n_budgetsatz_and_regelsatz_low_income.yaml | 4 +- .../2007-01-01/born_after_abolishment.yaml | 4 +- ..._budgetsatz_and_regelsatz_high_income.yaml | 4 +- ...n_budgetsatz_and_regelsatz_low_income.yaml | 4 +- 12 files changed, 44 insertions(+), 50 deletions(-) diff --git a/src/_gettsim/erziehungsgeld/erziehungsgeld.py b/src/_gettsim/erziehungsgeld/erziehungsgeld.py index 4083390e6..d2434db9a 100644 --- a/src/_gettsim/erziehungsgeld/erziehungsgeld.py +++ b/src/_gettsim/erziehungsgeld/erziehungsgeld.py @@ -99,7 +99,7 @@ def erziehungsgeld_kind_ohne_budgetsatz_m() -> NotImplementedError: ) def anspruchshöhe_kind_mit_budgetsatz_m( ist_leistungsbegründendes_kind: bool, - abzug_durch_einkommen_m: float, + abzug_durch_einkommen_m_fg: float, basisbetrag_m: float, ) -> float: """Parental leave benefit (Erziehungsgeld) on child level. @@ -110,29 +110,23 @@ def anspruchshöhe_kind_mit_budgetsatz_m( Legal reference: BGBl I. v. 17.02.2004 """ if ist_leistungsbegründendes_kind: - out = max( - basisbetrag_m - abzug_durch_einkommen_m, - 0.0, - ) + return max(basisbetrag_m - abzug_durch_einkommen_m_fg, 0.0) else: - out = 0.0 - - return out + return 0.0 @policy_function(start_date="2004-01-01", end_date="2008-12-31") def basisbetrag_m( budgetsatz: bool, - anzurechnendes_einkommen_y: float, - einkommensgrenze_y: float, + anzurechnendes_einkommen_y_fg: float, + einkommensgrenze_y_fg: float, alter_monate: int, altersgrenze_für_reduziertes_einkommenslimit_kind_monate: int, satz: dict[str, float], ) -> float: """Parental leave benefit (Erziehungsgeld) without means-test on child level.""" - # no benefit if income is above threshold and child is younger than threshold if ( - anzurechnendes_einkommen_y > einkommensgrenze_y + anzurechnendes_einkommen_y_fg > einkommensgrenze_y_fg and alter_monate < altersgrenze_für_reduziertes_einkommenslimit_kind_monate ): out = 0.0 @@ -145,9 +139,9 @@ def basisbetrag_m( @policy_function(start_date="2004-01-01", end_date="2008-12-31") -def abzug_durch_einkommen_m( - anzurechnendes_einkommen_m: float, - einkommensgrenze_m: float, +def abzug_durch_einkommen_m_fg( + anzurechnendes_einkommen_m_fg: float, + einkommensgrenze_m_fg: float, alter_monate: int, altersgrenze_für_reduziertes_einkommenslimit_kind_monate: float, abschlagsfaktor: float, @@ -157,10 +151,10 @@ def abzug_durch_einkommen_m( Legal reference: BGBl I. v. 17.02.2004 S.209 """ if ( - anzurechnendes_einkommen_m > einkommensgrenze_m + anzurechnendes_einkommen_m_fg > einkommensgrenze_m_fg and alter_monate >= altersgrenze_für_reduziertes_einkommenslimit_kind_monate ): - out = anzurechnendes_einkommen_m * abschlagsfaktor + out = anzurechnendes_einkommen_m_fg * abschlagsfaktor else: out = 0.0 return out @@ -246,8 +240,8 @@ def grundsätzlich_anspruchsberechtigt( @policy_function(start_date="2004-01-01", end_date="2008-12-31") -def anzurechnendes_einkommen_y( - bruttolohn_vorjahr_abzüglich_werbungskosten_y: float, +def anzurechnendes_einkommen_y_fg( + bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg: float, ist_leistungsbegründendes_kind: bool, pauschaler_abzug_vom_einkommen: float, ) -> float: @@ -260,7 +254,7 @@ def anzurechnendes_einkommen_y( """ if ist_leistungsbegründendes_kind: out = ( - bruttolohn_vorjahr_abzüglich_werbungskosten_y + bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg * pauschaler_abzug_vom_einkommen ) else: @@ -269,7 +263,7 @@ def anzurechnendes_einkommen_y( @policy_function(start_date="2004-01-01", end_date="2008-12-31") -def einkommensgrenze_y( +def einkommensgrenze_y_fg( einkommensgrenze_ohne_geschwisterbonus: float, familie__anzahl_kinder_fg: float, ist_leistungsbegründendes_kind: bool, @@ -279,13 +273,13 @@ def einkommensgrenze_y( Legal reference: BGBl I. v. 17.02.2004 S.208 """ - out = ( - einkommensgrenze_ohne_geschwisterbonus - + (familie__anzahl_kinder_fg - 1) * aufschlag_einkommen - ) - if not ist_leistungsbegründendes_kind: - out = 0.0 - return out + if ist_leistungsbegründendes_kind: + return ( + einkommensgrenze_ohne_geschwisterbonus + + (familie__anzahl_kinder_fg - 1) * aufschlag_einkommen + ) + else: + return 0.0 @policy_function(start_date="2004-01-01", end_date="2008-12-31") diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml index fea422db7..727e09e09 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml @@ -75,12 +75,12 @@ outputs: anspruchshöhe_kind_m: - 0.0 - 450.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 12980.8 betrag_m: - 450.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 13500 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml index e81b484de..c8c41c050 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml @@ -75,12 +75,12 @@ outputs: anspruchshöhe_kind_m: - 0.0 - 235.8 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 14804.8 betrag_m: - 235.8 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 13500 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml index 911f85c98..e49cb75b2 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml @@ -75,12 +75,12 @@ outputs: anspruchshöhe_kind_m: - 0.0 - 300.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 12980.8 betrag_m: - 300.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 13500 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml index 9bc495d10..7332e1ca1 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml @@ -94,7 +94,7 @@ outputs: - 0.0 - 0.0 - 0.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0 - 56969.6 @@ -102,7 +102,7 @@ outputs: - 0.0 - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0 - 22086 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml index f0d6a6912..ba35222b1 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml @@ -94,7 +94,7 @@ outputs: - 0.0 - 0.0 - 0.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0 - 38729.6 @@ -102,7 +102,7 @@ outputs: - 0.0 - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0 - 22086 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml index ac1029201..eadc20606 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml @@ -94,7 +94,7 @@ outputs: - 0.0 - 0.0 - 108.4597333 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0 - 44201.6 @@ -102,7 +102,7 @@ outputs: - 108.4597333 - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0 - 16500 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index d88b8f9ef..fbea664c9 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -113,7 +113,7 @@ outputs: - 0.0 - 333.55 - 300.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0 - 26873.6 @@ -123,7 +123,7 @@ outputs: - 0.0 - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0 - 19640 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index 6ede5019b..f6cb8af18 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -119,7 +119,7 @@ outputs: - 0.0 - 300.0 - 450.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0 - 14105.6 @@ -129,7 +129,7 @@ outputs: - 0.0 - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0 - 19640 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml index b9bd12a5a..129a091ba 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml @@ -75,12 +75,12 @@ outputs: anspruchshöhe_kind_m: - 0.0 - 0.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0.0 betrag_m: - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index f6ecebd03..252468e50 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -113,7 +113,7 @@ outputs: - 0.0 - 333.55 - 300.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0 - 26873.6 @@ -123,7 +123,7 @@ outputs: - 0.0 - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0 - 19640 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index e2ef7a1a0..1fcc67c10 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -113,7 +113,7 @@ outputs: - 0.0 - 300.0 - 450.0 - anzurechnendes_einkommen_y: + anzurechnendes_einkommen_y_fg: - 0 - 0 - 14105.6 @@ -123,7 +123,7 @@ outputs: - 0.0 - 0.0 - 0.0 - einkommensgrenze_y: + einkommensgrenze_y_fg: - 0 - 0 - 19640 From 56268f7c93f388d591f15c58e7b177c7b80ae6e0 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Tue, 22 Jul 2025 10:20:44 +0200 Subject: [PATCH 09/13] Review comments. --- src/_gettsim/arbeitslosengeld_2/inputs.py | 3 ++- src/_gettsim/elterngeld/inputs.py | 2 +- src/_gettsim/erziehungsgeld/erziehungsgeld.py | 4 ++-- src/_gettsim/erziehungsgeld/inputs.py | 7 ++++--- .../sozialversicherung/arbeitslosen/arbeitslosengeld.py | 4 ++-- src/_gettsim/sozialversicherung/arbeitslosen/inputs.py | 2 +- .../sozialversicherung/rente/grundrente/grundrente.py | 2 +- src/_gettsim/sozialversicherung/rente/grundrente/inputs.py | 6 +++--- 8 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/_gettsim/arbeitslosengeld_2/inputs.py b/src/_gettsim/arbeitslosengeld_2/inputs.py index e331247cd..91e833c20 100644 --- a/src/_gettsim/arbeitslosengeld_2/inputs.py +++ b/src/_gettsim/arbeitslosengeld_2/inputs.py @@ -7,7 +7,8 @@ @policy_input(start_date="2023-01-01") def bezug_im_vorjahr() -> bool: - """Whether the person received Arbeitslosengeld 2 / Bürgergeld in the previous year.""" + """Whether the person received Arbeitslosengeld 2 / Bürgergeld in the previous + calendar year.""" # TODO(@MImmesberger): Remove input variable eigenbedarf_gedeckt once diff --git a/src/_gettsim/elterngeld/inputs.py b/src/_gettsim/elterngeld/inputs.py index c77009142..53ef29ef9 100644 --- a/src/_gettsim/elterngeld/inputs.py +++ b/src/_gettsim/elterngeld/inputs.py @@ -31,5 +31,5 @@ def zu_versteuerndes_einkommen_vorjahr_y_sn() -> float: To compute this value using GETTSIM set `('einkommensteuer', 'zu_versteuerndes_einkommen_y_sn')` as the TT target and use input data from the - year prior to the youngest child's birth year. + calendar year prior to the youngest child's birth year. """ diff --git a/src/_gettsim/erziehungsgeld/erziehungsgeld.py b/src/_gettsim/erziehungsgeld/erziehungsgeld.py index d2434db9a..8b264fdc7 100644 --- a/src/_gettsim/erziehungsgeld/erziehungsgeld.py +++ b/src/_gettsim/erziehungsgeld/erziehungsgeld.py @@ -241,7 +241,7 @@ def grundsätzlich_anspruchsberechtigt( @policy_function(start_date="2004-01-01", end_date="2008-12-31") def anzurechnendes_einkommen_y_fg( - bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg: float, + bruttolohn_vorjahr_nach_abzug_werbungskosten_y_fg: float, ist_leistungsbegründendes_kind: bool, pauschaler_abzug_vom_einkommen: float, ) -> float: @@ -254,7 +254,7 @@ def anzurechnendes_einkommen_y_fg( """ if ist_leistungsbegründendes_kind: out = ( - bruttolohn_vorjahr_abzüglich_werbungskosten_y_fg + bruttolohn_vorjahr_nach_abzug_werbungskosten_y_fg * pauschaler_abzug_vom_einkommen ) else: diff --git a/src/_gettsim/erziehungsgeld/inputs.py b/src/_gettsim/erziehungsgeld/inputs.py index bf659a2b3..26e259183 100644 --- a/src/_gettsim/erziehungsgeld/inputs.py +++ b/src/_gettsim/erziehungsgeld/inputs.py @@ -6,12 +6,13 @@ @policy_input(end_date="2008-12-31") -def bruttolohn_vorjahr_abzüglich_werbungskosten_y() -> float: - """Gross earnings of the previous year minus Werbungskosten. +def bruttolohn_vorjahr_nach_abzug_werbungskosten_y() -> float: + """Gross earnings of the previous calendar year minus Werbungskosten. To compute this value using GETTSIM set `('einkommensteuer', 'einkünfte', 'aus_nichtselbstständiger_arbeit', 'einnahmen_nach_abzug_werbungskosten_y')` as the - TT target and use input data from the year prior to the youngest child's birth year. + TT target and use input data from the calendar year prior to the youngest child's + birth year. """ diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py index 95f19ff7b..b68534abd 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py @@ -116,7 +116,7 @@ def grundsätzlich_anspruchsberechtigt( @policy_function() -def mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y( +def mean_nettoeinkommen_für_bemessungsgrundlage_bei_arbeitslosigkeit_y( sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_y: float, einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_y: float, sozialversicherungspauschale: float, @@ -125,7 +125,7 @@ def mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y( solidaritätszuschlag__parameter_solidaritätszuschlag: PiecewisePolynomialParamValue, xnp: ModuleType, ) -> float: - """Approximate last years income for unemployment benefit. + """Approximate the income relevant for calculating unemployment insurance benefits. This target can be used as an input in another GETTSIM call to compute Arbeitslosengeld. In principle, the relevant gross wage for this target is the sum diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py b/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py index dd7e83640..c50a6125e 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/inputs.py @@ -10,7 +10,7 @@ def mean_nettoeinkommen_in_12_monaten_vor_arbeitslosigkeit_m() -> float: """Mean net wage in the 12 months before unemployment. To compute this value using GETTSIM set `('arbeitslosengeld', - 'mean_nettoeinkommen_für_bemessungsgrundllage_nach_arbeitslosigkeit_y')` as the TT + 'mean_nettoeinkommen_für_bemessungsgrundlage_bei_arbeitslosigkeit_y')` as the TT target and use input data from the 12 months before the unemployment. """ diff --git a/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py b/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py index bf9a7dfc0..e90680142 100644 --- a/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py +++ b/src/_gettsim/sozialversicherung/rente/grundrente/grundrente.py @@ -265,7 +265,7 @@ def gesamteinnahmen_aus_renten_für_einkommensberechnung_im_folgejahr_m( einkommensteuer__einkünfte__sonstige__rente__sonstige_private_vorsorge_m: float, einkommensteuer__einkünfte__sonstige__rente__betriebliche_altersvorsorge_m: float, ) -> float: - """Income from private and public pensions in the previous year. + """Income from private and public pensions in the previous calendar year. This target can be used as an input in another GETTSIM call to compute Grundrente. """ diff --git a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py index 0f1c8ba3c..a2fbbb76c 100644 --- a/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py +++ b/src/_gettsim/sozialversicherung/rente/grundrente/inputs.py @@ -22,16 +22,16 @@ def mean_entgeltpunkte() -> float: @policy_input(start_date="2021-01-01") def gesamteinnahmen_aus_renten_vorjahr_m() -> float: - """Income from private and public pensions in the previous year. + """Income from private and public pensions in the previous calendar year. - GETTSIM can calculate this input based on the data of the previous year using the + GETTSIM can calculate this input based on the data of the previous calendar year using the target `('sozialversicherung', 'rente', 'grundrente', 'gesamteinnahmen_aus_renten_für_einkommensberechnung_im_folgejahr_m')`. """ @policy_input(start_date="2021-01-01") def bruttolohn_vorjahr_y() -> float: - """Earnings in the previous year. + """Earnings in the previous calendar year. Calculation is based on the 'Einnahmen' definitions of the basic tax law (EStG). """ From a64861e8f9bc4eab9d2c9ee2eb223470cc5de718 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Tue, 22 Jul 2025 10:25:39 +0200 Subject: [PATCH 10/13] Typo in var name. --- .../2005-01-01/alleinerz_one_child_budgetsatz.yaml | 2 +- .../2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml | 2 +- .../2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml | 2 +- .../2005-01-01/married_one_child_budgetsatz_high_income.yaml | 2 +- .../2005-01-01/married_one_child_budgetsatz_low_income.yaml | 2 +- .../erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml | 2 +- ...rried_two_children_budgetsatz_and_regelsatz_high_income.yaml | 2 +- ...arried_two_children_budgetsatz_and_regelsatz_low_income.yaml | 2 +- .../erziehungsgeld/2007-01-01/born_after_abolishment.yaml | 2 +- ...rried_two_children_budgetsatz_and_regelsatz_high_income.yaml | 2 +- ...arried_two_children_budgetsatz_and_regelsatz_low_income.yaml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml index 727e09e09..900e5f534 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_budgetsatz.yaml @@ -25,7 +25,7 @@ inputs: - 1500.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1423.33 - 0.0 budgetsatz: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml index c8c41c050..4fbd781a8 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_high_income.yaml @@ -25,7 +25,7 @@ inputs: - 1400.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1623.33 - 0.0 budgetsatz: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml index e49cb75b2..ff7bf6f18 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/alleinerz_one_child_regelsatz_low_income.yaml @@ -25,7 +25,7 @@ inputs: - 1500.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1423.33 - 0.0 budgetsatz: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml index 7332e1ca1..dd08f87c2 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_high_income.yaml @@ -30,7 +30,7 @@ inputs: - 5000.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1323.33 - 4923.33 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml index ba35222b1..e5d96774d 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_budgetsatz_low_income.yaml @@ -30,7 +30,7 @@ inputs: - 3000.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1323.33 - 2923.33 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml index eadc20606..83c301e06 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_one_child_regelsatz.yaml @@ -30,7 +30,7 @@ inputs: - 2500.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 2423.33 - 2423.33 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index fbea664c9..08a6f357c 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -35,7 +35,7 @@ inputs: - 0.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1323.33 - 1623.33 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index f6cb8af18..ff711715a 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2005-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -35,7 +35,7 @@ inputs: - 0.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 323.33 - 1223.33 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml index 129a091ba..27086a3ab 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/born_after_abolishment.yaml @@ -25,7 +25,7 @@ inputs: - 1500.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1423.33 - 0.0 budgetsatz: diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml index 252468e50..17a3fdf37 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_high_income.yaml @@ -35,7 +35,7 @@ inputs: - 0.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 1323.33 - 1623.33 - 0.0 diff --git a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml index 1fcc67c10..517fd825a 100644 --- a/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml +++ b/src/_gettsim_tests/test_data/erziehungsgeld/2007-01-01/married_two_children_budgetsatz_and_regelsatz_low_income.yaml @@ -35,7 +35,7 @@ inputs: - 0.0 - 0.0 erziehungsgeld: - bruttolohn_vorjahr_abzüglich_werbungskosten_m: + bruttolohn_vorjahr_nach_abzug_werbungskosten_m: - 323.33 - 1223.33 - 0.0 From 038e36832c8066274f42e424053242fd1e63fb04 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Tue, 22 Jul 2025 10:36:01 +0200 Subject: [PATCH 11/13] Clarify docstring. --- src/_gettsim/arbeitslosengeld_2/inputs.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/_gettsim/arbeitslosengeld_2/inputs.py b/src/_gettsim/arbeitslosengeld_2/inputs.py index 91e833c20..bf33d757d 100644 --- a/src/_gettsim/arbeitslosengeld_2/inputs.py +++ b/src/_gettsim/arbeitslosengeld_2/inputs.py @@ -7,8 +7,7 @@ @policy_input(start_date="2023-01-01") def bezug_im_vorjahr() -> bool: - """Whether the person received Arbeitslosengeld 2 / Bürgergeld in the previous - calendar year.""" + """Person received Arbeitslosengeld 2 / Bürgergeld in the last 12 months.""" # TODO(@MImmesberger): Remove input variable eigenbedarf_gedeckt once From d5a71bae03d878725ccc00f498580d837823624e Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Tue, 22 Jul 2025 10:51:37 +0200 Subject: [PATCH 12/13] Use Lohnsteuer instead of ESt for Bemessungsgrundlage ALG1. --- .../arbeitslosen/arbeitslosengeld.py | 26 ++---------- .../2025-01-01/bemessungsgrundlage.yaml | 42 +++++++++++++++++++ 2 files changed, 46 insertions(+), 22 deletions(-) create mode 100644 src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2025-01-01/bemessungsgrundlage.yaml diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py index b68534abd..8ed1e42cb 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py @@ -7,7 +7,6 @@ from ttsim.tt_dag_elements import ( get_consecutive_int_lookup_table_param_value, param_function, - piecewise_polynomial, policy_function, ) @@ -16,7 +15,6 @@ from ttsim.tt_dag_elements import ( ConsecutiveIntLookupTableParamValue, - PiecewisePolynomialParamValue, ) @@ -120,10 +118,8 @@ def mean_nettoeinkommen_für_bemessungsgrundlage_bei_arbeitslosigkeit_y( sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_y: float, einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_y: float, sozialversicherungspauschale: float, - einkommensteuer__parameter_einkommensteuertarif: PiecewisePolynomialParamValue, - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag: float, - solidaritätszuschlag__parameter_solidaritätszuschlag: PiecewisePolynomialParamValue, - xnp: ModuleType, + lohnsteuer__betrag_y: float, + lohnsteuer__betrag_soli_y: float, ) -> float: """Approximate the income relevant for calculating unemployment insurance benefits. @@ -140,26 +136,12 @@ def mean_nettoeinkommen_für_bemessungsgrundlage_bei_arbeitslosigkeit_y( pauschalisierte_sozialversicherungsbeiträge = ( sozialversicherungspauschale * berücksichtigungsfähige_einnahmen ) - # TODO(@MImmesberger): This should likely be Lohnsteuer/Soli Lohnsteuer. However, - # not implemented before 2015 yet. - # https://github.com/iza-institute-of-labor-economics/gettsim/issues/793 - approximierte_einkommensteuer = piecewise_polynomial( - x=berücksichtigungsfähige_einnahmen - - einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__arbeitnehmerpauschbetrag, - parameters=einkommensteuer__parameter_einkommensteuertarif, - xnp=xnp, - ) - approximierter_soli = piecewise_polynomial( - x=approximierte_einkommensteuer, - parameters=solidaritätszuschlag__parameter_solidaritätszuschlag, - xnp=xnp, - ) return max( ( berücksichtigungsfähige_einnahmen - pauschalisierte_sozialversicherungsbeiträge - - approximierte_einkommensteuer - - approximierter_soli + - lohnsteuer__betrag_y + - lohnsteuer__betrag_soli_y ), 0.0, ) diff --git a/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2025-01-01/bemessungsgrundlage.yaml b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2025-01-01/bemessungsgrundlage.yaml new file mode 100644 index 000000000..0c7636c53 --- /dev/null +++ b/src/_gettsim_tests/test_data/sozialversicherung/arbeitslosengeld/2025-01-01/bemessungsgrundlage.yaml @@ -0,0 +1,42 @@ +--- +info: + precision_atol: 0.01 + source: Regression test. +inputs: + assumed: + einkommensteuer: + einkünfte: + aus_nichtselbstständiger_arbeit: + bruttolohn_m: + - 3000.0 + lohnsteuer: + steuerklasse: + - 1 + sozialversicherung: + pflege: + beitrag: + hat_kinder: + - false + kindergeld: + ist_leistungsbegründendes_kind: + - false + alter: + - 30 + arbeitsstunden_w: + - 0.0 + familie: + p_id_elternteil_1: + - -1 + p_id_elternteil_2: + - -1 + geburtsjahr: + - 1989 + hh_id: + - 1 + p_id: + - 1 +outputs: + sozialversicherung: + arbeitslosen: + mean_nettoeinkommen_für_bemessungsgrundlage_bei_arbeitslosigkeit_y: + - 25181.24 From 5a3710b294a0797c06f1e55a3fec0b12c32b6f86 Mon Sep 17 00:00:00 2001 From: Marvin Immesberger Date: Tue, 22 Jul 2025 10:56:46 +0200 Subject: [PATCH 13/13] Review comment. --- .../sozialversicherung/arbeitslosen/arbeitslosengeld.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py index 8ed1e42cb..2947f0e3b 100644 --- a/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py +++ b/src/_gettsim/sozialversicherung/arbeitslosen/arbeitslosengeld.py @@ -133,13 +133,13 @@ def mean_nettoeinkommen_für_bemessungsgrundlage_bei_arbeitslosigkeit_y( einkommensteuer__einkünfte__aus_nichtselbstständiger_arbeit__bruttolohn_y, sozialversicherung__rente__beitrag__beitragsbemessungsgrenze_y, ) - pauschalisierte_sozialversicherungsbeiträge = ( + pauschalierte_sozialversicherungsbeiträge = ( sozialversicherungspauschale * berücksichtigungsfähige_einnahmen ) return max( ( berücksichtigungsfähige_einnahmen - - pauschalisierte_sozialversicherungsbeiträge + - pauschalierte_sozialversicherungsbeiträge - lohnsteuer__betrag_y - lohnsteuer__betrag_soli_y ),