← 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
| Signal | Weight | Description |
|---|---|---|
| quality | 40% | min(avg_word_count / 50, 1) - longer average comments score higher, capped at 1. |
| upvote_ratio | 30% | Upvotes / (upvotes + downvotes), range 0-1. |
| age | 15% | min(account_age_days / 365, 1) - full weight after one year. |
| vouches | 10% | min(community_vouches_count / 10, 1) - community endorsements. |
| flags | -5% | confirmed_flags / total_comments - penalty term subtracted from the weighted sum. |
Score Levels
| Score | Level | Meaning |
|---|---|---|
| < 2000 | new | New account or limited positive signal. |
| >= 2000 | established | Active commenter with a reasonable history. |
| >= 5000 | trusted | Strong positive signal across most dimensions. |
| >= 7500 | expert | Consistently high-quality contributions over time. |
| >= 9000 | moderator | Top-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:
- Low-trust comments appear with a visual indicator in the moderation queue
- High-trust users can optionally bypass pre-approval moderation (configurable per site)
- Admins can manually set a reputation floor override if needed