> For the complete documentation index, see [llms.txt](https://docs.os.uk/os-downloads/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.os.uk/os-downloads/products/areas-and-zones-portfolio/code-point/code-point-technical-specification/supply-formats.md).

# Supply formats

## CSV and GeoPackage <a href="#id-3.1-csv-and-geopackage" id="id-3.1-csv-and-geopackage"></a>

GeoPackage is an open, standard, platform-independent, portable, self-describing, compact format for transferring geospatial information. For more information on this format, please see our [Getting started with GeoPackage guide](/os-downloads/resources/product-resources/getting-started-with-geopackage-and-vector-tiles-guides/getting-started-with-geopackage.md).

The following tables give a comparison between the CSV attributes and the GeoPackage attribution.

### CSV attribution and format

| Mnemonic | Description                                   | Data type | Size |
| -------- | --------------------------------------------- | --------- | ---- |
| PC       | Postcode                                      | A8        | 8    |
| PQ       | Postitional\_quality\_indicator               | I2        | 1    |
| PR       | PO\_Box\_indicator                            | A1        | 1    |
| TP       | Total\_number\_of\_delivery\_points           | I3        | \*   |
| DQ       | Delivery\_points\_used\_to\_create\_the\_CPLC | I3        | \*   |
| RP       | Domestic\_delivery\_points                    | I3        | \*   |
| BP       | Non\_domestic\_delivery\_points               | I3        | \*   |
| PD       | PO\_Box\_delivery\_points                     | I3        | \*   |
| MP       | Matched\_address\_premises                    | I3        | \*   |
| UM       | Unmatched\_delivery\_points                   | I3        | \*   |
| EA       | Eastings                                      | I6        | \*   |
| NO       | Northings                                     | I7        | \*   |
| CY       | Country\_code                                 | A9        | 9    |
| RH       | NHS\_regional\_HA\_code                       | A9        | 9    |
| LH       | NHS\_HA\_code                                 | A9        | 9    |
| CC       | Admin\_county\_code                           | A9        | 9    |
| DC       | Admin\_district\_code                         | A9        | 9    |
| WC       | Admin\_ward\_code                             | A9        | 9    |
| LS       | Postcode\_type                                | A1        | 1    |

### GeoPackage attribution and format

| Description                                   | Data type | Size |
| --------------------------------------------- | --------- | ---- |
| postcode                                      | TEXT      | 8    |
| positional\_quality\_indicator                | TINYINT   | 1    |
| po\_box\_indicator                            | TEXT      | 1    |
| total\_number\_of\_delivery\_points           | TINYINT   | \*   |
| delivery\_points\_used\_to\_create\_the\_cplc | TINYINT   | \*   |
| domestic\_delivery\_points                    | TINYINT   | \*   |
| non\_domestic\_delivery\_points               | TINYINT   | \*   |
| po\_box\_delivery\_points                     | TINYINT   | \*   |
| matched\_address\_premises                    | TINYINT   | \*   |
| unmatched\_delivery\_points                   | TINYINT   | \*   |
| N/A                                           | N/A       | N/A  |
| N/A                                           | N/A       | N/A  |
| country\_code                                 | TEXT      | 9    |
| nhs\_regional\_ha\_code                       | TEXT      | 9    |
| nhs\_ha\_code                                 | TEXT      | 9    |
| admin\_county\_code                           | TEXT      | 9    |
| admin\_district\_code                         | TEXT      | 9    |
| admin\_ward\_code                             | TEXT      | 9    |
| postcode\_type                                | TEXT      | 1    |

### CSV format

* Those fields containing text (A) will be enclosed by double quotes which have not been included in the sizes listed in the table above. An asterisk (\*) denotes variable length.
* Fields with null data will appear as "" for text and 0 for numeric.
* Each record will be terminated with a carriage return character (ASCII 13) and a line feed character (ASCII 10).

Example of a Code-Point CSV record: "SO160AS",10,"N",1,1,0,1,0,1,0,437292,115542,"E92000001","E19000002","E18000009","E10000014","E07000093","E05012936","L"

### GeoPackage format

Note that there are no eastings or northings in GeoPackage; the geometry is already created in the GeoPackage container and is not listed as data but will be seen as a column in a database (PostGIS) called *geom* with a coordinate reference system of British National Grid EPSG: 27700 for GB postcodes.

Also supplied with the GeoPackage is the Code-Point data for Northern Ireland. This is already projected in Irish Grid EPSG: 29902 so will display in the correct position for this region.

Fields with a null value will appear as \[Null] for text (PostGIS) or as an empty field in a GIS. A null numeric value will appear as 0 in both a database and an attribute table in a GIS.

The following screenshot is an example of a GeoPackage record taken from the Information tool in QGIS:

<figure><img src="/files/XP09qmodsMgHPUmSITxH" alt="GeoPackage record as displayed in QGIS."><figcaption><p><em>GeoPackage record as displayed in QGIS.</em></p></figcaption></figure>

{% hint style="info" %}
The FeatureID (FID) is autogenerated by a GIS when the GeoPackage is loaded into it; it is not present in the GeoPackage.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.os.uk/os-downloads/products/areas-and-zones-portfolio/code-point/code-point-technical-specification/supply-formats.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
