Policy functions in GETTSIM#

This section documents the internal functions provided by GETTSIM to model the tax and transfer system. They are sorted alphabetically.

You can click on the functions in the table to be redirected to the functions signature further below. By clicking on the source hyperlink next to the function signatures, you can see the full source code of the function.

abgelt_st_tu(zu_verst_kapitaleink_tu, ...)

Calculate abgeltungssteuer on tax unit level.

add_rounding_spec(params_key)

Decorator adding the location of the rounding specification to a function.

alter_monate(geburtsdatum, elterngeld_params)

Calculate age of youngest child in months.

arbeitsl_geld_2_bruttoeink_m(bruttolohn_m, ...)

Sum up the gross income for calculation of basic subsistence.

arbeitsl_geld_2_eink_anr_frei_m(...)

Calculate share of income, which remains to the individual since 10/2005.

arbeitsl_geld_2_eink_anr_frei_m_basierend_auf_nettoquote(...)

Share of income which remains to the individual.

arbeitsl_geld_2_eink_m(...)

Income (after deduction of taxes, social insurance contributions, and other deductions) for calculation of basic subsistence.

arbeitsl_geld_2_kindersatz_m_hh_ab_2011(...)

Calculate basic monthly subsistence for children since 2011.

arbeitsl_geld_2_kindersatz_m_hh_bis_2010(...)

Calculate basic monthly subsistence for children until 2010.

arbeitsl_geld_2_kost_unterk_m_hh_ab_2023(...)

Calculate costs of living eligible to claim since 2023.

arbeitsl_geld_2_kost_unterk_m_hh_bis_2022(...)

Calculate costs of living eligible to claim until 2022.

arbeitsl_geld_2_m_hh(...)

Calculate final monthly subsistence payment on household level.

arbeitsl_geld_2_nettoquote(bruttolohn_m, ...)

Calculate share of net to gross wage.

arbeitsl_geld_2_regelbedarf_m_hh(...)

Basic monthly subsistence level on household level.

arbeitsl_geld_2_regelsatz_m_hh_ab_2011(...)

Calculate basic monthly subsistence without dwelling since 2011.

arbeitsl_geld_2_regelsatz_m_hh_bis_2010(...)

Calculate basic monthly subsistence without dwelling until 2010.

arbeitsl_geld_2_vermög_freib_hh_ab_2023(...)

Calculate actual wealth exemptions since 2023.

arbeitsl_geld_2_vermög_freib_hh_bis_2022(...)

Calculate actual exemptions until 2022.

arbeitsl_geld_2_vor_vorrang_m_hh(...)

Calculate potential basic subsistence (after income deduction and wealth check).

arbeitsl_geld_berechtigt(alter, ...)

Check eligibility for unemployment benefit.

arbeitsl_geld_eink_vorj_proxy_m(...)

Approximate last years income for unemployment benefit.

arbeitsl_geld_m(anz_kinder_tu, ...)

Calculate individual unemployment benefit.

arbeitsl_geld_restl_anspruchsd(alter, ...)

Calculate the remaining amount of months a person can receive unemployment benefit this year.

arbeitsl_v_beitr_arbeitg_m(...)

Contribution of the respective employer to the unemployment insurance.

arbeitsl_v_beitr_m(geringfügig_beschäftigt, ...)

Contribution for each individual to the unemployment insurance.

bruttokaltmiete_m_tu(bruttokaltmiete_m_hh, ...)

Share of household's monthly rent attributed to the tax unit.

dates_active([start, end, change_name])

Specifies that a function is only active between two dates, start and end.

eink_abhängig_beschäftigt(bruttolohn_m, ...)

Aggregate monthly gross wage to yearly income and deduct 'Werbungskostenpauschale'.

eink_rente_zu_verst(eink_rente_zu_verst_m)

Aggregate monthly gross pension income subject to taxation to yearly income.

eink_rente_zu_verst_m(...)

Calculate monthly pension payment subject to taxation.

eink_selbst(eink_selbst_m)

Aggregate gross income from self-employment to full year income.

eink_st_abz_betreuungskost(...)

Individual deductable childcare cost for each individual child under 14.

eink_st_alleinerz_freib_tu_nach_kinderzahl(...)

Calculate tax deduction allowance for single parents since 2015.

eink_st_alleinerz_freib_tu_pauschal(...)

Calculate tax deduction allowance for single parents until 2014.

eink_st_altersfreib_ab_2005(bruttolohn_m, ...)

Calculate tax deduction allowance for elderly since 2005.

eink_st_altersfreib_bis_2004(bruttolohn_m, ...)

Calculate tax deduction allowance for elderly until 2004.

eink_st_kinderfreib_tu(...)

Aggregate child allowances on tax unit level.

eink_st_mit_kinderfreib_tu(...)

Taxes with child allowance on tax unit level.

eink_st_ohne_kinderfreib_tu(...)

Taxes without child allowance on tax unit level.

eink_st_rel_kindergeld_tu(kindergeld_m_tu, ...)

Return Kindergeld relevant for income tax of the tax unit.

eink_st_sonderausgaben_tu_mit_betreuung(...)

Individual sonderausgaben on tax unit level since 2012.

eink_st_sonderausgaben_tu_nur_pauschale(...)

Individual Sonderausgaben on tax unit level until 2011.

eink_st_tu_kindergeld_kinderfreib_parallel(...)

Income tax calculation on tax unit level allowing for claiming Kinderfreibetrag and receiving Kindergeld at the same time.

eink_st_tu_kindergeld_oder_kinderfreib(...)

Income tax calculation on tax unit level since 1997.

eink_vermietung(eink_vermietung_m)

Aggregate monthly gross rental income to yearly income.

eltern(erwachsen, kindergeld_anspruch)

Check if person in the tax unit is considered a parent or the parent's spouse.

elterngeld_anr_m(elterngeld_m, ...)

Calculate elterngeld above threshold which is considered as income for transfers such as wohngeld and grunds_im_alter.

elterngeld_anteil_eink_erlass(...)

Calculate the share of net income which is reimbursed when receiving elterngeld.

elterngeld_eink_erlass_m(...)

Calculate base parental leave benefit.

elterngeld_eink_relev_m(...)

Calculating the relevant wage for the calculation of elterngeld.

elterngeld_geschw_bonus_anspruch(...)

Check for sibling bonus on parental leave benefit.

elterngeld_geschw_bonus_m(...)

Calculate the bonus for siblings.

elterngeld_kind(geburtsjahr, elterngeld_params)

Check for sibling bonus on parental leave benefit.

elterngeld_m(elterngeld_eink_relev_m, ...)

Calculate parental leave benefit (elterngeld).

elterngeld_mehrlinge_bonus_m(...)

Calculate the bonus for multiples.

elterngeld_nettolohn_m(bruttolohn_m, ...)

Calculate the net wage.

elterngeld_vorschulkind(geburtsjahr, ...)

Check for sibling bonus on parental leave benefit.

elternzeit_anspruch(...)

Check parental leave eligibility.

entgeltp_update(entgeltp, entgeltp_update_lohn)

Update earning points.

entgeltp_update_lohn(bruttolohn_m, ...)

Return earning points for the wages earned in the last year.

erwachsen(kind)

Calculate if adult.

erwachsene_alle_rentner_hh(...)

Calculate if all adults in the household are pensioners.

freibeträge_ind(...)

Sum up all tax-deductible allowances applicable at the individual level.

freibeträge_tu(eink_st_sonderausgaben_tu, ...)

Calculate total allowances on tax unit level.

geburtsdatum(geburtsjahr, geburtsmonat, ...)

Create date of birth datetime variable.

gemeinsam_veranlagt_tu(anz_erwachsene_tu)

Check if the tax unit consists of two wage earners.

geringfügig_beschäftigt(bruttolohn_m, ...)

Check if individual earns less than marginal employment threshold.

ges_krankenv_beitr_arbeitg_m(...)

Contribution of the respective employer to the public health insurance.

ges_krankenv_beitr_m(...)

Contribution for each individual to the public health insurance.

ges_krankenv_beitr_rente_m(...)

Calculate health insurance contributions for pension incomes.

ges_krankenv_beitr_satz(sozialv_beitr_params)

Select contribution rates of employees for health insurance, just a basic split between employees and employers.

ges_krankenv_beitr_satz_zusatzbeitrag_nur_arbeitn(...)

Select contribution rates of employees for health insurance until 2018.

ges_krankenv_beitr_satz_zusatzbeitrag_paritätisch(...)

Select contribution rates of employees for health insurance since 2019.

ges_krankenv_beitr_selbst_m(...)

Health insurance contributions for self-employed's income.

ges_krankenv_mean_zusatzbeitrag(...)

Calculate the top-up rate of the health care insurance.

ges_krankenv_sonderbeitr_satz(...)

Calculate the top-up rate of the health care insurance.

ges_pflegev_beitr_arbeitg_m(...)

Contribution of the respective employer to the public care insurance.

ges_pflegev_beitr_m(geringfügig_beschäftigt, ...)

Contribution for each individual to the public care insurance.

ges_pflegev_beitr_rente_m(...)

Calculating the contribution to health insurance for pension income.

ges_pflegev_beitr_selbst_m(...)

Calculate care insurance contributions for self-employed individuals.

ges_pflegev_zusatz_kinderlos(hat_kinder, ...)

Whether additional care insurance contribution for childless individuals applies.

ges_rente_anrechnungszeit(m_arbeitsunfähig, ...)

Adds up all times that are accounted for in "Anrechnungszeiten" relevant for "Wartezeit von 35 Jahren" i.e. for Altersrente für langjährig Versicherte (pension for long term insured).

ges_rente_anrechnungszeit_45(...)

Adds up all times NOT included in Beitragszeiten, Berücksichtigungszeiten, Ersatzzeiten (a variant of Anrechnungszeiten) that are accounted for in "Wartezeit von 45 Jahren" i.e. for Altersrente für besonders langjährig Versicherte (pension for very long term insured).

ges_rente_frauen_altersgrenze(geburtsjahr, ...)

Calculate the age, at which a women is eligible to claim the full pension (without deductions).

ges_rente_m(ges_rente_vor_grundr_m)

ges_rente_m_nach_grundr(...)

Calculate total individual public pension including Grundrentenzuschlag.

ges_rente_regelaltersgrenze(geburtsjahr, ...)

Calculate the age, at which a person is eligible to claim the regular pension.

ges_rente_vor_grundr_m(...)

Old-Age Pensions claim without Grundrentenzuschlag.

ges_rente_vorauss_besond_langj(...)

Determining the eligibility for Altersrente für besonders langjährig Versicherte (pension for very long-term insured).

ges_rente_vorauss_frauen(weiblich, ...)

Function determining the eligibility for Altersrente für Frauen (pension for women) Wartezeit 15 years, contributions 10 years after age 40, being a women.

ges_rente_vorauss_langj(...)

Determining the eligibility for Altersrente für langjährig Versicherte (pension for long-term insured).

ges_rente_vorauss_regelrente(...)

Function determining the eligibility for the Regelaltersrente.

ges_rente_vorauss_vorzeitig(...)

Function determining eligibility for early retirement.

ges_rente_wartezeit_15(m_pflichtbeitrag, ...)

Aggregates time periods that are relevant for the Altersrente für Frauen and Leistungen zur Teilhabe.

ges_rente_wartezeit_35(m_pflichtbeitrag, ...)

Aggregates time periods that are relevant for the eligibility of Altersrente für langjährig Versicherte (pension for long-term insured).

ges_rente_wartezeit_45(m_pflichtbeitrag, ...)

Aggregates time periods that are relevant for the eligibility of Altersrente für besonders langjährig Versicherte (pension for very long-term insured).

ges_rente_wartezeit_5(m_pflichtbeitrag, ...)

Aggregates time periods that are relevant for the general eligibility of the regular pension (regelaltersrente).

ges_rente_zugangsfaktor(geburtsjahr, ...)

Calculate the zugangsfaktor based on the year the subject retired.

ges_rentenv_beitr_arbeitg_m(...)

Contribution of the respective employer to the pension insurance.

ges_rentenv_beitr_m(geringfügig_beschäftigt, ...)

Contribution for each individual to the pension insurance.

grundr_berechtigt(grundr_zeiten, ...)

Whether person has accumulated enough insured years to be eligible.

grundr_bew_zeiten_avg_entgeltp(...)

Compute average number of Entgeltpunkte earned per month of Grundrentenbewertungszeiten.

grundr_zuschlag_bonus_entgeltp(...)

Calculate additional Entgeltpunkte for pensioner.

grundr_zuschlag_eink_m(...)

Calculate income which is deducted from Grundrentenzuschlag.

grundr_zuschlag_höchstwert_m(grundr_zeiten, ...)

Calculate the maximum allowed number of average Entgeltpunkte (per month) after adding bonus of Entgeltpunkte for a given number of Grundrentenzeiten.

grundr_zuschlag_m(...)

Calculate Grundrentenzuschlag (additional monthly pensions payments resulting from Grundrente)

grundr_zuschlag_vor_eink_anr_m(...)

Calculate additional monthly pensions payments resulting from Grundrente, without taking into account income crediting rules.

grunds_im_alter_eink_m(...)

Calculate individual income considered in the calculation of Grundsicherung im Alter.

grunds_im_alter_erwerbseink_m(bruttolohn_m, ...)

Calculate individual earnings considered in the calculation of Grundsicherung im Alter.

grunds_im_alter_ges_rente_m_ab_2021(...)

Calculate individual public pension benefits which are considered in the calculation of Grundsicherung im Alter since 2021.

grunds_im_alter_ges_rente_m_bis_2020(ges_rente_m)

Calculate individual public pension benefits which are considered in the calculation of Grundsicherung im Alter until 2020.

