HomeMyths"You must get engagement in the first 30

"You must get engagement in the first 30/60 minutes or the post dies"

Verdict: PARTLY REAL, WRONG MECHANISM

There is no hand-coded freshness decay in the 2026 ranker. Post age enters as a learned feature bucketed in 60-minute steps, capped at 4800 minutes (80 hours) — after which all posts look equally old — and an AgeFilter hard-drops old posts. We then MEASURED the learned curve by running the released checkpoint at 15 impression ages (see the Lab page): predicted replies collapse to ~36% of fresh by day 3, reposts peak at 2-4 hours (~1.5x) then fade, predicted favorites never decay at all, and every curve flatlines at exactly 80 hours — the bucket cap, visible in behavior. So: no first-hour cliff, but a real per-action conversation window.

The code

phoenix/recsys_model.py POST_AGE_MAX_MINUTES = 4800; home-mixer/filters/age_filter.rs.

See for yourself: every term in the scoring formula

This is the complete list of scoring terms in home-mixer/scorers/ranking_scorer.rs (compute_weighted_score, commit 0bfc279). Read it — what isn’t in this list isn’t in the ranking formula:

  favorite                 × +weight  (withheld)
  reply                    × +weight  (withheld)
  retweet                  × +weight  (withheld)
  photo_expand             × +weight  (withheld)
  click                    × +weight  (withheld)
  profile_click            × +weight  (withheld)
  vqv                      × +weight  (withheld)
  share                    × +weight  (withheld)
  share_via_dm             × +weight  (withheld)
  share_via_copy_link      × +weight  (withheld)
  dwell                    × +weight  (withheld)
  quote                    × +weight  (withheld)
  quoted_click             × +weight  (withheld)
  quoted_vqv               × +weight  (withheld)
  cont_dwell_time          × +weight  (withheld)
  cont_click_dwell_time    × +weight  (withheld)
  follow_author            × +weight  (withheld)
  not_interested           × −weight  (withheld)
  block_author             × −weight  (withheld)
  mute_author              × −weight  (withheld)
  report                   × −weight  (withheld)
  not_dwelled              × −weight  (withheld)

Verified against xai-org/x-algorithm @ 0bfc279 on 2026-07-31. Withheld layers (params, visibility filtering, Grox prompts) mean “absent from open code” is the strongest claim honestly available — see methodology.

Test a real draft instead →