# What an unassigned block means

A number can pass its numbering plan and still belong to nobody. How the regulators' tables settle it, what the statuses mean, and why the answer is free.

Date: 2026-09-05

Phone validation usually stops at the numbering plan: does the number have the right shape for its country? That question has a precise answer, and libphonenumber gives it for every region on earth. But the plan describes what a number could be, not whether anyone was ever given it. A regulator's allocation table answers the second question, and Spaw reads it for the United States, Canada and the United Kingdom. This guide explains the two layers, what each status in the answer means, and why a number in a block nobody holds is free.

## Two layers of validity

The first layer is the numbering plan. For the United States it says a number is an area code, a central office code that does not start with 0 or 1 and is not a service code such as 911, and four more digits. Every number of that shape is "valid" in the plan's sense: it could be assigned. Spaw reports this layer through `valid` and the reasons `too_short`, `too_long`, `invalid_length` and `invalid_number`.

The second layer is allocation. Regulators hand numbers to carriers in blocks and publish which blocks went where. A number can pass the plan and still sit in a block that was never handed to anyone, in which case no carrier can have connected it, no handset rings when it is dialled, and no text message reaches a person. Spaw reports this layer through `block_status` and, for a geographic number in a block nobody holds, through `valid: false` with the reason `unassigned_block`.

## Where the tables come from

- **United States and its territories.** NANPA publishes a report of every utilized central office code with its holder (https://www.nanpa.com/reports/co-code-reports, accessed 5 September 2026). The report lists assigned codes only, so a geographic code absent from it has not been assigned. The service codes such as 911 and 555 appear marked as unavailable.
- **Canada.** The Canadian Numbering Administrator publishes a status table for every code in every Canadian area code (https://www.cnac.ca/co_codes/co_code_status.htm, accessed 5 September 2026): in service, assigned, available, for special use, plant test and a few more.
- **United Kingdom and the Crown dependencies.** Ofcom publishes its National Numbering Scheme as a set of tables, one per leading digit, with a status for every block: allocated, free, protected, quarantined, reserved and designated (https://www.ofcom.org.uk/phones-and-broadband/phone-numbers/numbering-data, accessed 5 September 2026).

Spaw syncs all three weekly and names the table it used in `sources`, with the date the file declared or the date it was synced.

## What the three statuses mean

Spaw folds each regulator's vocabulary into three values so an integration never has to learn them all.

| `block_status` | Meaning | Effect |
| --- | --- | --- |
| `allocated` | A carrier or communications provider holds the block. | The number is valid; the holder is reported as `carrier`. |
| `unassigned` | Nobody holds the block: absent from the NANPA report, "available" in the Canadian table, "free", "protected" or "quarantined" in Ofcom's. | A geographic number answers `valid: false`, reason `unassigned_block`, free. |
| `reserved` | Held back for a special purpose: the 555 and N11 service codes, plant test codes, Ofcom's designated blocks. | The number stays valid and gains the `reserved_block` risk signal. |

The mapping is deliberately conservative. A block Ofcom lists as "protected" is withheld from allocation, and a "quarantined" one has been returned by a provider and is resting before reuse; in both cases no number in it can be in service today, so both read as unassigned. A "designated" block is set aside for a purpose the table does not spell out, so it stays valid with a warning rather than being called empty.

## Why the answer is free

Spaw charges for answers that are usable, not for attempts. A number in an unassigned block is an answer of the same kind as a number that is too short: it tells you the number cannot reach anyone, and there is nothing further to learn about it. So `unassigned_block` costs nothing, like every other invalid answer, and the response still carries the parsed number, its formats and the block status, so you can see what was checked and drop the record with confidence.

## The freshness gate

Calling a block unassigned is a strong claim, and it rests on the table being current. Codes are assigned every week, and a code assigned after the last sync would look free to a stale copy. Spaw therefore infers "nobody holds it" only from a table that lists every assigned block of its plan and was synced within the last 45 days. When the copy is older, the inference switches off: the number answers `valid: true` with `block_status: null`, and `sources` shows the stale date so you can see why. Ofcom's tables list unassigned blocks explicitly, so for the UK the status is read, never inferred.

Two more guards protect the answer. A download that would shrink a table by more than a few percent is refused, because a truncated file or a changed format would otherwise turn real numbers into unassigned blocks at scale. And the tables are only ever consulted for the regions they cover: a German number answers `block_status: null` and is judged by the plan alone, because no German table is installed.

## What to do with it

- **At signup**, reject `unassigned_block` the way you reject `too_short`: show the person the number that was checked and ask for another.
- **In a CRM clean-up**, drop those rows or move them to a review list. They were never real numbers, whatever the export says.
- **Do not treat `reserved` as invalid.** A number in a reserved block can connect to a service; it just is not a subscriber. Use the risk signal and decide per use case.
- **Read `sources`.** The table's date tells you how fresh the claim is, and `block_status: null` tells you no claim was made.

Where the numbering plan and the allocation table disagree, the table wins, because it is the regulator's own record of what exists. Where the table is silent, the plan's answer stands and nothing is inferred.

## What to do next

- Read the [unassigned_block reason page](/docs/reasons/unassigned_block) for the exact wording and an example answer.
- Read the [phone intelligence guide](/docs/phone-intelligence) for every field and where it comes from.
- Check the request and response on the [POST /api/v1/phone reference](/docs/api/validate-phone).
- See what the same tables say about the holder of an allocated block in [why US numbers cannot be split into mobile and landline](/guides/why-us-numbers-cannot-be-split-into-mobile-and-landline).

Reference: https://spaw.co/guides/what-an-unassigned-block-means
