How does Community Notes score the raters themselves?

Raters earn a helpfulness score based on whether their ratings line up with how notes eventually score. The open code computes rater helpfulness from the notes they rated — roughly, raters who rate helpful notes helpful and unhelpful notes unhelpful build standing; those who rate against the eventual outcome lose it. The model also places each rater on the same viewpoint factor axis as notes, which is how it knows whether a note has bridged across perspectives. Rating well is itself scored, and it gates how much influence your ratings carry.

Community Notes doesn't treat all raters equally, and the mechanism is in the open code. Raters have scores too — earned by rating in line with eventual outcomes, and positioned on the same viewpoint axis the notes are.

Rater helpfulness is computed from outcomes

The code derives a rater's helpfulness from the notes they rated and how those notes scored — aggregating each rater's ratings against the note intercepts that resulted:

communitynotes · scoring/src/scoring/helpfulness_scores.py · L55–L66@ efa16ca
55def _rater_helpfulness(validRatings):
      # aggregate each rater's ratings against the
      # note intercepts those notes ultimately earned
66    raterCounts = validRatings.groupby(raterParticipantIdKey).sum()
CODE-CURRENTefa16caverified 2026-06-12
Community Notes computes rater and author helpfulness from rating outcomes: author helpfulness is the mean intercept of notes a user wrote, and rater helpfulness aggregates a rater's ratings against the intercepts those notes ultimately earned.
twitter/communitynotes — scoring/src/scoring/helpfulness_scores.py, author_helpfulness meanNoteScore (L50) + _rater_helpfulness (L55-L66)twitter/communitynotes main as of 2026-06-12

The intuition: if you rate notes helpful that go on to earn high intercepts, and rate notes unhelpful that score low, your ratings track the consensus outcome and you gain standing. Rate against the eventual outcome consistently and you lose it.

Raters sit on the viewpoint axis too

The matrix factorization places each rater on the same factor (viewpoint) dimension as notes. This is what makes bridging measurable: the model knows which "side" a rater tends toward, so when a note earns helpful ratings from raters on both sides of the factor axis, that's what pushes its intercept up. Your factor position is learned from your rating history, not declared.

CODE-CURRENTefa16caverified 2026-06-12
The model places notes and raters on a shared viewpoint 'factor' axis; a note's intercept only rises when raters across different factor positions agree, and the not-helpful threshold applies a negative note-factor multiplier (default -0.8) so more polarized notes must clear a harder bar. This is the bridging mechanism that resists single-viewpoint agreement.
twitter/communitynotes — scoring/src/scoring/mf_base_scorer.py, crnhThresholdNoteFactorMultiplier=-0.8 + factor docstring (L168-L169, L224-L226)twitter/communitynotes main as of 2026-06-12

Author helpfulness, too

The same file computes author helpfulness — a writer's standing based on the mean intercept of the notes they've written. Consistently writing notes that reach Helpful builds author standing; writing notes that get rated not-helpful erodes it. The system scores contribution quality on both sides of the pen.

CODE-CURRENTefa16caverified 2026-06-12
Community Notes computes rater and author helpfulness from rating outcomes: author helpfulness is the mean intercept of notes a user wrote, and rater helpfulness aggregates a rater's ratings against the intercepts those notes ultimately earned.
twitter/communitynotes — scoring/src/scoring/helpfulness_scores.py, author_helpfulness meanNoteScore (L50) + _rater_helpfulness (L55-L66)twitter/communitynotes main as of 2026-06-12

What the code doesn't say

▲ What the code doesn't say

Individual rater scores and identities. The algorithm is open, but the per-rater data is pseudonymized in the public release — you can see how standing is computed, not who has what score. xDoctor works only with the public, aggregate note and rating data and does not attempt to identify individual raters.

CODE-CURRENTefa16caverified 2026-06-12
The Community Notes scoring algorithm is open-sourced in twitter/communitynotes — a distinct repository from the xai-org/x-algorithm ranking code — and operates on public note and rating data; individual rater data is pseudonymized in the public release.
twitter/communitynotes — repository root; scoring/src/scoring/distinct repo, distinct SHA from the ranking algorithm

What to do with this

If you rate notes, rate by genuine helpfulness rather than by which "side" a note favors — the model is explicitly built to detect and reward cross-viewpoint judgment, and rating tribally erodes your standing. xDoctor's CN intelligence analyzes these dynamics at the population level, as an integrity lens, never to deanonymize or target individual contributors.

← Community Notes