# POL-156 — Published policy must not contain unreplaced template tokens

> The live privacy policy and terms must contain no {curly brace} or {{PLACEHOLDER}} tokens left from a template.

- **Rule ID:** POL-156
- **Layer:** Policy pages (`POLICY_PAGE`)
- **Checks:** `privacy policy body + terms body`
- **Severity:** HIGH — Rejected by at least one carrier or provider, and a common cause of failure at the rest.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** Deterministic (settled in code from the submitted values)
- **Fix type:** Fix the privacy policy or SMS terms
- **Required by:** TCR, Twilio
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/policy-page/pol-156/

## Why this rule exists

An unreplaced token proves the document was generated and never finished, which invalidates the whole page in a reviewer's eyes — if the company name is still a placeholder, no promise in the document is attributable to anyone. It is trivially detectable and embarrassingly common.

## How to fix it

Search the published pages for "{" and "[" and replace every remaining token with real values, then re-publish.

## Example of a compliant value

```text
Replace "{{COMPANY_NAME}}" with "Acme Coffee Co, LLC" and "[EFFECTIVE DATE]" with a real date.
```
