Releases: ttsim-dev/gettsim
v1.1
Highlights: January 2026 policy environment and support for Python 3.14. Many bug fixes.
v1.1 — 2026-01-12
-
#1124 Fix KiZ phase-out. (@MImmesberger)
-
#1122 Implement Aktivrente. (@MImmesberger)
-
#1123 Consistently use time unit converters offered by TTSIM. (@MImmesberger)
-
#1121 Do not accidentally skip
test_top_level_elements_not_repeated_in_paths, add mechanism for running tests selectively on CI. (@hmgaudecker) -
#1111 Parameter update Sozialversicherungsrechengrößen Verordnung 2026 and mean Zusatzbeitrag 2026. (@MImmesberger)
-
#1112 Implement Mindestlohnanpassungsverordnung 2025. (@MImmesberger)
-
#1113 Vorsorgepauschale Reform 2026. (@MImmesberger)
-
#1110 Add Python 3.14 support. (@hmgaudecker)
-
#1105 Reduce tolerance of statutory retirement age tests. (@MImmesberger)
-
#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)
-
#1092 Fix a couple of vectorization strategies. (@hmgaudecker)
-
#1088 Fix typos in docs and param yamls. (@MImmesberger)
v1.0
The 1.0 version and the long list of contributions and contributors say it all. This is a completely re-vamped package waiting for helping many researchers!
-
#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ändigtoist_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_targetsis the first
argument (@hmgaudecker) -
#1024 Split up
fail_and_warnargument ofmain(@MImmesberger,
@hmgaudecker) -
#1016 Turn fail_ifs and warn_ifs on + let
mainreturn 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
kindinput (@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
valueof 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
InputDependentInterfaceFunctions (@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` (@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_transfersjax-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_datais 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_vectorizationis being used, enforce import
convention (@hmgaudecker). -
#751 Kindergeldübertrag (@MImmesberger).
-
#739 Unterhaltsvorschuss calculation on child level (@MImmesberger).
-
...
v1.0a2
What's Changed
- Rename Arbeitslosengeld 2 to Bürgergeld after 2022 by @MImmesberger in #1067
- Move to new plotting interface. by @MImmesberger in #1071
Full Changelog: v1.0a1...v1.0a2
v1.0a1
What's Changed
- Improve paths handling and fix a bug in paths by @hmgaudecker in #1064
Full Changelog: v1.0a...v1.0a1
v1.0a
This is a complete re-write; will publish more detailed notes on a proper release.
What's Changed
- Improve docs, fix deps by @hmgaudecker in #580
- refactor: add
_ysuffix to names of yearly variables by @lars-reimann in #581 - make sure
arbeitsl_geld_2_eink_anr_frei_muses the correct variable by @ChristianZimpelmann in #589 - feat: automatic conversion between different time units by @lars-reimann in #583
- Extend the access_different_date functionality for jahresanfang by @paulinaschroeder in #600
- Correct midijob_faktor_f by @paulinaschroeder in #602
- Implement reform of gesetzliche Pflegepflegeversicherung effective as of 2023-07-01 by @paulinaschroeder in #593
- fix wealth exemptions for Kinderzuschl by @ChristianZimpelmann in #591
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #586
- add anz_eig_kind_bis_24 to synthetic. by @ChristianZimpelmann in #603
- Fix heading level in notebook. by @hmgaudecker in #616
- fix: don't create functions for other time units if this leads to a cycle in the graph by @lars-reimann in #624
- Apply dates_active decorator on abgelt_st. by @hmgaudecker in #618
- Update micromamba in GHA by @hmgaudecker in #625
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #628
- Pin the dependencies of nbqa (black, ruff) to the same versions used on Python scripts. by @hmgaudecker in #631
- Apply dates_active decorator to midijob and ges_pflegev by @hmgaudecker in #623
- fix: don't use functions in
compute_taxes_and_transfersthat are not active by @lars-reimann in #638 - feat: infer
columns_overriding_functionsfrom functions and data by @lars-reimann in #639 - Fix
piecewise_polynomial, fixes #629 by @nafetsk in #630 - Monthly precision in Zugangsfaktor by @TeBackh in #632
- Implementation pension for unemployed by @TeBackh in #634
- 568 bug alg2 by @TeBackh in #620
- remove todo Elterngeld by @ChristianZimpelmann in #646
- Fix child income deduction for Kinderzuschlag by @ChristianZimpelmann in #590
- introduce paramter for Unterhaltsvorschuss altersgrenze_mindesteinkommen by @ChristianZimpelmann in #650
- Tidy up function
unterhaltsvors_mand fix bug by @ChristianZimpelmann in #652 - allow for up to 10 children in create_synthetic_data. by @ChristianZimpelmann in #649
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #648
- Midijobfaktor calculation in 2004 by @MImmesberger in #644
- Adding Soli to Lohnsteuer test cases by @JakobWegmann in #653
- Reduced contribution rate for retirees for long-term care insurance until 2004 by @MImmesberger in #637
- Correct calculation of Lohnsteuer for 2015 to 2023 by @JakobWegmann in #655
- Rounding of Taxes and Transfers by @MImmesberger in #659
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #657
- Replace
hhin function names bybg/fg/vgby @lars-reimann in #662 - Entgeltpunkte Ost/West by @nafetsk in #660
- Vertrauensschutz in Rente für Arbeitslose by @TeBackh in #645
- Add groupings
sn_id,fg_id, andbg_idby @lars-reimann in #601 - Add Erwerbsminderungsrente by @nafetsk in #577
- Add Erziehungsgeld by @nafetsk in #585
- Switch from vg to hh. by @MImmesberger in #675
- 2024 parameter changes by @Eric-Sommer in #680
- New issue option for yearly parameter update by @MImmesberger in #684
- Fix typo by @schra in #686
- Use max() instead of explicit if by @schra in #687
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #678
- Linking children's transfers to their parents. by @MImmesberger in #676
- minor fixes to doc by @MImmesberger in #695
- Data columns overwrite functions regardless of time unit by @lars-reimann in #700
- Remove tax unit groupings. by @MImmesberger in #694
- Fix time conversion after rounding by @lars-reimann in #715
- Combined decorator for policy information by @lars-reimann in #720
- Optionally skip vectorization of a policy function by @lars-reimann in #721
- Add argument to create_synthetic_data on whether adults are married. by @ChristianZimpelmann in #730
- Adjust wealth input to individual level. by @ChristianZimpelmann in #732
- Make sure GETTSIM runs over simple synthetic data by @ChristianZimpelmann in #729
- Make sure that
eink_abhängig_beschäftigt_yis never negative. by @ChristianZimpelmann in #734 - Join columns to make target columns available at source level by @lars-reimann in #722
- fix: fall back to default value if foreign key of
join_numpyis unresolved by @lars-reimann in #741 - Unterhaltsvorschuss calculation on child level. by @MImmesberger in #739
- Several small fixes related to groupings by @ChristianZimpelmann in #725
- Kindergeldübertrag by @MImmesberger in #751
- Allow array returns when
skip_vectorizationis being used, enforce import convention. by @hmgaudecker in #755 - Documentation of new groupings of individuals by @MImmesberger in #706
- Unify function names in Sozialversicherung modules. by @MImmesberger in #759
- Wohngeld on individual / BG level by @MImmesberger in #753
- Adjust statutory retirement ages by @MImmesberger in #717
- Allow for user provided grouping IDs. by @MImmesberger in #766
- KiZ only for BGs with parents. by @MImmesberger in #765
- Add Betreuungskosten pointer to synthetic data. by @MImmesberger in #769
- Regelbedarf on individual level by @MImmesberger in #771
- Add Mindesteinkommen to Wohngeld and calculate number of children below 24. by @MImmesberger in #777
- Test whether
DEFAULT_TARGETScan be computed withcreate_synthetic_dataoutput by @MImmesberger in #785 - Remove
eigenbedarf_gedecktfrom Kindergeldübertrag by @MImmesberger in #786 - Add earnings test for pension benefits by @MImmesberger in #788
- Add unterhaltsvors implementation 2009 to 2016 by @mjbloemer in #790
- Update Elterngeld by @ThOrtmann in #756
- Model classes for policies by @lars-reimann in #787
- Update infrastructure by @timmens in #797
- Improve pixi setup by @timmens in #799
- Update GEP-03 for new reference style by @mjbloemer in #800
- Update eink_st parameters and rounding rules by @mjbloemer in #803
- Update KiZ params 2024-2026 by @mjbloemer in #811
- 2025 social security and pension parameters by @Eric-Sommer in #809
- Steuerfortentwicklungsgesetz 2024 by @Eric-Sommer in #807
- GEP 6 by @hmgaudecker in #471
- Namespaces by @hmgaudecker in https://github.com/ttsim-de...
v0.7.0
- Several improvements to tests (move from csv to yaml)
- Specification of time periods a function is active (via
@dates_active) - Add Jax backend and NumPy broadcasting
- Improved creation of synthetic data
- Some updates (Lohnsteuer, Kindesunterhalt) and bug fixes
- See CHANGES.md for detailed list of changes
v0.6.0
- Update to 2023 environment
- Many improvements, especially in pension domain
- Improvements of code quality
- See CHANGES.md for a full list of changes.
- Update packaging
v0.6.0-alpha.2
- Update to 2023 environment
- Many improvements, especially in pension domain
- Improvements of code quality
- See CHANGES.md for a full list of changes.
- Update packaging (relative to v0.6.0-alpha.1, fix contents of setup.cfg)
v0.6.0-alpha.1
- Update to 2023 environment
- Many improvements, especially in pension domain
- Improvements of code quality
- See CHANGES.md for a full list of changes.
- Update packaging
v0.5.1
Small fix removing non-ascii characters from file names.