Skip to content

LinkedSmallUserPostcode

large-user only large users only: small-user postcode containing the grid reference, NO LINKP for PO boxes, NO LINK otherwise unlinked; may retain an NRS split suffix; blank for small users

NRS data dictionary (extracted; reviewed (AI-assisted review, 2026-10-02, record))

Dictionary table Type Range Description
spd large user (spd-indexdatadictionary-2026-2.docx) Char(9) Provides the Small User postcode that contains the grid reference of the Large User postcode. PO Boxes shown as NO LINKP.
sspl (SSPL Data Dictionary 2026-2.docx) Char(9) Provides the Small User postcode that contains the grid reference of the Large User postcode. PO Boxes shown as NO LINKP. This can contain split postcodes.
Table Type Nullable Category In the CSV export SQL Server type
history table (postcode_simd_history, SPD) string yes NRS Scottish Postcode Directory field yes nvarchar(200)
main table (postcode_simd, SSPL) string no NRS Scottish Statistics Postcode Lookup field yes nvarchar(200)

Provenance in the history table (postcode_simd_history, SPD)

Where it comes from

Input Field Condition Reaches the row by
SPD/spd_postcodeindex_cut_26_2_csv/LargeUser.csv (pinned, SHA256 dcb060cbce01…) LinkedSmallUserPostcode records of the large-user file; only the large-user file has it, so it is null for the other's records the row itself

Scope: the row itself.

What was done to it: copied. Copied as text from the NRS Scottish Postcode Directory, unchanged; the two files are stacked. (code: simd_ingest/core/spd.py: read_index_file, union_index)

How it is checked (what each check tests; whether a build passed it is in that build's manifest.json["checks"])

  • spd.small_user.schema: the SPD file's header is exactly the reviewed header, in order
  • spd.large_user.schema: the SPD file's header is exactly the reviewed header, in order
  • spd.columns: the two SPD files together carry the expected columns
  • readback.history.index_columns: the saved file's NRS columns equal the source, re-read

Why: spd-cut-edition, single-combined-output, record-key

Provenance in the main table (postcode_simd, SSPL)

Where it comes from

Input Field Condition Reaches the row by
SSPL/sspl-2026-2/SingleRecord.csv (pinned, SHA256 a6b23a9abfbd…) LinkedSmallUserPostcode the row itself

Scope: the row itself.

What was done to it: copied. Copied as text from the NRS Scottish Statistics Postcode Lookup, unchanged. (code: simd_ingest/core/sspl.py: build_latest_index)

How it is checked (what each check tests; whether a build passed it is in that build's manifest.json["checks"])

  • sspl.schema: the SSPL file's header is exactly the reviewed header, in order
  • readback.main.index_columns: the saved file's NRS columns equal the source, re-read

Why: sspl-main-table, sspl-allocation-is-part-of-the-contract, two-nrs-cuts