# What FTC unwanted-call complaints can and cannot say about a number

Complaints to the FTC name the number shown on caller ID. What 90 days of them show, what they cannot prove, and how Spaw's complaint fields read them.

Date: 2026-09-27

An FTC unwanted-call complaint records that a consumer received a call they did not want and reported the number their caller ID showed; it does not say who placed the call, whether the number's holder did anything wrong, or whether you may call or text that number. The complaints are not the Do Not Call Registry, the FTC does not verify them, and caller ID is often spoofed. Among the complaints filed between 26 June and 23 September 2026, 691,715 named one of 588,360 valid North American numbers as the caller, and 91.8% of those numbers were named exactly once. Only 9,301 of them (1.6%) were named three or more times on at least two different days, the rule behind Spaw's `reported_unwanted_calls` signal.

This guide explains what the Federal Trade Commission publishes, what 90 days of it look like when counted by number, where the numbers sit in the US numbering plan, and what the phone lookup's `complaints_90d`, `complaints_last_at` and `reported_unwanted_calls` do with it. Every figure was counted on 27 September 2026 from the FTC files Spaw had installed, the newest published on 24 September 2026, and from NANPA's tables of 26 September 2026.

## What the FTC publishes, and what Spaw keeps

Consumers report unwanted calls to the FTC, and the FTC publishes the number each report names as the caller. Its Do Not Call reported-calls data (https://www.ftc.gov/policy-notices/open-government/data-sets/do-not-call-data, accessed 27 September 2026) lists, for each complaint, "the telephone number originating the unwanted call, the date the complaint was created, the time the call was made, the consumer's city and state locations reported, the subject of the call, and whether the call was a robocall". A file appears each weekday, weekend complaints arrive in Monday's file, and the page says plainly: "None of the information about the reported calls is verified."

Spaw downloads each file once, nightly at 04:50 UTC, and asks again for any file missing from the last seven days. Of each complaint it keeps four things for 90 days: the number named as the caller, the day the complaint was filed, the recorded-message-or-robocall answer and the subject. The consumer's city and state are dropped when the file is read, and a row whose number is not a valid North American number is skipped. Counts are by filing day, not by the call date.

Three statements hold for every figure in this guide and for the complaint fields in every answer:

- These are complaints consumers filed with the FTC about calls they received, naming the number shown to them as the caller ID. They are not the Do Not Call Registry, which lists consumers' own numbers.
- They say nothing about whether you may call or text a number.
- They are unverified, and caller ID is often spoofed, so a number can be named without its holder having placed any call.

The FTC's recorded-message-or-robocall field was yes on 73.6% of the complaints that filled it in (475,811 of 646,612), and consumers chose these subjects:

| Subject the consumer chose | Complaints | Share |
| --- | --- | --- |
| Reducing your debt (credit cards, mortgage, student loans) | 166,840 | 24.1% |
| Calls pretending to be government, businesses, or family and friends | 76,370 | 11.0% |
| Dropped call or no message | 54,730 | 7.9% |
| Medical & prescriptions | 42,104 | 6.1% |
| The ten other named subjects | 37,435 | 5.4% |
| Other | 267,618 | 38.7% |
| No subject given | 46,618 | 6.7% |

The lookup answers neither the subject nor the robocall answer. It carries a count and a date, described below.

## Most numbers are named once

Counted by number over the 90 days of filings, the complaints fall like this.

| Complaints naming the number | Numbers | Share of numbers |
| --- | --- | --- |
| One | 540,075 | 91.8% |
| Two | 36,801 | 6.3% |
| Three or more, all filed on one day | 2,183 | 0.4% |
| Three or more, filed on two or more days | 9,301 | 1.6% |
| All numbers | 588,360 | 100% |

The 9,301 numbers in the last row drew 69,713 complaints between them, 10.1% of the total. The two-day condition is what separates the last two rows: 2,183 numbers collected three or more complaints on a single day and none on any other, which fits one afternoon of calls, or one person filing several times, as well as it fits a pattern.

A 90-day snapshot understates repeats for numbers first named near its end, so the fairer test is the numbers first named in the window's first 30 days. Of the 184,238 numbers whose first complaint in the window fell between 26 June and 25 July 2026, 12,069 (6.6%) were named again on a later day by 23 September, 3,666 (2.0%) were named again at least 30 days after their first complaint, and 3,946 (2.1%) went on to meet the three-on-two-days rule.

The data cannot say why a number is named only once. A number used briefly and dropped, a number displayed by a caller who never held it, and a number whose other recipients did not file a complaint all look the same: one row. What it does support is practical. A single complaint is thin evidence about a number, and a `complaints_90d` of 0 is not a clean record, only the absence of a filed complaint.

## Toll-free numbers: one in eight reported numbers, and half of the numbers that meet the rule

Placing each number by its area code in NANPA's area-code report gives the split below. The last two columns count the numbers that met the rule.

| Where the number sits | Numbers | Share | Meeting the rule | Share of those |
| --- | --- | --- | --- | --- |
| US area code | 498,437 | 84.7% | 4,698 | 50.5% |
| Toll-free code (800, 833, 844, 855, 866, 877, 888) | 72,715 | 12.4% | 4,584 | 49.3% |
| Canadian area code | 16,885 | 2.9% | fewer than 20 | |
| Other North American code (Caribbean, US territories, non-geographic) | 323 | 0.1% | fewer than 20 | |

Toll-free numbers were named once in 78.0% of cases, against 93.7% for every other number. They also sit outside the tables that describe the rest: toll-free numbers are not in NANPA's central-office code or thousands-block reports, so for one the lookup answers `line_type: "toll_free"` from the numbering plan, `block_status: null` and no `carrier`, while `complaints_90d` is counted like any other North American number's. The data does not say why toll-free numbers repeat more often.

The mix also moves quickly. Numbers in Canadian area codes named in complaints went from 202 in July 2026 to 5,985 in August.

## Where the US numbers sit in the numbering plan

For the 498,437 numbers in US area codes, the block each one sits in says which carrier NANPA assigned it to: the holder of the number's thousands-block where NANPA lists one, else the holder of its central-office code (NANPA's code and thousands-block reports, https://www.nanpa.com/reports/co-code-reports and https://www.nanpa.com/reports/thousands-block-reports/region, files of 26 September 2026). Spaw classifies holders as VoIP providers or wireless carriers from their FCC filing type and their own description, matched on the holder name the regulator lists; a holder not on that list stays unclassified. The same classification applied to all 1,883,208,000 allocated US numbers gives the baseline in the last column, counted as numbers: each allocated thousands-block is 1,000 numbers with its own holder, and what is left of each allocated code, once its thousands-blocks (held or free) are taken out, belongs to the code's holder.

| Block holder, as NANPA assigned it | Reported numbers | Share of reported | Share of those meeting the rule | Share of allocated US numbers |
| --- | --- | --- | --- | --- |
| A VoIP provider (the blocks that score `virtual`) | 302,850 | 60.8% | 73.9% | 19.7% |
| A wireless carrier | 22,379 | 4.5% | 5.9% | 35.0% |
| A holder not on the classification list | 171,701 | 34.4% | 20.1% | 45.3% |
| Nobody (free pool block, reserved or vacant code) | 1,507 | 0.3% | fewer than 20 | |

VoIP providers' blocks hold 60.8% of the reported US numbers against 19.7% of the numbering, and 73.9% of the 4,698 US numbers that met the rule. Read that with its limits. It describes the caller ID shown to the consumer, not the network that carried the call, and a spoofed caller ID can sit in anyone's block. It describes the original allocation: a number ported to another carrier keeps its block. Both the VoIP and the wireless shares are lower bounds, because they count only holders on Spaw's classification list. And it is a share of the regulator's table and of the reported numbers, never of call traffic. The [phone statistics page](/statistics/phone) publishes the same breakdown every week, with monthly counts and a CSV, so its figures move as its 90-day window moves.

## Numbers nobody holds, and the spoofing a table cannot see

Of the US numbers, 1,507 (0.3%) sat where NANPA lists no holder: 932 in central-office codes its report does not list, 396 in thousands-blocks it lists as available, and 179 in codes it reserves. No subscriber line can carry a number in a block nobody holds, so a caller ID there was most likely not the caller's own line. The tables are dated 26 September, so a block returned to the pool after the call is counted here too, and a block assigned since the call hides an invented number, which makes the count approximate.

It is roughly a floor for invented caller IDs, because one that lands in an assigned block looks like any other, and it is not a measure of spoofing. In what the FTC calls "neighbor spoofing", the caller ID carries the recipient's own area code and often the first six digits of their number (https://consumer.ftc.gov/articles/how-block-unwanted-calls, accessed 27 September 2026). A number displayed that way sits in the same central-office code as the recipient's own, which is assigned, so an allocation table usually sees nothing wrong with it, and a complaint count cannot separate it from its holder's own calls.

The lookup answers a number in a code NANPA does not list, or in an available thousands-block, with `valid: false` and the reason `unassigned_block`, free, whatever its complaints; `complaints_90d` is still reported beside it. A number in a reserved code stays valid and gains the `reserved_block` signal. [What an unassigned block means](/guides/what-an-unassigned-block-means) explains the tables behind both, and the [glossary entry](/glossary/unassigned-block) gives the short version.

## What the lookup returns

For a North American number, every answer carries two complaint fields, and one risk signal reads them.

| Field or signal | What it holds |
| --- | --- |
| `complaints_90d` | Complaints filed in the last 90 days that name the number as the caller. 0 when nobody complained; null outside the North American plan, for the documented test numbers and for input that is not a number, or before the first file is installed. |
| `complaints_last_at` | The filing date of the latest of them, or null. |
| `reported_unwanted_calls` | A risk signal of weight 20, when there are three or more complaints on at least two different days within the 90 days. |
| `sources` | Includes `us-complaint-reports`, dated by the newest FTC file installed, whenever `complaints_90d` is not null, 0 included. |

An illustrative excerpt of an answer, with the number left out:

```json
"complaints_90d": 3,
"complaints_last_at": "2026-09-18",
"risk_score": 20,
"risk_level": "low",
"risk_signals": [
  { "signal": "reported_unwanted_calls", "weight": 20, "dataset": "us-complaint-reports" }
],
"ok_to_send": true,
"blocked_by": null
```

What the counts do to an answer, from running the lookup on 27 September 2026 with each count set in turn:

| The number, and its complaints | Signals | `risk_score` | `risk_level` | `ok_to_send` under the default policy |
| --- | --- | --- | --- | --- |
| Wireless carrier's block, 2 complaints on 2 days | none | 0 | low | true |
| Wireless carrier's block, 3 complaints on 1 day | none | 0 | low | true |
| Wireless carrier's block, 3 complaints on 2 days | `reported_unwanted_calls` | 20 | low | true |
| Wireless carrier's block, 40 complaints on 12 days | `reported_unwanted_calls` | 20 | low | true |
| Toll-free, 5 complaints on 3 days | `reported_unwanted_calls` | 20 | low | true |
| VoIP provider's block (the [`virtual`](/docs/signals/phone/virtual) signal), 3 complaints on 2 days | `virtual`, `reported_unwanted_calls` | 60 | high | true |
| Available thousands-block, 5 complaints on 3 days | none: `valid: false`, `unassigned_block` | null | null | false, `blocked_by: "invalid"` |

The count does not raise the weight: forty complaints score what three do. Under the published defaults the signal never blocks on its own, because the default [SMS policy](/glossary/sms-policy) refuses five other signals and any score above 60, and a number in a VoIP provider's block with complaints lands exactly on 60 and passes. Beside other signals it can still tip a number over the ceiling: a digit pattern (30) and a crowded SMS-receiving range (30) score 60 and pass, and with 20 for complaints they score 80 and are refused with `blocked_by: "risk_score"`. The weight is small on purpose: the reports are unverified, caller ID is often spoofed, and the number typed into your form may belong to someone whose number another caller displayed. Every weight is listed on the [methodology page](/methodology), and the [signal's own page](/docs/signals/phone/reported_unwanted_calls) gives its wording and an example answer.

