The 27-point audit

Three groups: thirteen GDPR checks, six CCPA checks, eight cookie checks. Severity is C for critical (regulators ask for these first) and W for warning (expected where the situation applies).

Group A — GDPR Article 13 (13 checks)

# Check Sev Legal basis Fix if failed
1Controller named — legal entity, not "we"CArt. 13(1)(a)Add legal name, registered address, company number
2Contact details — email + postal addressCArt. 13(1)(b)Add a monitored privacy email and a physical address
3Purposes listed per activityCArt. 13(1)(c)Replace "improve services" with a per-activity list
4Lawful basis per purposeCArt. 13(1)(c), Art. 6Map each purpose to Art. 6(1)(a)–(f)
5Legitimate interests stated, where usedWArt. 13(1)(d)Name the interest: fraud prevention, service security
6Categories of data listedWArt. 13(1)(e)Name identifiers, usage data, payment data explicitly
7Recipients named by categoryCArt. 13(1)(e)Replace "partners" with hosting, payment, analytics providers
8International transfers + safeguardWArt. 13(1)(f), Art. 46Name destination and mechanism (SCCs, adequacy)
9Retention period per categoryCArt. 13(2)(a), Art. 5(1)(e)Give a period and a trigger per data category
10All six rights listedCArt. 13(2)(b)Access, rectification, erasure, restriction, objection, portability
11Consent withdrawal mechanismWArt. 13(2)(c), Art. 7(3)Name the button or link; make it as easy as giving consent
12Supervisory authority namedCArt. 13(2)(d)Replace "your local authority" with the actual regulator + contact
13Automated decisions / profiling statedWArt. 13(2)(f), Art. 22Describe the logic — or state plainly that none occurs

Group B — CCPA/CPRA (6 checks)

# Check Sev Fix if failed
14Categories of PI collected (CPRA-enumerated)CList by the statutory category names
15Business/commercial purposes per categoryCOne purpose line per category
16Right to know + right to delete, with channelCName the request method (form, email) and response time
17Opt-out: "Do Not Sell or Share" linkCVisible footer link, not buried in the policy text
18Non-discrimination promiseWOne sentence: exercising rights does not change price or service
1912-month lookback on categoriesWState that categories for the preceding 12 months are disclosed on request

Group C — Cookie policy (8 checks)

# Check Sev Fix if failed
20Cookie names listed individuallyCOne row per cookie — no group labels
21Provider / domain per cookieCName the setting domain (e.g. google-analytics.com)
22Purpose per cookieCState what the cookie actually does
23Duration / expiry per cookieCSession, or expiry in days/months/years
24Type / category per cookieWStrictly necessary, performance, functional, targeting
25Legal basis per cookieCConsent — or legitimate interest for strictly necessary
26Pre-consent rule stated and enforcedCBlock non-essential tags until consent is recorded
27Consent withdrawal stated (reject parity)WPermanent footer link; reject as prominent as accept

The four failures that show up in almost every policy

  1. Check 9 — retention. "As long as necessary" is the single most common failure, and the easiest to fix: pick a period per category, tie it to a trigger.
  2. Check 7 — recipients. "Trusted partners" is not a category. Name the processor types.
  3. Check 8 — transfers. A US cloud host with no SCC mention is an Article 46 gap, and it is now the first thing post-Schrems II audits look for.
  4. Check 12 — authority. Naming "your local authority" fails the requirement to identify the specific regulator with a contact point.

Scoring your audit

The score is deliberately arithmetic: checks passed ÷ checks applicable × 100, equal weight per check, no partial credit. Severity decides what you fix first, not how much the check is worth. If you skip the CCPA group (not applicable to your audience), those six simply leave the denominator — 19 checks remain.

Band Verdict Action
90–100Nothing obvious missingVerify wording matches actual practices, then ship
70–89Minority of checks failingFix critical gaps first — usually 1–3 clauses
50–69Incomplete against Article 13Restructure the sections missing whole disclosures
Below 50Not a compliant noticeRewrite rather than patch — the structure is wrong

Reading ease — why lawyers write unreadable policies

Completeness and readability fail independently. The Flesch reading ease scale (0–100) is the standard measure:

Flesch score Difficulty Typical source
80–100EasyPlain-language consumer notices
60–79Fair — plain-English standardWell-edited policies
50–59DifficultTypical legal prose
Below 50Very difficultBoilerplate contracts — harder than most readers can follow

Transparency is the stated purpose of the regulation. A policy that contains all twelve disclosures but scores 38 is transparent in the filing cabinet and opaque to the person it describes.

run all 27 automatically

Privacy Policy & Cookie Analyzer

The checks above are exactly what the analyzer runs: GDPR group, CCPA group, cookie group — scored, severity-ranked, with suggested wording for every gap. Paste, read the score, fix what is missing.

Open the analyzer

Related reading

faq

Frequently Asked Questions

How to run the audit and what the score means.

How long does a privacy policy audit take?

About ten minutes by hand if you work through the 27 checks in order, or seconds with an automated checker. The bottleneck is never the reading — it is deciding, for the four or five checks you fail, whether to write the missing clause or restructure the section it belongs in.

How many checks does a typical policy fail?

Between eight and twelve out of 27, with the failures clustering in four places: no concrete retention period, no named recipients, no transfer safeguards, and no specific supervisory authority. A policy failing fewer than five checks is unusual; failing more than fifteen usually means it was written before 2018 and never revised.

How is the 0–100 audit score calculated?

Checks passed divided by checks applicable, multiplied by 100 — equal weight per check, no partial credit. Severity (critical vs warning) affects fix priority, not the arithmetic. Bands: 90–100 nothing obvious missing; 70–89 fix the critical gaps first; 50–69 incomplete against Article 13; below 50 the policy needs a rewrite rather than edits.

Is this audit legal advice?

No. It is a completeness check against published requirements — whether the expected disclosures are present and findable. It cannot verify that your wording matches your actual data practices. Use it to find gaps, then have a lawyer or DPO review the final text.