Skip to content
Merged
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
263c51b
Update elterngeld.py
ThOrtmann May 13, 2024
35bebb0
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 13, 2024
c200412
Update hh_id_1.yaml
ThOrtmann May 13, 2024
0a2894e
Update hh_id_1.yaml
ThOrtmann May 13, 2024
b781e65
Update hh_id_8.yaml
ThOrtmann May 13, 2024
43af73b
Update test_full_taxes_and_transfers.py
ThOrtmann May 13, 2024
efb8be5
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 13, 2024
2825933
Update test_full_taxes_and_transfers.py
ThOrtmann May 13, 2024
d5eb80b
Update hh_id_3.yaml
ThOrtmann May 13, 2024
47a8a55
Update test_full_taxes_and_transfers.py
ThOrtmann May 14, 2024
5e189fc
Update elterngeld.py
ThOrtmann May 14, 2024
4e7c419
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 14, 2024
e08ad61
Update elterngeld.yaml
ThOrtmann May 15, 2024
ad6122d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 15, 2024
f5550a4
Update elterngeld.yaml
ThOrtmann May 15, 2024
d469b81
Update elterngeld.py
ThOrtmann May 15, 2024
9dea761
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 15, 2024
712436a
Fix indentation error.
hmgaudecker May 15, 2024
08c750a
Merge branch 'some_elterngeld_fixes' of github.com:iza-institute-of-l…
hmgaudecker May 15, 2024
de1e7cc
Closes #756
ThOrtmann May 27, 2024
e8827b6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 27, 2024
5aaca2a
Updated Tests as well as the config.py files to
ThOrtmann May 30, 2024
9bbed96
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 30, 2024
0c1a608
updated max_eink parameters
ThOrtmann May 30, 2024
dea89c7
Merge branch 'main' into some_elterngeld_fixes
MImmesberger Aug 27, 2024
5a1aaa8
Update parameter file.
MImmesberger Aug 27, 2024
df8819f
Start to adjust module to new machinery.
MImmesberger Aug 28, 2024
dd67b37
Add todos.
MImmesberger Aug 28, 2024
981db5c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 28, 2024
8bf8a37
Continue with Geschwisterbonus and move Elterngeld eligibility to fg …
MImmesberger Aug 28, 2024
fe5565d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 28, 2024
2bcadea
Continue with restructuring, income t-1 and empfänger still missing.
MImmesberger Aug 29, 2024
d94e183
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 29, 2024
c35e08b
Finish restructuring, still need to adjust net wage approximation.
MImmesberger Aug 29, 2024
7b52bfb
Add Elterngeld Nettolohn Vorjahr target and do some clean up.
MImmesberger Aug 30, 2024
80f7fb2
Fix vectorization test.
MImmesberger Aug 30, 2024
8ab7c03
Credits.
MImmesberger Aug 30, 2024
a80127f
Change anrechenbares Einkommen and adjust some test files.
MImmesberger Aug 30, 2024
9f6b837
Fix full_tt tests, more clean up.
MImmesberger Aug 30, 2024
f7ace99
Fix regression test.
MImmesberger Aug 30, 2024
e007f5d
Adjust Elterngeld tests.
MImmesberger Aug 30, 2024
15b9ee7
Add regression tests for 2024.
MImmesberger Aug 30, 2024
b8ee997
Typos.
MImmesberger Aug 30, 2024
559bf07
Remove old target.
MImmesberger Aug 30, 2024
933c9a9
Test net wage approximation.
MImmesberger Aug 30, 2024
6af4eba
Clean up.
MImmesberger Aug 30, 2024
6dea561
Jakobs comments.
MImmesberger Sep 5, 2024
7655609
Some more fixes.
MImmesberger Sep 5, 2024
52e1179
Merge branch 'main' into some_elterngeld_fixes
MImmesberger Sep 7, 2024
3ac1da2
First set of comments.
MImmesberger Sep 7, 2024
caf1a09
Optional smoothing of replacement rate.
MImmesberger Sep 7, 2024
86915e6
Update hooks so that we don't end up with conflicts in policy-functio…
hmgaudecker Sep 7, 2024
242e84c
Fix bug and add regression test.
MImmesberger Sep 8, 2024
fa34d53
Merge branch 'some_elterngeld_fixes' of https://github.com/iza-instit…
MImmesberger Sep 8, 2024
da4b008
Add notebook howto Elterngeld calculation.
MImmesberger Sep 10, 2024
f6e2129
Update a paragraph.
hmgaudecker Sep 11, 2024
02c01ce
Adjust notebook and round Elterngeld.
MImmesberger Sep 11, 2024
d4e13c5
Fix bug that occurs after May 2024.
MImmesberger Sep 11, 2024
37b7df5
Update text with gist of Github discussion.
hmgaudecker Sep 11, 2024
0892ca6
Adjust notebook slightly.
MImmesberger Sep 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ repos:
- id: blacken-docs
# exclude: docs/source/how_to_guides/optimization/how_to_specify_constraints.md
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.3
rev: v0.6.4
hooks:
- id: ruff
# args:
Expand Down
2 changes: 2 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ releases are available on [Anaconda.org](https://anaconda.org/conda-forge/gettsi

## Unpublished

- {gh}`756` Refactor Elterngeld module and some small fixes ({ghuser}`MImmesberger`,
{ghuser}`ThOrtmann`).
- {gh}`790` Add unterhaltsvors implementation 2009 to 2016 ({ghuser}`mjbloemer`).
- {gh}`788` Pension benefit earnings test for early retirees ({ghuser}`MImmesberger`).
- {gh}`786` Check directly whether child and parent are in same Bedarfsgemeinschaft for
Expand Down
53 changes: 33 additions & 20 deletions docs/gettsim_objects/input_variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,11 +247,40 @@ Weekly working hours of individual

Type: float

(elterngeld_claimed)=

## `elterngeld_claimed`

Individual claims Elterngeld

Type: bool

(elterngeld_nettoeinkommen_vorjahr_m)=

## `elterngeld_nettoeinkommen_vorjahr_m`

Approximation of the net wage in the 12 months before birth of youngest child (according
to simplified calculation rules). You may let GETTSIM compute this variable via the
`elterngeld_nettolohn_approximation_m` target in a separate run, which would typically
be for the previous calendar year.

Type: float

(elterngeld_zu_verst_eink_vorjahr_y_sn)=

## `elterngeld_zu_verst_eink_vorjahr_y_sn`

Taxable income in the 12 months before birth of youngest child. You may let GETTSIM
compute this variable via the `_zu_verst_eink_mit_kinderfreib_y_sn` target in a separate
run, which would typically be for the previous calendar year.

Type: float

(bruttolohn_vorj_m)=

## `bruttolohn_vorj_m`

Monthly wage, previous year
Gross wage in the previous year

Type: float

Expand Down Expand Up @@ -295,27 +324,11 @@ Month of retirement

Type: int

(m_elterngeld)=

## `m_elterngeld`

Number of months hh received elterngeld

Type: int

(m_elterngeld_vat_hh)=

## `m_elterngeld_vat_hh`

Number of months father received elterngeld

Type: int

(m_elterngeld_mut_hh)=
(monate_elterngeldbezug)=

## `m_elterngeld_mut_hh`
## `monate_elterngeldbezug`

Number of months mother received elterngeld
Number of months the individual received Elterngeld for the current youngest child.

Type: int

Expand Down
8 changes: 5 additions & 3 deletions src/_gettsim/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ def set_array_backend(backend: str):
"eink_st_y_sn",
"soli_st_y_sn",
"abgelt_st_y_sn",
"elterngeld_m",
"sozialv_beitr_arbeitnehmer_m",
"ges_rentenv_beitr_arbeitnehmer_m",
"arbeitsl_v_beitr_arbeitnehmer_m",
Expand Down Expand Up @@ -171,6 +172,8 @@ def set_array_backend(backend: str):
"eink_selbst_m": float,
"in_priv_krankenv": bool,
"priv_rentenv_beitr_m": float,
"elterngeld_nettoeinkommen_vorjahr_m": float,
"elterngeld_zu_verst_eink_vorjahr_y_sn": float,
"bruttolohn_vorj_m": float,
"arbeitsstunden_w": float,
"geburtsjahr": int,
Expand All @@ -191,9 +194,8 @@ def set_array_backend(backend: str):
"monat_renteneintr": int,
"behinderungsgrad": int,
"wohnfläche_hh": float,
"m_elterngeld": int,
"m_elterngeld_vat_hh": int,
"m_elterngeld_mut_hh": int,
"monate_elterngeldbezug": int,
"elterngeld_claimed": bool,
"in_ausbildung": bool,
"alleinerz": bool,
"bewohnt_eigentum_hh": bool,
Expand Down
46 changes: 42 additions & 4 deletions src/_gettsim/demographic_vars.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ def _add_grouping_suffixes_to_keys(group_dict: dict[str, dict]) -> dict[str, dic
"anz_rentner": {"source_col": "rentner", "aggr": "sum"},
"anz_kinder": {"source_col": "kind", "aggr": "sum"},
"anz_personen": {"aggr": "count"},
"anz_kinder_bis_2": {"source_col": "kind_bis_2", "aggr": "sum"},
"anz_kinder_bis_5": {"source_col": "kind_bis_5", "aggr": "sum"},
"anz_kinder_bis_6": {"source_col": "kind_bis_6", "aggr": "sum"},
"anz_kinder_bis_15": {"source_col": "kind_bis_15", "aggr": "sum"},
"anz_kinder_bis_17": {"source_col": "kind_bis_17", "aggr": "sum"},
Expand All @@ -65,6 +67,42 @@ def _add_grouping_suffixes_to_keys(group_dict: dict[str, dict]) -> dict[str, dic
)


def kind_bis_2(alter: int, kind: bool) -> bool:
"""Calculate if child under the age of 3.

Parameters
----------
alter
See basic input variable :ref:`alter <alter>`.
kind
See basic input variable :ref:`kind <kind>`.

Returns
-------

"""
out = kind and (alter <= 2)
return out


def kind_bis_5(alter: int, kind: bool) -> bool:
"""Calculate if child under the age of 6.

Parameters
----------
alter
See basic input variable :ref:`alter <alter>`.
kind
See basic input variable :ref:`kind <kind>`.

Returns
-------

"""
out = kind and (alter <= 5)
return out


def kind_bis_6(alter: int, kind: bool) -> bool:
"""Calculate if child under the age of 7.

Expand Down Expand Up @@ -242,7 +280,7 @@ def alter_monate(geburtsdatum: numpy.datetime64, elterngeld_params: dict) -> flo

def jüngstes_kind_oder_mehrling(
alter_monate: float,
alter_monate_jüngstes_mitglied_hh: float,
alter_monate_jüngstes_mitglied_fg: float,
kind: bool,
) -> bool:
"""Check if person is the youngest child in the household or a twin, triplet, etc.
Expand All @@ -256,16 +294,16 @@ def jüngstes_kind_oder_mehrling(
----------
alter_monate
See :func:`alter_monate`.
alter_monate_jüngstes_mitglied_hh
See :func:`alter_monate_jüngstes_mitglied_hh`.
alter_monate_jüngstes_mitglied_fg
See :func:`alter_monate_jüngstes_mitglied_fg`.
kind
See basic input variable :ref:`kind <kind>`.

Returns
-------

"""
out = (alter_monate - alter_monate_jüngstes_mitglied_hh < 0.1) and kind
out = (alter_monate - alter_monate_jüngstes_mitglied_fg < 0.1) and kind
return out


Expand Down
114 changes: 95 additions & 19 deletions src/_gettsim/parameters/elterngeld.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,23 @@ höchstbetrag:
unit: Euro
reference_period: Month
2007-01-01:
scalar: 1800
scalar: 1800.0
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
max_zu_berücksichtigendes_einkommen:
name:
de: Maximal zu berücksichtigendes Einkommen vor Geburt.
en: Maximum income to be considered before birth.
description:
de: § 2 (3) BEEG
en: null
unit: Euro
reference_period: Month
2007-01-01:
scalar: 2700.0
reference: BGBl. I S. 2748 Art. 1 G. v. 05.12.2006
2012-09-18:
scalar: 2770.0
reference: Artikel 1 G. v. 10.09.2012 BGBl. I S. 1878
nettoeinkommen_stufen:
name:
de: Nettoeinkommen an 1. und 2. Stufe
Expand All @@ -34,12 +49,12 @@ nettoeinkommen_stufen:
unit: Euro
reference_period: Month
2007-01-01:
lower_threshold: 1000
upper_threshold: 1001
lower_threshold: 1000.0
upper_threshold: 1001.0
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
2011-01-01:
lower_threshold: 1000
upper_threshold: 1201
lower_threshold: 1000.0
upper_threshold: 1201.0
reference: Art. 14 G. v. 09.12.2010 BGBl. I S. 1885
mindestbetrag:
name:
Expand Down Expand Up @@ -90,7 +105,7 @@ eink_schritt_korrektur:
2007-01-01:
scalar: 2
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
geschw_bonus_altersgrenzen_kinder:
geschwisterbonus_altersgrenzen:
name:
de: Altersgrenzen für Geschwisterbonus
en: Age limit for sibling bonus
Expand All @@ -105,7 +120,7 @@ geschw_bonus_altersgrenzen_kinder:
2007-01-01:
3: 2
6: 3
geschw_bonus_aufschlag:
geschwisterbonus_aufschlag:
name:
de: Geschwisterbonus als prozentualer Aufschlag
en: Sibling Bonus, percentage top-up
Expand All @@ -116,7 +131,7 @@ geschw_bonus_aufschlag:
2007-01-01:
scalar: 0.1
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
geschw_bonus_minimum:
geschwisterbonus_minimum:
name:
de: Minimaler Geschwisterbonus als Euro-Betrag
en: Sibling Bonus, minimal amount
Expand All @@ -126,7 +141,7 @@ geschw_bonus_minimum:
unit: Euro
reference_period: Month
2007-01-01:
scalar: 75
scalar: 75.0
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
mehrlingbonus:
name:
Expand All @@ -138,7 +153,7 @@ mehrlingbonus:
unit: Euro
reference_period: Month
2007-01-01:
scalar: 300
scalar: 300.0
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
sozialv_pausch:
name:
Expand All @@ -152,23 +167,84 @@ sozialv_pausch:
scalar: 0.21
reference: Art. 1 G. v. 10.09.2012 BGBl. I S. 1878
note: .09 + .1 + .02
max_monate_paar:
max_monate_mit_partnermonate:
name:
de: Maximale Anzahl an Monaten, in denen ein Paar Elterngeld erhält
en: Maximum number of months a couple may receive parental benefit.
de: Maximale Anzahl an Monaten, inklusiver Partnermonate.
en: Maximum number of months, including "Partnermonate".
description:
de: § 4 (3) BEEG
en: null
de: >-
Basismonate plus "Partnermonate" bei gleichzeitiger Inanspruchnahme von Elterngeld
bei Paaren. Basismonate bei Alleinerziehenden.
reference: § 4 (3) BEEG
2007-01-01:
scalar: 14
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
max_monate_ind:
max_monate_ohne_partnermonate:
name:
de: Maximale Anzahl an Monaten, die jedes Elternteil Elterngeld erhält
en: Maximum number of months an individual parent may receive parental benefit.
de: >-
Maximale Anzahl an Monaten bei Paaren, die nicht gleichzeitig Elterngeld beziehen.
en: Maximum number of months for couples not receiving Elterngeld simultaneously.
description:
de: § 4 (3) BEEG
de: Basismonate ohne Partnermonate.
en: null
reference: § 4 (3) BEEG
2007-01-01:
scalar: 12
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
max_eink_vorj:
description:
de: >-
Maximales zu versteuerndes Einkommen im letzten Veranlagungszeitraum vor Geburt
des Kindes. Einkommen über dieser Grenze schließt den Bezug von Elterngeld aus (§
1 (8) BEEG).
en: >-
Maximum taxable income in the year before the birth of the child. Income above
this threshold disqualifies the parent from receiving Elterngeld.
reference:
de: null
en: null
unit: Euro
2011-01-01:
single: 250000.0
paar: 500000.0
reference: Art. 14 G. v. 09.12.2010 BGBl. I S. 1885
2021-09-01:
deviation_from: previous
paar: 300000.0
reference: Art. 1 G. v. 15.02.2021 BGBl. I S. 239
2024-04-01:
scalar: 200000.0
reference: >-
Single: Art. 7 G. v. 27.03.2024 BGBl. 2024 I Nr. 107, Paar: Art. 1 G. v.
22.12.2023 BGBl. 2023 I Nr. 412
2025-04-01:
scalar: 175000.0
reference: >-
Single: Art. 7 G. v. 27.03.2024 BGBl. 2024 I Nr. 107, Paar: Art. 1 G. v.
22.12.2023 BGBl. 2023 I Nr. 412
max_arbeitsstunden_w:
name:
de: >-
Maximale Wochenstunden die bei Elterngeldbezug gearbeitet werden dürfen
en: >-
Maximum amount of weekly hours one is allowed to work, when receiving Elterngeld
description:
de: §1 (6) BEEG
en: null
2007-01-01:
scalar: 30.0
reference: Art. 1 G. v. 05.12.2006 BGBl. I S. 2748
2021-09-01:
scalar: 32.0
reference: Art. 1 G. v. 15.02.2021 BGBl. I S. 239
rounding:
_untere_lohnersatzanteil_grenze_minus_nettoeinkommen:
1980-01-01:
base: 2
direction: down
reference: §2 (2) BEEG
_nettoeinkommen_minus_obere_lohnersatzanteil_grenze:
1980-01-01:
base: 2
direction: down
reference: §2 (2) BEEG
1 change: 1 addition & 0 deletions src/_gettsim/synthetic.py
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ def create_constant_across_households_variables(df, n_adults, n_children, policy
"m_schul_ausbild": 10.0,
"m_kind_berücks_zeit": 24.0,
"m_pfleg_berücks_zeit": 1.0,
"elterngeld_nettoeinkommen_vorjahr_m": 20000.0,
"geburtsjahr": policy_year - df["alter"],
"jahr_renteneintr": policy_year - df["alter"] + 67,
"grundr_zeiten": (df["alter"] - 20).clip(lower=0) * 12,
Expand Down
Loading