Transparent overview of candidate selection and FYP scoring. Values below are live from feed config.
No ranking. Posts are filtered by your city settings and shown newest first.
Same candidate pool, but scored using multiplicative factors. Final score determines rank.
Base Engagement boost user override available
Uses likes/reposts/replies/quotes with configurable weights and curve shaping.
Formula: weighted = likes*likeW + reposts*repostW + replies*replyW + quotes*quoteW; base = max(coldStartMin, (1 + scale(weighted))^engagementExponent)
Location Weight boost/decay admin only
Combines local-city boost and distance decay; controls nearby city inclusion quality.
Formula: location = cityBoost * (1 / (1 + (distance/decayK)^decayExponent))
Freshness decay user override available
Older posts lose score; users can tune halflife/exponent behavior in settings.
Formula: freshness = 1 / (1 + (ageHours/effectiveHalflife)^freshnessExponent)
Media Boost optional boost admin only
Applies media multiplier where enabled.
Formula: mediaFactor = hasMedia ? mediaMultiplier : 1.0
Alt Text Penalty penalty user override available
Penalizes media posts lacking alt text based on configured strictness.
Formula: altTextFactor = missingAltText ? altTextPenalty : 1.0
Self Post Weight weight admin only
Adjusts how your own posts are weighted in FYP.
Formula: selfFactor = (author == viewer) ? selfWeight : 1.0
Seen/Served Demotion demotion admin only
Recently served posts are rotated downward to keep the feed fresh.
Formula: servedFactor = servedBasePenalty^(confidence * impressionScale * recoveryCurve(t))
Liked/Reposted Demotion demotion admin only
Posts you have already liked or reposted are deprioritized.
Formula: interactionFactor = (liked ? likedPenalty : 1.0) * (reposted ? repostPenalty : 1.0)
Follow Boost boost user override available
Boosts mutual/following relationships with separate multipliers.
Formula: followFactor = isMutual ? mutualBoost : (isFollowing ? followingBoost : 1.0)
Affinity Boost boost user override available
Small boost for authors you historically engage with.
Formula: affinityFactor = 1 + maxExtra * log(1 + interactions) / log(1 + affinityScale)
Follower Normalization optional boost admin only
Normalizes performance by audience size when enabled.
Formula: followerNormFactor = f(postEngagementRate, authorFollowerCount)
Engagement Velocity optional boost admin only
Favors posts accelerating in engagement, with caps.
Formula: velocityFactor = clamp(1.0, velocityCap, likesPerHour / velocityBaseline)
Hashtag Post Weight weight admin only
Adjusts confidence-weight for hashtag-matched external posts.
Formula: hashtagFactor = hashtagMatched ? hashtagPostWeight : 1.0
Interest boost demotion user override available
Interests are learned from feed likes over a rolling window and combined with chosen interests.
Formula: interestFactor = boostFactor * demotionFactor (both can apply)
Interest Filter filter user override available
User-hidden interests are filtered out from ranking candidates.
Formula: if post matches hiddenInterest => exclude post
List Boost boost admin only
Applies user list membership boosts where configured.
Formula: listFactor = onUserList ? listBoostMultiplier : 1.0
Feed Engagement Boost boost admin only
Boosts posts with engagement coming specifically through Near You feeds.
Formula: feedEngagementFactor = 1 + weightedShare(feedLikes, reposts, replies, quotes)
Regional Penalty mixing penalty admin only
Supports regional mixing and balancing for diverse locality representation.
Formula: every N posts, insert 1 regional candidate (N = regionalPostInterval)
Diversity Spreader admin only
Reorders to avoid same-author clustering while preserving score order quality.
Formula: post-process order: enforce min gap between same-author posts