Most teams respond to a retention policy change by doing nothing, or by rerunning the same test and comparing it to a result that no longer means anything. Both are wrong. The first hides a real finding; the second produces a false one.
Start by reading the change as a document, not an announcement. The retention canary guide from Mitosis Labs puts it well: a canary measures reality against a written claim, so write the claim down first. That means capturing the exact clause text, the effective date, the surfaces it covers (prompts, files, logs, backups, memory features, vector stores), and whether the change tightens or loosens retention.
Retention is rarely one number. It differs by feature, and providers publish different windows for different endpoints. The canary guide lists concrete examples: OpenAI's abuse monitoring logs are described as retained for up to 30 days, and certain stateful endpoints are excluded from zero data retention. Anthropic's documentation is described as not retaining conversation content by default, with some models requiring 30 day retention and flagged chats kept much longer. Amazon Bedrock lets you set data_retention_mode yourself. You do not need to trust those specifics forever; you need to build the same table for your own vendor, one row per feature you actually use.
The distinction that matters for testing is between a policy change that affects your surfaces and one that affects your obligations. A changed backup window is a surface change: it moves the expected deletion date. A changed subprocessor list or a new training-use term is an obligation change: it may require a contract amendment before the canary is even meaningful. The Censinet checklist treats these as separable commitments (scope, retention, no-training, security, subprocessors, breach liability), and a policy change should map to exactly one of them.



