{
  "id": "OPS-124",
  "slug": "ops-124",
  "title": "Unregistered and P2P-classified traffic has a hard per-number ceiling",
  "statement": "Traffic classified as P2P or unregistered is limited to roughly fifteen messages or segments per number per minute.",
  "rationale": "The ceiling is low enough that any real campaign hits it immediately, which is the point: it is what makes registration the only viable path. Senders meet it while testing before their campaign is approved and conclude the platform is slow, then build a sending schedule around a limit that would have gone away.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "per-number per-minute send rate",
  "severity": "HIGH",
  "detectability": [
    "EXTERNAL_DATA"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "AT&T"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Do not size a programme against unregistered throughput. Wait for the campaign to be approved and provisioned before measuring what the number can do. Done when the rate you planned against is the registered one.",
  "notes": "A carrier-applied rate we cannot observe. What the user has to check is whether the numbers they benchmarked on were attached to an approved campaign at the time — benchmarks taken before provisioning are the usual source of a wrong plan.",
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Were the numbers you benchmarked throughput on attached to an approved campaign at the time?",
    "howToCheck": [
      "Check when the benchmark was taken against when the campaign was provisioned.",
      "Unregistered and P2P-classified traffic is capped at roughly fifteen messages or segments per number per minute — low enough that any real campaign hits it immediately.",
      "Re-measure after provisioning, and plan against that number."
    ],
    "failureLooksLike": "A team tests before approval, concludes the platform is slow, and builds a sending schedule around a limit that would have gone away."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-124/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-124.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
