PressRank LogoPressRank
Methodology

How PressRank Measures Credibility

PressRank uses a blind, community-driven, algorithmically computed framework to rank news channels. By stripping outlets of their branding and letting people judge anonymized coverage, the platform aims to produce an objective, manipulation-resistant credibility rating.

1. The Five Quality Dimensions

Rather than compiling a single "good/bad" score, we rate channels across five key dimensions. In the Arena, voters answer low-temperature, comparative prompts:

Factual Precision

“Which is most precise about what is actually known vs. speculation?” Measures factual grounding over speculation.

Neutrality

“Which of these is worded most neutrally?” Identifies tone objectivity and the absence of loaded words or editorial slants.

Sourcing

“Which is best sourced / most specific about where it comes from?” Evaluates if claims cite verifiable entities or anonymous rumors.

Fact vs. Opinion

“Which best separates verifiable fact from opinion?” Assesses how clearly commentary is distinguished from news reporting.

Non-sensational

“Which is the least sensational / clickbait-driven?” Rates the objective, measured editorial delivery of stories over high-alert headline grabbing.

2. Statement-Level Quality (Bayesian Shrinkage)

Each vote is a partial ranking (the selected statements rank higher than the unselected statements on a given slate). To calculate a statement's latent score, we start with the selection rate (selections divided by exposures).

To prevent a statement shown only twice from scoring higher than one shown 2,000 times, we apply **Bayesian shrinkage** toward a global prior:

Statement Score Formula
Score = (Selected + (Global Prior × Prior Strength)) / (Exposures + Prior Strength)

Where Global Prior = 0.40 (the expected baseline rate) and Prior Strength = 5 (the weight of pseudo-observations pulling low-exposure statements toward the mean).

We also calculate a Wilson-style confidence half-width for each statement as an uncertainty proxy:

function wilsonHalfWidth(hits, trials) { if (trials <= 0) return 1; const p = hits / trials; return Math.min(1, 1.96 * Math.sqrt((p * (1 - p)) / trials) + 1 / trials); }

3. Rolling Up to Channel Ratings

To infer a channel's overall quality, we aggregate all of its harvested statements. We take the mean score of its statements and apply a second layer of sample-size shrinkage:

Channel Rating Formula
Rating = [ (Mean × N) + (Global Prior × Channel Prior Strength) ] / (N + Channel Prior Strength) × 100

Where N is the number of statements harvested, Channel Prior Strength = 4, and the final value is scaled from 0 to 100.

The channel's uncertainty band (±σ) is calculated based on sample density:

σ = 100 / sqrt(N + Channel Prior Strength)

Leaderboard Thresholds: To prevent statistical noise, a channel is only publicly ranked on the leaderboard once it meets:

  • A minimum of 3 statements harvested and rated.
  • A minimum total exposure of 10 views in the Arena.

4. Vote Weighting (Anti-Brigading)

To resist coordinated inauthentic behavior, vote farms, and brigading fanbases, votes are **weighted, not simply counted**. Every cast ballot has its weight computed server-side:

Weight = Identity Trust × Behavioral Authenticity × Recency
  • Identity Trust: Derived from account verification, hardware attestation layers, and account age. Freshly spawned accounts start with a weight near zero.
  • Behavioral Authenticity: Collusion models monitor lockstep voting patterns, temporal burst activity, and network IP clustering to identify coordinate bot behavior.
  • Recency: Emphasizes recent evaluations, ensuring stale historical ratings decay as channels alter their content styles.
Want to know how we ensure complete privacy and anonymity?