Skip to content

PATTERN Cited by 1 source

Decoupled frequency from ranking

Pattern

Decouple the "how often to send" decision from the "what to send" decision into separate systems with independent optimization objectives and tuning knobs.

Problem with coupled systems

When a single model controls both send eligibility and message selection via one relevance threshold: - Per-user frequency becomes an implicit byproduct of global threshold calibration, not a personalized control. - Adjusting the threshold to manage frequency also changes message quality/distribution (and vice versa). - Frequency personalization is limited to what a single score can express.

Solution

  • Frequency layer (Slow Policy): determines how many messages a user should receive per time window, using long-horizon signals and explicit cost models.
  • Selection layer (Fast Policy): given that a send is permitted, picks the optimal message using relevance/engagement models.
  • These are independent optimization problems — one about volume, the other about quality.

Benefits

  • True per-user frequency personalization.
  • Clean A/B testing: vary frequency strategy without affecting content quality and vice versa.
  • Prevents over-messaging even when many high-scoring messages are available.

Seen in

Last updated · 546 distilled / 1,578 read