diff --git a/services/platform-service/src/modules/broadcasts/targeting.ts b/services/platform-service/src/modules/broadcasts/targeting.ts index c724463d..a6655632 100644 --- a/services/platform-service/src/modules/broadcasts/targeting.ts +++ b/services/platform-service/src/modules/broadcasts/targeting.ts @@ -79,8 +79,9 @@ export function evaluateTarget( // Percentage rollout (FNV-1a hash for deterministic bucketing) if (target.percentageRollout !== undefined && target.percentageRollout < 100) { - // Hash userId + broadcast seed for consistent assignment - const hash = fnv1a32(`${context.userId}:${target.percentageRollout}`); + // Use userId only as seed for consistent bucketing + // This ensures when rollout % increases, same users stay included + const hash = fnv1a32(context.userId); const bucket = hash % 100; if (bucket >= target.percentageRollout) { return false;