grunds_im_alter_m_hh(...)

Calculate Grundsicherung im Alter on household level.

grunds_im_alter_priv_rente_m(priv_rente_m, ...)

Calculate individual private pension benefits considered in the calculation of Grundsicherung im Alter.

grunds_im_alter_vermög_freib_hh(...)

Calculate wealth not considered for Grundsicherung im Alter on household level.

heizkosten_m_tu(heizkosten_m_hh, ...)

Share of household's heating expenses attributed to the tax unit.

in_gleitzone(bruttolohn_m, ...)

Check if individual's income is in midi-job range.

jüngstes_kind_oder_mehrling(alter_monate, ...)

Check if person is the youngest child in the household or a twin, triplet, etc.

kapitaleink(kapitaleink_brutto, ...)

Capital income minus Sparerpauschbetrag.

kapitaleink_brutto(kapitaleink_brutto_m)

Aggregate monthly gross capital income to yearly income.

kind_ab_14_bis_17(alter, kind)

Calculate if child between 14 and 17 years old.

kind_ab_14_bis_24(alter, kind)

Calculate if child between 14 and 24 years old.

kind_ab_18_bis_24(alter, kind)

Calculate if child between 18 and 24 years old.

kind_ab_6_bis_13(alter, kind)

Calculate if child between 6 and 13 years old.

kind_bis_10(alter, kind)

Calculate if child under the age of 11.

kind_bis_15(alter, kind)

Calculate if child under the age of 16.

kind_bis_17(alter, kind)

Calculate if underage person.

kind_bis_5(alter, kind)

Calculate if child under the age of 6.

kind_bis_6(alter, kind)

Calculate if child under the age of 7.

kind_unterh_zahlbetr_m(kind_unterh_anspr_m, ...)

Monthly actual child alimony payments to be received after deductions.

kinderbonus_m(kindergeld_m, kindergeld_params)

Calculate Kinderbonus for an individual child.

kinderfreib_für_soli_st_lohnst(steuerklasse, ...)

Calculate Child Allowance for Lohnsteuer-Soli.

kinderfreib_günstiger_tu(...)

Return whether Kinderfreibetrag is more favorable than Kindergeld.

kindergeld_anspruch_nach_lohn(alter, ...)

Determine kindergeld eligibility for an individual child depending on kids wage.

kindergeld_anspruch_nach_stunden(alter, ...)

Determine kindergeld eligibility for an individual child depending on working hours.

kindergeld_m(kindergeld_anspruch, ...)

Calculate kindergeld for an individual child.

kinderzuschl_bruttoeink_eltern_m(...)

Calculate parental gross income for calculation of child benefit.

kinderzuschl_eink_anrechn_m_tu(...)

Calculate parental income subtracted from child benefit.

kinderzuschl_eink_eltern_m(...)

Parental income (after deduction of taxes, social insurance contributions, and other deductions) for calculation of child benefit.

kinderzuschl_eink_max_m_tu(...)

Calculate maximum income to be eligible for additional child benefit (Kinderzuschlag).

kinderzuschl_eink_min_m_tu(anz_kinder_tu, ...)

Calculate minimal claim of child benefit (kinderzuschlag).

kinderzuschl_eink_regel_m_tu(...)

Calculate income relevant for calculation of child benefit since 2011.

kinderzuschl_eink_regel_m_tu_arbeitsl_geld_2_params_old(...)

Calculate income relevant for calculation of child benefit until 2010.

kinderzuschl_eink_relev_m_tu(...)

Aggregate relevant income and rental costs.

kinderzuschl_kindereink_abzug_m(...)

Child benefit after children income for each eligible child is considered.

kinderzuschl_kost_unterk_m_tu(...)

Calculate costs of living eligible to claim.

kinderzuschl_m_hh(...)

Aggregate child benefit on household level.

kinderzuschl_vorrang_hh(...)

Check if child benefit has priority.

lohnst_eink(bruttolohn_m, steuerklasse, ...)

Calculate tax base for Lohnsteuer (withholding tax on earnings).

lohnst_m(lohnst_eink, eink_st_params, ...)

Calls _lohnst_m with individual income

lohnst_mit_kinderfreib_m(lohnst_eink, ...)

Same as lohnst_m, but with an alternative income definition that takes child allowance into account.

midijob_bemessungsentgelt_m_ab_10_2022(...)

Total income subject to social insurance contributions for employers a and employees for midijob since October 2022.

midijob_bemessungsentgelt_m_bis_09_2022(...)

Income subject to social insurance contributions for midijob until September 2022.

midijob_faktor_f_mit_minijob_st(...)

Faktor F which is needed for the calculation of Bemessungsentgelt (beitragspflichtige Einnahme) of midijobs before October 2022.

midijob_faktor_f_ohne_minijob_st(...)

Faktor F which is needed for the calculation of Bemessungsentgelt (beitragspflichtige Einnahme) of midijobs since October 2022.

minijob_grenze(sozialv_beitr_params)

Obtains marginal job threshold since 10/2022.

minijob_grenze_ost(sozialv_beitr_params)

Obtains marginal job thresholds for East Germany until September 2022.

minijob_grenze_unterschied_ost_west(...)

Select the income threshold depending on place of living.

minijob_grenze_west(sozialv_beitr_params)

Obtains marginal job thresholds for West Germany until September 2022.

piecewise_polynomial(x, thresholds, rates, ...)

Calculate value of the piecewise function at x.

referenz_alter_abschlag(...)

Determines reference age for deduction calculation in case of early retirement (Zugangsfaktor).

regulär_beschäftigt(bruttolohn_m, ...)

Check if person is in regular employment.

rente_ertragsanteil(jahr_renteneintr, ...)

Calculate the share of pensions subject to income taxation.

rente_vorj_vor_grundr_proxy_m(rentner, ...)

Estimated amount of public pensions of last year excluding Grundrentenzuschlag.

rentenwert(wohnort_ost, ges_rente_params)

Select the rentenwert depending on place of living.

rentenwert_vorjahr(wohnort_ost, ges_rente_params)

Select the rentenwert of the last year depending on place of living.

soli_st_lohnst_m(lohnst_mit_kinderfreib_m, ...)

Calculates the monthly Solidarity Surcharge on Lohnsteuer (withholding tax on earnings).

soli_st_tu(eink_st_mit_kinderfreib_tu, ...)

Calculate the Solidarity Surcharge on tax unit level.

sonderausgaben_betreuung_tu(...)

Sonderausgaben for childcare on tax unit level.

sozialv_beitr_arbeitg_m(...)

Sum of all social insurance contributions of the respective employer.

sozialv_beitr_m(ges_pflegev_beitr_m, ...)

Sum of all social insurance contributions of an individual.

sum_eink_mit_kapital_eink(...)

Sum of gross incomes with capital income.

sum_eink_ohne_kapital_eink(eink_selbst, ...)

Sum of gross incomes without capital income.

sum_ges_rente_priv_rente_m(priv_rente_m, ...)

Calculate total individual pension as sum of private and public pension.

unterhaltsvors_m(alleinerz_tu, alter, ...)

Calculate advance on alimony payment (Unterhaltsvorschuss).

unterhaltsvorschuss_eink_m_tu(...)

Calculate relevant income for advance on alimony payment on tax unit level.

vorsorgeaufw_alter_tu(...)

Determine contributions to retirement savings deductible from taxable income.

vorsorgeaufw_alter_tu_einfuehrung(...)

Determine contributions to retirement savings deductible from taxable income.

vorsorgeaufw_tu_ab_2020(...)

Calculate Vorsorgeaufwendungen since 2020.

vorsorgeaufw_tu_bis_2004(...)

Calculate Vorsorgeaufwendungen until 2004.

vorsorgeaufw_tu_einführung_ab_2005_bis_2009(...)

Calculate Vorsorgeaufwendungen from 2005 to 2009, new mode.

vorsorgeaufw_tu_einführung_ab_2010_bis_2019(...)

vorsorgeaufw_tu_guenstiger(...)

Calculate Vorsorgeaufwendungen from 2005 to 2019.

vorsorgepauschale_ab_2005_bis_2009()

vorsorgepauschale_ab_2010(bruttolohn_m, ...)

Calculate Vorsorgepauschale for Lohnsteuer valid since 2010.

wohngeld_abzüge_st_sozialv_m(eink_st_tu, ...)

Calculate housing benefit subtractions on the individual level.

wohngeld_arbeitendes_kind(bruttolohn_m, ...)

Check if children are working.

wohngeld_eink_freib_m_ab_2016(bruttolohn_m, ...)

Calculate housing benefit subtracting for one individual since 2016.

wohngeld_eink_freib_m_bis_2015(bruttolohn_m, ...)

Calculate housing benefit subtractions for one individual until 2015.

wohngeld_eink_m_hh(haushaltsgröße_hh, ...)

Calculate final income relevant for calculation of housing benefit on household level.

wohngeld_eink_vor_freib_m_mit_elterngeld(...)

Sum gross incomes relevant for housing benefit calculation on individual level and deducting individual housing benefit subtractions.

wohngeld_eink_vor_freib_m_ohne_elterngeld(...)

Sum gross incomes relevant for housing benefit calculation on individual level and deducting individual housing benefit subtractions.

wohngeld_kinderzuschl_vorrang_hh(...)

Check if housing and child benefit have priority.

wohngeld_m_hh(...)

Calculate final housing benefit on household level.

wohngeld_miete_m_hh_ab_2009(mietstufe, ...)

Maximum rent considered in housing benefit since 2009.

wohngeld_miete_m_hh_bis_2008(mietstufe, ...)

Maximal rent subject housing benefit calculation on household level until 2008.

wohngeld_min_miete_m_hh(haushaltsgröße_hh, ...)

Calculate minimal monthly rent subject housing benefit calculation on household level.

wohngeld_nach_vermög_check_m_hh(...)

Set preliminary housing benefit to zero if it exceeds the wealth exemption.

wohngeld_vor_vermög_check_m_hh(...)

Calcualte preliminary housing benefit.

wohngeld_vorrang_hh(...)

Check if housing benefit has priority.

zu_verst_eink_mit_kinderfreib_tu(...)

Calculate taxable income with child allowance on tax unit level.

zu_verst_eink_tu(...)

Calculate taxable income on tax unit level.

zu_verst_kapitaleink_tu(...)

Calculate taxable income on tax unit level.

Import all functions to a central place in order to automatically create the overview in the documentation.

abgelt_st_tu(zu_verst_kapitaleink_tu: float, abgelt_st_params: dict) float[source]#

Calculate abgeltungssteuer on tax unit level.

Parameters
add_rounding_spec(params_key)[source]#

Decorator adding the location of the rounding specification to a function.

Parameters

params_key (str) – Key of the parameters dictionary where rounding specifications are found. For functions that are not user-written this is just the name of the respective .yaml file.

Returns

func (function) – Function with __info__[“rounding_params_key”] attribute

alter_monate(geburtsdatum: numpy.datetime64, elterngeld_params: dict) float[source]#

Calculate age of youngest child in months.

Parameters
arbeitsl_geld_2_bruttoeink_m(bruttolohn_m: float, sonstig_eink_m: float, eink_selbst_m: float, eink_vermietung_m: float, kapitaleink_brutto_m: float, sum_ges_rente_priv_rente_m: float, arbeitsl_geld_m: float, elterngeld_m: float) float[source]#

Sum up the gross income for calculation of basic subsistence.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
Returns

Income by unemployment insurance before tax.

arbeitsl_geld_2_eink_anr_frei_m(bruttolohn_m: float, anz_kinder_hh: int, arbeitsl_geld_2_params: dict) float[source]#

Calculate share of income, which remains to the individual since 10/2005.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
  • bruttolohn_m – See basic input variable bruttolohn_m.

  • anz_kinder_hh – See anz_kinder_hh().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

arbeitsl_geld_2_eink_anr_frei_m_basierend_auf_nettoquote(bruttolohn_m: float, arbeitsl_geld_2_nettoquote: float, arbeitsl_geld_2_params: dict) float[source]#

Share of income which remains to the individual.

Parameters
arbeitsl_geld_2_eink_m(arbeitsl_geld_2_bruttoeink_m: float, eink_st_tu: float, soli_st_tu: float, anz_erwachsene_tu: int, sozialv_beitr_m: float, arbeitsl_geld_2_eink_anr_frei_m: float, kind: bool) float[source]#

Income (after deduction of taxes, social insurance contributions, and other deductions) for calculation of basic subsistence.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
Returns

Income of a person by unemployment insurance.

arbeitsl_geld_2_kindersatz_m_hh_ab_2011(anz_kinder_bis_5_hh: int, anz_kinder_ab_6_bis_13_hh: int, anz_kinder_ab_14_bis_17_hh: int, anz_kinder_ab_18_bis_24_hh: int, arbeitsl_geld_2_params: dict) float[source]#

Calculate basic monthly subsistence for children since 2011. Here the sum in euro is directly in the law.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
  • anz_kinder_bis_5_hh – See anz_kinder_bis_5_hh().

  • anz_kinder_ab_6_bis_13_hh – See anz_kinder_ab_6_bis_13_hh().

  • anz_kinder_ab_14_bis_17_hh – See anz_kinder_ab_14_bis_17_hh().

  • anz_kinder_ab_18_bis_24_hh – See anz_kinder_ab_18_bis_24_hh().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

Returns

float with the support of children since year 2011

arbeitsl_geld_2_kindersatz_m_hh_bis_2010(anz_kinder_bis_5_hh: int, anz_kinder_ab_6_bis_13_hh: int, anz_kinder_ab_14_bis_24_hh: int, arbeitsl_geld_2_params: dict) float[source]#

Calculate basic monthly subsistence for children until 2010. Since 2010 children get additional shares instead of lump sum payments.

