# Methodology: UK Council Spending

> Where does the UK Council Spending API's data come from, and how is it checked?

Payment lines come from the spending files (CSV or XLSX) that each covered English council lists in data.gov.uk or its own open data portal, found only through those catalogues' APIs and checked weekly. Lines are mapped onto one schema as published, with no VAT adjustment or recategorisation. A release is published only after per-file mapping, parsing, date-window, duplicate and council-code checks pass.

## Sources

| Dataset | Source | Release | Refresh |
| --- | --- | --- | --- |
| `ukspend.transactions` | Each council's spending files (CSV or XLSX) as listed in data.gov.uk or the council's open data portal | Each file's own period; file, period and checksum returned with every line | Catalogues checked weekly; stale after 45 days |
| `ons.lad_names_codes`, `ons.ctyua_names_codes` | Local authority district and county / unitary names and codes (Open Geography Portal API), Office for National Statistics | April 2025 lists | Every load (reference only) |

## How values are produced

- Files are discovered only through catalogue APIs (the data.gov.uk CKAN API or the council's CKAN-compatible portal). Web pages are never parsed; a resource that turns out to be an HTML page is recorded as unreadable.
- Each file is kept under its SHA-256 checksum and listed with its catalogue entry, the licence as the catalogue states it, its column mapping and row counts.
- Files from October 2025 onwards are loaded; a file inside another chosen file's period is skipped.
- Headers are mapped through synonyms and per-council overrides; amounts, dates and names are kept as published.
- Supplier names are normalised for grouping by a documented rule (upper case, `&` as AND, punctuation removed, LIMITED as LTD and similar). Grouping is not identity: a supplier is linked to a company only through a Companies House number the council publishes.
- Redacted payees are kept as lines with `supplier.redacted: true` and are never named.
- Councils are identified by ONS GSS code, checked against the ONS names-and-codes lists at every load.

## Validation checks

Every release runs the dataset's required checks before it can become active. A blocking check that fails stops the release, and the previous one keeps serving. Records that did not change keep their original `published_at`, and every record carries a `provenance` block with its `source_url`, the source snapshot it was read from and the validation status of its release.

| Check | What it guards |
| --- | --- |
| `row_count_range`, `unique_record_id`, `required_fields_present` | Platform minimum |
| `schema_mapping_coverage` | A file that loaded before still maps, and at least 90% of readable files map |
| `amounts_parse` | Per file, at most 2% of lines with an unparseable or missing amount or date |
| `dates_within_period` | Per council, at most 2% of lines dated well outside their file's period (accounting-month lines are kept and flagged `outside_period`) |
| `duplicate_rows` | Per council, at most 1% of lines repeated across its files |
| `council_row_counts`, `council_files_present` | No published council's rows halve or its files stop loading; a council never published whose files don't load is left out and reported |
| `council_codes_current` | Every council code is in the current ONS lists |
| `identifiers_valid`, `councils_unavailable` | Non-blocking: invalid company numbers dropped, councils whose files could not be read |

## Known limits

- **Listed councils only**, for the months `GET /v1/uk-council-spending/coverage` lists; late, missing or PDF-only months are gaps (`months_missing`).
- **As published.** Thresholds (over £500, over £250, all spend), VAT treatment and the date given (payment, posting or certification) differ by council.
- Not included: PDF and XLS files, purchase card transactions, contracts, tenders and grants registers, councils in Scotland, Wales and Northern Ireland.

> Contains public sector information licensed under the Open Government Licence, as each council's catalogue entry states. Olympus is not affiliated with or endorsed by any council or the ONS.

## Sources

- GOV.UK: [Local government transparency code 2015](https://www.gov.uk/government/publications/local-government-transparency-code-2015/local-government-transparency-code-2015)

## Related

- [Coverage and sources: UK Council Spending](https://olympus.new-odyssey.com/coverage#uk-council-spending)
- [UK Council Spending API reference](https://olympus.new-odyssey.com/docs/uk-council-spending)
- [UK council spending over £500, explained](https://olympus.new-odyssey.com/guides/uk-council-spending-over-500)
- [Data release notes](https://olympus.new-odyssey.com/releases)

---
Published 2026-10-21, updated 2026-10-21 by New Odyssey. Canonical: https://olympus.new-odyssey.com/methodology/uk-council-spending
