Product · throughline · Worked examples

One message, composed many ways.

A council has to tell a tenant their rent is in arrears. The words that do it are governed by six orthogonal content standards, each composed in by reference — readability, British-English conventions, tone, purpose, audience and medium.

Because the axes are independent, you can hold five of them fixed and swap just one. Only what that axis owns changes; everything else stays put. Below, the very same message is put through two swaps — and each rendering is governed by a real throughline-compose project whose build fails if a requirement drifts.

The requirement graph says how the message must read; the rendered artifact is the writing. throughline doesn't lint prose — so what you see below is the human deliverable each graph governs.

Five axes are held byte-identical — readability, conventions, the formal register, the instruct purpose and a general (lay tenant) reader. Only the medium changes, and it is a one-line edit in the project's config. Watch what the channel — and only the channel — brings with it.

plainISO 24495 conventionsUK toneformal purposeinstruct audiencegeneral mediumweb

Your rent account is in arrears

Your rent account is in arrears. You owe £318.60, and you need to pay it so that it reaches us on or before 1 August 2026. Arrears means rent you owe from earlier weeks that has not yet been paid, on top of the rent for the current week.

How to pay

There are 3 ways to pay what you owe:

  1. Pay online at www.banchester.gov.uk/pay-rent and quote your rent account number, 4471-0932. This is the quickest way to pay.
  2. Pay by telephone using a debit or credit card. Call 01000 000 000 with your rent account number ready.
  3. Set up a Direct Debit so that the rent is paid automatically each month.

If you cannot pay in full

If you cannot pay the full £318.60 by 1 August 2026, contact the Housing Rents Team before that date on 01000 000 000. Do not ignore this. If you tell us you are struggling to pay, we may be able to agree a payment arrangement with you.

If the amount does not look right

If the amount does not look right to you, contact the Housing Rents Team on 01000 000 000 and explain what you think is wrong. We will check your account and correct it if there has been a mistake.

plainISO 24495 conventionsUK toneformal purposeinstruct audiencegeneral mediumletter

Banchester City Council
Housing Rents Team
PO Box 114
Banchester BN1 2QT

Ms A Okafor
14 Elderwood Court
Banchester BN3 7HR

Date: 18 July 2026
Rent account: 4471-0932

Dear Ms Okafor

Your rent account is in arrears

We are writing to tell you that your rent account is in arrears. As at 18 July 2026 you owe £318.60. Arrears means rent you owe from earlier weeks that has not yet been paid, on top of the rent for the current week. Please pay the £318.60 so that it reaches us on or before 1 August 2026.

If you cannot pay the full amount by 1 August 2026, or if the amount does not look right to you, please contact the Housing Rents Team before that date on 01000 000 000. Do not ignore this letter. If you tell us you are struggling to pay, we may be able to agree a payment arrangement with you.

To pay what you owe, you can pay by telephone using a debit or credit card — call 01000 000 000 and quote your rent account number, 4471-0932 — or send a cheque payable to Banchester City Council to the Housing Rents Team, PO Box 114, Banchester BN1 2QT, writing your rent account number on the back.

Yours sincerely

J Farrow
Senior Rents Officer
Banchester City Council Housing Rents Team

plainISO 24495 conventionsUK toneformal purposeinstruct audiencegeneral mediumemail
FromBanchester City Council Housing Rents Team <rents@banchester.gov.uk>
ToMs A Okafor
SubjectYour rent account is £318.60 in arrears — please pay by 1 August 2026

Dear Ms Okafor

Your rent account is in arrears and you owe £318.60. Please pay this so that it reaches us on or before 1 August 2026. Arrears means rent you owe from earlier weeks that has not yet been paid, on top of the rent for the current week.

If you cannot pay the full amount by 1 August 2026, or if the amount does not look right to you, please contact the Housing Rents Team before that date on 01000 000 000. Do not ignore this email. If you tell us you are struggling to pay, we may be able to agree a payment arrangement with you.

To pay what you owe, pay your rent online at www.banchester.gov.uk/pay-rent and quote your rent account number, 4471-0932. If you cannot use the online form, you can pay by telephone: call 01000 000 000 and quote the same number.

Yours sincerely

J Farrow
Senior Rents Officer
Banchester City Council Housing Rents Team

The greeting and sign-off appear in the letter and the email but not the web page — the medium axis decides whether those slots exist at all. What they say (“Dear Ms Okafor”, “Yours sincerely” rather than “Hi”, “Cheers”) is the tone axis. Two standards meet at one seam, and the graph keeps them separate.

Now hold readability and conventions fixed, keep the channel a page, and move the reader instead — from a lay tenant, to a housing officer, to a housing lawyer. Register and purpose shift to match. The subject is identical rent arrears; the pitch is not.