Parameters
  • anz_kinder_bis_5_hh – See anz_kinder_bis_5_hh().

  • anz_kinder_ab_6_bis_13_hh – See anz_kinder_ab_6_bis_13_hh().

  • anz_kinder_ab_14_bis_24_hh – See anz_kinder_ab_14_bis_24_hh().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

Returns

float with the support of children until year 2010.

arbeitsl_geld_2_kost_unterk_m_hh_ab_2023(bruttokaltmiete_m_hh: float, heizkosten_m_hh: float, bürgerg_bezug_vorj: bool, _arbeitsl_geld_2_berechtigte_wohnfläche_hh: float, _arbeitsl_geld_2_warmmiete_pro_qm_m_hh: float) float[source]#

Calculate costs of living eligible to claim since 2023. During the first year, the waiting period (Karenzzeit), only the appropriateness of the heating costs is tested, while the living costs are fully considered in Bürgergeld.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
  • bruttokaltmiete_m_hh – See basic input variable bruttokaltmiete_m_hh.

  • heizkosten_m_hh – See basic input variable heizkosten_m_hh.

  • bürgerg_bezug_vorj – See basic input variable bürgerg_bezug_vorj.

  • _arbeitsl_geld_2_berechtigte_wohnfläche_hh – See _arbeitsl_geld_2_berechtigte_wohnfläche_hh().

  • _arbeitsl_geld_2_warmmiete_pro_qm_m_hh – See _arbeitsl_geld_2_warmmiete_pro_qm_m_hh().

Returns

float with total monthly cost of rent.

arbeitsl_geld_2_kost_unterk_m_hh_bis_2022(_arbeitsl_geld_2_berechtigte_wohnfläche_hh: float, _arbeitsl_geld_2_warmmiete_pro_qm_m_hh: float) float[source]#

Calculate costs of living eligible to claim until 2022.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld. :param _arbeitsl_geld_2_berechtigte_wohnfläche_hh: See _arbeitsl_geld_2_berechtigte_wohnfläche_hh(). :param _arbeitsl_geld_2_warmmiete_pro_qm_m_hh: See _arbeitsl_geld_2_warmmiete_pro_qm_m_hh().

Returns

float with total monthly cost of rent.

arbeitsl_geld_2_m_hh(arbeitsl_geld_2_vor_vorrang_m_hh: float, wohngeld_vorrang_hh: bool, kinderzuschl_vorrang_hh: bool, wohngeld_kinderzuschl_vorrang_hh: bool, erwachsene_alle_rentner_hh: bool) float[source]#

Calculate final monthly subsistence payment on household level.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
Returns

float with the income by unemployment insurance on household level.

arbeitsl_geld_2_nettoquote(bruttolohn_m: float, eink_st_tu: float, soli_st_tu: float, anz_erwachsene_tu: int, sozialv_beitr_m: float, arbeitsl_geld_2_params: dict) float[source]#

Calculate share of net to gross wage.

Quotienten von bereinigtem Nettoeinkommen und Bruttoeinkommen. § 3 Abs. 2 Alg II-V.

Parameters
arbeitsl_geld_2_regelbedarf_m_hh(arbeitsl_geld_2_regelsatz_m_hh: float, arbeitsl_geld_2_kost_unterk_m_hh: float) float[source]#

Basic monthly subsistence level on household level.

This includes cost of dwelling.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.:

Parameters
  • arbeitsl_geld_2_regelsatz_m_hh – See arbeitsl_geld_2_regelsatz_m_hh().

  • arbeitsl_geld_2_kost_unterk_m_hh – See arbeitsl_geld_2_kost_unterk_m_hh().

Returns

float checks the minimum monthly needs of an household.

arbeitsl_geld_2_regelsatz_m_hh_ab_2011(anz_erwachsene_hh: int, _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh: float, arbeitsl_geld_2_kindersatz_m_hh: float, arbeitsl_geld_2_params: dict) float[source]#

Calculate basic monthly subsistence without dwelling since 2011.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
  • anz_erwachsene_hh – See anz_erwachsene_hh().

  • _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh – See _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh().

  • arbeitsl_geld_2_kindersatz_m_hh – See arbeitsl_geld_2_kindersatz_m_hh().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

Returns

float with the minimum needs of an household in Euro.

arbeitsl_geld_2_regelsatz_m_hh_bis_2010(anz_erwachsene_hh: int, _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh: float, arbeitsl_geld_2_kindersatz_m_hh: float, arbeitsl_geld_2_params: dict) float[source]#

Calculate basic monthly subsistence without dwelling until 2010.

Parameters
  • anz_erwachsene_hh – See anz_erwachsene_hh().

  • _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh – See _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh().

  • arbeitsl_geld_2_kindersatz_m_hh – See arbeitsl_geld_2_kindersatz_m_hh().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

Returns

float with the sum in Euro.

arbeitsl_geld_2_vermög_freib_hh_ab_2023(arbeitsl_geld_2_params: dict, haushaltsgröße_hh: int, bürgerg_bezug_vorj: bool) float[source]#

Calculate actual wealth exemptions since 2023.

During the first year (Karenzzeit), the wealth exemption is substantially larger.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
arbeitsl_geld_2_vermög_freib_hh_bis_2022(_arbeitsl_geld_2_grundfreib_vermög_hh: float, anz_kinder_bis_17_hh: int, haushaltsgröße_hh: int, arbeitsl_geld_2_params: dict) float[source]#

Calculate actual exemptions until 2022.

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
  • _arbeitsl_geld_2_grundfreib_vermög_hh – See _arbeitsl_geld_2_grundfreib_vermög_hh().

  • anz_kinder_bis_17_hh – See basic input variable anz_kinder_bis_17_hh.

  • haushaltsgröße_hh – See haushaltsgröße_hh().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

arbeitsl_geld_2_vor_vorrang_m_hh(arbeitsl_geld_2_regelbedarf_m_hh: float, kindergeld_m_hh: float, kind_unterh_erhalt_m_hh: float, unterhaltsvors_m_hh: float, arbeitsl_geld_2_eink_m_hh: float, vermögen_bedürft_hh: float, arbeitsl_geld_2_vermög_freib_hh: float) float[source]#

Calculate potential basic subsistence (after income deduction and wealth check).

Note: Since 2023, Arbeitslosengeld 2 is referred to as Bürgergeld.

Parameters
  • arbeitsl_geld_2_regelbedarf_m_hh – See arbeitsl_geld_2_regelbedarf_m_hh().

  • kindergeld_m_hh – See kindergeld_m_hh().

  • kind_unterh_erhalt_m_hh – See basic input variable kind_unterh_erhalt_m_hh.

  • unterhaltsvors_m_hh – See unterhaltsvors_m_hh().

  • arbeitsl_geld_2_eink_m_hh – See arbeitsl_geld_2_eink_m_hh().

  • arbeitsl_geld_2_vermög_freib_hh – See arbeitsl_geld_2_vermög_freib_hh().

  • vermögen_bedürft_hh – See basic input variable vermögen_bedürft_hh.

arbeitsl_geld_berechtigt(alter: int, arbeitssuchend: bool, arbeitsl_geld_restl_anspruchsd: int, arbeitsstunden_w: float, arbeitsl_geld_params: dict, geburtsjahr: int, ges_rente_params: dict) bool[source]#

Check eligibility for unemployment benefit.

Parameters
arbeitsl_geld_eink_vorj_proxy_m(_ges_rentenv_beitr_bemess_grenze_m: float, bruttolohn_vorj_m: float, arbeitsl_geld_params: dict, eink_st_params: dict, eink_st_abzuege_params: dict, soli_st_params: dict) float[source]#

Approximate last years income for unemployment benefit.

Parameters
arbeitsl_geld_m(anz_kinder_tu: int, arbeitsl_geld_berechtigt: bool, arbeitsl_geld_eink_vorj_proxy_m: float, arbeitsl_geld_params: dict) float[source]#

Calculate individual unemployment benefit.

Parameters
arbeitsl_geld_restl_anspruchsd(alter: int, sozialv_pflicht_5j: float, anwartschaftszeit: bool, m_durchg_alg1_bezug: float, arbeitsl_geld_params: dict) int[source]#

Calculate the remaining amount of months a person can receive unemployment benefit this year.

Parameters
arbeitsl_v_beitr_arbeitg_m(geringfügig_beschäftigt: bool, in_gleitzone: bool, _arbeitsl_v_beitr_midijob_arbeitg_m: float, _ges_rentenv_beitr_bruttolohn_m: float, sozialv_beitr_params: dict) float[source]#

Contribution of the respective employer to the unemployment insurance.

Parameters
  • geringfügig_beschäftigt – See geringfügig_beschäftigt().

  • in_gleitzone – See in_gleitzone().

  • _arbeitsl_v_beitr_midijob_arbeitg_m – See _arbeitsl_v_beitr_midijob_arbeitg_m().

  • _ges_rentenv_beitr_bruttolohn_m – See _ges_rentenv_beitr_bruttolohn_m().

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

arbeitsl_v_beitr_m(geringfügig_beschäftigt: bool, in_gleitzone: bool, _arbeitsl_v_beitr_midijob_arbeitn_m: float, _ges_rentenv_beitr_bruttolohn_m: float, sozialv_beitr_params: dict) float[source]#

Contribution for each individual to the unemployment insurance.

Parameters
  • geringfügig_beschäftigt – See geringfügig_beschäftigt().

  • in_gleitzone – See in_gleitzone().

  • _arbeitsl_v_beitr_midijob_arbeitn_m – See _arbeitsl_v_beitr_midijob_arbeitn_m().

  • _ges_rentenv_beitr_bruttolohn_m – See _ges_rentenv_beitr_bruttolohn_m().

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

bruttokaltmiete_m_tu(bruttokaltmiete_m_hh: float, _anteil_personen_in_haushalt_tu: float) float[source]#

Share of household’s monthly rent attributed to the tax unit.

Parameters
  • bruttokaltmiete_m_hh – See basic input variable bruttokaltmiete_m_hh.

  • _anteil_personen_in_haushalt_tu – See _anteil_personen_in_haushalt_tu().

dates_active(start: str = '0001-01-01', end: str = '9999-12-31', change_name: Optional[str] = None) Callable[source]#

Specifies that a function is only active between two dates, start and end. By using the change_name argument, you can specify a different name for the function in the DAG.

Note that even if you use this decorator with the change_name argument, you must ensure that the function name is unique in the file where it is defined. Otherwise, the function will be overwritten by the last function with the same name.

Parameters
  • start – The start date (inclusive) in the format YYYY-MM-DD (part of ISO 8601).

  • end – The end date (inclusive) in the format YYYY-MM-DD (part of ISO 8601).

  • change_name – The name that should be used as the key for the function in the DAG. If omitted, we use the name of the function as defined.

Returns

  • The function with attributes __info__[“dates_active_start”],

  • __info__[“dates_active_end”], and __info__[“dates_active_dag_key”].

eink_abhängig_beschäftigt(bruttolohn_m: float, eink_st_abzuege_params: dict) float[source]#

Aggregate monthly gross wage to yearly income and deduct ‘Werbungskostenpauschale’.

The wage is reducted by a lump sum payment for ‘Werbungskosten’

Parameters
eink_rente_zu_verst(eink_rente_zu_verst_m: float) float[source]#

Aggregate monthly gross pension income subject to taxation to yearly income.

Parameters

eink_rente_zu_verst_m – See eink_rente_zu_verst_m().

eink_rente_zu_verst_m(sum_ges_rente_priv_rente_m: float, rente_ertragsanteil: float) float[source]#

Calculate monthly pension payment subject to taxation.

Parameters
  • sum_ges_rente_priv_rente_m – See basic input variable sum_ges_rente_priv_rente_m.

  • rente_ertragsanteil – See rente_ertragsanteil().

eink_selbst(eink_selbst_m: float) float[source]#

Aggregate gross income from self-employment to full year income.

Parameters

eink_selbst_m – See basic input variable eink_selbst_m.

eink_st_abz_betreuungskost(eink_st_abzuege_params: dict, betreuungskost_m: float) float[source]#

Individual deductable childcare cost for each individual child under 14.

Parameters
eink_st_alleinerz_freib_tu_nach_kinderzahl(alleinerz: bool, anz_kinder_tu: int, eink_st_abzuege_params: dict) float[source]#

Calculate tax deduction allowance for single parents since 2015.

Since 2015, it increases with number of children. Used to be called ‘Haushaltsfreibetrag’

Parameters
  • alleinerz_tu – See alleinerz_tu().

  • anz_kinder_tu – See anz_kinder_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

eink_st_alleinerz_freib_tu_pauschal(alleinerz_tu: bool, eink_st_abzuege_params: dict) float[source]#

Calculate tax deduction allowance for single parents until 2014.

This used to be called ‘Haushaltsfreibetrag’.

Parameters
  • alleinerz_tu – See alleinerz_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

eink_st_altersfreib_ab_2005(bruttolohn_m: float, geringfügig_beschäftigt: bool, alter: int, geburtsjahr: int, kapitaleink_brutto_m: float, eink_selbst_m: float, eink_vermietung_m: float, eink_st_abzuege_params: dict) float[source]#

Calculate tax deduction allowance for elderly since 2005.

Parameters
eink_st_altersfreib_bis_2004(bruttolohn_m: float, alter: int, kapitaleink_brutto_m: float, eink_selbst_m: float, eink_vermietung_m: float, eink_st_abzuege_params: dict) float[source]#

Calculate tax deduction allowance for elderly until 2004.

Parameters
eink_st_kinderfreib_tu(anz_kinder_mit_kindergeld_tu: float, anz_erwachsene_tu: int, eink_st_abzuege_params: dict) float[source]#

Aggregate child allowances on tax unit level.

