Assignment
The binding of one user to one cohort under a specific campaign version — created once, never rewritten.
An assignment is the record that a specific user_key (or session_key) belongs to a specific cohort, under a specific campaign_version. It is unique per (campaign_id, user_key, campaign_version), and once it exists, the campaign version it points at locks — that assignment must go on meaning what it meant the day it was created, or every outcome recorded against it becomes retroactively ambiguous.
Assignments are never re-keyed and never migrated forward to a newer version. When identity resolution later links an anonymous key to a known one, the assignment itself doesn't change — a separate link record is written, and read-time lookups search the whole identity cluster instead of the historical assignment being rewritten. See why you can never edit a running experiment for the reasoning behind that immutability, and one assignment across channels for how the same assignment stays consistent across email, web, and ads.