{
  "id": "WEB-112",
  "slug": "web-112",
  "title": "An alcohol age gate must enforce 21, not 18",
  "statement": "Where the restricted content is alcohol, the age gate must enforce a 21+ threshold rather than 18+.",
  "rationale": "Twenty-one is the US drinking age, so an 18+ gate admits a whole cohort the rule exists to exclude and does it while looking compliant. The mistake travels with software: templates and plugins ship with 18 as the default because that is the threshold most of the world uses, and nobody changes it.",
  "layer": "WEBSITE",
  "layerSlug": "website",
  "object": "age-gate threshold",
  "severity": "BLOCKING",
  "detectability": [
    "CRAWL"
  ],
  "failureClass": "TERMINAL_WEBSITE",
  "authorities": [
    "Twilio",
    "CTIA"
  ],
  "codes": [
    {
      "provider": "Twilio",
      "code": "30955",
      "remediable": true,
      "generation": "gen2"
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Set the gate's minimum age to 21 wherever alcohol content is served, and check the plugin default rather than assuming it. Done when entering a date of birth for a twenty-year-old is refused.",
  "notes": "Conditional on alcohol content being present, carried in the criteria rather than as a tag — there is no alcohol attribute on the registration, and the declared ageGated flag says nothing about which substance is behind the gate.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/website/web-112/",
  "markdown": "https://ekas.io/rules/10dlc/website/web-112.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