## What the count cannot tell you

- **Who placed the call.** A complaint names the caller ID the consumer saw. Spaw does no reverse lookup and names no owner or caller for any number.
- **Whether the holder did anything.** An innocent person's number can collect complaints when others display it.
- **Who serves the number today.** The block records the original allocation, and porting moves numbers between carriers without moving the block. Only a query into the carrier networks can say who serves a number now. The live carrier-network check (`hlr: true`) is not enabled on the service: `hlr_checked` answers false and nothing extra is charged.
- **Whether you may call or text the number.** The complaints are not the National Do Not Call Registry, which the FTC describes as "designed to stop unwanted sales calls from real companies that follow the law" (https://consumer.ftc.gov/articles/national-do-not-call-registry-faqs, accessed 27 September 2026). No field in the answer is a do-not-call scrub, and none records consent.
- **Anything outside the North American plan.** Spaw reads only North American numbers from the files, so a number with another calling code answers null.

## Using it in a product

- **At sign-up or before a one-time code**, read the signal beside the rest of the answer rather than refusing a number on it alone: the person entering the number may hold a number someone else displayed. If complaints should stop a code in your product, send the whole list with [`PUT /api/v1/phone/policy`](/docs/api/update-phone-policy), because `block_signals` replaces the list rather than adding to it: `{"block_signals": ["fictional", "disposable", "reported_abuse", "reported_abuse_widely", "premium_rate", "reported_unwanted_calls"]}`. An answer carrying the signal then has `ok_to_send: false` and `blocked_by: "reported_unwanted_calls"`. Sending those numbers to a review step instead keeps a spoofing victim out of a hard refusal.
- **Before calling or texting a list**, treat `ok_to_send` as what it is: a fraud and deliverability decision, not consent and not a do-not-call scrub. The complaint count changes nothing about what the Registry or your consent records say, and Spaw checks neither.
- **In a CRM clean-up**, the count is one more column. A contact whose number collected complaints is not thereby a bad contact, so sort by it rather than deleting on it.
- **If your own number is named**, an erasure request, checked by a person, deletes the complaints Spaw holds for it. The [trust page](/trust) explains the process, and why a complaint the FTC publishes after the erasure is counted again.
- **Check the date.** `complaints_last_at` and the `sources` entry show how current the count is, and the [status page](/status) lists the complaint dataset beside every other phone table with the date of its newest file.

## How the figures were computed

Everything above was counted on 27 September 2026 from the complaints Spaw had installed: 65 weekday FTC files published from 26 June to 24 September 2026, holding 691,715 complaints filed between 26 June and 23 September that name a valid North American number. Each number was counted once, with its complaints and its distinct filing days, as the lookup counts them. Area codes come from NANPA's area-code report, and US numbers were placed in NANPA's central-office code and thousands-block reports of 26 September 2026 by the longest prefix listed, the thousands-block first. Nothing below the area code is published, a count under 20 is left out, no holder is named, and no number appears in this guide. The [phone statistics page](/statistics/phone) repeats the placement every week over its own 90-day window, and the [phone data sources page](/tools/phone-number-lookup/sources) lists each table with its terms and the date of the installed copy.

## What to do next

- Read the [phone intelligence guide](/docs/phone-intelligence) for every field and where it comes from.
- See the weekly counts on the [phone statistics page](/statistics/phone).
- See what the regulator tables say about US numbering on the [phone facts page for the United States](/tools/phone-number-lookup/countries/us).
- See what the block holder can and cannot prove in [why US numbers cannot be split into mobile and landline](/guides/why-us-numbers-cannot-be-split-into-mobile-and-landline).
- Turn signals into one decision with [gate SMS verification codes with the SMS policy](/guides/gate-sms-verification-codes-with-the-sms-policy).

Reference: https://spaw.co/guides/what-ftc-unwanted-call-complaints-can-and-cannot-say-about-a-number
