{
  "id": "BRD-235",
  "slug": "brd-235",
  "title": "The daily carrier cap is an EIN-level allowance, pooled across CSPs",
  "statement": "The T-Mobile daily brand cap is an allowance against the tax ID, pooled across every campaign and every CSP that registered it, resetting at midnight Pacific.",
  "rationale": "Because the cap attaches to the EIN rather than to the brand, splitting traffic across two providers does not double it — the two routes draw from one bucket, and the second one starts failing when the first has used the allowance. Teams add a provider specifically to increase capacity and get no more messages delivered, with the failures landing on whichever route sent last.",
  "layer": "BRAND",
  "layerSlug": "brand",
  "object": "daily volume against brand.ein",
  "severity": "HIGH",
  "detectability": [
    "EXTERNAL_DATA"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "T-Mobile",
    "TCR"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Plan volume against one allowance per tax ID, not per provider or per campaign, and reconcile sends across every route before scheduling a large day. The window resets at midnight Pacific, which is the boundary to schedule around.",
  "notes": "Absorbs OPS-118, which states the same pooling behaviour. Volume is not visible at registration time. What the user has to do is add up the traffic across every CSP that holds a brand on this EIN — including ones another team set up — because the cap does not care that they are separate accounts.",
  "catalogIds": [
    "OPS-118"
  ],
  "phase": "approval",
  "automated": false,
  "attestation": {
    "question": "Have you added up the daily traffic across every CSP and every campaign that shares this tax ID?",
    "howToCheck": [
      "List every provider holding a brand on this EIN — including accounts another team set up. The cap does not care that they are separate accounts.",
      "Reconcile the total against one allowance before scheduling a large day, and schedule around the midnight Pacific reset."
    ],
    "failureLooksLike": "A second provider is added specifically to increase capacity, and no more messages are delivered. Both routes draw on one bucket, and the failures land on whichever sent last."
  },
  "url": "https://ekas.io/rules/10dlc/brand/brd-235/",
  "markdown": "https://ekas.io/rules/10dlc/brand/brd-235.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
