Skip to main content
  1. Posts/

Why Feeds Bury Old Posts

· loading · loading ·
Jared Lynskey
Author
Jared Lynskey
Emerging leader and software engineer based in Seoul, South Korea

I work on a content platform, so I spend more time than most people thinking about a question users never see: when should the feed stop showing something?

Content goes stale. People open the app wanting to know what’s new, and the feed has to deliver that. But a great post from last month shouldn’t vanish just because it’s no longer new. Decay functions are the standard way to model that trade-off, and they’re simpler than the name suggests.

Freshness matters, but not everywhere
#

Open a news site or a social feed and you’re usually after the latest thing. In fast-moving domains like news or financial markets, last week’s content is dead weight, so rankings there lean hard on recency.

Not every domain works like that, though. Academic writing and long-form journalism hold their value over time, sometimes even gain it. Age matters in most ranking systems, but how much weight it deserves depends entirely on what you’re ranking.

Modelling the fade with exponential decay
#

The usual way to model fading relevance is exponential decay: the older an item gets, the faster its perceived value drops. In its simplest form:

relevance = e^(-decay_rate × age)

where relevance is the current value of the content, the decay rate controls how quickly it loses that value, and age is usually measured in days since publication.

What I like about this model is that it’s one knob. Tune the decay rate and you decide whether content stays relevant for hours, days, or weeks. That’s the entire configuration surface.

Engagement keeps good content alive
#

Age is only half the picture. Views, likes and comments tell you whether people actually care, and a ranking that ignores them buries good work along with the bad. The simple fix is to multiply the two together:

score = engagement × e^(-decay_rate × age)

Now an older post with strong engagement can still outrank a mediocre new one. It just needs more and more engagement to hold its spot as the decay term shrinks underneath it.

In practice the lifecycle looks like this: a new post gets a freshness boost and a fair shot at being seen. If people view it, like it, comment on it, the score climbs. As days pass, decay eats into it, and only posts with sustained engagement stay near the top. Fresh content gets its chance; genuinely good content earns its stay.

That’s honestly the whole trick. One exponential, one engagement term, one knob to turn. The hard part is deciding what the decay rate should be for your particular content, and that part is all judgement.