{
  "id": "BRD-154",
  "slug": "brd-154",
  "title": "The account tier cannot be changed more than once a quarter",
  "statement": "brandRelationship must not be changed more than once in any three-month period.",
  "rationale": "The tier feeds commercial reporting rather than compliance, so the registry rate-limits it instead of validating it — and the rejection arrives as a bare error code on an edit that seemed trivial. It bites during account reviews, when someone tidies up several brands at once and one of them was already touched last month.",
  "layer": "BRAND",
  "layerSlug": "brand",
  "object": "brand.brand_relationship",
  "severity": "MEDIUM",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "TCR"
  ],
  "codes": [
    {
      "provider": "TCR",
      "code": "528",
      "remediable": true
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Leave the tier as it is until three months have passed since the last change. Nothing about the brand's standing depends on it, so there is no cost to waiting — and no route to an exception if you do not.",
  "notes": "The cooldown is enforced at the registry against a change history we only see when the caller supplies it. The user has to know when the tier was last edited; where that is unknown, the safe assumption is that it was recent, because this field is usually only touched during exactly the kind of review that would touch it twice.",
  "phase": "approval",
  "automated": true,
  "attestation": {
    "question": "Do you know when this brand's account tier was last changed, and was it more than three months ago?",
    "howToCheck": [
      "Check the brand's edit history for a previous change to the tier.",
      "Where the date is unknown, assume it was recent — this field is usually only touched during exactly the kind of account review that would touch it twice."
    ],
    "failureLooksLike": "Someone tidies up several brands at once and one was already edited last month. The rejection is a bare error code on an edit that seemed trivial, and there is no exception route."
  },
  "url": "https://ekas.io/rules/10dlc/brand/brd-154/",
  "markdown": "https://ekas.io/rules/10dlc/brand/brd-154.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
