# `reported_undelivered` (phone): your own latest report for the number was a failed delivery

The Spaw phone risk signal reported_undelivered adds 50 points to risk_score when the latest report your own account sent for the number within the last 90 days was a failed delivery about the number itself, with no delivery or verification reported after it (dataset delivery-feedback).

- Weight: +50
- Dataset: `delivery-feedback`
- Read from: no field of its own
- Default SMS policy: does not block it on its own: +50 is within the default ceiling of 60, which blocks only a score above it.

An undelivered report sent to POST /api/v1/phone/feedback may name the failure class your SMS provider's error code gives. permanent, transient and failures sent without a class count here. not_sms_capable (a landline) and sender_side (a carrier filter, an unregistered sender, a rate limit: your side of the send) are kept and counted in the feedback summary, never scored. The dataset is delivery-feedback.

A delivered or verified report dated after the failure cancels it, so a number that failed once while the handset was off stops scoring as soon as a later message gets through. Failures also feed your suppression list: one permanent failure suppresses the number at once, other failures need two with no delivery after them.

**What it cannot tell you.**

- It cannot tell you why a message failed beyond the class you reported.
- It reads only your own reports: another account's failures never reach your answer.

**What to do.** If the failure was transient, retry later rather than dropping the number; if failures repeat, stop sending. On its own it scores 50 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": "GB",
    "line_type": "mobile",
    "line_type_source": "numbering_plan",
    "risk_score": 50,
    "risk_level": "medium",
    "risk_signals": [
        {
            "signal": "reported_undelivered",
            "weight": 50,
            "dataset": "delivery-feedback"
        }
    ],
    "ok_to_send": true,
    "blocked_by": null
}
```

Related:

- [`reported_abuse`](https://spaw.co/docs/signals/phone/reported_abuse): your own account reported abuse for the number
- [`reported_abuse_widely`](https://spaw.co/docs/signals/phone/reported_abuse_widely): three or more accounts reported abuse for the number
- [The weights table in the phone guide](https://spaw.co/docs/phone-intelligence#signal-reported_undelivered)
- [POST /api/v1/phone/feedback reference](https://spaw.co/docs/api/report-phone-feedback)
- [Glossary: SMS policy](https://spaw.co/glossary/sms-policy)

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