Books / Law as Code in Practice: German Housing Benefit (Wohngeld) / Chapter 1
Part II · Chapter 1
Which Text Applies? The Bundesgesetzblatt and the § 44 Transition

Contents of Law as Code in Practice: German Housing Benefit (Wohngeld)
By the end of this chapter you will be able to say which edition of the Act and which row of each annex an answer used, why one family gets two amounts on two neighbouring days, and what the model does past the last values it holds.
Lawyer: which provision orders the change of values, and from when.
Analyst: which dates give which amounts.
Developer: where the answer records the edition and the row it used.
1. The question
The Vogts from Chapter 0 ask the same question twice: once for 31 December 2024 and once for 1 January 2025. Their rent, their income and their household are identical on both days.
Predict before you read on: should a model give the same amount on both days, or two different amounts? And if two, which text tells it to switch?
2. A change the Act itself orders
The tables of the formula are not written in the sections of the Act but in its annexes: Anlage 1 holds the rent ceilings, Anlage 2 the values a, b and c of the formula, Anlage 3 the minimum values and the order of the calculation steps. § 43 Abs. 1 WoGG orders that these values be updated “zum 1. Januar jedes zweiten Jahres” — on 1 January of every second year — by an ordinance, the Wohngeldfortschreibungsverordnung, WoGFV. A few amounts stand in the sections themselves: the heating relief and the climate component in § 12, the allowances in § 17.
What happens to a household whose decision covers the date of an update? § 44 Abs. 1 WoGG answers:
Ist Wohngeld vor dem Inkrafttreten der Fortschreibung des Wohngeldes (§ 43) bewilligt worden und dauert mindestens ein Teil des Bewilligungszeitraums nach dem Inkrafttreten der Fortschreibung noch an, so ist abweichend von § 41 Absatz 2 von Amts wegen über die Leistung des Wohngeldes für den Zeitraum vom Inkrafttreten der Fortschreibung bis zum Ende des bisherigen Bewilligungszeitraums neu zu entscheiden. Bei der Entscheidung sind die Berechnungsgrößen des Wohngeldes nach § 43 Absatz 1 Satz 1 Nummer 1 bis 6 in der ab dem Inkrafttreten der aktuellen Fortschreibung geltenden Fassung anzuwenden.
In English: if Wohngeld was granted before an update and the period of the grant runs past the update’s entry into force, the authority decides again, of its own motion, for the time from that day; and it applies the values of the new update. There is no “at least the old amount” clause. So the same family can lawfully receive two different amounts on two neighbouring days.
3. Two editions in the model
The model holds the values of each update with the dates they cover, and the publication each came from:
| Values | Dates in the model | Published in |
|---|---|---|
| Anlagen 2 and 3 of the Wohngeld-Plus-Gesetz; Anlage 1 of the first WoGFV | 1 January 2023 – 31 December 2024 | BGBl. I 2022 S. 2160 (Nr. 48); BGBl. I 2021 S. 1369 (Nr. 28) |
| Anlagen 1–3 of the second WoGFV | 1 January 2025 – 31 December 2026 | BGBl. 2024 I Nr. 314 |
Each publication is pinned by the fingerprint of its bytes. The 2024 issue was taken from the official portal recht.bund.de; the earlier issues from the published copies on OffeneGesetze.de. The model records which is which, so a reader can check the source of every row.
For the Vogts, three values change on 1 January 2025:
| Value | 31 December 2024 | 1 January 2025 |
|---|---|---|
| Rent ceiling, 4 members, Mietenstufe III (Anlage 1) | €736 | €766 |
| b, 4 members (Anlage 2) | 2.251 × 10⁻⁴ | 2.163 × 10⁻⁴ |
| c, 4 members (Anlage 2) | 2.000 × 10⁻⁵ | 1.760 × 10⁻⁵ |
The heating relief (€197.80 for four members) and the climate component (€34.40) did not change. Neither did the family’s rent taken into account: their rent of €580 stays under the ceiling either way, so M is €777.80 on both days. What moves is the formula.
4. The answers
| Case | Date | Question | Model’s answer (recorded 12 October 2026) |
|---|---|---|---|
Familie20241231 |
31 December 2024 | Is the monthly Wohngeld €463? | established |
Familie20241231 |
31 December 2024 | Is it €485? | not established |
Familie2025 |
1 January 2025 | Is it €485? | established |
Familie2025 |
1 January 2025 | Is it €463? | not established |
That settles the prediction: two amounts, €463 and €485, and § 44 Abs. 1 is the text that orders the switch.
The answer does not just state the amount. Each step that uses an annex records which row it took. For the Vogts’ formula on 1 January 2025 the proof names:
WertAMitglieder4#2025-01-01
WertBMitglieder4#2025-01-01
WertCMitglieder4#2025-01-01
HoechstbetragMitglieder4MietenstufeIII#2025-01-01
and each row points to its anchor, the text of Anlagen 1–3 in the second WoGFV, BGBl. 2024 I Nr. 314. On 31 December 2024 the same steps name the rows #2023-01-01: the values a, b and c point to Anlage 2 of the Wohngeld-Plus-Gesetz, the ceiling to Anlage 1 of the first WoGFV. Nobody has to remember which table was in force: the answer says so.
5. Where the model’s values end
The model holds parameter values for dates up to 31 December 2026: the values of the second WoGFV, which § 43 Abs. 1 meant to last until the next biennial update on 1 January 2027. Which values apply from that day depends on what is enacted and published; until the model holds such a text, it has no values for 2027 — and it says so rather than reusing the old ones or returning zero. A government bill that would change the rules for 2027, BT-Drs. 21/8284, is before the Bundestag; until it is enacted and published, the model holds no 2027 values.
The scenarios of the edition suite show all four edges, for the same family:
| Date | Model’s answer |
|---|---|
| 31 December 2024 | €463, established |
| 1 January 2025 | €485, established |
| 31 December 2026 — last day the model holds values for | €485, established |
| 1 January 2027 | no amount: MISSING_PARAMETER_VALUE — the model holds no value of the annexes for this date |
| before 1 January 2023 | no amount: EDITION_NOT_APPLICABLE — the model holds no earlier edition |
For a housing-benefit office, the last two lines are the important ones. A system that quietly carries 2026 values into 2027 produces numbers that look right without saying which text they rest on. A refusal with a reason tells the office exactly what is missing: the values for the new period, with their source.
6. A second household: when the rent ceiling matters
The ministry’s Rechenbeispiel 6 is a different family of four in Munich, rent level VII, with a rent of €1,225 and an assessed income Y of €2,227.25 a month. Here the ceiling matters. On 31 December 2024 the ceiling plus the climate component is €1,129.40, so the rent taken into account is €1,129.40 + €197.80 = €1,327.20, and the Wohngeld is €621. On 1 January 2025 the ceiling rises to €1,139 + €34.40 = €1,173.40, the rent taken into account becomes €1,371.20, and the Wohngeld €691. Here the update moved two things at once: the ceiling and the formula.
7. What this gives the authority
When the values change on 1 January, a Wohngeldbehörde has to decide again for every running grant. With the edition and the row recorded in each answer, a caseworker can see which values a decision used, a reviewer can check them against the gazette, and a court can follow the change line by line. When the model’s values run out, it stops the line instead of extending it.
8. Where Catala stands on this
Catala keeps legal text beside executable code and supports dates (Catala book, introduction and ch. 5.2). Arxo provides built-in declarations for source anchors and pinned publications, and records in each answer the row of the annex it used. The Catala 1.3.0 book does not describe that publication-binding form. A fingerprint identifies saved bytes; legal interpretation requires a separate review. The authority can keep the publication records with the dated file and tell later source changes apart without relying on recollection.
9. Run it
law ask <case package> --case Familie20241231 --query-json queries/wohngeld-463.json --out runs/2024-12-31
law ask <case package> --case Familie2025 --query-json queries/wohngeld-485.json --out runs/2025-01-01
In each saved result.json, the proof node of the formula carries the attribute a3Selections: the rows of Anlage 2 the step used. The edges of the values the model holds are scenarios of the canon’s edition suite (law test <canon> --file tests/redaktionen.lawtest: 6 of 6 passed on 12 October 2026 with law 0.1.12).
Exercise
- A grant for the Vogts runs from 1 October 2024 to 30 September 2025. Under § 44 Abs. 1, what must the Wohngeldbehörde do in January 2025, and which amounts apply before and after?
- A colleague proposes: “If the 2027 values are not published yet, just use the 2026 values until they are.” What does the model return instead, and why is that safer for the office?
- In the Munich household, why does the rent taken into account change on 1 January 2025, while for the Vogts in Weimar it does not?