Books / Law as Code in Practice: French Family Benefits / Chapter 8

Part III · Chapter 8

One Text, Two Readings

4 min read

Full-page risograph illustration: a red path splitting in two around a red tree, a small marker at the fork.
Contents of Law as Code in Practice: French Family Benefits

By the end you can recognise a disputed reading as a choice in the file, not a fact about the household.

Lawyer: where the floor attaches in the wording.
Analyst: when the readings agree.
Developer: the declared reading group and the response without selection.

The Garniers’ question

“What if two reviewers read the same formula differently?” Predict whether the model should choose one silently. To isolate the issue, we switch to a synthetic single-person test card for June 2024: zone II, no dependants, zero rent and €4,000 resources. Zero rent is a deliberate test input, not a realistic housing-aid application.

The text

Article D. 823-17 CCH, pinned edition applying in June 2024, gives Pp = P0 + Tp × (R−R0) and says P0:

ne peut être inférieure à un montant minimum défini par arrêté

English gloss: cannot be below a minimum fixed by order. Participation personnelle → personal contribution → participation_personnelle. The text’s minimum applies to P0 itself. The model keeps two readings. The literal one (PpLitteral) applies the formula as written, Pp = P0 + Tp × (R − R0), with no further floor. The working one (PpPlancherFinal) also keeps the final Pp from falling below P0: Pp = max(P0, P0 + Tp × (R − R0)). Neither label establishes the competent authority’s preferred reading; the Garniers’ file selects the working reading, and that choice is the file’s, named in its context.

The named choices

The following declarations are in the housing canon; labels are left out:

pub interpretation PpPlancherFinal {
    status disputed;
    …
    include ParticipationPersonnelle;
}

pub interpretation PpLitteral {
    status disputed;
    …
    include ParticipationPersonnelleLitterale;
    include ParticipationPersonnelleLitteraleAlias;
}

interpretation_group SensMinimumPp {
    alternatives PpPlancherFinal, PpLitteral;
    selection exactly_one;
}

The literal rule writes the same contribution relation as the working reading:

rule ParticipationPersonnelleLitterale(m: Menage, p0: Money, taux: Decimal, ressources: Money, abattement: Money) strict {
    when participation_minimale(m, p0) and taux_participation(m, taux)
        and ressources_retenues(m, ressources) and abattement_r0(m, abattement);
    then participation_personnelle(m, p0 + taux * (ressources - abattement));
}

Labels and source anchors are left out. A downstream aid formula therefore follows the selected contribution; the choice is not confined to an explanatory note.

Three responses

June 2024 test selection Personal contribution Formula aid component
PpPlancherFinal €37.91 €20.17
PpLitteral €4.3462 €53.7338
No selection INTERPRETATION_REQUIRED INTERPRETATION_REQUIRED

Recorded on 11 October 2026 with law 0.1.12. These are isolated formula-test results, not complete entitlement or payment decisions. The no-selection response requests the declared choice even though the question proposes a concrete amount.

Left, Chapter 7: where D. 832-26 divides by twelve, a file without a rounding reading is refused with an inexact division, and a file with the named reading ArrondiCentimeHalfUp establishes E0 of €164.76 and aid of €132.664624. Right, Chapter 8: D. 823-17 has a group of two readings with exactly one to choose; PpPlancherFinal gives a contribution of €37.91 and a formula component of €20.17, PpLitteral gives €4.3462 and €53.7338, and with no selection the answer is interpretation required.
Two different gaps in a text: a rounding it does not give (Chapter 7) and a choice between two constructions the model keeps (Chapter 8).

Under D. 823-16, Af = L + C − Pp. This synthetic test uses L = €0 and the standard charges allowance C = €58.08. Subtracting Pp gives €20.17 under PpPlancherFinal and €53.7338 under PpLitteral. These are formula components; the test does not establish entitlement or a payment.

Change one thing

The neighbouring synthetic tests raise resources to €5,800. Both readings then establish a €55.2862 contribution and a €2.7938 formula component. Agreement in that file does not settle the legal question: the floor does not bind there. A discriminating scenario is the below-threshold file where the readings diverge.

The AAH canon uses the same mechanism for a different legal issue: MaintienTantQue and RenouvellementStrict declare readings of renewal after a lapse under article 2 of decree 2022-1694. Keep that question distinct from the housing floor; a reading name records a legal construction, not a universal rounding or renewal preference.

What this gives the fund

Two reviewers can preserve competing constructions without changing the household’s evidence. The case makes the selected reading visible; a missing selection becomes an explicit next step. A reviewer can also choose a test that distinguishes the readings rather than relying on a file where their amounts coincide.

Where Catala stands on this

Catala makes general rules and exceptions explicit, with conflicting applicable definitions reported as an evaluation error (Catala book, ch. 2.2). Competing legal constructions can be represented through inputs or separate scopes. Arxo builds named readings and a required-selection group into the language; Catala 1.3.0 has no dedicated built-in form for that group. For the fund, the unresolved choice becomes a result the file can retain and route for review, and downstream questions share the selected reading.

Record the scenarios

These commands require a local repository checkout and an installed law executable. Start at the repository root.

law test corpus/laws/fr/apl --file tests/finish-lecture-pp.lawtest --json

The declared suite tests both readings below the threshold, agreement above it, and the absence of a selection. The case snippets in earlier chapters use qualified reading names because they belong to another package.

Exercise

  1. Which response occurs without a selection?
  2. Does agreement above the threshold settle the reading below it?
  3. Are the table’s amounts complete bank payments?

Contents · PDF · EPUB · Free under CC BY 4.0

Law as Code in Practice: French Family Benefits

Contents

You’re reading · Part III

Where the Text Is Hard

Reading settings

Text size
Appearance

Preferences and your reading place are saved only in this browser.