Parameters
  • anz_kinder_mit_kindergeld_tu – See anz_kinder_mit_kindergeld_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

eink_st_mit_kinderfreib_tu(zu_verst_eink_mit_kinderfreib_tu: float, anz_erwachsene_tu: int, eink_st_params: dict) float[source]#

Taxes with child allowance on tax unit level. Also referred to as “tarifliche ESt I”.

Parameters
eink_st_ohne_kinderfreib_tu(_zu_verst_eink_ohne_kinderfreib_tu: float, anz_erwachsene_tu: int, eink_st_params: dict) float[source]#

Taxes without child allowance on tax unit level. Also referred to as “tarifliche ESt II”.

Parameters
  • _zu_verst_eink_ohne_kinderfreib_tu – See _zu_verst_eink_ohne_kinderfreib_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_params – See params documentation eink_st_params.

eink_st_rel_kindergeld_tu(kindergeld_m_tu: float, kinderbonus_m_tu: float, anz_erwachsene_tu: int) float[source]#

Return Kindergeld relevant for income tax of the tax unit. For parents which do not file taxes together, only half of Kindergeld is considered.

Source: § 31 Satz 4 EStG: “Bei nicht zusammenveranlagten Eltern wird der Kindergeldanspruch im Umfang des Kinderfreibetrags angesetzt.”

# ToDo: This factor need to be refactored once children are put in separate tax # ToDo: units and are linked to their parents (one or two)

Parameters
  • kindergeld_m_tu – See kindergeld_m_tu().

  • kinderbonus_m_tu – See kinderbonus_m_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

eink_st_sonderausgaben_tu_mit_betreuung(eink_st_abzuege_params: dict, sonderausgaben_betreuung_tu: float, anz_erwachsene_tu: int) float[source]#

Individual sonderausgaben on tax unit level since 2012.

We follow 10 Abs.1 Nr. 5 EStG. You can details here https://www.buzer.de/s1.htm?a=10&g=estg.

Parameters
eink_st_sonderausgaben_tu_nur_pauschale(eink_st_abzuege_params: dict, anz_erwachsene_tu: int) float[source]#

Individual Sonderausgaben on tax unit level until 2011.

Only a lump sum payment is implemented.

Parameters
  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

  • anz_erwachsene_tu – See func anz_erwachsene_tu <anz_erwachsene_tu>.

eink_st_tu_kindergeld_kinderfreib_parallel(eink_st_mit_kinderfreib_tu: float) float[source]#

Income tax calculation on tax unit level allowing for claiming Kinderfreibetrag and receiving Kindergeld at the same time.

Parameters

eink_st_mit_kinderfreib_tu – See eink_st_mit_kinderfreib_tu().

eink_st_tu_kindergeld_oder_kinderfreib(eink_st_ohne_kinderfreib_tu: float, eink_st_mit_kinderfreib_tu: float, kinderfreib_günstiger_tu: bool, eink_st_rel_kindergeld_tu: float) float[source]#

Income tax calculation on tax unit level since 1997.

Parameters
eink_vermietung(eink_vermietung_m: float) float[source]#

Aggregate monthly gross rental income to yearly income.

Parameters

eink_vermietung_m – See basic input variable eink_vermietung_m.

eltern(erwachsen: bool, kindergeld_anspruch: bool) bool[source]#

Check if person in the tax unit is considered a parent or the parent’s spouse.

Parameters
  • erwachsen – See erwachsen().

  • kindergeld_anspruch – See kindergeld_anspruch().

elterngeld_anr_m(elterngeld_m: float, elterngeld_params: dict, anz_mehrlinge_jüngstes_kind_hh: int) float[source]#

Calculate elterngeld above threshold which is considered as income for transfers such as wohngeld and grunds_im_alter. For arbeitsl_geld_2 as well as kinderzuschl the whole amount of elterngeld is considered as income, except for the case in which the parents still worked right before they had children. See: https://www.kindergeld.org/elterngeld-einkommen/

Parameters
  • elterngeld_m – See elterngeld_m().

  • elterngeld_params – See params documentation elterngeld_params.

  • anz_mehrlinge_jüngstes_kind_hh – See anz_mehrlinge_jüngstes_kind_hh().

elterngeld_anteil_eink_erlass(elterngeld_eink_relev_m: float, elterngeld_params: dict) float[source]#

Calculate the share of net income which is reimbursed when receiving elterngeld.

According to § 2 (2) BEEG the percentage increases below the first step and decreases above the second step until prozent_minimum.

# ToDo: Split this function up in a function before and after 2011. Before 2011 the # ToDo: replacement rate was not lowered for high incomes.

Parameters
elterngeld_eink_erlass_m(elterngeld_eink_relev_m: float, elterngeld_anteil_eink_erlass: float) float[source]#

Calculate base parental leave benefit.

Parameters
elterngeld_eink_relev_m(_elterngeld_proxy_eink_vorj_elterngeld_m: float, elterngeld_nettolohn_m: float) float[source]#

Calculating the relevant wage for the calculation of elterngeld.

According to § 2 (1) BEEG elterngeld is calculated by the loss of income due to child raising.

Parameters
  • _elterngeld_proxy_eink_vorj_elterngeld_m – See _elterngeld_proxy_eink_vorj_elterngeld_m().

  • elterngeld_nettolohn_m – See elterngeld_nettolohn_m().

elterngeld_geschw_bonus_anspruch(elterngeld_kind_hh: int, elterngeld_vorschulkind_hh: int, elternzeit_anspruch: bool, elterngeld_params: dict) bool[source]#

Check for sibling bonus on parental leave benefit.

Parameters
  • elterngeld_kind_hh – See elterngeld_kind_hh().

  • elternzeit_anspruch – See elternzeit_anspruch().

  • elterngeld_vorschulkind_hh – See elterngeld_vorschulkind_hh().

  • elterngeld_params – See params documentation elterngeld_params.

elterngeld_geschw_bonus_m(elterngeld_eink_erlass_m: float, elterngeld_geschw_bonus_anspruch: bool, elterngeld_params: dict) float[source]#

Calculate the bonus for siblings.

According to § 2a parents of siblings get a bonus.

Parameters
elterngeld_kind(geburtsjahr: int, elterngeld_params: dict) bool[source]#

Check for sibling bonus on parental leave benefit.

# ToDo: why use datum and geburtsjahr instead of alter?

Parameters
elterngeld_m(elterngeld_eink_relev_m: float, elternzeit_anspruch: bool, elterngeld_eink_erlass_m: float, elterngeld_geschw_bonus_m: float, elterngeld_mehrlinge_bonus_m: float, elterngeld_params: dict) float[source]#

Calculate parental leave benefit (elterngeld).

For the calculation, the relevant wage and the eligibility for bonuses is needed.

Parameters
elterngeld_mehrlinge_bonus_m(_elterngeld_anz_mehrlinge_anspruch: int, elterngeld_params: dict) float[source]#

Calculate the bonus for multiples.

Parameters
  • _elterngeld_anz_mehrlinge_anspruch – See _elterngeld_anz_mehrlinge_anspruch().

  • elterngeld_params – See params documentation elterngeld_params.

elterngeld_nettolohn_m(bruttolohn_m: float, eink_st_tu: float, soli_st_tu: float, anz_erwachsene_tu: int, sozialv_beitr_m: float) float[source]#

Calculate the net wage.

Taxes and social insurance contributions are needed for the calculation.

Parameters
  • bruttolohn_m – See basic input variable bruttolohn_m.

  • eink_st_tu – See eink_st_tu().

  • soli_st_tu – See soli_st_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • sozialv_beitr_m – See sozialv_beitr_m().

elterngeld_vorschulkind(geburtsjahr: int, elterngeld_params: dict) bool[source]#

Check for sibling bonus on parental leave benefit.

Parameters
elternzeit_anspruch(alter_monate_jüngstes_mitglied_hh: float, m_elterngeld_mut_hh: int, m_elterngeld_vat_hh: int, m_elterngeld: int, kind: bool, elterngeld_params: dict) bool[source]#

Check parental leave eligibility.

# ToDo: Check meaning and naming and make description of m_elterngeld_mut_hh, # ToDo: m_elterngeld_vat_hh, and m_elterngeld more precise

Parameters
  • alter_monate_jüngstes_mitglied_hh – See alter_monate_jüngstes_mitglied_hh().

  • m_elterngeld_mut_hh – See basic input variable m_elterngeld_mut_hh.

  • m_elterngeld_vat_hh – See basic input variable m_elterngeld_vat_hh.

  • m_elterngeld – See basic input variable m_elterngeld.

  • kind – See basic input variable kind.

  • elterngeld_params – See params documentation elterngeld_params.

entgeltp_update(entgeltp: float, entgeltp_update_lohn: float) float[source]#

Update earning points.

Given earnings, social insurance rules, average earnings in a particular year and potentially other variables (e.g., benefits for raising children, informal care), return the new earnings points.

Parameters
entgeltp_update_lohn(bruttolohn_m: float, wohnort_ost: bool, _ges_rentenv_beitr_bemess_grenze_m: float, ges_rente_params: dict) float[source]#

Return earning points for the wages earned in the last year.

Parameters
  • bruttolohn_m – See basic input variable bruttolohn_m.

  • wohnort_ost – See wohnort_ost().

  • _ges_rentenv_beitr_bemess_grenze_m – See _ges_rentenv_beitr_bemess_grenze_m().

  • ges_rente_params – See params documentation ges_rente_params.

erwachsen(kind: bool) bool[source]#

Calculate if adult.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

erwachsene_alle_rentner_hh(anz_erwachsene_hh: int, anz_rentner_hh: int) bool[source]#

Calculate if all adults in the household are pensioners.

Parameters
  • anz_erwachsene_hh – See anz_erwachsene_hh().

  • anz_rentner_hh – See anz_rentner_hh().

freibeträge_ind(_eink_st_behinderungsgrad_pauschbetrag: float, eink_st_altersfreib: float, alleinerz_freib_tu: float) float[source]#

Sum up all tax-deductible allowances applicable at the individual level.

#ToDo: Check whether these columns are really calculated at the individual level. :param _eink_st_behinderungsgrad_pauschbetrag: See _eink_st_behinderungsgrad_pauschbetrag(). :param eink_st_altersfreib: See eink_st_altersfreib(). :param alleinerz_freib_tu: See alleinerz_freib_tu().

freibeträge_tu(eink_st_sonderausgaben_tu: float, vorsorgeaufw_tu: float, freibeträge_ind_tu: float) float[source]#

Calculate total allowances on tax unit level.

Parameters
  • eink_st_sonderausgaben_tu – See eink_st_sonderausgaben_tu().

  • vorsorgeaufw_tu – See vorsorgeaufw_tu().

  • freibeträge_ind_tu – See freibeträge_ind_tu().

geburtsdatum(geburtsjahr: int, geburtsmonat: int, geburtstag: int) numpy.datetime64[source]#

Create date of birth datetime variable.

Parameters
gemeinsam_veranlagt_tu(anz_erwachsene_tu: int) bool[source]#

Check if the tax unit consists of two wage earners.

Parameters
  • tu_id – See basic input variable tu_id.

  • anz_erwachsene_tu – See anz_erwachsene_tu().

Returns

Boolean indicating two wage earners in tax unit.

geringfügig_beschäftigt(bruttolohn_m: float, minijob_grenze: float) bool[source]#

Check if individual earns less than marginal employment threshold.

Marginal employed pay no social insurance contributions.

Legal reference: § 8 Abs. 1 Satz 1 and 2 SGB IV

Parameters
Returns

Whether person earns less than marginal employment threshold.

ges_krankenv_beitr_arbeitg_m(geringfügig_beschäftigt: bool, in_gleitzone: bool, bruttolohn_m: float, _ges_krankenv_beitr_midijob_arbeitg_m: float, _ges_krankenv_bruttolohn_m: float, selbstständig: bool, sozialv_beitr_params: dict, _ges_krankenv_beitr_satz_arbeitg: float) float[source]#

Contribution of the respective employer to the public health insurance.

Parameters
  • geringfügig_beschäftigt – See geringfügig_beschäftigt().

  • _ges_krankenv_beitr_midijob_arbeitg_m – See _ges_krankenv_beitr_midijob_arbeitg_m().

  • _ges_krankenv_bruttolohn_m – See _ges_krankenv_bruttolohn_m().

  • _ges_krankenv_beitr_satz_arbeitg – See _ges_krankenv_beitr_satz_arbeitg().

  • in_gleitzone – See in_gleitzone().

  • bruttolohn_m – See basic input variable bruttolohn_m.

  • selbstständig – See basic input variable selbstständig.

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

ges_krankenv_beitr_m(geringfügig_beschäftigt: bool, ges_krankenv_beitr_rente_m: float, ges_krankenv_beitr_selbst_m: float, in_gleitzone: bool, _ges_krankenv_beitr_midijob_arbeitn_m: float, _ges_krankenv_beitr_reg_beschäftigt_m: float, selbstständig: bool) float[source]#

Contribution for each individual to the public health insurance.

Parameters
ges_krankenv_beitr_rente_m(_ges_krankenv_bemessungsgrundlage_rente_m: float, ges_krankenv_beitr_satz: float) float[source]#

Calculate health insurance contributions for pension incomes.

Parameters
  • _ges_krankenv_bemessungsgrundlage_rente_m – See _ges_krankenv_bemessungsgrundlage_rente_m().

  • ges_krankenv_beitr_satz – See ges_krankenv_beitr_satz().

Returns

  • Pandas Series containing monthly health insurance contributions on pension income

  • income.

ges_krankenv_beitr_satz(sozialv_beitr_params: dict) float[source]#

Select contribution rates of employees for health insurance, just a basic split between employees and employers. Incorporates regime changes regarding different values across insurers (pick “official” mean) and same contribution rate for all.

Parameters

sozialv_beitr_params – See params documentation sozialv_beitr_params.

Returns

Beitragssatz for statutory health insurance.

ges_krankenv_beitr_satz_zusatzbeitrag_nur_arbeitn(ges_krankenv_zusatzbeitr_satz: float, sozialv_beitr_params: dict) float[source]#

Select contribution rates of employees for health insurance until 2018.

The contribution rates consists of a general rate (split equally between employers and employees) and a top-up rate which is fully paid by employees.

Parameters
  • ges_krankenv_zusatzbeitr_satz – See ges_krankenv_zusatzbeitr_satz().

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

ges_krankenv_beitr_satz_zusatzbeitrag_paritätisch(ges_krankenv_zusatzbeitr_satz: float, sozialv_beitr_params: dict) float[source]#

Select contribution rates of employees for health insurance since 2019.

Zusatzbeitrag is now split equally between employers and employees.

Parameters

sozialv_beitr_params – See params documentation sozialv_beitr_params.

ges_krankenv_beitr_selbst_m(_ges_krankenv_bemessungsgrundlage_eink_selbst: float, sozialv_beitr_params: dict) float[source]#

Health insurance contributions for self-employed’s income. The self-employed pay the full reduced contribution.

Parameters
  • _ges_krankenv_bemessungsgrundlage_eink_selbst – See _ges_krankenv_bemessungsgrundlage_eink_selbst().

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

Returns

Monthly health insurance contributions for self-employed’s income.

ges_krankenv_mean_zusatzbeitrag(sozialv_beitr_params: dict) float[source]#

Calculate the top-up rate of the health care insurance.

Parameters

sozialv_beitr_params – See params documentation sozialv_beitr_params.

Returns

Zusatzbeitragssatz (based on mean value of Zusatzbeitragssatz)

ges_krankenv_sonderbeitr_satz(sozialv_beitr_params: dict) float[source]#

Calculate the top-up rate of the health care insurance.

Parameters

sozialv_beitr_params – See params documentation sozialv_beitr_params.

Returns

Zusatzbeitragssatz (based on Sonderbeitrag)

ges_pflegev_beitr_arbeitg_m(geringfügig_beschäftigt: bool, _ges_pflegev_beitr_midijob_arbeitg_m: float, _ges_krankenv_bruttolohn_m: float, sozialv_beitr_params: dict, in_gleitzone: bool, selbstständig: bool) float[source]#

Contribution of the respective employer to the public care insurance.

Parameters
  • geringfügig_beschäftigt – See geringfügig_beschäftigt().

  • _ges_pflegev_beitr_midijob_arbeitg_m – See _ges_pflegev_beitr_midijob_arbeitg_m().

  • _ges_krankenv_bruttolohn_m – See _ges_krankenv_bruttolohn_m().

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

  • in_gleitzone – See in_gleitzone().

  • selbstständig – See basic input variable selbstständig.

ges_pflegev_beitr_m(geringfügig_beschäftigt: bool, ges_pflegev_beitr_rente_m: float, ges_pflegev_beitr_selbst_m: float, _ges_pflegev_beitr_midijob_arbeitn_m: float, ges_pflegev_zusatz_kinderlos: bool, _ges_krankenv_bruttolohn_m: float, sozialv_beitr_params: dict, in_gleitzone: bool, selbstständig: bool) float[source]#

Contribution for each individual to the public care insurance.

Parameters
ges_pflegev_beitr_rente_m(ges_pflegev_zusatz_kinderlos: bool, _ges_krankenv_bemessungsgrundlage_rente_m: float, sozialv_beitr_params: dict) float[source]#

Calculating the contribution to health insurance for pension income.

Parameters
Returns

Monthly health insurance contributions for pension income.

ges_pflegev_beitr_selbst_m(ges_pflegev_zusatz_kinderlos: bool, _ges_krankenv_bemessungsgrundlage_eink_selbst: float, sozialv_beitr_params: dict) float[source]#

Calculate care insurance contributions for self-employed individuals.

Self-employed pay the full contribution (employer + employee), which is either assessed on their self-employement income or 3/4 of the ‘Bezugsgröße’

Parameters
Returns

Monthly care insurance contributions for self employed income.

ges_pflegev_zusatz_kinderlos(hat_kinder: bool, alter: int, sozialv_beitr_params: dict) bool[source]#

Whether additional care insurance contribution for childless individuals applies.

ToDo: Make dependent on year. Current implementation is deliberately ugly.

Parameters
  • hat_kinder – See basic input variable hat_kinder.

  • alter – See basic input variable alter.

ges_rente_anrechnungszeit(m_arbeitsunfähig: float, m_krank_ab_16_bis_24: float, m_mutterschutz: float, m_arbeitslos: float, m_ausbild_suche: float, m_schul_ausbild: float) float[source]#

Adds up all times that are accounted for in “Anrechnungszeiten” relevant for “Wartezeit von 35 Jahren” i.e. for Altersrente für langjährig Versicherte (pension for long term insured). (Ref: Studientext der Deutschen Rentenversicherung, Nr. 19, Wartezeiten, Ausgabe 2021, S. 24.)

Parameters
Returns

Anrechnungszeit in months

ges_rente_anrechnungszeit_45(m_arbeitsunfähig: float, m_alg1_übergang: float, m_geringf_beschäft: float) float[source]#

Adds up all times NOT included in Beitragszeiten, Berücksichtigungszeiten, Ersatzzeiten (a variant of Anrechnungszeiten) that are accounted for in “Wartezeit von 45 Jahren” i.e. for Altersrente für besonders langjährig Versicherte (pension for very long term insured). “nur Anrechnungszeiten mit Bezug von Entgeltersatzleistungen der Arbeitsförderung, Leistungen bei Krankheit und Übergangsgeld”. (Ref: Studientext der Deutschen Rentenversicherung, Nr. 19, Wartezeiten, Ausgabe 2021, S. 24)

Parameters
Returns

Anrechnungszeit in months.

ges_rente_frauen_altersgrenze(geburtsjahr: int, geburtsmonat: int, ges_rente_params: dict) float[source]#

Calculate the age, at which a women is eligible to claim the full pension (without deductions). This pension scheme allows for early retirement from age 60 with deductions. Hence this threshold is needed as reference for calculating the zugangsfaktor.

Parameters
Returns

returns the lowest full retirement age for women.

ges_rente_m(ges_rente_vor_grundr_m: float) float[source]#
ges_rente_m_nach_grundr(ges_rente_vor_grundr_m: float, grundr_zuschlag_m: float, rentner: bool) float[source]#

Calculate total individual public pension including Grundrentenzuschlag. Is only active after 2021 when Grundrente is in place.

Parameters
ges_rente_regelaltersgrenze(geburtsjahr: int, ges_rente_params: dict) float[source]#

Calculate the age, at which a person is eligible to claim the regular pension. Normal retirement age (NRA). This pension cannot be claimed earlier than at the NRA, ie it does not serve as reference for calculating deductions. However, it serves as reference for calculating gains in the Zugangsfakor in case of later retirement.

Parameters
ges_rente_vor_grundr_m(ges_rente_zugangsfaktor: float, entgeltp_update: float, rentenwert: float, rentner: bool) float[source]#

Old-Age Pensions claim without Grundrentenzuschlag. The function follows the following equation:

\[R = EP * ZF * Rw\]

models ‘Rentenformel’: https://de.wikipedia.org/wiki/Rentenformel https://de.wikipedia.org/wiki/Rentenanpassungsformel

Parameters
ges_rente_vorauss_besond_langj(ges_rente_wartezeit_45: float) bool[source]#

Determining the eligibility for Altersrente für besonders langjährig Versicherte (pension for very long-term insured). Wartezeit 45 years. aka “Rente mit 63”.

Parameters

ges_rente_wartezeit_45 – See ges_rente_wartezeit_45()

Returns

Eligibility as bool.

ges_rente_vorauss_frauen(weiblich: bool, ges_rente_wartezeit_15: float, y_pflichtbeitr_ab_40: float, alter: int, geburtsjahr: int, ges_rente_params: dict) bool[source]#

Function determining the eligibility for Altersrente für Frauen (pension for women) Wartezeit 15 years, contributions 10 years after age 40, being a women.

Parameters
Returns

Eligibility as bool.

ges_rente_vorauss_langj(ges_rente_wartezeit_35: float, alter: int, ges_rente_params: dict) bool[source]#

Determining the eligibility for Altersrente für langjährig Versicherte (pension for long-term insured). Wartezeit 35 years.

Parameters
Returns

Eligibility as bool.

ges_rente_vorauss_regelrente(ges_rente_wartezeit_5: float) bool[source]#

Function determining the eligibility for the Regelaltersrente.

Parameters

ges_rente_wartezeit_5 – See ges_rente_wartezeit_5().

Returns

Eligibility as bool.

ges_rente_vorauss_vorzeitig(ges_rente_vorauss_frauen: bool, ges_rente_vorauss_langj: bool) bool[source]#

Function determining eligibility for early retirement. Can only be claimed if eligible for “Rente für langjährig Versicherte”.

or “Rente für Frauen” (or -not yet implemented - for disabled).

Parameters
Returns

Eligibility as bool.

ges_rente_wartezeit_15(m_pflichtbeitrag: float, m_freiw_beitrag: float, m_ersatzzeit: float) float[source]#

Aggregates time periods that are relevant for the Altersrente für Frauen and Leistungen zur Teilhabe. Wartezeit von 15 Jahren.

Parameters
Returns

Wartezeit in years

ges_rente_wartezeit_35(m_pflichtbeitrag: float, m_freiw_beitrag: float, ges_rente_anrechnungszeit: float, m_ersatzzeit: float, m_kind_berücks_zeit: float, m_pfleg_berücks_zeit: float) float[source]#

Aggregates time periods that are relevant for the eligibility of Altersrente für langjährig Versicherte (pension for long-term insured). Wartezeit von 35 Jahren. All “rentenrechtliche Zeiten” are considered.

Parameters
Returns

Wartezeit in years

ges_rente_wartezeit_45(m_pflichtbeitrag: float, m_freiw_beitrag: float, ges_rente_anrechnungszeit_45: float, m_ersatzzeit: float, m_kind_berücks_zeit: float, m_pfleg_berücks_zeit: float) float[source]#

Aggregates time periods that are relevant for the eligibility of Altersrente für besonders langjährig Versicherte (pension for very long-term insured). Wartezeit von 45 Jahren. Not all “rentenrechtliche Zeiten” are considered. Years with voluntary contributions are only considered if at least 18 years of mandatory contributions (m_pflichtbeitrag). Not all ges_rente_anrechnungszeiten are considered, but only specific ones (e.g. ALG I, Kurzarbeit but not ALG II).

Parameters
Returns

Wartezeit in years

ges_rente_wartezeit_5(m_pflichtbeitrag: float, m_freiw_beitrag: float, m_ersatzzeit: float) float[source]#

Aggregates time periods that are relevant for the general eligibility of the regular pension (regelaltersrente). “Allgemeine Wartezeit”.

Parameters
Returns

Wartezeit in years.

ges_rente_zugangsfaktor(geburtsjahr: int, rentner: bool, jahr_renteneintr: int, ges_rente_regelaltersgrenze: float, referenz_alter_abschlag: float, _ges_rente_altersgrenze_abschlagsfrei: float, ges_rente_vorauss_vorzeitig: bool, ges_rente_vorauss_regelrente: bool, ges_rente_params: dict) float[source]#

Calculate the zugangsfaktor based on the year the subject retired.

At the regelaltersgrenze - normal retirement age (NRA), the agent is allowed to get pensions with his full claim. In general, if the agent retires earlier or later, the Zugangsfaktor and therefore the pension claim is higher or lower.

Legal reference: § 77 Abs. 2 Nr. 2 SGB VI

However, under certain conditions agents can receive their full pension claim (Zugangsfaktor=1) at an earlier age - full retirement age (FRA) - (e.g. women, long term insured, disabled). That is the zugangsfaktor is 1 in [FRA, NRA]. It only increases after the NRA for all agents without exeptions.

Parameters
ges_rentenv_beitr_arbeitg_m(geringfügig_beschäftigt: bool, _ges_rentenv_beitr_midijob_arbeitg_m: float, _ges_rentenv_beitr_bruttolohn_m: float, sozialv_beitr_params: dict, in_gleitzone: bool, bruttolohn_m: float) float[source]#

Contribution of the respective employer to the pension insurance.

Parameters
  • geringfügig_beschäftigt – See geringfügig_beschäftigt().

  • _ges_rentenv_beitr_midijob_arbeitg_m – See _ges_rentenv_beitr_midijob_arbeitg_m().

  • _ges_rentenv_beitr_bruttolohn_m – See _ges_rentenv_beitr_bruttolohn_m().

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

  • in_gleitzone – See in_gleitzone().

  • bruttolohn_m – See basic input variable bruttolohn_m.

ges_rentenv_beitr_m(geringfügig_beschäftigt: bool, _ges_rentenv_beitr_midijob_arbeitn_m: float, _ges_rentenv_beitr_bruttolohn_m: float, sozialv_beitr_params: dict, in_gleitzone: bool) float[source]#

Contribution for each individual to the pension insurance.

Parameters
  • geringfügig_beschäftigt – See geringfügig_beschäftigt().

  • _ges_rentenv_beitr_midijob_arbeitn_m – See _ges_rentenv_beitr_midijob_arbeitn_m().

  • _ges_rentenv_beitr_bruttolohn_m – See _ges_rentenv_beitr_bruttolohn_m().

  • sozialv_beitr_params – See params documentation sozialv_beitr_params.

  • in_gleitzone – See in_gleitzone().

grundr_berechtigt(grundr_zeiten: int, ges_rente_params: dict) bool[source]#

Whether person has accumulated enough insured years to be eligible.

Parameters
  • grundr_zeiten – See grundr_zeiten().

  • ges_rente_params – See params documentation ges_rente_params.

grundr_bew_zeiten_avg_entgeltp(grundr_entgeltp: float, grundr_bew_zeiten: int) float[source]#

Compute average number of Entgeltpunkte earned per month of Grundrentenbewertungszeiten.

Parameters
grundr_zuschlag_bonus_entgeltp(grundr_bew_zeiten_avg_entgeltp: float, grundr_zuschlag_höchstwert_m: float, grundr_zeiten: int, ges_rente_params: dict) float[source]#

Calculate additional Entgeltpunkte for pensioner.

In general, the average of monthly Entgeltpunkte earnd in Grundrentenzeiten is doubled, or extended to the individual Höchstwert if doubling would exceed the Höchstwert. Then, the value is multiplied by 0.875.

Legal reference: § 76g SGB VI

Parameters
grundr_zuschlag_eink_m(_grundr_zuschlag_eink_vor_freibetrag_m_tu: float, gemeinsam_veranlagt_tu: bool, rentenwert: float, ges_rente_params: dict) float[source]#

Calculate income which is deducted from Grundrentenzuschlag.

Apply allowances. There are upper and lower thresholds for singles and couples. 60% of income between the upper and lower threshold is credited against the Grundrentenzuschlag. All the income above the upper threshold is credited against the Grundrentenzuschlag.

Reference: § 97a Abs. 4 S. 2, 4 SGB VI

Parameters
grundr_zuschlag_höchstwert_m(grundr_zeiten: int, ges_rente_params: dict) float[source]#

Calculate the maximum allowed number of average Entgeltpunkte (per month) after adding bonus of Entgeltpunkte for a given number of Grundrentenzeiten.

Parameters
grundr_zuschlag_m(grundr_zuschlag_vor_eink_anr_m: float, grundr_zuschlag_eink_m: float) float[source]#

Calculate Grundrentenzuschlag (additional monthly pensions payments resulting from Grundrente)

Parameters
grundr_zuschlag_vor_eink_anr_m(grundr_zuschlag_bonus_entgeltp: float, grundr_bew_zeiten: int, rentenwert: float, ges_rente_zugangsfaktor: float, ges_rente_params: dict) float[source]#

Calculate additional monthly pensions payments resulting from Grundrente, without taking into account income crediting rules.

The Zugangsfaktor is limited to 1 and considered Grundrentezeiten are limited to 35 years (420 months).

Parameters
grunds_im_alter_eink_m(grunds_im_alter_erwerbseink_m: float, grunds_im_alter_priv_rente_m: float, grunds_im_alter_ges_rente_m: float, sonstig_eink_m: float, eink_vermietung_m: float, _grunds_im_alter_kapitaleink_brutto_m: float, eink_st_tu: float, soli_st_tu: float, anz_erwachsene_tu: int, sozialv_beitr_m: float, elterngeld_anr_m: float) float[source]#

Calculate individual income considered in the calculation of Grundsicherung im Alter.

Parameters
  • grunds_im_alter_erwerbseink_m – See grunds_im_alter_erwerbseink_m().

  • grunds_im_alter_priv_rente_m – See grunds_im_alter_priv_rente_m().

  • grunds_im_alter_ges_rente_m – See grunds_im_alter_ges_rente_m().

  • sonstig_eink_m – See sonstig_eink_m().

  • eink_vermietung_m – See eink_vermietung_m().

  • _grunds_im_alter_kapitaleink_brutto_m – See _grunds_im_alter_kapitaleink_brutto_m().

  • eink_st_tu – See eink_st_tu().

  • soli_st_tu – See soli_st_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • sozialv_beitr_m – See sozialv_beitr_m().

  • elterngeld_anr_m – See elterngeld_anr_m().

grunds_im_alter_erwerbseink_m(bruttolohn_m: float, eink_selbst_m: float, arbeitsl_geld_2_params: dict, grunds_im_alter_params: dict) float[source]#

Calculate individual earnings considered in the calculation of Grundsicherung im Alter.

Legal reference: § 82 SGB XII Abs. 3

Note: Freibeträge for income are currently not considered Note: the cap at 1/2 of Regelbedarf was only introduced in 2006 (which is currently not implemented): https://www.buzer.de/gesetz/3415/al3764-0.htm

Parameters
grunds_im_alter_ges_rente_m_ab_2021(ges_rente_m: float, grundr_berechtigt: bool, arbeitsl_geld_2_params: dict, grunds_im_alter_params: dict) float[source]#

Calculate individual public pension benefits which are considered in the calculation of Grundsicherung im Alter since 2021.

Starting from 2021: If eligible for Grundrente, can deduct 100€ completely and 30% of private pension above 100 (but no more than 1/2 of regelbedarf)

Parameters
grunds_im_alter_ges_rente_m_bis_2020(ges_rente_m: float) float[source]#

Calculate individual public pension benefits which are considered in the calculation of Grundsicherung im Alter until 2020.

Until 2020: No deduction is possible.

Parameters

ges_rente_m – See basic input variable ges_rente_m.

grunds_im_alter_m_hh(arbeitsl_geld_2_regelbedarf_m_hh: float, _grunds_im_alter_mehrbedarf_schwerbeh_g_m_hh: float, kindergeld_m_hh: float, kind_unterh_erhalt_m_hh: float, unterhaltsvors_m_hh: float, grunds_im_alter_eink_m_hh: float, erwachsene_alle_rentner_hh: bool, vermögen_bedürft_hh: float, grunds_im_alter_vermög_freib_hh: float) float[source]#

Calculate Grundsicherung im Alter on household level.

# ToDo: There is no check for Wohngeld included as Wohngeld is # ToDo: currently not implemented for retirees.

# ToDo: Grundsicherung im Alter is only paid if all adults in the household # ToDo: are retired. Other households get ALG 2 (This is a simplification by # ToDo: GETTSIM)

Parameters
  • arbeitsl_geld_2_regelbedarf_m_hh – See arbeitsl_geld_2_regelbedarf_m_hh().

  • _grunds_im_alter_mehrbedarf_schwerbeh_g_m_hh – See _grunds_im_alter_mehrbedarf_schwerbeh_g_m_hh().

  • kindergeld_m_hh – See kindergeld_m_hh().

  • kind_unterh_erhalt_m_hh – See basic input variable kind_unterh_erhalt_m_hh.

  • unterhaltsvors_m_hh – See unterhaltsvors_m_hh().

  • grunds_im_alter_eink_m_hh – See grunds_im_alter_eink_m_hh().

  • erwachsene_alle_rentner_hh – See erwachsene_alle_rentner_hh().

  • vermögen_bedürft_hh – See basic input variable vermögen_bedürft_hh.

  • grunds_im_alter_vermög_freib_hh – See grunds_im_alter_vermög_freib_hh().

grunds_im_alter_priv_rente_m(priv_rente_m: float, arbeitsl_geld_2_params: dict, grunds_im_alter_params: dict) float[source]#

Calculate individual private pension benefits considered in the calculation of Grundsicherung im Alter.

Legal reference: § 82 SGB XII Abs. 4

Parameters
grunds_im_alter_vermög_freib_hh(anz_erwachsene_hh: int, anz_kinder_hh: int, grunds_im_alter_params: dict) float[source]#

Calculate wealth not considered for Grundsicherung im Alter on household level.

Parameters
  • anz_erwachsene_hh – See anz_erwachsene_hh().

  • anz_kinder_hh – See anz_kinder_hh().

  • grunds_im_alter_params – See params documentation grunds_im_alter_params.

heizkosten_m_tu(heizkosten_m_hh: float, _anteil_personen_in_haushalt_tu: float) float[source]#

Share of household’s heating expenses attributed to the tax unit.

Parameters
  • heizkosten_m_hh – See basic input variable heizkosten_m_hh.

  • _anteil_personen_in_haushalt_tu – See _anteil_personen_in_haushalt_tu().

in_gleitzone(bruttolohn_m: float, geringfügig_beschäftigt: bool, sozialv_beitr_params: dict) bool[source]#

Check if individual’s income is in midi-job range.

Employed people with their wage in the range of gleitzone pay reduced social insurance contributions.

Legal reference: § 20 Abs. 2 SGB IV

Parameters
Returns

Whether individual’s income is in midi-job range.

jüngstes_kind_oder_mehrling(alter_monate: float, alter_monate_jüngstes_mitglied_hh: float, kind: bool) bool[source]#

Check if person is the youngest child in the household or a twin, triplet, etc. of the youngest child.

# ToDo: replace kind by some age restriction # ToDo: Check definition as relevant for Elterngeld. Currently, it is calculated as # ToDo: age not being larger than 0.1 of a month

Parameters
  • alter_monate – See alter_monate().

  • alter_monate_jüngstes_mitglied_hh – See alter_monate_jüngstes_mitglied_hh().

  • kind – See basic input variable kind.

kapitaleink(kapitaleink_brutto: float, eink_st_abzuege_params: dict) float[source]#

Capital income minus Sparerpauschbetrag.

Parameters
kapitaleink_brutto(kapitaleink_brutto_m: float) float[source]#

Aggregate monthly gross capital income to yearly income.

Parameters

kapitaleink_brutto_m – See basic input variable kapitaleink_brutto_m.

kind_ab_14_bis_17(alter: int, kind: bool) bool[source]#

Calculate if child between 14 and 17 years old. :param alter: See basic input variable alter. :param kind: See basic input variable kind.

kind_ab_14_bis_24(alter: int, kind: bool) bool[source]#

Calculate if child between 14 and 24 years old.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

kind_ab_18_bis_24(alter: int, kind: bool) bool[source]#

Calculate if child between 18 and 24 years old. :param alter: See basic input variable alter. :param kind: See basic input variable kind.

kind_ab_6_bis_13(alter: int, kind: bool) bool[source]#

Calculate if child between 6 and 13 years old.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

kind_bis_10(alter: int, kind: bool) bool[source]#

Calculate if child under the age of 11.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

kind_bis_15(alter: int, kind: bool) bool[source]#

Calculate if child under the age of 16.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

kind_bis_17(alter: int, kind: bool) bool[source]#

Calculate if underage person.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

kind_bis_5(alter: int, kind: bool) bool[source]#

Calculate if child under the age of 6.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

kind_bis_6(alter: int, kind: bool) bool[source]#

Calculate if child under the age of 7.

Parameters
  • alter – See basic input variable alter.

  • kind – See basic input variable kind.

kind_unterh_zahlbetr_m(kind_unterh_anspr_m: float, kindergeld_m: float, unterhalt_params: dict, kind: bool) float[source]#

Monthly actual child alimony payments to be received after deductions.

Parameters
  • kind_unterh_anspr_m – See basic input variable kind_unterh_anspr_m.

  • kindergeld_m – See kindergeld_m().

  • unterhalt_params – See params documentation unterhalt_params.

  • kind – See basic input variable kind.

kinderbonus_m(kindergeld_m: float, kindergeld_params: dict) float[source]#

Calculate Kinderbonus for an individual child.

(one-time payment, non-allowable against transfer payments)

Parameters
kinderfreib_für_soli_st_lohnst(steuerklasse: int, anz_kinder_mit_kindergeld_tu: float, eink_st_abzuege_params: dict) float[source]#

Calculate Child Allowance for Lohnsteuer-Soli.

For the purpose of Soli on Lohnsteuer, the child allowance not only depends on the number of children, but also on the steuerklasse

kinderfreib_günstiger_tu(eink_st_ohne_kinderfreib_tu: float, eink_st_mit_kinderfreib_tu: float, eink_st_rel_kindergeld_tu: float) bool[source]#

Return whether Kinderfreibetrag is more favorable than Kindergeld.

Parameters
kindergeld_anspruch_nach_lohn(alter: int, in_ausbildung: bool, bruttolohn_m: float, kindergeld_params: dict) bool[source]#

Determine kindergeld eligibility for an individual child depending on kids wage.

Before 2011, there was an income ceiling for children returns a boolean variable whether a specific person is a child eligible for child benefit

Parameters
kindergeld_anspruch_nach_stunden(alter: int, in_ausbildung: bool, arbeitsstunden_w: float, kindergeld_params: dict) bool[source]#

Determine kindergeld eligibility for an individual child depending on working hours.

The current eligibility rule is, that kids must not work more than 20 hour and are below 25.

Parameters
  • alter – See basic input variable alter.

  • in_ausbildung – See in_ausbildung().

  • arbeitsstunden_w – See arbeitsstunden_w().

  • kindergeld_params – See params documentation kindergeld_params.

Returns

Boolean indiciating kindergeld eligibility.

kindergeld_m(kindergeld_anspruch: bool, kumulativer_kindergeld_anspruch_tu: int, kindergeld_params: dict) float[source]#

Calculate kindergeld for an individual child.

Parameters
  • kindergeld_anspruch – See kindergeld_anspruch().

  • kumulativer_kindergeld_anspruch_tu – See kumulativer_kindergeld_anspruch_tu().

  • kindergeld_params – See params documentation kindergeld_params.

kinderzuschl_bruttoeink_eltern_m(arbeitsl_geld_2_bruttoeink_m: float, eltern: bool) float[source]#

Calculate parental gross income for calculation of child benefit.

This variable is used to check whether the minimum income threshold for child benefit is met.

Parameters
kinderzuschl_eink_anrechn_m_tu(kinderzuschl_eink_eltern_m_tu: float, kinderzuschl_eink_relev_m_tu: float, kinderzuschl_params: dict) float[source]#

Calculate parental income subtracted from child benefit.

(§6a (6) S. 3 BKGG)

