Changes#
This is a record of all past gettsim
releases and what went into them in reverse
chronological order. Since v1.0, GETTSIM’s versioning follows a rule inspired by
semantic versioning. Thus, for a given version number
major.counter
major
is incremented when we make incompatible API changes, for example, changing the arguments tomain
in a major way or we completely change the modelling of some taxes or transfers.counter
is incremented when we add functionality to the taxes and transfers system or change it in some non-fundamental way.
All releases are available on Anaconda.org.
Unreleased#
#1093 Fix taxation of pensions and add some missing parameters of the Wachstumschancengesetz 2024. (@MImmesberger)
#1094 Make Vorsorgeaufwendungen a param function and update parameters of knappschaftliche RV and Kinderbetreuungskosten in ESt. (@MImmesberger)
v1.0 — 2025-08-26#
#1074 Make docs ready for 1.0 release. (@MImmesberger, @hmgaudecker)
#1086 Tutorial for gettsim-personas. (@MImmesberger)
#1083 Specify a fixed colormap for nodes in
plot.dag.tt
(@hmgaudecker)#1085 Let functions end on time; correct calculation of “Einkünfte aus Kapitalvermögen” (@hmgaudecker)
#1084 Make sure GETTSIM interface is in sync with TTSIM interface (@hmgaudecker)
#1076 Optimize
bürgergeld__in_anderer_bg_als_kindergeldempfänger
(@JuergenWiemers)#1072 How-to guide for
plot.dag.tt
(@hmgaudecker)#1071 Move to new plotting interface. (@MImmesberger)
#1067 Separate Bürgergeld from Arbeitslosengeld 2 (@MImmesberger)
#1064 Improve paths handling, small fixes (@hmgaudecker).
#1062 Fix some end dates (@hmgaudecker)
#1061 Remove private directories installed in site-packages (@hmgaudecker)
#1060 Convert some ALG 2 parameters to ConsecutiveIntTableParamValue (@MImmesberger)
#1059 Be consistent with ‘Erwerbseinkommen’ meaning income from self-employment and regular employment (@MImmesberger)
#1058 Add dedicated namespace for Einnahmen (@MImmesberger)
#1057 Use fail/warn mechanism for TT DAG elements (@hmgaudecker)
#1056 Updates to plotting functions (@MImmesberger)
#1054 DOC: Simple example and comprehensive how-to notebook (@MImmesberger)
#804 The PR that has been collecting all changes over the past 7 months, which have been listed individually.
#1052 Remove what has been extracted to TTSIM, add dependency on ttsim-backend (@hmgaudecker)
#1050 Allow input template creation when path to root node traverses an automatically created function (@MImmesberger)
#1048 Raise an error if invalid input paths are provided to main (@hmgaudecker)
#1046 Fail if backend has changed (@hmgaudecker)
#1046 Fail if backend has changed (@hmgaudecker)
#1043 Raise more errors during vectorization (@hmgaudecker, @timmens)
#1044 Fail if ParamFunctions depends on ColumnObjects (@MImmesberger, @hmgaudecker)
#1042 Add copy_environment function (@timmens, @hmgaudecker)
#1041 Don’t create DAG cycles via automatically added functions (@MImmesberger)
#1040 Fix
vorjahr
(and similar) input names and their namespaces (@MImmesberger)#1035 Change the handling of
policy_date
,evaluation_date
; removedate
(@hmgaudecker, @MImmesberger)#1032 Clean up Wohngeld, Werbungskosten, Minjobs around the introduction of exemptions to social insurance contributions (@MImmesberger)
#1038 Rename
ist_selbstständig
toist_hauptberuflich_selbstständig
(@MImmesberger)#1037 Improve performance of
processed_data
(@JuergenWiemers, @hmgaudecker, @mj023)#1031 Fix #1006, Improve error message when input data are missing and results are requested (@MImmesberger, @hmgaudecker)
#1029 Change namespace of private Renteneinnahmen (@MImmesberger)
#1033 Tighten ruff checks (@hmgaudecker, @MImmesberger)
#1027 Better fail/warn tests (@MImmesberger, @hmgaudecker)
#1017 Better error message for missing input data (@MImmesberger, @hmgaudecker)
#1026 Fix bug in
fail_if.input_df_mapper_columns_missing_in_df
(@MImmesberger)#1028 Change calls of main so that
main_target
/main_targets
is the first argument (@hmgaudecker)#1024 Split up
fail_and_warn
argument ofmain
(@MImmesberger, @hmgaudecker)#1016 Turn fail_ifs and warn_ifs on + let
main
return a pytree, update pixi environments. (@MImmesberger, @timmens, @hmgaudecker) Unpublished#1018 Enable annotations for interface / tax-transfer functions (@hmgaudecker, @MImmesberger)
#1013 Fix Rente Hinzuverdienstgrenze (@MImmesberger)
#1015 Remaining parts of 2025 parameter update (@MImmesberger)
#1012 Rente Angleichung Ost/West (@MImmesberger)
#1011 Simple renamings. (@MImmesberger, @hmgaudecker)
#1007 Remove
kind
input (@MImmesberger, @hmgaudecker)#1000 Use individual-specific Zusatzbeitrag (@MImmesberger, @hmgaudecker)
#998 Add N-Dimensional Lookup Table (@mj023, @hmgaudecker)
#1001 Rename: output -> main_target(s), targets -> tt_targets (@hmgaudecker, @MImmesberger)
#997 Improve errors when executing the interface DAG (@MImmesberger, @hmgaudecker)
#996 Updates to interface (@MImmesberger, @hmgaudecker)
#991 Implement remaining interface components (@hmgaudecker, @MImmesberger)
#993 Upserting of params: Makes all arguments but
value
of the params dataclasses optional (@MImmesberger, @hmgaudecker)#992 Fail if length of data input arrays differs. (@MImmesberger)
#990 Remove config elements from policy environment (@MImmesberger, @hmgaudecker)
#986 Make GETTSIM functions jittable (@hmgaudecker, @MImmesberger, @mj023)
#987 Run fail_if functions first (@hmgaudecker, @MImmesberger)
#985 Make date input dependent, improve logic of
InputDependentInterfaceFunction
s (@MImmesberger, @hmgaudecker)#984 Add ‘output’ keyword to main, fix tests (@hmgaudecker)
#953 Hierarchical interface (@hmgaudecker, @MImmesberger, @mj023, @timmens)
#957 Use relative paths for taxes and transfers (@MImmesberger)
#955 ConsecutiveInt type for Anspruchsdauer ALG1 (@MImmesberger)
#954 Improve implementation of Mehrbedarf für Alleinerziehende. (@MImmesberger)
#948 Preliminary DAG-based interface (@hmgaudecker, @MImmesberger, @mj023)
#943 Remove all occurrences of
vectorization_strategy='loop'
(@mj023)#947 METTSIM: Test overwriting scalar param / scalar param function with a data column (@MImmesberger)
#945 Move param dataclasses to param_types.py (@MImmesberger)
#897 Unify parsing of params (@hmgaudecker, @MImmesberger, @mj023)
#899 Remove infrastructure to create synthetic data. (@MImmesberger)
#894, #896 Cleanups (@MImmesberger, @hmgaudecker).
#891 Prepare for jitting / vectorization of GETTSIM
({ghuser}
hmgaudecker`).#879 Vectorize METTSIM (@timmens, @hmgaudecker).
#887 Enable typing (@hmgaudecker, @timmens).
#888 Remove SUPPORTED_GROUPINGS entirely, infer groupings from object names (@MImmesberger).
#889 Refactor loader and fix check for time-dependent functions to span multiple modules that end up in the same namespace (@hmgaudecker).
#885, #886: Cleanups (@MImmesberger).
#880 Validate parameter files using json schema (@hmgaudecker).
#876 Add DataFrame to NestedData conversion (@MImmesberger).
#873 Implement aggregation decorators (@hmgaudecker, @MImmesberger).
#859 Add RoundingSpec dataclass (@hmgaudecker, @MImmesberger).
#854 Add PolicyInput class and update hierarchy of TTSIM objects (@timmens, @hmgaudecker, @MImmesberger).
#871 Require dashed iso date everywhere (@hmgaudecker).
#865 Make top-level namespace include potential derived functions (@MImmesberger).
#864 Make
compute_taxes_and_transfers
jax-jittable (@timmens).#862 Add all types of Einkünfte, introduce concept of Gesamtbetrag der Einkünfte (@MImmesberger).
#858 Apply tree logic to GETTSIM tests (@felixschmitz).
#856 Add METTSIM to test TTSIM part (@hmgaudecker, @timmens, @MImmesberger).
#850 Split GETTSIM from TTSIM functions (@hmgaudecker, @MImmesberger).
#805 Rename taxes and transers using new tree structure (@hmgaudecker, @MImmesberger).
#818 Change behavior of namespaces so they are on the module level (@hmgaudecker, @MImmesberger).
#780 Refactor infrastructure to work with
dags.tree
(@lars-reimann, @hmgaudecker, @MImmesberger).#807 Implement changes from 2. Jahressteuergesetz 2024 (@Eric-Sommer)
#809 implement 2025 changes to pensions and social security contributions (@Eric-Sommer).
#803 Apply correct rounding rules for Ehegattensplitting and update EStG parameters (@MImmesberger, @mjbloemer).
#797 Update infrastructure to use pixi and modern pre-commit hooks (@timmens).
#787 Model classes for policy functions and policy environments (@lars-reimann).
#756 Refactor Elterngeld module and some small fixes (@MImmesberger, @ThOrtmann).
#790 Add unterhaltsvors implementation 2009 to 2016 (@mjbloemer).
#788 Pension benefit earnings test for early retirees (@MImmesberger).
#786 Check directly whether child and parent are in same Bedarfsgemeinschaft for Kindergeldübertrag (@MImmesberger).
#785 Add NotImplementedError to Unterhaltsvorschuss and test whether output from
create_synthetic_data
is enough to compute default targets (@MImmesberger).#772 Add Mindesteinkommen check to Wohngeld, calculate anz_eig_kind_bis_24 instead of requiring it as an input variable (@MImmesberger).
#771 Move SGB II Regelsatz calculation from BG to individual level (@MImmesberger).
#765 Kinderzuschlag only paid out if parents are in the same BG as the child (@MImmesberger).
#766 Allow for user-provided grouping IDs. (@MImmesberger).
#717 Switch from cohort-based policy to date-based policy in retirement module (@MImmesberger).
#753 Vorrangprüfung of Wohngeld and ALG2 on bg level (@MImmesberger).
#759 Unify function names in Sozialversicherung modules (@MImmesberger).
#755 Allow array returns when
skip_vectorization
is being used, enforce import convention (@hmgaudecker).#751 Kindergeldübertrag (@MImmesberger).
#739 Unterhaltsvorschuss calculation on child level (@MImmesberger).
#725 KdU calculation on bg level and other small fixes (@MImmesberger, @ChristianZimpelmann).
#722 Join columns to make target columns available at source level (@lars-reimann).
#732 Change wealth input variable to individual-level (
vermögen_bedürft
) (@ChristianZimpelmann).#730 Add argument to create_synthetic_data on whether adults are married. (@ChristianZimpelmann).
#729 Fix bugs in calculation of Unterhaltsvorschuss and Grundsicherung im Alter (@ChristianZimpelmann).
#721 Optionally skip vectorization of a policy function (@lars-reimann).
#720 Combined decorator for policy information (@lars-reimann).
#700 Data columns overwrite functions regardless of time unit (@lars-reimann).
#694 Replace
tu
groupings with correct groupings. (@MImmesberger, @lars-reimann, @hmgaudecker).#676 Add explicit parent-child links. (@MImmesberger).
#684 New Issue template for yearly parameter updates. (@MImmesberger).
#680 2024 Parameter Update (@Eric-Sommer, @MImmesberger)
#662, #675 Replace
hh
in function names bybg
/fg
(@lars-reimann, @MImmesberger).#577 Implement Erwerbsminderungsrente (public disability insurance) (@nafetsk)
#601 Add groupings
sn_id
,fg_id
, andbg_id
(@lars-reimann).#642 Vertrauensschutz for pension for unemployed (@TeBackh, @MImmesberger)
#659 Add rounding to Unterhaltsvorschuss, ESt, Wohngeld, Kinderzuschlag. (@MImmesberger).
#655 Correct calculation of Lohnsteuer for 2015 to 2023 (@JakobWegmann).
#653 Add Soli to Lohnsteuer test cases (@JakobWegmann).
#636, #637 Reduced contribution rate for retirees for long-term care insurance until 2004 (@MImmesberger).
#643 Fix bug in Midijobfaktor calculation in 2004. (@MImmesberger).
#590 Add allowance for child income for Kinderzuschlag. (@ChristianZimpelmann).
#620 Adds income from self employment to income for Bürgergeld (@amageh, @lillyfischer, @TeBackh)
#632 Zugangsfaktor calculation with monthly precision (@TeBackh).
#624 Don’t create functions for other time units if this leads to a cycle in the graph (@lars-reimann).
#630 Fixes bug in
piecewise_polynomial
that ignored jumps in intercepts (@nafetsk).#639 Infer
columns_overriding_functions
forcompute_taxes_and_transfers
from functions and data (@lars-reimann).#638 Don’t use functions in
compute_taxes_and_transfers
that are not active (@lars-reimann).#618, #623 Apply
@dates_active
decorator to Abgeltungssteuer, Midi- and Minijobs, Pflegeversicherung. (@hmgaudecker).#624 Don’t create functions for other time units if this leads to a cycle in the graph (@lars-reimann).
#603 Add anz_eig_kind_bis_24 to synthetic (@ChristianZimpelmann).
#593 Implement reform of gesetzliche Pflegepflegeversicherung effective as of 2023-07-01 (@paulinaschroeder).
#602 Correct
midijob_faktor_f
(@paulinaschroeder).#600 Extend the
access_different_date
functionality forjahresanfang
. (@paulinaschroeder).#591 Fix minor bug in wealth exemptions for Kinderzuschlag in 2023 (@ChristianZimpelmann).
#589 Fix minor bug in
arbeitsl_geld_2_eink_anr_frei_m
(@ChristianZimpelmann).#583 Automatic conversion between different time units (@lars-reimann).
#581 Add
_y
suffix to names of yearly variables (@lars-reimann).
v0.7 — 2023-05-14#
#514 Rewrite
create_synthetic_data
to make it more flexible and much faster. The function can no longer create households of different household types with one function call. (@ChristianZimpelmann).#573 Fix bug in age groups of Bürgergeld. (@ChristianZimpelmann).
#150 Implement Lohnsteuer / withholding tax. (@Eric-Sommer, @JakobWegmann).
#557 Apply @dates_active decorator in many cases. (@hmgaudecker).
#405 Fix calculation of voluntary contribution by self-employed to the GKV. (@JHermann99)
#495 Add @dates_active decorator to easily specify when a function is active. (@lars-reimann).
#544 Add Kindesunterhalt (@LauraGergeleit).
#529 Consider Elterngeld in other transfers only above a certain threshold. (@LauraGergeleit).
#551 Add rounding to Wohngeld. (@LauraGergeleit).
v0.6.0 — 2023-01-30#
#503, #511, Move packaging to PyPI/conda-forge, update documentation (@timmens, @hmgaudecker).
#487 Replace pydot_layout with pygraphviz_layout. (@lars-reimann).
#457 Correct implementation of Arbeitslosengeld 1 (@paulinaschroeder)
#484 Implement Kindersofortzuschlag. (@LauraGergeleit).
#461 Fix bug in calculation of income for Kinderzuschlag. (@ChristianZimpelmann).
#458 Calculate Vorsorgeaufwendungen on tax unit level and fix bug (@ChristianZimpelmann).
#463 Adjust Günstigerprüfung between Kindergeld and Kinderfreibetrag such that Kindergeld is not set to 0 if Kinderfreibetrag is beneficial (@LauraGergeleit, @ChristianZimpelmann).
#450, #500, #501 Update CI, use modern package structure (@hmgaudecker).
#470 Execute notebooks as part of the documentation build on readthedocs (@hmgaudecker).
#440 Implement Bürgergeld, which reforms arbeitsl_geld_2 from 01/01/2023 (@LauraGergeleit).
#399 Use dags package to create the DAG (@ChristianZimpelmann).
#415 Define supported groupings in config.py (@LauraGergeleit, @ChristianZimpelmann).
#416 Add documentation page for Vermögensbegriff for transfers (@LauraGergeleit).
#423 Model marginal employment rules reform from 10/2022 (@Eric-Sommer, @LauraGergeleit).
#406 Change variable name from vermögen_hh to vermögen_bedürft_hh. Add test cases for several transfers (@LauraGergeleit).
#380 Implement an automatic type conversion of imported variables. Adding test cases in test_interface.py (@LauraGergeleit, @ChristianZimpelmann).
#403 Replace Bokeh with plotly for visualization. (@effieHAN,@sofyaakimova).
#396, Implement pension for (very) long term insured, including eligibility criteria, i.e. “Wartezeiten”. Implement pension for women (@TeBackh), add more tests (#428, @LauraGergeleit).
#393 Normal retirement age adjustment aligned with the rules (@TeBackh).
#385 Make
altersentlastungsbetrag
dependent on age not on current date (@m-pannier, @lillyfischer).#392 Fix relative tolerance which was set too high for some tests. Rename vorsorge to vorsorgeaufw (@LauraGergeleit, @ChristianZimpelmann).
#323 Align health insurance contribution parameters better aligned with law. Restructure calculation of
ges_krankenv
, minor changes toges_pflegev
. (@Eric-Sommer, @ChristianZimpelmann).
v0.5.1 — 2022-04-21#
#377 Fix wrong parameter value for ges_pflegev contribution (@JuergenWiemers).
#383 Remove ä, ö, ü from file names (@ChristianZimpelmann).
v0.5.0 — 2022-04-01#
#327 Add
behinderten_pauschbetrag
for 1975-1986 (@lillyfischer).#285 Set up bokeh dashboard to visualize tax-benefit parameters (@Si-Pf, @Eric-Sommer).
#306 Add the possibility to load the value of a parameter of the previous year when calling set_up_policy_environment (@ChristianZimpelmann).
#275 Implement Grundrente. Implement Grundsicherung im Alter. Remove ges_rente_m as input. Rename gettsim.renten_anspr to gettsim.transfers.rente. Rename gettsim.social_insurance to gettsim.social_insurance_contributions (@davpahl, @ChristianZimpelmann).
#307 Allow to specify order up to which ancestors and descendants are shown when plotting a dag (@ChristianZimpelmann).
#310 Added Mehrbedarf G to Implementation of Grundsicherung im Alter (@paulinaschroeder).
#311 Rename variable kaltmiete_m_hh to bruttokaltmiete_m_hh (@LauraGergeleit).
#319 #320 Implement changes for social assistance and social insurance becoming effective in 2022 (@Eric-Sommer).
#322 Add updated wohngeld parameters for 2022 (@mjbloemer, @lillyfischer).
#312 Updated GEP-01 with effects on character limits, time and unit identifiers, adjustments for DAG backend (@hmgaudecker).
#314 Enforce character limits from GEP-01 for all function names and input variables. Make variable names more precise (e.g., ges_ in front of all social insurance parameters that have private counterparts, eink_st everywhere the income tax is meant). Make variables consistent (e.g. kinderfreibetrag had different abbreviations, now kinderfreib everywhere). (@hmgaudecker, @ChristianZimpelmann)
#343 New argument for `compute_taxes_and_transfers`: rounding. If set to False, rounding of outputs is disabled. Add rounding for eink_st_tu. Rounding for other functions will be introduced in future PRs. (@ChristianZimpelmann).
#349 Create parameters for several hard coded numbers in code. (@LauraGergeleit).
#355 Major renaming based on GEP 01, e.g.: correct use of
_m
-suffix;alleinerziehend
becomesalleinerz
; rename ges_rentenv.yaml to ges_rente.yaml (@hmgaudecker, @ChristianZimpelmann)#356 Define functions on scalars and have them vectorised. Implement aggregation functions on group levels. (@LauraGergeleit, @ChristianZimpelmann)
v0.4.2 — 2022-01-25#
Ensure GETTSIM works with Pandas 1.4 (#337)
v0.4.1 — 2021-04-11#
#248 Implement 2021 increase in lump sum tax deductions for disabled. (@Eric-Sommer).
#254 Implement 2021 increase in unemployment benefits (@Eric-Sommer).
#253 Implement 2021 changes in health insurance contribution rates and other social insurance regulations (@Eric-Sommer).
#266 Adjust visualization.py to link nodes of DAGs to documentation properly (@davpahl, @ChristianZimpelmann).
#267 Implement new calculation of Kinderzuschlag parameter (@Eric-Sommer).
#252 Implement 2021 reforms to income tax tariff and family tax deductions (@Eric-Sommer).
#235 Module to create synthetic data (@Eric-Sommer, @ChristianZimpelmann).
#256 Implement 2021 housing benefit reform (@Eric-Sommer).
#283 Implement Kinderbonus in 2020 and 2021 (@ChristianZimpelmann).
v0.4.0 — 2020-11-11#
#241 Renaming of directories: gettsim.benefits to gettsim.transfers; gettsim.soz_vers to gettsim.social_insurance; gettsim.data to gettsim.parameters (@MaxBlesch, @ChristianZimpelmann).
#230 Add type hints and links all docstring variables to the documentation. Also all functions have a one liner docstring now (@MaxBlesch, @FelixAhlbrecht).
#232 Introduce beginner tutorials on how to use GETTSIM (@amageh, @davpahl, @Trichter33).
#185 Add the DAG code for renten_anspr_m (@MaxBlesch). This is based on the pension simulation code by (@Eric-Sommer).
#184 Add visualization of the tax and transfer system as an interactive bokeh plot and documentation improvements (@tobiasraabe).
#198 Enhance the loader of internal and user functions, adds a tutorial for how to pass functions to the interface and provides more tests (@tobiasraabe).
#213 Change
compute_taxes_and_transfers
such that it always returns a pandas DataFrame and removes the return_dag option (@tobiasraabe).#219 Refactor the DAG and makes it independent from the main interface (@tobiasraabe). The PR also changes the names of interface arguments:
functions
instead ofuser_functions
,set_up_policy_environment
instead ofget_policy_for_date
,columns_overriding_functions
instead ofuser_columns
and some more changes.#225 Make gettsim ready for Python 3.8 (@tobiasraabe).
v0.3.4 — 2020-07-30#
#222 Fix wohngeld coefficent. Add test for increasing wohngeld. (@hmgaudecker, @MaxBlesch)
v0.3.3 — 2020-06-27#
#212 Improve the error message when reduced series could not be expanded with an id variable and fixes a related error in the internal functions (@hmgaudecker, @tobiasraabe).
#214 Add a check for missing root nodes (@tobiasraabe).
#215 Add a check for duplicate
targets
(@tobiasraabe).#216 Fix calculation of kinderzuschlag and wohngeld. Changed check against arbeitsl_geld_2 (@tobiasraabe).
v0.3.2 — 2020-06-19#
#196 Add docstring to policy_for_date.py and improves its interface (@MaxBlesch).
#197 Add all functions which build the tax and transfer system to the documentation (@tobiasraabe).
#198 Enhance the loader of internal and user functions, adds a tutorial for how to pass functions to the interface and provides more tests (@tobiasraabe).
#200 Add a debug mode to gettsim and documents the feature (@tobiasraabe).
#201 Improve the calculation of
hh_freib
and renames it toalleinerziehend_freib
(@MaxBlesch, @tobiasraabe).#202 Fix bugs that surfaced for negative incomes (@MaxBlesch). related transfers, calculating them at the appropriate (household) level
#206 Fix several bugs in arbeitsl_geld_2 and (@MaxBlesch).
v0.3.1 — 2020-06-05#
#188 Removes misleading code bits from the documentation and adds a copy-button (@tobiasraabe).
#191 Adds a skip and a warning if gettsim.test() is repeatedly called (@tobiasraabe).
v0.3.0 — 2020-06-04#
Cleanup of ALG II parameters and documentation (@mjbloemer)
Break up params.yaml into group-level files (@MaxBlesch)
Correct income deductions for additional child benefit (@Eric-Sommer)
Implement “Starke-Familien-Gesetz” from July 2019 on child benefits (@Eric-Sommer)
Remove child specific ALG II withdrawal and refactoring of ALG II (@MaxBlesch, @mjbloemer)
Add ALG II transfer withdrawal 2005-01-01 to 2005-09-30 (@mjbloemer, @MaxBlesch)
Child tax allowance modelled as two separate items. (@Eric-Sommer)
Alimony advance payment (Unterhaltsvorschuss) now modelled more in line with the law (@Eric-Sommer)
Implement Art. 3 of Familienentlastungsgesetz on income tax tariff and child tax allowance becoming effective in 2020 (@Eric-Sommer)
Implement parity in health care contributions since 2019 and 2020 contribution rates (@Eric-Sommer)
Add Elterngeld calculation (@MaxBlesch, @boryana-ilieva)
Fix Soli 1991 calculation, improve Soli 1995 calculation, add 2021 Soli parameters and add Soli tests (@mjbloemer, @MaxBlesch)
Implement pre-2010 ruling on Vorsorgeaufwendungen (@Eric-Sommer)
gettsim
is released as a conda noarch package (@tobiasraabe)Implement 2020 reform increasing housing benefit (Wohngeldstärkungsgesetz) and complete parameters on past benefits (@Eric-Sommer)
Regroup wohngeld parameters according to GEP-3 (@MaxBlesch)
Rename all data columns to German names (@amageh, @MaxBlesch)
Rename and regroup all param files (@Eric-Sommer, @MaxBlesch)
Add generic/piecewise functions (@johannesgoldbeck, @ppoepperling, @MaxBlesch)
A series of pull requests establishes the new DAG-based backend and refactors the calculation of benefits, taxes, and social insurance (@MaxBlesch, @tobiasraabe)
Error messages for the new interface (@hmgaudecker, @tobiasraabe).
v0.2.1 — 2019-11-20#
Fix error with real SOEP data and “Wohngeld” for households with more than 12 household members (@Eric-Sommer, @MaxBlesch)
Better description of required input and output columns (@MaxBlesch, @Eric-Sommer)
Fix dependencies for conda package (@tobiasraabe)
Fill changelog and include in docs (@tobiasraabe, @hmgaudecker)
Add maintenance section to website (@tobiasraabe)
v0.2.0 — 2019-11-06#
Initial release of gettsim
.
Set up as a conda-installable package (@tobiasraabe)
Migration of the parameter database from xls to yaml (@mjbloemer, @MaxBlesch)
Migration of test parameters from xls to csv (@MaxBlesch, @tobiasraabe)
Get the main entry point to work, change interface (@MaxBlesch, @janosg, @Eric-Sommer, @hmgaudecker, @tobiasraabe)
Tax and transfer module uses apply instead of loops (@MaxBlesch, @hmgaudecker)
Correct tax treatment of child care costs (@Eric-Sommer)
Improve calculation of housing allowance (@Eric-Sommer)
v0.1 and prior work — 2019-09-30#
Most code written by @Eric-Sommer based on IZAΨMOD, a policy microsimulation model developed at IZA.