Per-council (English local housing authority) variables from the MHCLG detailed LA data files in data/.
Notes on file layout (verified by parsing Statutory_Homelessness_Detailed_Local_Authority_Data_202603.ods with pandas+odfpy):
E92000001), then regions, then one row per LA. TA7/TA8 have no England/region rows (start directly at LAs).Organisation Identification Code (ONS/GSS code — join key across all datasets), col 1 Area Name.All from data/Statutory_Homelessness_Detailed_Local_Authority_Data_202603.ods (latest snapshot, 31 March 2026) unless noted; the same columns exist in the 202512_revised and 2024-2025_corrected files.
| Variable | Sheet / column (verified) | Unit | Interpretation |
|---|---|---|---|
ta_households_total |
TA1, col 2 "Households in TA Total[note 34]" |
households | Total households in temporary accommodation at quarter end — the core TA caseload measure. |
households_in_area |
TA1, col 3 "Households in area (thousands)[note 5]" |
thousand households | Denominator for rates (MHCLG-supplied household estimate). |
ta_rate_per_1000 |
TA1, col 4 "Households in TA Total(per thousand)Total" |
per 1,000 households | TA caseload rate, comparable across councils of different size. |
ta_households_with_children |
TA1, col 5 "Households in TA with childrenTotal" |
households | TA households containing dependent children. |
ta_children_total |
TA1, col 6 "Children in TATotal" |
children | Number of children living in TA. |
ta_bnb_total |
TA1, col 7 "Households in B&Bs including shared annexesTotal" |
households | B&B count — the most expensive and lowest-quality TA type. |
ta_bnb_children_over_6wk |
TA1, col 9 "…With children and resident more than 6 weeks" |
households | Families in B&B beyond the statutory 6-week limit — a legal-compliance red flag. |
ta_nightly_paid_total |
TA1, col 12 "Households in nightly paid, privately managed accommodation, self-containedTotal" |
households | Nightly-let placements — high unit cost, fastest-growing type. |
ta_hostel_total |
TA1, col 14 "Households in hostels, including reception centres…Total" |
households | Hostel/refuge placements. |
ta_private_sector_total |
TA1, col 16 "Households in private sector accommodationTotal" |
households | Leased private-sector TA. |
ta_la_ha_stock_total |
TA1, col 18 "Households in LA or HA stockTotal" |
households | TA in council/housing-association own stock — cheapest type. |
ta_out_of_area_total |
TA9, col 2 "Households owed a TA duty in another LATotal" (also TA1 col 22) |
households | Out-of-area placements — households the council placed in another LA's area. |
ta_out_of_area_rate |
TA9, col 3 "…(per thousand households)" |
per 1,000 households | Out-of-area placement rate. |
ta_out_of_area_same_region_pct |
TA9, col 4 "…Destination: within the same region(percent)[note 48]" |
percent | How local the out-of-area placements are. |
ta_5yr_plus |
TA4, cols 8/14/20/26/32/38 "…5 or more years" (sum across the six accommodation types) |
households | Long-stay TA households (5+ years) — stuck caseload. |
ta_bnb_mean_stay_days |
TA7, col 3 "B&B or shared annexMean (days)" (median in col 2) |
days | Average length of B&B stays. TA7 exists only in the quarterly files' verified sheet list; England row absent. |
initial_assessments |
A1, col 2 "Initial assessments Total[note 2]" |
households/quarter | Homelessness applications assessed in the quarter — the inflow driving TA. |
owed_prevention_or_relief |
A1, col 3 "Assessed as owed a duty Owed a prevention or relief dutyTotal" |
households/quarter | New statutory duty caseload in the quarter. |
Unverified: exact [note n] numbering may differ between editions; TA2/TA3/TA5/TA6 (household composition, duty status, age, ethnicity breakdowns) exist and were header-verified but are secondary — same layout pattern.
| Variable | Formula | Inputs | Unit | Interpretation |
|---|---|---|---|---|
ta_spend_per_household_in_ta |
RO4 net TA spend ÷ ta_households_total |
01-revenue-outturn RO4 housing (homelessness/TA lines); TA1 col 2, same FY (use 2024-25 annual file) | £/household/year | Unit cost of a TA placement — the headline efficiency measure; compare like-for-like councils. |
bnb_share_of_ta |
ta_bnb_total ÷ ta_households_total |
TA1 cols 7, 2 | ratio (0–1) | Reliance on the costliest TA type; high share signals procurement failure. |
nightly_paid_share_of_ta |
ta_nightly_paid_total ÷ ta_households_total |
TA1 cols 12, 2 | ratio | Exposure to spot-market nightly lets. |
own_stock_share_of_ta |
ta_la_ha_stock_total ÷ ta_households_total |
TA1 cols 18, 2 | ratio | Share of TA met from own/HA stock — proxy for cheap, stable supply. |
out_of_area_share |
ta_out_of_area_total ÷ ta_households_total |
TA9 col 2, TA1 col 2 | ratio | Share of TA duty met outside the council's area — service-quality and cost-shunting signal. |
children_per_ta_family |
ta_children_total ÷ ta_households_with_children |
TA1 cols 6, 5 | children/household | Family size in TA. |
bnb_families_over_limit_share |
ta_bnb_children_over_6wk ÷ ta_bnb_total |
TA1 cols 9, 7 | ratio | Share of B&B use breaching the 6-week family limit. |
ta_per_new_duty |
ta_households_total ÷ (owed_prevention_or_relief × 4) |
TA1 col 2; A1 col 3 annualised (or annual file) | years (stock/flow) | Rough TA "backlog" ratio — how big the standing caseload is relative to inflow; higher = slower move-on. |
ta_caseload_growth_qoq |
(ta_households_total(t) − same(t−1)) ÷ same(t−1) |
TA1 col 2 from 202603 vs 202512_revised files |
percent/quarter | Direction of travel of the TA caseload. |
Caveats for constructed variables: use the same LA code vintage on both sides of any cross-dataset join (reorganised councils change codes); exclude England/region rows; treat suppressed/imputed values as missing rather than zero; RO4 spend covers the financial year while TA1 is a point-in-time snapshot, so ta_spend_per_household_in_ta should use the FY-average of the four quarterly snapshots (or the annual file's figure) as the denominator where possible.
One file per variable in variables/, with YAML frontmatter (name, kind, type, unit, grain, role, source, period, missingness).
ta_households_totalhouseholds_in_areata_rate_per_1000ta_households_with_childrenta_children_totalta_bnb_totalta_bnb_children_over_6wkta_nightly_paid_totalta_hostel_totalta_private_sector_totalta_la_ha_stock_totalta_out_of_area_totalta_out_of_area_rateta_out_of_area_same_region_pctta_5yr_plusta_bnb_mean_stay_daysinitial_assessmentsowed_prevention_or_relief