Parameters
kinderzuschl_eink_eltern_m(arbeitsl_geld_2_eink_m: float, eltern: bool) float[source]#

Parental income (after deduction of taxes, social insurance contributions, and other deductions) for calculation of child benefit.

Parameters
  • arbeitsl_geld_2_eink_m_tu – See arbeitsl_geld_2_eink_m_tu().

  • eltern – See basic input variable eltern.

kinderzuschl_eink_max_m_tu(kinderzuschl_eink_relev_m_tu: float, _kinderzuschl_anz_kinder_anspruch_tu: int, kinderzuschl_params: dict) float[source]#

Calculate maximum income to be eligible for additional child benefit (Kinderzuschlag).

There is a maximum income threshold, depending on the need, plus the potential kiz receipt (§6a (1) Nr. 3 BKGG).

Parameters
kinderzuschl_eink_min_m_tu(anz_kinder_tu: int, alleinerz_tu: bool, kinderzuschl_params: dict) float[source]#

Calculate minimal claim of child benefit (kinderzuschlag).

Min income to be eligible for KIZ (different for singles and couples) (§6a (1) Nr. 2 BKGG).

Parameters
  • anz_kinder_hh – See basic input variable anz_kinder_hh.

  • alleinerz_hh – See basic input variable alleinerz_hh.

  • kinderzuschl_params – See params documentation kinderzuschl_params.

kinderzuschl_eink_regel_m_tu(_arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh: float, alleinerz_tu: bool, arbeitsl_geld_2_params: dict) float[source]#

Calculate income relevant for calculation of child benefit since 2011.

Parameters
  • _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh – See _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh().

  • alleinerz_tu – See alleinerz_tu().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

kinderzuschl_eink_regel_m_tu_arbeitsl_geld_2_params_old(_arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh: float, alleinerz_tu: bool, arbeitsl_geld_2_params: dict) float[source]#

Calculate income relevant for calculation of child benefit until 2010.

Parameters
  • _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh – See _arbeitsl_geld_2_alleinerz_mehrbedarf_m_hh().

  • alleinerz_tu – See alleinerz_tu().

  • arbeitsl_geld_2_params – See params documentation arbeitsl_geld_2_params.

kinderzuschl_eink_relev_m_tu(kinderzuschl_eink_regel_m_tu: float, kinderzuschl_kost_unterk_m_tu: float) float[source]#

Aggregate relevant income and rental costs.

Parameters
kinderzuschl_kindereink_abzug_m(kindergeld_anspruch: bool, bruttolohn_m: float, kind_unterh_erhalt_m: float, unterhaltsvors_m: float, kinderzuschl_params: dict) float[source]#

Child benefit after children income for each eligible child is considered.

(§6a (3) S.3 BKGG)

Parameters
  • kindergeld_anspruch – See kindergeld_anspruch().

  • bruttolohn_m – See basic input variable bruttolohn_m.

  • kind_unterh_erhalt_m – See basic input variable kind_unterh_erhalt_m.

  • unterhaltsvors_m – See unterhaltsvors_m().

  • kinderzuschl_params – See params documentation kinderzuschl_params.

kinderzuschl_kost_unterk_m_tu(_kinderzuschl_wohnbedarf_eltern_anteil_tu: float, bruttokaltmiete_m_hh: float, heizkosten_m_hh: float, _anteil_personen_in_haushalt_tu: float) float[source]#

Calculate costs of living eligible to claim.

Unlike ALG2, there is no check on whether living costs are “appropriate”.

Parameters
kinderzuschl_m_hh(_kinderzuschl_nach_vermög_check_m_tu: float, kinderzuschl_vorrang_hh: bool, wohngeld_kinderzuschl_vorrang_hh: bool, anz_rentner_hh: int) float[source]#

Aggregate child benefit on household level.

Parameters
kinderzuschl_vorrang_hh(_kinderzuschl_nach_vermög_check_m_tu: float, arbeitsl_geld_2_vor_vorrang_m_hh: float) bool[source]#

Check if child benefit has priority.

Parameters
lohnst_eink(bruttolohn_m: float, steuerklasse: int, eink_st_abzuege_params: dict, vorsorgepauschale: float) float[source]#

Calculate tax base for Lohnsteuer (withholding tax on earnings).

Parameters
  • bruttolohn_m – See basic input variable bruttolohn_m.

  • steuerklasse – See steuerklasse()

  • eink_st_abzuege_params – See eink_st_abzuege_params()

  • vorsorgepauschale – See vorsorgepauschale()

lohnst_m(lohnst_eink: float, eink_st_params: dict, lohn_st_params: dict, steuerklasse: int) float[source]#

Calls _lohnst_m with individual income

lohnst_mit_kinderfreib_m(lohnst_eink: float, kinderfreib_für_soli_st_lohnst: float, eink_st_params: dict, lohn_st_params: dict, steuerklasse: int) float[source]#

Same as lohnst_m, but with an alternative income definition that takes child allowance into account. Important only for calculation of soli on Lohnsteuer!

midijob_bemessungsentgelt_m_ab_10_2022(bruttolohn_m: float, midijob_faktor_f: float, minijob_grenze: float, sozialv_beitr_params: dict) float[source]#

Total income subject to social insurance contributions for employers a and employees for midijob since October 2022. In the law, the considered income is referred to as “beitragspflichtige Einnahme”.

Beitragspflichtige Einnahme is the reference income for midijobs subject to employer and employee social insurance contribution.

Legal reference: Changes in § 20 SGB IV from 01.10.2022

Parameters
Returns

Income subject to social insurance contributions for midijob.

midijob_bemessungsentgelt_m_bis_09_2022(bruttolohn_m: float, midijob_faktor_f: float, minijob_grenze: float, sozialv_beitr_params: dict) float[source]#

Income subject to social insurance contributions for midijob until September 2022.

Bemessungsgeld (Gleitzonenentgelt) is the reference income for midijobs subject to social insurance contribution.

Legal reference: § 163 Abs. 10 SGB VI

Parameters
Returns

Income subject to social insurance contributions for midijob.

midijob_faktor_f_mit_minijob_st(sozialv_beitr_params: dict, ges_krankenv_beitr_satz: float, _ges_krankenv_beitr_satz_arbeitg: float) float[source]#

Faktor F which is needed for the calculation of Bemessungsentgelt (beitragspflichtige Einnahme) of midijobs before October 2022. It is calculated as the ratio of the sum of lump-sum contributions for marginal employment (30 %) divided by the total social security contribution rate (Gesamtsozialversicherungsbeitragssatz).

Legal reference: § 163 Abs. 10 SGB VI

Parameters
Returns

Income subject to social insurance contributions for midijob.

midijob_faktor_f_ohne_minijob_st(sozialv_beitr_params: dict, ges_krankenv_beitr_satz: float, _ges_krankenv_beitr_satz_arbeitg: float) float[source]#

Faktor F which is needed for the calculation of Bemessungsentgelt (beitragspflichtige Einnahme) of midijobs since October 2022. It is calculated as the ratio of the sum of lump-sum contributions for marginal employment (28 %) divided by the total social security contribution rate (Gesamtsozialversicherungsbeitragssatz). Since October 2022 the sum of lump-sum contributions for marginal employment does not include the 2% flat-rate tax.

Legal reference: § 163 Abs. 10 SGB VI

Parameters
Returns

Income subject to social insurance contributions for midijob.

minijob_grenze(sozialv_beitr_params: dict) float[source]#

Obtains marginal job threshold since 10/2022. Since then, it is calculated from the statutory minimum wage.

Parameters

sozialv_beitr_params – See params documentation sozialv_beitr_params.

Returns

Marginal Job Threshold

minijob_grenze_ost(sozialv_beitr_params: dict) float[source]#

Obtains marginal job thresholds for East Germany until September 2022.

Parameters

sozialv_beitr_params – See params documentation sozialv_beitr_params.

Returns

Marginal Job Threshold

minijob_grenze_unterschied_ost_west(wohnort_ost: bool, minijob_grenze_west: float, minijob_grenze_ost: float) float[source]#

Select the income threshold depending on place of living.

Parameters
minijob_grenze_west(sozialv_beitr_params: dict) float[source]#

Obtains marginal job thresholds for West Germany until September 2022.

Parameters

sozialv_beitr_params – See params documentation sozialv_beitr_params.

Returns

Marginal Job Threshold

piecewise_polynomial(x, thresholds, rates, intercepts_at_lower_thresholds, rates_multiplier=None)[source]#

Calculate value of the piecewise function at x.

Parameters
  • x (pd.Series) – Series with values which piecewise polynomial is applied to.

  • thresholds (numpy.array) – A one-dimensional array containing the thresholds for all intervals.

  • rates (numpy.ndarray) – A two-dimensional array where columns are interval sections and rows correspond to the nth polynomial.

  • intercepts_at_lower_thresholds (numpy.ndarray) – The intercepts at the lower threshold of each interval.

  • rates_multiplier (pd.Series, float) – Multiplier to create individual or scaled rates. If given and not equal to 1, the function also calculates new intercepts.

Returns

out (float) – The value of x under the piecewise function.

referenz_alter_abschlag(ges_rente_frauen_altersgrenze: float, _ges_rente_langj_altersgrenze: float, ges_rente_vorauss_frauen: bool, ges_rente_vorauss_langj: bool) float[source]#

Determines reference age for deduction calculation in case of early retirement (Zugangsfaktor). Nan if person is not eligible for early retirement. (The regular pension and the pension for very long term insured cannot be claimed early.)

Parameters
regulär_beschäftigt(bruttolohn_m: float, sozialv_beitr_params: dict) bool[source]#

Check if person is in regular employment.

Employees earning more than the midijob threshold, are subject to all ordinary income and social insurance contribution regulations. In gettsim we call these regular employed.

Parameters
Returns

Whether regular employed persons.

rente_ertragsanteil(jahr_renteneintr: int, eink_st_params: dict) float[source]#

Calculate the share of pensions subject to income taxation.

Parameters
rente_vorj_vor_grundr_proxy_m(rentner: bool, rentenwert_vorjahr: float, priv_rente_m: float, jahr_renteneintr: int, geburtsjahr: int, alter: int, entgeltp: float, ges_rente_zugangsfaktor: float) float[source]#

Estimated amount of public pensions of last year excluding Grundrentenzuschlag.

Parameters
rentenwert(wohnort_ost: bool, ges_rente_params: dict) float[source]#

Select the rentenwert depending on place of living.

Parameters
rentenwert_vorjahr(wohnort_ost: bool, ges_rente_params: dict) float[source]#

Select the rentenwert of the last year depending on place of living.

Parameters
soli_st_lohnst_m(lohnst_mit_kinderfreib_m: float, soli_st_params: dict) float[source]#

Calculates the monthly Solidarity Surcharge on Lohnsteuer (withholding tax on earnings).

Parameters
soli_st_tu(eink_st_mit_kinderfreib_tu: float, anz_erwachsene_tu: int, abgelt_st_tu: float, soli_st_params: dict) float[source]#

Calculate the Solidarity Surcharge on tax unit level.

Solidaritätszuschlaggesetz (SolZG) in 1991 and 1992. Solidaritätszuschlaggesetz 1995 (SolZG 1995) since 1995.

The Solidarity Surcharge is an additional tax on top of the income tax which is the tax base. As opposed to the ‘standard’ income tax, child allowance is always deducted for tax base calculation.

There is also Solidarity Surcharge on the Capital Income Tax, but always with Solidarity Surcharge tax rate and no tax exempt level. §3 (3) S.2 SolzG 1995.

Parameters
sonderausgaben_betreuung_tu(eink_st_abzuege_params: dict, eink_st_abz_betreuungskost_tu: float) float[source]#

Sonderausgaben for childcare on tax unit level.

We follow 10 Abs.1 Nr. 5 EStG. You can details here https://www.buzer.de/s1.htm?a=10&g=estg.

Parameters
  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

  • eink_st_abz_betreuungskost_tu – See eink_st_abz_betreuungskost_tu().

sozialv_beitr_arbeitg_m(ges_pflegev_beitr_arbeitg_m: float, ges_krankenv_beitr_arbeitg_m: float, ges_rentenv_beitr_arbeitg_m: float, arbeitsl_v_beitr_arbeitg_m: float) float[source]#

Sum of all social insurance contributions of the respective employer.

Parameters
sozialv_beitr_m(ges_pflegev_beitr_m: float, ges_krankenv_beitr_m: float, ges_rentenv_beitr_m: float, arbeitsl_v_beitr_m: float) float[source]#

Sum of all social insurance contributions of an individual.

Parameters
sum_eink_mit_kapital_eink(sum_eink_ohne_kapital_eink: float, kapitaleink: float) float[source]#

Sum of gross incomes with capital income.

Parameters
  • sum_eink_ohne_kapital_eink – See sum_eink_ohne_kapital().

  • kapitaleink – See kapitaleink().

sum_eink_ohne_kapital_eink(eink_selbst: float, _zu_verst_eink_abhängig_beschäftigt: float, eink_vermietung: float, eink_rente_zu_verst: float) float[source]#

Sum of gross incomes without capital income.

Since 2009 capital income is not subject to normal taxation. :param eink_selbst: See eink_selbst(). :param _zu_verst_eink_abhängig_beschäftigt: See _zu_verst_eink_abhängig_beschäftigt(). :param eink_vermietung: See eink_vermietung(). :param eink_rente_zu_verst: See eink_rente_zu_verst().

sum_ges_rente_priv_rente_m(priv_rente_m: float, ges_rente_m: float) float[source]#

Calculate total individual pension as sum of private and public pension.

Parameters
unterhaltsvors_m(alleinerz_tu: bool, alter: int, unterhaltsvorschuss_eink_m_tu: float, kind_unterh_erhalt_m: float, unterhalt_params: dict, unterhaltsvors_params: dict, kindergeld_params: dict) float[source]#

