← Back to Docs

Reputation Algorithm

TIP reputation is a score from 0-10000 that represents a commenter's trustworthiness. It is calculated from publicly verifiable signals, not subjective judgments.

Formula (0-10000 scale)

Exact algorithm used in production (reputation-calculator.ts):

raw = quality*0.40 + upvote_ratio*0.30 + age*0.15 + vouches*0.10 - flags*0.05
score = round(clamp(raw * 10000, 0, 10000))

age     = min(days/365, 1)
vouches = min(count/10, 1)
flags   = confirmed_flags / total_comments
quality = min(avg_word_count/50, 1)

effective = max(computed, reputation_floor_score)

upvote_ratio defaults to 0.5 when there are no votes. flags is 0 when the user has no comments. Admins may set a reputation_floor_score; the effective score never falls below that floor.

Signal Components

SignalWeightDescription
quality40%min(avg_word_count / 50, 1) - longer average comments score higher, capped at 1.
upvote_ratio30%Upvotes / (upvotes + downvotes), range 0-1.
age15%min(account_age_days / 365, 1) - full weight after one year.
vouches10%min(community_vouches_count / 10, 1) - community endorsements.
flags-5%confirmed_flags / total_comments - penalty term subtracted from the weighted sum.

Score Levels

ScoreLevelMeaning
< 2000newNew account or limited positive signal.
>= 2000establishedActive commenter with a reasonable history.
>= 5000trustedStrong positive signal across most dimensions.
>= 7500expertConsistently high-quality contributions over time.
>= 9000moderatorTop-tier score; often used as a moderator trust signal.

How Moderators Use Reputation

Reputation does not auto-hide or auto-approve comments. It's an informational signal for moderators: