Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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: 2 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ All releases are available on [Anaconda.org](https://anaconda.org/conda-forge/ge

## Unreleased

- {gh}`1167` Implement 100k children exclusion for Grundsicherung im Alter (§43 SGB
XII). ({ghuser}`MImmesberger`)
- {gh}`1164` Proper treatment of gemischte Bedarfsgemeinschaften (SGB II + SGB XII) via
Vertikalmethode. ({ghuser}`MImmesberger`)
- {gh}`1159` Add Einsatzgemeinschaft (SGB XII); remove Einstandsgemeinschaft.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,25 @@ anrechnungsfreier_anteil_zusätzliche_altersvorsorge:
slope: 1
- interval: '[100, inf)'
slope: 0.3
einkommensgrenze_kinder:
name:
de: Einkommensgrenze der Kinder für Grundsicherung im Alter
en: Children's income threshold for Grundsicherung im Alter
description:
de: >-
§ 43 SGB XII (BGBl. I 2003 S. 3022).
Übersteigt das jährliche Gesamteinkommen (§ 16 SGB IV) eines Kindes ersten Grades
diesen Betrag, besteht kein Anspruch auf Grundsicherung im Alter.
en: >-
§ 43 SGB XII (BGBl. I 2003 S. 3022).
If the annual Gesamteinkommen (§ 16 SGB IV) of any first-degree descendant exceeds
this threshold, the applicant is excluded from Grundsicherung im Alter.
unit: Euros
reference_period: Year
type: scalar
2005-01-01:
value: 100000
reference: § 43 Abs. 2 SGB XII, BGBl. I 2003 S. 3022
mehrbedarf_bei_schwerbehinderungsgrad_g:
name:
de: Mehrbedarf bei Schwerbehinderung
Expand Down
67 changes: 64 additions & 3 deletions src/gettsim/germany/grundsicherung/im_alter/im_alter.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,26 @@
RegelsatzAnteilsbasiert,
)

from gettsim.tt import policy_function
from gettsim.tt import AggType, agg_by_p_id_function, policy_function


@policy_function(start_date="2005-01-01")
def betrag_m(
anspruchshöhe_m: float,
vorrangprüfungen__wohngeld_kinderzuschlag_vorrangig_oder_günstiger: bool,
hat_kind_über_einkommensgrenze: bool,
) -> float:
"""Grundsicherung im Alter after Vorrangprüfung (§2 Abs. 1 SGB XII)."""
if vorrangprüfungen__wohngeld_kinderzuschlag_vorrangig_oder_günstiger:
"""Grundsicherung im Alter after Vorrangprüfung and 100k-children exclusion.

§43 SGB XII (BGBl. I 2003 S. 3022): Persons are excluded from Grundsicherung im
Alter if any first-degree descendant has annual Gesamteinkommen (§16 SGB IV)
exceeding the threshold.
§2 Abs. 1 SGB XII: Vorrangprüfung.
"""
if (
hat_kind_über_einkommensgrenze
or vorrangprüfungen__wohngeld_kinderzuschlag_vorrangig_oder_günstiger
):
return 0.0
else:
return anspruchshöhe_m
Expand Down Expand Up @@ -254,3 +264,54 @@ def vermögensfreibetrag_eg(
parameter_vermögensfreibetrag["erwachsene"] * familie__anzahl_erwachsene_eg
+ parameter_vermögensfreibetrag["kinder"] * familie__anzahl_kinder_eg
)


@policy_function(start_date="2005-01-01")
def hat_gesamteinkommen_über_einkommensgrenze(
einkommensteuer__gesamteinkommen_y: float,
einkommensgrenze_kinder: float,
) -> bool:
"""Whether a person's Gesamteinkommen exceeds the children's income threshold.

Used to determine if a child's income excludes a parent from Grundsicherung im
Alter.

Reference: § 43 SGB XII (BGBl. I 2003 S. 3022)
"""
return einkommensteuer__gesamteinkommen_y >= einkommensgrenze_kinder


@agg_by_p_id_function(agg_type=AggType.SUM)
def anzahl_kinder_über_einkommensgrenze_über_elternteil_1(
hat_gesamteinkommen_über_einkommensgrenze: bool,
familie__p_id_elternteil_1: int,
p_id: int,
) -> int:
pass


@agg_by_p_id_function(agg_type=AggType.SUM)
def anzahl_kinder_über_einkommensgrenze_über_elternteil_2(
hat_gesamteinkommen_über_einkommensgrenze: bool,
familie__p_id_elternteil_2: int,
p_id: int,
) -> int:
pass


@policy_function(start_date="2005-01-01")
def hat_kind_über_einkommensgrenze(
anzahl_kinder_über_einkommensgrenze_über_elternteil_1: int,
anzahl_kinder_über_einkommensgrenze_über_elternteil_2: int,
) -> bool:
"""Whether any first-degree child has income above the threshold.

Both parent pointers are checked because a child may point to either parent via
p_id_elternteil_1 or p_id_elternteil_2.

Reference: § 43 SGB XII (BGBl. I 2003 S. 3022)
"""
return (
anzahl_kinder_über_einkommensgrenze_über_elternteil_1
+ anzahl_kinder_über_einkommensgrenze_über_elternteil_2
) > 0
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ inputs:
- 1
- 1
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
- false
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ inputs:
- 13
- 13
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 16
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 17
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@ inputs:
- 6
- 6
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ inputs:
hh_id:
- 100
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ inputs:
hh_id:
- 101
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ inputs:
hh_id:
- 106
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ inputs:
hh_id:
- 102
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ inputs:
hh_id:
- 103
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ inputs:
hh_id:
- 100
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ inputs:
hh_id:
- 12
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 20
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 22
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 3
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 18
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@ inputs:
- 19
- 19
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ inputs:
hh_id:
- 104
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ inputs:
hh_id:
- 105
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@ inputs:
- 1
- 1
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ inputs:
hh_id:
- 14
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 15
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ inputs:
hh_id:
- 2
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ inputs:
- 21
- 21
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ inputs:
- 23
- 23
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ inputs:
hh_id:
- 5
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ inputs:
hh_id:
- 7
grundsicherung:
im_alter:
hat_kind_über_einkommensgrenze:
- false
hilfe_zum_lebensunterhalt:
überschusseinkommen_m:
- 0.0
Expand Down
Loading
Loading