asa-copilot
Pre-publication check for UK marketing copy against the CAP Code. Flagged phrases, cited rules, suggested rewrites.

§ 01 · Overview
A pre-publication compliance tool for UK marketing copy. Provide a landing page, ad, or email; receive an annotated report with flagged phrases, the specific CAP Code rule each may breach, a severity rating, and a suggested rewrite. Findings are grounded in a curated rule corpus with citation URLs on every entry — the reasoning is defensible in a review meeting, not vibes.
§ 02 · Estimated impact
§ 03 · Architecture
- 01
Paste or upload your copy — landing page, email, print ad, or social. Copilot chunks it and runs each claim against a rule-matcher plus an LLM check grounded in the CAP Code sections.
- 02
Returns an annotated view: risky phrases highlighted, hover for the specific CAP rule (e.g. 'CAP 3.7 misleading — up to 90% off requires a genuine ceiling price'), severity (advisory / likely / almost-certain breach), and a suggested rewrite.
- 03
Every finding links to at least one supporting source — the CAP Code section and, where possible, a related published ASA adjudication with a link to the ruling. Reasoning is auditable, not vibes.
- 04
Includes a 'trained on' toggle per vertical (finance FCA, gambling BGC, alcohol Portman) so the same doc can be checked against multiple relevant codes.
Stack
§ 04 · Positioning
General-purpose LLMs will confidently invent CAP rules that don't exist. A narrow tool grounded in the actual code text and citable adjudications gives you a defensible answer — the whole game for compliance work is the audit trail.
| Alternative | Trade-off |
|---|---|
| ChatGPT / Claude with a copy-paste prompt | Hallucinates rule numbers. Cites cases that don't exist. Fine as a first-draft brainstorm, useless as a compliance signal. This is grounded in the actual CAP Code text with links to real adjudications. |
| In-house legal review | £150-£400/hr, days of turnaround, doesn't scale to an ad team producing 20+ pieces of copy a week. Better use of legal is reviewing the automatically-flagged 5%, not manually scanning the 95% that's obviously fine. |
| Doing nothing (the default) | The ASA publishes rulings weekly and names the advertiser. One upheld ruling in a sensitive category (health, finance, gambling) is a permanent search-result liability. Pre-publication check at pence per doc is cheap insurance. |
§ 05 · Frequently asked
How does asa-copilot avoid hallucinating CAP Code rule numbers?
The checker's system prompt provides the applicable rule set inline and requires every finding to reference a ruleId from that set. The post-processing layer drops any finding whose ruleId doesn't match a real rule in the corpus — hallucinated rules never reach the report.
What CAP Code sections does asa-copilot cover?
v0.1 covers approximately 22 rules across misleading claims (CAP 3), prices and offers, comparisons, testimonials, environmental claims (CAP 11), health and beauty (CAP 12), financial services (CAP 14), and gambling (CAP 16). The corpus is YAML files in src/rules/ and is trivially extendable by dropping additional files in.
Can asa-copilot check copy against sector-specific rules like finance or gambling?
Yes — pass --vertical finance | gambling | health | alcohol and the checker surfaces the sector-specific rules alongside the general ones. Sector rules apply in addition to the general set, not instead of, so cross-cutting risks are caught.