Calculate advance on alimony payment (Unterhaltsvorschuss).

Single Parents get alimony payments for themselves and for their child from the ex partner. If the ex partner is not able to pay the child alimony, the government pays the child alimony to the mother (or the father, if he has the kids).

According to §1 Abs.1 Nr.3 UhVorschG those single parents are entitled to advance alimony payments, who do not or not regularly receive child alimony payments or orphans’ benefits (Waisenbezüge) in at least the amount specified in §2 Abs.1 and 2 UhVorschG. The child alimonay payment paid by the other parent is credited against the amount of the advance alimony payments (§2 Abs.3 Nr.1 UhVorschG).

The amount is specified in §1612a BGB and, ultimately, in Mindestunterhaltsverordnung.

# ToDo: Result was rounded up in previous code. Check if this is correct and # ToDo: implement rounding spec accordingly

Parameters
unterhaltsvorschuss_eink_m_tu(bruttolohn_m_tu: float, sonstig_eink_m_tu: float, eink_selbst_m_tu: float, eink_vermietung_m_tu: float, kapitaleink_brutto_m_tu: float, sum_ges_rente_priv_rente_m_tu: float, arbeitsl_geld_m_tu: float) float[source]#

Calculate relevant income for advance on alimony payment on tax unit level.

Parameters
  • bruttolohn_m_tu – See bruttolohn_m_tu().

  • sonstig_eink_m_tu – See sonstig_eink_m_tu().

  • eink_selbst_m_tu – See eink_selbst_m_tu().

  • eink_vermietung_m_tu – See eink_vermietung_m_tu().

  • kapitaleink_brutto_m_tu – See kapitaleink_brutto_m_tu().

  • sum_ges_rente_priv_rente_m_tu – See sum_ges_rente_priv_rente_m_tu().

  • arbeitsl_geld_m_tu – See arbeitsl_geld_m_tu().

vorsorgeaufw_alter_tu(ges_rentenv_beitr_m_tu: float, priv_rentenv_beitr_m_tu: float, anz_erwachsene_tu: int, eink_st_abzuege_params: dict) float[source]#

Determine contributions to retirement savings deductible from taxable income.

Parameters
  • ges_rentenv_beitr_m_tu – See ges_rentenv_beitr_m_tu().

  • priv_rentenv_beitr_m_tu – See priv_rentenv_beitr_m_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

vorsorgeaufw_alter_tu_einfuehrung(ges_rentenv_beitr_m_tu: float, priv_rentenv_beitr_m_tu: float, anz_erwachsene_tu: int, eink_st_abzuege_params: dict) float[source]#

Determine contributions to retirement savings deductible from taxable income.

The share of deductible contributions increases each year from 60% in 2005 to 100% in 2025.

Parameters
  • ges_rentenv_beitr_m_tu – See ges_rentenv_beitr_m_tu().

  • priv_rentenv_beitr_m_tu – See priv_rentenv_beitr_m_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

vorsorgeaufw_tu_ab_2020(vorsorgeaufw_alter_tu: float, ges_pflegev_beitr_m_tu: float, ges_krankenv_beitr_m_tu: float, arbeitsl_v_beitr_m_tu: float, anz_erwachsene_tu: int, eink_st_abzuege_params: dict) float[source]#

Calculate Vorsorgeaufwendungen since 2020.

Vorsorgeaufwendungen after the regime implemented in 2010 is in full effect, see § 10 (3) EStG.

Parameters
  • vorsorgeaufw_alter_tu – See vorsorgeaufw_alter_tu().

  • ges_pflegev_beitr_m_tu – See ges_pflegev_beitr_m_tu().

  • ges_krankenv_beitr_m_tu – See ges_krankenv_beitr_m_tu().

  • arbeitsl_v_beitr_m_tu – See arbeitsl_v_beitr_m_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

vorsorgeaufw_tu_bis_2004(_vorsorgeaufw_vom_lohn_tu_bis_2004: float, ges_krankenv_beitr_m_tu: float, ges_rentenv_beitr_m_tu: float, anz_erwachsene_tu: int, eink_st_abzuege_params: dict) float[source]#

Calculate Vorsorgeaufwendungen until 2004.

Parameters
  • _vorsorgeaufw_vom_lohn_tu_bis_2004 – See _vorsorgeaufw_vom_lohn_tu_bis_2004().

  • ges_krankenv_beitr_m_tu – See ges_krankenv_beitr_m_tu().

  • ges_rentenv_beitr_m_tu – See ges_rentenv_beitr_m_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

vorsorgeaufw_tu_einführung_ab_2005_bis_2009(vorsorgeaufw_alter_tu: float, ges_krankenv_beitr_m_tu: float, arbeitsl_v_beitr_m_tu: float, ges_pflegev_beitr_m_tu: float, anz_erwachsene_tu: int, eink_st_abzuege_params: dict) float[source]#

Calculate Vorsorgeaufwendungen from 2005 to 2009, new mode.

Parameters
  • vorsorgeaufw_alter_tu – See vorsorgeaufw_alter_tu().

  • ges_krankenv_beitr_m_tu – See ges_krankenv_beitr_m_tu().

  • arbeitsl_v_beitr_m_tu – See arbeitsl_v_beitr_m_tu().

  • ges_pflegev_beitr_m_tu – See ges_pflegev_beitr_m_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.

vorsorgeaufw_tu_einführung_ab_2010_bis_2019(vorsorgeaufw_tu_ab_2020: float) float[source]#
vorsorgeaufw_tu_guenstiger(vorsorgeaufw_tu_bis_2004: float, vorsorgeaufw_tu_einführung: float) float[source]#

Calculate Vorsorgeaufwendungen from 2005 to 2019.

With the 2005 reform, no taxpayer was supposed to be affected negatively. Therefore, one needs to compute amounts under the 2004 and 2005 regimes and take the more favourable one.

After a supreme court ruling, the 2005 rule had to be changed in 2010. Therefore, one needs to compute amounts under the 2004 and 2010 regimes and take the more favourable one. (§10 (3a) EStG).

Sidenote: The 2010 rules are by construction at least as beneficial as the 2005 regime, so there is no need for a separate check.

Parameters
vorsorgepauschale_ab_2005_bis_2009() float[source]#
vorsorgepauschale_ab_2010(bruttolohn_m: float, steuerklasse: int, wohnort_ost: bool, ges_krankenv_zusatzbeitr_satz: float, ges_pflegev_zusatz_kinderlos: bool, eink_st_abzuege_params: dict, sozialv_beitr_params: dict) float[source]#

Calculate Vorsorgepauschale for Lohnsteuer valid since 2010. Those are deducted from gross earnings. Idea is similar, but not identical, to Vorsorgeaufwendungen used when calculating Einkommensteuer.

Parameters
Returns

Individual Vorsorgepauschale on annual basis

wohngeld_abzüge_st_sozialv_m(eink_st_tu: float, ges_rentenv_beitr_m: float, ges_krankenv_beitr_m: float, kind: bool, wohngeld_params: dict) float[source]#

Calculate housing benefit subtractions on the individual level.

Note that eink_st_tu is used as an approximation for taxes on income (as mentioned in § 16 WoGG Satz 1 Nr. 1).

Parameters
wohngeld_arbeitendes_kind(bruttolohn_m: float, kindergeld_anspruch: bool) bool[source]#

Check if children are working.

Parameters
  • bruttolohn_m – See basic input variable bruttolohn_m.

  • kindergeld_anspruch – See kindergeld_anspruch().

wohngeld_eink_freib_m_ab_2016(bruttolohn_m: float, wohngeld_arbeitendes_kind: bool, behinderungsgrad: int, alleinerz: bool, wohngeld_params: dict) float[source]#

Calculate housing benefit subtracting for one individual since 2016.

Parameters
wohngeld_eink_freib_m_bis_2015(bruttolohn_m: float, wohngeld_arbeitendes_kind: bool, behinderungsgrad: int, alleinerz: bool, kind: bool, anz_kinder_bis_10_tu: int, wohngeld_params: dict) float[source]#

Calculate housing benefit subtractions for one individual until 2015.

Parameters
wohngeld_eink_m_hh(haushaltsgröße_hh: int, wohngeld_eink_freib_m_hh: float, wohngeld_eink_vor_freib_m_hh: float, wohngeld_params: dict) float[source]#

Calculate final income relevant for calculation of housing benefit on household level. Reference: § 13 WoGG

Parameters
  • haushaltsgröße_hh – See haushaltsgröße_hh().

  • wohngeld_eink_freib_m_hh – See wohngeld_eink_freib_m_hh().

  • wohngeld_eink_vor_freib_m_hh – See wohngeld_eink_vor_freib_m_hh().

  • wohngeld_params – See params documentation wohngeld_params.

wohngeld_eink_vor_freib_m_mit_elterngeld(eink_selbst: float, eink_abhängig_beschäftigt: float, kapitaleink_brutto: float, eink_vermietung: float, arbeitsl_geld_m: float, sonstig_eink_m: float, eink_rente_zu_verst_m: float, kind_unterh_erhalt_m: float, unterhaltsvors_m: float, elterngeld_anr_m: float, wohngeld_abzüge_st_sozialv_m: float) float[source]#

Sum gross incomes relevant for housing benefit calculation on individual level and deducting individual housing benefit subtractions. Reference: § 14 WoGG

Parameters
wohngeld_eink_vor_freib_m_ohne_elterngeld(eink_selbst: float, eink_abhängig_beschäftigt: float, kapitaleink_brutto: float, eink_vermietung: float, arbeitsl_geld_m: float, sonstig_eink_m: float, eink_rente_zu_verst_m: float, kind_unterh_erhalt_m: float, unterhaltsvors_m: float, wohngeld_abzüge_st_sozialv_m: float) float[source]#

Sum gross incomes relevant for housing benefit calculation on individual level and deducting individual housing benefit subtractions. Reference: § 14 WoGG

Parameters
wohngeld_kinderzuschl_vorrang_hh(wohngeld_nach_vermög_check_m_hh: float, _kinderzuschl_nach_vermög_check_m_tu: float, arbeitsl_geld_2_vor_vorrang_m_hh: float) bool[source]#

Check if housing and child benefit have priority.

Parameters
wohngeld_m_hh(wohngeld_nach_vermög_check_m_hh: float, wohngeld_vorrang_hh: bool, wohngeld_kinderzuschl_vorrang_hh: bool, erwachsene_alle_rentner_hh: bool) float[source]#

Calculate final housing benefit on household level.

Parameters
wohngeld_miete_m_hh_ab_2009(mietstufe: int, haushaltsgröße_hh: int, bruttokaltmiete_m_hh: float, wohngeld_min_miete_m_hh: float, wohngeld_params: dict) float[source]#

Maximum rent considered in housing benefit since 2009.

Parameters
wohngeld_miete_m_hh_bis_2008(mietstufe: int, immobilie_baujahr_hh: int, haushaltsgröße_hh: int, bruttokaltmiete_m_hh: float, wohngeld_min_miete_m_hh: float, wohngeld_params: dict) float[source]#

Maximal rent subject housing benefit calculation on household level until 2008.

Parameters
wohngeld_min_miete_m_hh(haushaltsgröße_hh: int, wohngeld_params: dict) float[source]#

Calculate minimal monthly rent subject housing benefit calculation on household level.

Parameters
  • haushaltsgröße_hh – See haushaltsgröße_hh().

  • wohngeld_params – See params documentation wohngeld_params.

wohngeld_nach_vermög_check_m_hh(wohngeld_vor_vermög_check_m_hh: float, vermögen_bedürft_hh: float, haushaltsgröße_hh: int, wohngeld_params: dict) float[source]#

Set preliminary housing benefit to zero if it exceeds the wealth exemption.

The payment depends on the wealth of the household and the number of household members.

Parameters
wohngeld_vor_vermög_check_m_hh(haushaltsgröße_hh: int, wohngeld_eink_m_hh: float, wohngeld_miete_m_hh: float, wohngeld_params: dict) float[source]#

Calcualte preliminary housing benefit.

Parameters
  • haushaltsgröße_hh – See haushaltsgröße_hh().

  • wohngeld_eink_m_hh – See wohngeld_eink_m_hh().

  • wohngeld_miete_m_hh – See wohngeld_miete_m_hh().

  • wohngeld_params – See params documentation wohngeld_params.

wohngeld_vorrang_hh(wohngeld_nach_vermög_check_m_hh: float, arbeitsl_geld_2_vor_vorrang_m_hh: float) bool[source]#

Check if housing benefit has priority.

Parameters
zu_verst_eink_mit_kinderfreib_tu(_zu_verst_eink_ohne_kinderfreib_tu: float, eink_st_kinderfreib_tu: float) float[source]#

Calculate taxable income with child allowance on tax unit level.

Parameters
  • _zu_verst_eink_ohne_kinderfreib_tu – See _zu_verst_eink_ohne_kinderfreib_tu().

  • eink_st_kinderfreib_tu – See eink_st_kinderfreib_tu().

zu_verst_eink_tu(zu_verst_eink_mit_kinderfreib_tu: float, _zu_verst_eink_ohne_kinderfreib_tu: float, kinderfreib_günstiger_tu: bool) float[source]#

Calculate taxable income on tax unit level.

Parameters
zu_verst_kapitaleink_tu(kapitaleink_brutto_tu: float, anz_erwachsene_tu: int, eink_st_abzuege_params: dict) float[source]#

Calculate taxable income on tax unit level.

Parameters
  • kapitaleink_brutto_tu – See kapitaleink_brutto_tu().

  • anz_erwachsene_tu – See anz_erwachsene_tu().

  • eink_st_abzuege_params – See params documentation eink_st_abzuege_params.