NANP area-code and state resolution — inventory boundaries
Two inventory tables underneath every quiet-hours and calling-window verdict decide what a recipient’s number can resolve to: the NANP timezone inventory (IANA zone → assigned area codes) and the US state map (area code → USPS state code). Both ship with Devotel Orbit and both are rebuilt from the same NANPA Active Codes report — they agree with each other by construction, so a recipient resolves identically in the quiet-hours gate, the voice pre-dial guard, the state-overlay intersection, and the recording-consent gate. This page documents where the inventories stop — which numbers resolve, which resolve to nothing, and what a blank lookup means for your verdict. It pairs with recipient timezone resolution, which walks the same chain from the quiet-hours consumer’s side; this one is the inventory reference it cites when your question is “why did the lookup have nothing for this number?“1. The alias-resolution order
A recipient timezone alias resolves by first match wins:- Explicit hint. An IANA zone passed as
recipientTimezone(send path) ortimezone_override(preview) wins over every automatic source. A valid hint is authoritative. - +1 NANP lookup. For
+1numbers, the three-digit area code indexes the NANP timezone inventory and returns that zone’s IANA name. - Country-prefix lookup. For non-
+1numbers, the E.164 country calling code resolves longest-prefix-first to a representative IANA zone (a capital-city zone for multi-zone countries). - Verdict-dependent fallback. When none of the above resolves,
the outcome depends on the surface: the org default timezone feeds
recipients with no usable number (email, push), and beyond that the
recipient lands on your
unknown_timezone_policy— fail-openskip, fail-closeddeny, or the deterministicenforce_utc. The one exception is the TCPA federal voice dial window, which always fails closed for US recipients regardless of your policy; the platform owns that wire outright.
+1 US
number, the same area code also indexes the US state map. Both
projections read the one inventory, so the timezone and the state it
returns can never disagree about which lookup ran.
2. State-blank alias coverage per USPS code
The US state map ships with roughly 170 single-state area-code assignments, built as the union of the two gates that consume it — the mini-TCPA calling-window overlays and the recording-consent gate. Its coverage is deliberately wider than either gate needs: a recipient in a state with no overlay and no special consent rule still resolves to a USPS code, which lands on the audit record for filtering. That still leaves most USPS codes with no entries. The states the lookup can return today:
A
+1 number in any other state — say Georgia, Ohio, or Arizona —
resolves a timezone but returns no state. That blank is not an
error and blocks nothing: an unresolved state means “no state overlay
applies; federal window unchanged,” and the recording-consent gate
treats it as one-party-consent territory. The map grows over time as
assignments are sourced from NANPA’s monthly report; gates never need
to change when it does.
DST-split-state mitigations
US DST is not state-uniform, and the inventory absorbs the three hard cases by assigning area codes to the IANA sub-zone that actually covers them rather than a generic shared zone:- No-DST states. Arizona’s area codes resolve to
America/Phoenix(UTC-7 year-round) and Hawaii’s808toPacific/Honolulu(UTC-10 year-round) — never to a DST-observing zone, so spring and fall crossover weekends change nothing for these recipients. - IANA sub-zones. Indiana resolves to
America/Indiana/Indianapolis, Michigan toAmerica/Detroit, and Idaho toAmerica/Boise— the IANA database’s own split-out zones, so the offset math is correct even where a state straddles a legacy boundary. - Year-round Canadian zones. Saskatchewan’s
306,474, and639resolve toAmerica/Regina(UTC-6 year-round, no DST) rather than a generic “Central” label.
3. Worked example — blocked calls per alias category
What each lookup category does to an actual dial at ~8:30 PM Eastern on a Tuesday (federal voice window closes at 9 PM recipient-local):
Two readable shapes of “blocked” come out of this:
- Wrong-zone blocking. The Miami recipient above is blocked at 8:30 PM by the FL overlay even though the federal window is still open — the resolution worked; the overlay is the gate. Debug those with the resolved timezone and state the quiet-hours preview echoes.
- Resolution-failure blocking. Toll-free and unassigned-NPA recipients are held on the voice path because the platform refuses to guess a timezone under the federal guard. The release is the explicit hint below, not a policy flip.
4. Tenant-owned timezone-hint override
Number portability means an area code reflects where a number was assigned, not where the subscriber lives now — a Miami305
mobile can belong to someone in Oregon. When your CRM knows better,
override step 2 with the tenant-owned hint:
- Per send: pass
recipientTimezonewith an IANA name (America/Phoenix, notUTC-7). It wins over the inventory, the country-prefix map, and the org default. - Per preview:
timezone_overridedoes the same for debugging — the response’slocal_timezonetells you which source won.
unknown_timezone_policy); the inventories
themselves are platform-maintained and update with the NANPA feed.
Verification workflow and policy-value selection live on
recipient timezone resolution.
See also
- Recipient timezone resolution — the consumer-side map of the same chain
- Number timezone and state resolution — the unresolvable-area-code fail posture per surface
- US calling windows — the state overlays the USPS-code leg feeds
- Recording consent — the two-party-consent gate that shares the state map
- Quiet-hours preview — echo the resolved timezone and state without sending