Lesson 5

What Gets Filtered Before It's Even Scored

Age cutoff, dedup, muted keywords, and the new-user engagement floor

Pre-Scoring Filters

Before a post is even scored, it passes through a chain of filters. If it fails any of these, it never reaches the ranking model.

Age Filter

Posts older than the max age are dropped. The default max age is set via AgeFilter::new(max_age) — candidates older than this cutoff are removed entirely. Don't expect an old post to "catch fire" later — it's already aged out of the candidate pool.

Duplicate / Seen-Post Removal

  • drop_duplicates_filter.rs — removes duplicate posts
  • previously_seen_posts_filter.rs — removes posts you've already seen
  • previously_served_posts_filter.rs — removes posts already served to you
  • push_to_home_dedup_filter.rs — dedup at the home timeline level

Muted Keywords

muted_keyword_filter.rs — removes posts containing keywords you've muted.

New-User Minimum Engagement Filter

new_user_min_engagement_filter.rs — for new accounts, out-of-network posts must clear a minimum engagement floor to keep surfacing.

  • Max account age: 1800 seconds (30 minutes) — only applies to very new accounts
  • Metric: "fav" (favorites)
  • Threshold: 0.0 (default — disabled by default, but can be enabled)

This prevents brand-new accounts from flooding the out-of-network pool with zero-engagement posts.

Other Notable Filters

  • oon_retweet_reply_filter.rs — filters out-of-network retweets/replies
  • oon_nsfw_simclusters_filter.rs — NSFW filtering for OON
  • self_tweet_filter.rs — removes your own posts from your feed
  • brazil_2026_election_filter.rs — election-specific filtering (Aug 2026)

Check Your Understanding

1. What happens to posts older than the age cutoff?
  1. A. They get a lower score
  2. B. They are dropped entirely from the candidate pool✓ correct
  3. C. They are shown less frequently
  4. D. They are marked as old

Why: The AgeFilter removes posts older than the max age — they never reach the scoring model. Old posts can't "catch fire" later.

2. What does the new-user minimum engagement filter do?
  1. A. Boosts new accounts
  2. B. Requires new accounts' OON posts to clear a minimum engagement floor✓ correct
  3. C. Filters spam from new accounts
  4. D. Limits new accounts to 10 posts per day

Why: new_user_min_engagement_filter.rs ensures new accounts' out-of-network posts must clear a minimum engagement threshold to keep surfacing.

3. Can a post you've already seen appear in your For You feed again?
  1. A. Yes, if it gets more engagement
  2. B. No — previously seen posts are filtered out✓ correct
  3. C. Only if you refresh
  4. D. Only if the author edits it

Why: previously_seen_posts_filter.rs removes posts you've already seen from the candidate pool.

Exercise

Think about a post that "went viral" days after you posted it. It didn't — the algorithm re-surfaced it. More likely, it was picked up by Phoenix retrieval from a different angle. Check if any of your old posts (>48h) are still getting impressions.

Hint: If they are, it's because someone with a similar embedding to you engaged with it, causing Phoenix to re-retrieve it for similar users.

What Gets Filtered Before It's Even Scored | Qubax Growth Lab · Qubax AI