Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
4e58e22
Register euro/DM currencies and grouping levels on import (#1191)
MImmesberger Jul 13, 2026
ca3c132
Annotate kindergeld decorators with units (#1192)
MImmesberger Jul 13, 2026
2213ad3
Migrate params-schema to unit tokens; re-export cast_unit (#1192)
MImmesberger Jul 13, 2026
1a0a330
Annotate top-level ids/inputs/characteristics with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
74a6676
Annotate familie with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
7ab8521
Annotate kindergeld with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
c4eddeb
Annotate kinderbonus with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
717f546
Annotate unterhalt with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
09d0b33
Annotate unterhaltsvorschuss with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
15cea36
Annotate einnahmen with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
71d0d7c
Annotate wohnen with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
6bf617a
Annotate solidaritätszuschlag with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
cff2ea2
Annotate vorrangprüfungen with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
6b1238d
Annotate lohnsteuer with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
a2a1901
Annotate einkommensteuer with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
8e989d3
Annotate sozialversicherung with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
f2e0cf3
Annotate arbeitslosengeld_2 with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
f757027
Annotate bürgergeld with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
69ab010
Annotate grundsicherung with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
f7ce376
Annotate elterngeld with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
b779c45
Annotate erziehungsgeld with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
4af3b66
Annotate kinderzuschlag with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
2ad9e9c
Annotate wohngeld with GEP-10 units (#1192)
MImmesberger Jul 13, 2026
b44e094
Rename mehrbedarf_alleinerziehend_m -> mehrbedarf_alleinerziehend (#1…
MImmesberger Jul 13, 2026
12168a5
Mirror nested value shape in raw_mindestunterhalt unit mapping (#1192)
MImmesberger Jul 13, 2026
12f64d1
Rename anteil_steuerfälliger_einnahmen_y -> drop _y (#1192)
MImmesberger Jul 13, 2026
2ac9df7
Round C (part 1): suffix/period/level renames + first body-check batc…
MImmesberger Jul 14, 2026
4181240
Annotate Existenzminimum/Regelbedarf dataclass fields with units (#1192)
MImmesberger Jul 14, 2026
ff347c8
Round C (part 2): count-literal casts + lohnsteuer _y renames (#1192)
MImmesberger Jul 14, 2026
30bfb5c
Round C (part 3): kinderzuschlag _bg totals declare .PER_BG (#1192)
MImmesberger Jul 14, 2026
a6faa87
Round C (part 4): rente D2 calendar-point casts (#1192)
MImmesberger Jul 14, 2026
23a8a9c
Round C: cast alter_bis_24 dimensioned-literal comparison (#1192)
MImmesberger Jul 14, 2026
4e9ae74
Round C (part 6): rente calendar-point + Entgeltpunkte casts (#1192)
MImmesberger Jul 14, 2026
488a408
Round C (part 7): bürgergeld per-capita + cross-level casts (#1192)
MImmesberger Jul 14, 2026
715012f
Round C (part 8): einkommensteuer SN totals + gesamteinkommen rename …
MImmesberger Jul 14, 2026
3f83601
Round C (part 9): elterngeld count multipliers + fg levels (#1192)
MImmesberger Jul 14, 2026
6d8ea65
Round C (part 10): kinderzuschlag count multipliers + BG threshold (#…
MImmesberger Jul 14, 2026
1e7c146
Round C (part 11): grundsicherung/vorrang/unterhaltsvorschuss casts (…
MImmesberger Jul 14, 2026
c0927bd
Round C (part 12): wohngeld plucks/axes + cross-level Vertikalmethode…
MImmesberger Jul 14, 2026
e20b595
Round C (part 13): arbeitslosengeld_2 (pre-2023 twin) + RegelsatzAnte…
MImmesberger Jul 14, 2026
067776b
Round C (part 14): kindergeld staffelung look-ups + kind_bis_10 (#1192)
MImmesberger Jul 14, 2026
ee19a8e
Round C (part 15): erziehungsgeld + vorsorge/ertragsanteil opt-outs (…
MImmesberger Jul 14, 2026
194c0d6
Round C (part 16): altersfreibetrag bis-2004 + bezugsmonate levels (#…
MImmesberger Jul 14, 2026
1f13b8e
Round C (part 17): opt out altersfreibetrag_y_bis_2004 (#1192)
MImmesberger Jul 14, 2026
6d33384
Round C (part 18): ruff cleanup — import order, comment wording (#1192)
MImmesberger Jul 14, 2026
864738b
Round C (part 19): complete the satz→satz_m rename on the raw param (…
MImmesberger Jul 14, 2026
cf6ab00
Round C (part 20): kinderzuschlag maximales_nettoeinkommen bg total (…
MImmesberger Jul 14, 2026
ab02dae
Round C (part 21): mean_entgeltpunkte_pro_bewertungsmonat is dimensio…
MImmesberger Jul 14, 2026
c5542da
TEMPORARY: pin ttsim-backend to gep10-annotate-mettsim for CI (#1192)
MImmesberger Jul 14, 2026
12bcad7
Expose data_currency on gettsim's main (#1192)
MImmesberger Jul 15, 2026
9e766ab
Record the GEP-10 rollout in the changelog (#1192)
MImmesberger Jul 15, 2026
c790bf4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 15, 2026
9034349
GEP 10: restate the pre-2002 parameters in Deutsche Mark (#1192) (#1211)
MImmesberger Jul 15, 2026
409e987
Declare units in the policy-environment how-to (#1192)
MImmesberger Jul 15, 2026
cf4924a
GEP 10: address the units review and green the rollout CI (#1192)
MImmesberger Jul 16, 2026
90237e8
GEP 10: adopt the per-policy-system unit registry (#1213)
MImmesberger Jul 16, 2026
ab0321f
GEP 10: unit fixes for arbeitslosengeld_2/wohngeld + bump ttsim to 4d…
MImmesberger Jul 17, 2026
8e07b06
Bump ttsim pin to bfc1170a (registries branch after the stack reorder)
MImmesberger Jul 17, 2026
aaa32f8
Bump ttsim pin to aa1df477 (mappingproxy import fix for Python 3.11)
MImmesberger Jul 17, 2026
811f33e
Depend on ttsim #141 (gep10-annotate-mettsim)
MImmesberger Jul 17, 2026
749c417
Bump ttsim pin to 46b6b439 (rebased #141 head)
MImmesberger Jul 17, 2026
3e2a6cb
Fix docs notebook: per-fg unit on the child-count threshold
MImmesberger Jul 17, 2026
cdf878b
Address code-review findings on GEP 10 unit annotations
MImmesberger Jul 17, 2026
09c1b29
Checkpoint.
MImmesberger Jul 17, 2026
bd8a59e
Review finished.
MImmesberger Jul 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ repos:
# ty pin in sync with the `ty-pre-commit` rev above.
language: python
additional_dependencies:
- ty==0.0.49
- ty==0.0.52
entry: ty check --python .pixi/envs/py314-jax
pass_filenames: false
always_run: true
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ pixi run -e py314-jax tests src/gettsim/tests_germany/test_policy_cases.py
pixi run -e py314-jax tests -k "kindergeld"

# Type checking (runs as the ty / ty-jax pre-commit hooks)
prek run ty --all-files
prek run ty-jax --all-files
pixi run prek run ty --all-files
pixi run prek run ty-jax --all-files

# Quality checks (linting, formatting)
pixi run prek run --all-files
Expand Down
13 changes: 13 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,19 @@ All releases are available on [Anaconda.org](https://anaconda.org/conda-forge/ge

## Unreleased

- {gh}`1212` GEP 10 Rollout and some related column renamings: Most gain the suffix of
the period they are measured over: `basistarif`, `splittingtarif`,
`tarif_klassen_5_und_6` (and their `_mit_kinderfreibetrag` variants),
`einkommensgrenze_ohne_geschwisterbonus` (and its two age variants),
`vorsorge_arbeitslosenversicherungsbeiträge`,
`vorsorge_krankenversicherungsbeiträge_option_a` and `_option_b` all gain `_y`;
`betrag_versicherter_regulärer_beitragssatz`,
`lohnersatzanteil_einkommen_untere_grenze` and `_obere_grenze`,
`mean_entgeltpunkte_zuschlag`, `minijobgrenze`, `rentenwert` and the Kinderzuschlag
`satz` all gain `_m`. Two lose a suffix they should never have had, being shares
rather than flows: `anteil_steuerfälliger_einnahmen_y` and
`mehrbedarfsanteil_alleinerziehend_m`. `gesamteinkommen_y` becomes
`gesamteinkommen_y_sn`, naming the level it is aggregated to. ({ghuser}`MImmesberger`)
- {gh}`1206` Update Rentenwert 2025, 2026. ({ghuser}`cmdr-majus`)
- {gh}`1156` Collection of all Grundsicherung im Alter / Wohngeld PRs ({gh}`1163`,
{gh}`1167`, {gh}`1164`, {gh}`1159`, {gh}`1154`, {gh}`1155`, {gh}`1178`).
Expand Down
129 changes: 108 additions & 21 deletions docs/geps/params-schema.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
{
"$comment": "If you change this file, always change it in both locations: 1. ttsim/src/ttsim/params-schema.json 2. gettsim/docs/geps/params-schema.json",
"$comment": "Keep in sync with ttsim/src/ttsim/params-schema.json, except unitToken: this GETTSIM copy pins the grouping levels to Germany's, ttsim leaves them open.",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"unitToken": {
"$comment": "Bases stay open (currencies register per package); the grouping level, if present, must be one of Germany's.",
"type": "string",
"pattern": "^[A-Z][A-Z0-9]*(?:_(?!PER_)[A-Z0-9]+)*(?:_PER_(?:SQUARE_METER|HOURS))?(?:_PER_(?:YEAR|QUARTER|MONTH|WEEK|DAY))?(?:_PER_(?:HH|EHE|FG|BG|EG|WTHH|SN))?$"
},
"unitDeclaration": {
"oneOf": [
{ "$ref": "#/definitions/unitToken" },
{
"type": "object",
"additionalProperties": { "$ref": "#/definitions/unitDeclaration" }
}
]
},
"axisUnitDeclaration": {
"$ref": "#/definitions/unitToken"
}
},
"type": "object",
"patternProperties": {
"^[a-zA-Z0-9äöüßÄÖÜ_]+$": {
Expand All @@ -25,19 +44,13 @@
"additionalProperties": false
},
"unit": {
"type": ["string", "null"],
"enum": [
"Euros",
"DM",
"Share",
"Percent",
"Years",
"Months",
"Hours",
"Square Meters",
"Euros / Square Meter",
null
]
"$ref": "#/definitions/unitDeclaration"
},
"input_unit": {
"$ref": "#/definitions/axisUnitDeclaration"
},
"output_unit": {
"$ref": "#/definitions/axisUnitDeclaration"
},
"type": {
"type": "string",
Expand All @@ -55,10 +68,6 @@
"require_converter"
]
},
"reference_period": {
"type": ["string", "null"],
"enum": ["Year", "Quarter", "Month", "Week", "Day", "Hour", null]
},
"add_jahresanfang": {"type": "boolean"}
},
"patternProperties": {
Expand All @@ -71,9 +80,30 @@
{ "type": "string", "enum": ["inf", "-inf"] }
]
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interval": { "type": "string" }
},
"required": ["interval"],
"additionalProperties": true
}
},
"unit": {
"$ref": "#/definitions/unitDeclaration"
},
"input_unit": {
"$ref": "#/definitions/axisUnitDeclaration"
},
"output_unit": {
"$ref": "#/definitions/axisUnitDeclaration"
},
"reference": { "type": "string" },
"note": { "type": "string" },
"deviation_from": { "type": "string" }
"deviation_from": { "type": "string" },
"updates_previous": { "type": "boolean" }
},
"additionalProperties": true
}
Expand All @@ -83,11 +113,68 @@
{ "required": [
"name",
"description",
"unit",
"reference_period",
"type"
]
},
{
"if": {
"properties": {
"type": {
"enum": [
"piecewise_constant",
"piecewise_linear",
"piecewise_quadratic",
"piecewise_cubic",
"consecutive_int_lookup_table",
"sparse_to_consecutive_int_lookup_table",
"month_based_phase_inout_of_age_thresholds",
"year_based_phase_inout_of_age_thresholds"
]
}
}
},
"then": {
"required": ["input_unit", "output_unit"],
"not": { "required": ["unit"] }
},
"else": {
"if": {
"properties": { "type": { "const": "require_converter" } }
},
"then": {
"oneOf": [
{
"required": ["unit"],
"allOf": [
{ "not": { "required": ["input_unit"] } },
{ "not": { "required": ["output_unit"] } }
]
},
{
"required": ["input_unit", "output_unit"],
"not": { "required": ["unit"] }
}
]
},
"else": {
"allOf": [
{ "not": { "required": ["input_unit"] } },
{ "not": { "required": ["output_unit"] } }
]
}
}
},
{
"if": {
"properties": { "type": { "const": "scalar" } },
"required": ["type"]
},
"then": {
"properties": {
"unit": { "$ref": "#/definitions/unitToken" }
}
}
},
{
"minProperties": 1,
"patternProperties": {
Expand Down
Loading
Loading