plainISO 24495 conventionsUK toneformal purposeinstruct audiencegeneral

This is the lay-tenant rendering you have already seen — the web page shown in full under Swap 1, with every housing term glossed in everyday words and one clear next step. It is the reference the officer and lawyer versions below are pitched against, so rather than repeat it we point you back up.

plainISO 24495 conventionsUK toneneutral purposeinstruct audiencepractitioner

Working a rent-arrears case

Use this note when a rent account falls into arrears and you've been assigned the case. A case is worked correctly when you've contacted the tenant, recorded the outcome on the ledger, agreed a way forward or escalated it, and the next action is diarised.

Steps

  1. Open the ledger and confirm the arrears figure and how far back it goes.
  2. Check the tenancy record for anything that changes how you act — a live repayment arrangement, a Housing Benefit or Universal Credit claim, or a support flag.
  3. Contact the tenant, set out the balance owed and the date it fell due, and ask them to clear it or agree a repayment plan.
  4. If the tenant doesn't respond within 10 working days, send a first warning letter and diarise a follow-up for 14 days later.
  5. If the arrears reach 8 weeks' rent and there's no agreement, refer the case to your team leader to consider serving a Notice of Seeking Possession — the formal notice that warns the tenant the council may ask the court to end the tenancy.

For a housing lawyer

content-compose-expert-example ↗
plainISO 24495 conventionsUK toneformal purposeinform audienceexpert

Rent arrears and possession: the position for secure tenancies

For a secure tenancy, the council may recover possession for rent arrears only under Ground 1 of Schedule 2 to the Housing Act 1985, and only where the court is satisfied that it is reasonable to make the order. Arrears alone do not found a claim: Ground 1 is discretionary, so the debt establishes the ground but the court retains a full discretion on reasonableness and on whether to postpone or suspend.

The section 83 notice

Proceedings must be preceded by a notice of seeking possession under section 83, in the prescribed form, specifying Ground 1 and the particulars relied on. The notice is valid for 12 months from the earliest date on which proceedings may begin. A defective or expired notice cannot be cured at trial; the court may dispense with notice under section 83(1)(b) only where it is just and equitable to do so.

Pre-action steps

The Pre-Action Protocol for Possession Claims by Social Landlords applies. The council must have contacted the tenant, provided the arrears figure — for example £1,240 as at 1 July 2026 — considered the tenant's circumstances, and made reasonable attempts to agree an affordable arrangement before issuing.

Same arrears, three readers. The lawyer's briefing names statute and leaves terms of art unglossed; the officer's note gives ordered procedure in trade vocabulary; the tenant's page explains every word. That is the audience axis doing its job — while readability and conventions never moved.

The renderings above are human deliverables — the graph governs how they must read, but throughline deliberately doesn't lint prose. throughline-content-service is a working prototype that closes that last gap. Give it the one canonical message and a composed profile and it does two things: it projects the message into the profile's medium, and it runs the clause-by-clause conformance pass the graph itself omits — so a deliverable can be checked, not merely asserted.

The service is a consumer of throughline, the way a compiler consumes a language spec. It carries its own throughline graph, and — because it ingests external input and holds a backend secret — it composes the OWASP ASVS security baseline by reference as the standard suitable for its own delivery.

Checking the email projection

tl-content conform

$tl-content conform --message rent-arrears.yaml --profile profiles/email

conformance · profile email (general / formal / instruct) · medium email

PASSSR-0001Carry a subject line summarising the message

PASSSR-0002Open with a greeting that names the recipient

PASSSR-0003Close with a sign-off and the sender's name

PASSSR-0004Include exactly one call to action linking to the payment page

PASSSR-0005Render the amount owed with the pound symbol

REVIEWSR-0006Use plain, everyday words a general reader understands

5 pass · 0 fail · 1 review — all clauses honoured or left for review

Each clause is one of the profile's own requirements, tagged with the axis it satisfies. The structural clauses — a subject line, a greeting, one call to action, the amount as a £-figure — the offline engine checks deterministically; the prose clause it cannot judge alone it honestly returns for review, which is where a language model or a human reviewer takes over. The check exits non-zero on any failure, so it can gate a pipeline exactly the way tl check gates the graph.

Each example is a public repository you can clone and validate. The requirement graph lives under system-requirements/; the deliverable prose lives under content/; and tl-compose check --strict fetches every pinned source, merges them into one graph and fails the build if anything is ungrounded or has drifted.

The composed standards themselves — plain language, UK conventions, the tone, purpose, audience and medium families — are separate, reusable source repositories under the same organisation.

Back to the throughline product page