Books / Law as Code in Practice: German Housing Benefit (Wohngeld) / Appendix E
Appendix E
Solutions to the Exercises

Contents of Law as Code in Practice: German Housing Benefit (Wohngeld)
Chapter 0 — What a Wohngeldbehörde Decides, and Why It Is a Law-as-Code Problem
- Not enough facts — the amount is not established. Without the rent, the formula has no M, so there is no amount to compute; returning €0 would state that the family is owed nothing, which nobody has decided.
- The monthly Wohngeld depends on the date (€463 on 31 December 2024, €485 on 1 January 2025). In this case the income (€1,710.00) and the rent taken into account (€777.80) are the same on both dates; Chapter 2 shows why.
- The claim needs more than the formula: the amount must be at least €10 (§ 21 Nr. 1), not all members may be excluded (§ 21 Nr. 2), and claiming must not be abusive — an assessment the model leaves to the Wohngeldbehörde (§ 21 Nr. 3). Chapter 6 shows what happens when that assessment is still missing.
Chapter 1 — Which Text Applies? The Bundesgesetzblatt and the § 44 Transition
- It must decide again, of its own motion, for 1 January to 30 September 2025, applying the values of the second WoGFV: €463 a month until 31 December 2024 and €485 a month from 1 January 2025.
- It returns no amount, with the issue
MISSING_PARAMETER_VALUE. A carried-over value would look like a lawful amount without saying which text it rests on; the refusal names what is missing — the values for the new period. - In Munich the rent (€1,225) is above the ceiling, so the ceiling decides the rent taken into account, and the ceiling rose. In Weimar the rent (€580) stays under the ceiling on both days, so the rent itself is used: €580 + €197.80 = €777.80 in both editions.
Chapter 2 — Household, Rent and Income
- €26,880 − €2,000 = €24,880; minus 20 % = €19,904 a year; Y = €19,904 ÷ 12 = €1,658.6666666667 — the model holds Y at ten decimal places (rounded half up), not rounded to the cent — and the Wohngeld becomes €499. Proven expenses replace the flat rate only when they are higher, as here.
- The rent (€850) is now above the ceiling plus the climate component (€800.40), so the ceiling counts: M = €800.40 + €197.80 = €998.20, and the Wohngeld becomes €644.
- Because § 5 Abs. 1 makes membership depend on facts — the centre of one’s life, the relationship to a member — not on registration. The case must establish those facts: a person whose life centre in the flat is not established is not counted (section 6), and a person whose status under § 7 is unknown leaves the household not established (Chapter 8).
Chapter 3 — One Family, One Decision: Weimar, Mietenstufe III, €485
- The place of residence —
wohnort— because the rent level is read from the WoGV’s list for the municipality (§ 12 Abs. 1 WoGG with the Anlage to § 1 Abs. 3 WoGV). The case has no field for the level; it follows from the place. - § 11 Abs. 1 WoGG: the rent counts only up to the ceiling of Anlage 1 (§ 12 Abs. 1) plus the climate component (§ 12 Abs. 7) — €800.40 for four members at level III in 2025.
- The assertion
behoerde-21-nr3with originadjudicated: the Wohngeldbehörde has assessed that claiming would not be abusive. Without it, the claim would require judgment.
Chapter 4 — The § 19 Formula: Anlagen 2 and 3 and One Rounding
With the values of 31 December 2024:
z1 = 0.01 + 0.0002251 · 777.80 + 0.00002 · 1,710 = 0.01 + 0.17508278 + 0.0342 = 0.2192827800The remaining steps give z2 = 374.9735538000, z3 = 402.8264462000, z4 = 463.2504131300, and €463.
Because Anlage 3 Nr. 2 prescribes ten decimal places for the intermediate steps and Nr. 3 allows rounding to the euro only at the end. Rounding earlier is a different calculation and can change the amount by a euro.
When z4 lies very close to a half euro, so that the small differences between rounding and cutting off at the tenth decimal place — carried through z2 and z4 — put it on different sides of the 50-cent line.
Chapter 5 — How a Scenario Is Written
- An expectation copied from the engine only checks that the engine agrees with itself. The PDF is an independent statement of the answer; agreement with it is evidence.
- Two errors that cancel out — for example a wrong ceiling and a wrong heating relief that happen to give the right total — or the right total reached through the wrong path.
- No. They are owner-occupier subsidies (Lastenzuschuss), which the model declares outside its scope; for them it returns a flag, not an amount. The scope line — 18 of 21 executed — says so openly.
Chapter 6 — Sum Known, Claim Pending: § 21 Nr. 3 and the Wohngeldbehörde
- Only the claim. The income, the rent and the amount stay established; the claim to €485 becomes not established, and “no claim, ground § 21 Nr. 3” becomes established.
- Because the model leaves that assessment to the Wohngeldbehörde. Treating silence as “not abusive” would turn the office’s decision into a default of the software; the household would receive a claim nobody competent has confirmed.
- A threshold. § 21 Nr. 3 names “considerable assets” only as an example and sets no amount; a fixed limit would replace the office’s assessment with a number the Act does not contain. If an authority adopts internal guidance with a threshold, that guidance is a separate source and must be named as such.
Chapter 7 — Excluded by Another Authority’s Decision: § 7 WoGG
- The exclusion no longer applies (§ 7 Abs. 1 S. 3 Nr. 1): she is a counted member, and the model computes Wohngeld for her household, provided the other facts are complete.
- Because § 7 Abs. 1 excludes recipients only “wenn bei deren Berechnung Kosten der Unterkunft berücksichtigt worden sind”. Receiving the benefit without housing costs does not exclude.
- Because § 7 excludes person by person: the son receives SGB II support with housing costs, the father does not. So not all members are excluded (§ 21 Nr. 2 does not apply), and the household’s Wohngeld is computed for the one counted member, with the rent taken in proportion under § 11 Abs. 3. (Had the excluded son been the applicant, § 3 Abs. 4 would have kept him entitled to claim for the household.)
Chapter 8 — Missing Facts, Conflicting Records and the Model’s Boundary
- The income (€1,710.00) and the rent level (Mietenstufe III, from the place). Not the rent taken into account, and so not the amount.
- Because the most recent record is not necessarily the correct one.
BOTHkeeps both records and their sources and leaves the resolution to the person who can check them; a silent choice would hide the conflict in the decision. - “Outside the model” says the model does not cover owner-occupier subsidies; it says nothing about her entitlement. She may well be entitled to a Lastenzuschuss. The office must decide her case by other means.
Chapter 9 — Audit and Reproduction
- The same rules and parameters were evaluated, on different facts or a different date. Here:
Familie2025andFamilie20241231differ only in the date, which selects other rows of the annexes. - The program (was the bundle replayed with a different program or language version — compare the
semanticsand program fingerprints in the manifest) and the inputs (was the saved bundle changed — compare the case fingerprint). - Replay shows that the computation is reproducible. It does not show that the rules read the Act correctly or that the facts were true; those need a legal review and the file.