# `reported_unwanted_calls` (phone): consumers reported unwanted calls from the number

The Spaw phone risk signal reported_unwanted_calls adds 20 points to risk_score when consumers filed 3 or more complaints with the FTC naming this North American number as the caller, on at least 2 different days within the last 90 days (dataset us-complaint-reports).

- Weight: +20
- Dataset: `us-complaint-reports`
- Read from: `complaints_90d`, `complaints_last_at`
- Default SMS policy: does not block it on its own: +20 is within the default ceiling of 60, which blocks only a score above it.

Spaw installs the FTC's Do Not Call reported-calls files, published each weekday, once a day, and keeps for every North American number the count of complaints over 90 days and the date of the latest. complaints_90d answers 0 when nobody complained, and null outside the North American plan or before the first sync. The consumer's own location is dropped when the file is read, and the dataset is us-complaint-reports.

It is what consumers told the FTC about the numbers that called them, not the Do Not Call Registry. It says nothing about whether you may call or text the number. And it is not proof of wrongdoing: the reports are unverified and caller ID is often spoofed, so an innocent number can collect complaints, which is why the weight is small.

**What it cannot tell you.**

- It says nothing about who holds the number today, and nothing about a number outside the North American plan.
- It is not a do-not-call scrub: checking a number against the Do Not Call Registry stays your obligation.

**What to do.** Read it beside the rest of the answer; do not refuse a number on it alone. On its own it scores 20 and passes the default SMS policy, which blocks a score above 60; beside other signals the score can pass that.

The SMS policy is set per account with `PUT /api/v1/phone/policy` (https://spaw.co/docs/api/update-phone-policy) or the dashboard's SMS policy tab, and its `block_signals` may list any signal, this one included.

An excerpt of an answer carrying this signal alone, with the number and the other fields left out, because no test number answers it. The score and the decision are worked out as the lookup and the default SMS policy work them out.

```json
{
    "valid": true,
    "country": "US",
    "line_type": "fixed_line_or_mobile",
    "line_type_source": "numbering_plan",
    "risk_score": 20,
    "risk_level": "low",
    "risk_signals": [
        {
            "signal": "reported_unwanted_calls",
            "weight": 20,
            "dataset": "us-complaint-reports"
        }
    ],
    "complaints_90d": 4,
    "complaints_last_at": "2026-09-18",
    "ok_to_send": true,
    "blocked_by": null
}
```

Related:

- [The weights table in the phone guide](https://spaw.co/docs/phone-intelligence#signal-reported_unwanted_calls)
- [Where each fact comes from, in the phone guide](https://spaw.co/docs/phone-intelligence#sources)
- [Glossary: SMS policy](https://spaw.co/glossary/sms-policy)

Reference: https://spaw.co/docs/signals/phone/reported_unwanted_calls
