{
  "id": "OPS-145",
  "slug": "ops-145",
  "title": "Consecutive number ranges are a volume signal",
  "statement": "Consecutive number ranges must not be purchased to support higher-volume sending.",
  "rationale": "A block of sequential numbers is the cheapest way to buy capacity and the most obvious pattern to detect, so it functions as a declaration that the intent was volume rather than presence. It is also snowshoeing with a paper trail, which makes the intent argument harder to have.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "provisioned number contiguity",
  "severity": "MEDIUM",
  "detectability": [
    "EXTERNAL_DATA"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "Telnyx"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Buy numbers as the programme genuinely needs them, and take throughput from vetting and an approved pool rather than from number count. Done when the numbers on a campaign are not a contiguous block.",
  "notes": "Number inventory at the provider. What the user has to check is how their numbers were purchased — a bulk order fulfilled from one range is the common cause and nobody chose it deliberately.",
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Are the numbers on this campaign a contiguous block?",
    "howToCheck": [
      "List them and look. A bulk order fulfilled from one range is the common cause and nobody chose it deliberately.",
      "Buy numbers as the programme genuinely needs them, and take throughput from vetting and an approved pool rather than from number count."
    ],
    "failureLooksLike": "A sequential block is the cheapest way to buy capacity and the most obvious pattern to detect. It reads as a declaration that the intent was volume rather than presence, which makes the intent argument much harder to have."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-145/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-145.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
