Skip to content

Number pooling: why a US code's holder is often not your block's holder

published · September 27, 2026

In a pooled US code each block of a thousand can have its own holder. How often it differs from the code's, and what carrier and line type then describe.

In a pooled US code, the holder NANPA lists for the six-digit code (NPA-NXX) is often not the holder of the number's own block of a thousand (NPA-NXX-X): in NANPA's files of 26 September 2026, 141,810 of the 197,177 assigned US codes (71.9%) were pooled, 663,918 of the 1,303,876 allocated thousands-blocks (50.9%) sat under a different operating company number (OCN) than their code, and at least 468,207 (35.9%) under a different network brand.

This guide explains how pooling splits a code, what each of NANPA's two reports says, how often the holders differ by OCN, by brand and by line type, and which fields of Spaw's answer describe the block. Unless a figure says otherwise it comes from the NANPA files Spaw synced on 26 September 2026 and counts the United States without its territories.

How pooling splits a code

A central office code covers 10,000 numbers in one rate centre. Before pooling, a carrier that needed numbers in a rate centre was given a whole code of 10,000, whatever its actual need, which the FCC named as one of the major factors behind numbering exhaust in its Numbering Resource Optimization order of March 2000 (FCC 00-104, CC Docket 99-200, paragraph 4, https://docs.fcc.gov/public/attachments/FCC-00-104A1.pdf, accessed 27 September 2026). Thousands-block number pooling separates a code's 10,000 numbers into ten blocks of 1,000 and allocates them separately within that rate centre (47 CFR § 52.20(a), https://www.law.cornell.edu/cfr/text/47/52.20, accessed 27 September 2026). The same order adopted pooling nationwide, pointing to the Illinois trial in which pooling had extended the life of area code 847 by 24 months beyond its projected exhaust date (paragraph 8).

When a code joins the pool, its holder must donate every block with ten percent or less contamination to the pool for that rate centre, and may keep at least one block per rate centre as a footprint (§ 52.20(c)(1) and (c)(2)). A block is contaminated when at least one of its numbers is not available for assignment (47 CFR § 52.7(h), https://www.law.cornell.edu/cfr/text/47/52.7, accessed 27 September 2026). NANPA assigns the pooled blocks to the carriers that apply for numbers in that rate centre (https://www.nanpa.com/numbering/co-codesthousands-blocks, accessed 27 September 2026).

All ten blocks stay in the code's rate centre, so pooling changes who holds a number, not where it is. Spaw takes region from the code whichever level answers.

NANPA's code report and thousands-block report

NANPA publishes two tables that matter here. The central office code report lists every assigned code with one holder, its OCN and whether the code is pooled (https://www.nanpa.com/reports/co-code-reports, accessed 27 September 2026). The thousands-block report lists every block of a thousand in every pooled code with its status and, for an allocated block, its own holder and OCN (https://www.nanpa.com/reports/thousands-block-reports/region, accessed 27 September 2026). Spaw syncs both daily.

A reading that stops at the six digits can only return the code's holder, because that is all the first report holds. The block's holder is in the second. It uses five statuses; the counts below are from the report NANPA published on 27 September 2026, across every region including the territories.

Status Meaning Blocks What Spaw answers for a number in the block
AS Assigned by NANPA to a service provider 990,929 The block's holder, with block_assigned_at as the date NANPA assigned the block (null for the 526 US blocks the report leaves undated)
RT Retained: not assigned by NANPA (typically a block the code holder kept when the code was pooled) 318,979 The block's holder; block_assigned_at is null because the report gives no date
AV Available for assignment 108,447, of which 23,284 contaminated Not contaminated: valid: false with unassigned_block. Contaminated: the code holder's answer
AP Available, pending verification of its activation in the network 4,006, of which 133 contaminated As AV
AF Available from a future effective date 2,025 The code holder's answer

A free block answers unassigned_block only while Spaw's copy of the report is under 45 days old. Contaminated blocks are the reason for the exception in the table. The numbers that made a block contaminated stay with the carrier that donated it, and the report gives how many of them there are, not which. Reading such a block as free could call live numbers unassigned, so Spaw lets the code's own row answer for it, and does the same for a block available only from a future date. In pooled US codes, 25,662 of the 1,418,100 block positions (1.8%) have no row Spaw reads, because the block is contaminated, future-dated or missing from the report, and 88,562 (6.2%) answer unassigned_block.

How often the holders differ

United States, NANPA files of 26 September 2026 Count Share
Assigned codes that are pooled 141,810 of 197,177 71.9%
Pooled codes whose allocated blocks sit under two or more OCNs 122,286 of 141,810 86.2%
Allocated blocks under a different OCN than their code 663,918 of 1,303,876 50.9%
of which dated blocks, all assigned by NANPA (AS) 647,684 of 985,981 65.7%
of which undated blocks, nearly all retained (RT) 16,234 of 317,895 5.1%

The split by status is the informative one. A retained block almost always stays with the code's holder. A block NANPA assigned from the pool belongs to a different OCN two times in three, and 26 pooled codes had ten blocks under ten different OCNs.

An OCN is not a carrier brand

An OCN identifies one operating entity, and one company often holds several. Verizon's wireless and wireline companies in New Jersey, for example, hold different OCNs. A different OCN is therefore not always a different company. Spaw's brand map groups OCNs and names under today's network brand, reported as carrier_brand (map of 24 September 2026), and with it the 663,918 blocks under another OCN divide three ways:

Block holder compared with the code's holder Blocks Share of the 663,918
A different brand 468,207 70.5%
The same brand under a sibling OCN 43,326 6.5%
One or both holders not in the brand map 152,385 23.0%

So at least 35.9% of all allocated US blocks sit under another brand than their code's holder, and the unmapped remainder can only add to that. The commonest pairs are an AT&T code with a block held by Inteliquent (23,082 blocks), T-Mobile (20,524) or Verizon (16,784), and a Verizon code with a block held by Inteliquent (17,446) or T-Mobile (16,344).

What it does to line type

libphonenumber, the numbering metadata behind Spaw, answers fixed_line_or_mobile for every geographic North American number, so Spaw settles line_type from the holder when the holder's name marks a wireless carrier or a VoIP wholesaler (why US numbers cannot be split into mobile and landline explains the rule). Pooling decides whose name that is. The counts below cover the same 1,303,876 allocated blocks. A holder that is not on Spaw's classification list settles nothing, so counts of blocks held by a listed wireless or VoIP holder are lower bounds, and counts of blocks whose holder is not on the list may include wireless or VoIP carriers the list does not know.

United States, NANPA files of 26 September 2026 Blocks Share
Line type settled, reading each block's own holder 873,008 67.0%
Line type settled, reading only the code's holder 673,803 51.7%
Block holder and code holder give different answers (mobile, VoIP or unsettled) 434,076 33.3%
Blocks held by a holder on the wireless list 514,532 39.5%
of which inside a code whose holder is not on that list 177,240 34.4% of them
Blocks inside a wireless holder's code, held by a holder not on that list 98,289 22.6% of 435,581

Of the 177,240 wireless blocks inside other holders' codes, 124,999 sit in codes whose holder settles nothing and 52,241 in codes held by a holder on the VoIP list. Read at code level, the first group would stay fixed_line_or_mobile, and the second would answer voip and raise the virtual signal for a number whose block a wireless carrier holds.

One code, block by block

Code 201-544 in Jersey City is held by Verizon New Jersey, Inc. (OCN 9206) and is pooled. The table shows its ten blocks as NANPA listed them on 26 September 2026 and what Spaw answered for a number in each. VoIP here is a line type read from the holder's name, not a judgement about the carrier or the person using the number.

Block NANPA status Holder as NANPA lists it (OCN) What Spaw answers
201-544-0, -1, -2 Assigned 12 Nov 2025 HD Carrier LLC (321J) voip, block_assigned_at 2025-11-12
201-544-3, -8 Assigned 13 Aug 2012 Verizon New Jersey, Inc. (9206) fixed_line_or_mobile, brand Verizon, block_assigned_at 2012-08-13
201-544-4 Assigned 19 Mar 2026 Boost SubscriberCo L.L.C. (490J) mobile, brand Boost Mobile, block_assigned_at 2026-03-19
201-544-5 Available, contaminated none The code holder, Verizon New Jersey; block_assigned_at null
201-544-6, -7 Available none valid: false, unassigned_block
201-544-9 Assigned 15 Jun 2026 Bandwidth.com CLEC, LLC - NJ (118F) voip, brand Bandwidth, block_assigned_at 2026-06-15

The six digits alone say Verizon New Jersey, a holder whose name settles no line type. Seven of the ten blocks answer differently: five are held by other carriers and two are free. In the report of 27 September 2026, block 201-544-5 still held five numbers that were not available for assignment. A number in block 201-544-4 answers:

"line_type": "mobile",
"line_type_source": "block_allocation",
"carrier": "BOOST SUBSCRIBERCO L.L.C.",
"carrier_source": "block_allocation",
"carrier_code": "490J",
"carrier_brand": "Boost Mobile",
"block_status": "allocated",
"block_pooled": true,
"block_assigned_at": "2026-03-19"

What the answer says about the level

  • block_pooled: true means the number's code is pooled, whichever level answered. false means a North American code that is not pooled. null means no allocated block answered, or the number is outside North America.
  • carrier, carrier_code, carrier_brand, a settled line_type and is_virtual describe whichever holder answered: the block's where NANPA's report lists an allocated block, otherwise the code's.
  • A date in block_assigned_at on a pooled code means NANPA assigned the number's own block on that date, so the block answered.
  • A null block_assigned_at on a pooled code does not tell you the level. A retained block has no date in the report, nor do 526 assigned US blocks, and where the code holder answers (a contaminated or future-dated block, or a pooled Canadian code) the field stays null on purpose, because the code's own date says nothing about the block. In 201-544 above, blocks 3 and 5 both answer Verizon New Jersey, and only block 3 carries a date.
  • Undated does not mean new. No assigned US code carries a date before 2 January 2001, and 112,611 of the 197,177 (57.1%) carry none; block dates start on 19 June 1998, and 317,895 allocated blocks, nearly all of them retained, have no date.

No field names the level directly.

Canada is read at code level

The CRTC ordered thousands-block pooling in Telecom Regulatory Policy CRTC 2024-26 of 5 February 2024, and the Canadian Numbering Administrator is rolling it out in phases, from a three-exchange launch trial planned to complete on 28 July 2026 to a last phase planned for 28 July 2027 (https://www.cnac.ca/co_codes/TBP/TBP_Implementation.htm, accessed 27 September 2026). CNAC's code table of 23 September 2026 (https://www.cnac.ca/co_codes/co_code_status.htm, accessed 27 September 2026) marked 2 of the 28,710 assigned Canadian codes as pooled. Spaw reads no Canadian block table, so a Canadian number answers with its code's holder, and block_pooled is true for those two codes only. What the Canadian table holds is on the Canada page.

Porting: the block's holder is not today's carrier

A block's holder is the original allocation. A number ported to another carrier stays in its block, and NANPA's reports keep listing the original holders: the code report the code's, the thousands-block report the block's. Pooling moves the question from the code to the block; porting moves it again, from the block to whoever serves the number today, which no open table records. Only a query into the carrier networks can answer that, and the API keeps it apart in ported and current_carrier. The live carrier-network check (hlr: true) is not enabled on the service: hlr_checked answers false and nothing extra is charged.

Where Spaw counts codes and where it counts blocks

The area-code pages and GET /api/v1/phone/block count six-digit codes, so their holder shares describe code holders. The carrier pages count numbers and credit each thousands-block to its own holder, not to the code's. The United States page and the phone data sources page say which NANPA files are installed and when they were synced.

Using the answer

  • Do not infer a number's carrier from another number with the same first six digits. In 86.2% of pooled US codes the blocks sit under two or more OCNs.
  • Group by carrier_brand when you report by company and by carrier_code when you need the legal entity. One brand spans many OCNs: 43,326 blocks sit under a sibling OCN of their code holder's brand.
  • Re-read numbers whose carrier or line type you stored from a code-level source. A third of allocated US blocks give a different line type from their code's holder.
  • Treat fixed_line_or_mobile as unknown, not as a landline, at either level.

What to do next

Related

markdown version: /guides/number-pooling-why-a-us-codes-holder-is-often-not-your-blocks-holder.md

Verify addresses the same way

The Spaw API runs every check described here on each lookup, with an SMTP handshake that never sends mail. 10 free lookups a month, no card required.

Get your API key

More guides