# `fictional` (phone): the number sits in a range reserved for fiction

The Spaw phone risk signal fictional adds 80 points to risk_score when the number sits in a range set aside for films, television and other works of fiction: the North American 555-0100 to 555-0199 lines, or a range or number Ofcom, ARCEP, ACMA or ComReg sets aside for drama (dataset fictional-ranges).

- Weight: +80
- Dataset: `fictional-ranges`
- Read from: `is_fictional`
- Default SMS policy: blocks it: fictional is one of the default block_signals (fictional, disposable, reported_abuse, reported_abuse_widely, premium_rate).

Numbering administrators keep a few ranges out of service so that a number printed in a story rings nobody: in North America the 555-01XX lines of every area code, in the United Kingdom the drama ranges Ofcom lists for each kind of number, in France ARCEP's six audiovisual blocks, in Australia ACMA's creative-works numbers and in Ireland ComReg's drama ranges. Spaw bundles those ranges as fictional-ranges and versions the file, so every answer names the copy it used.

A fictional number is still valid: it has the plan's shape, is formatted and is charged like any other valid number. It never answers unassigned_block either. Ofcom stores some drama ranges as protected blocks, so such a number answers valid true, is_fictional true, block_status unassigned and this signal. In North America the 555 code itself is held back, so a live lookup of a 555-01XX number usually carries reserved_block beside it: +80 and +40, capped at 100.

**What it cannot tell you.**

- It cannot tell you who typed the number or why: test data, a placeholder in a form and a quote from a film look the same.
- It covers the ranges in the bundled file: the North American 555-01XX lines and the drama ranges and numbers of Ofcom, ARCEP, ACMA and ComReg. is_fictional false means the number is outside those ranges, not that anyone can be reached on it.

**What to do.** Reject it at signup and drop it from lists: nobody can receive a code there. The default SMS policy blocks on it: an answer carrying it is ok_to_send false whatever the score.

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.

The sandbox answer for the test number +1 202-555-0105, cut to the fields that matter here. Test numbers are free on every key and name the dataset test-numbers; a live lookup names fictional-ranges.

```json
{
    "valid": true,
    "e164": "+12025550105",
    "country": "US",
    "line_type": "mobile",
    "is_fictional": true,
    "risk_score": 80,
    "risk_level": "high",
    "risk_signals": [
        {
            "signal": "fictional",
            "weight": 80,
            "dataset": "test-numbers"
        }
    ],
    "ok_to_send": false,
    "blocked_by": "fictional"
}
```

Related:

- [The weights table in the phone guide](https://spaw.co/docs/phone-intelligence#signal-fictional)
- [Glossary: unassigned block](https://spaw.co/glossary/unassigned-block)
- [What an unassigned block means](https://spaw.co/guides/what-an-unassigned-block-means)
- [Glossary: SMS policy](https://spaw.co/glossary/sms-policy)

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