METHODOLOGY

How we score — and why

Three score families (article score, vote aggregation, topic weights) decide what is prominent. Here are the formulas in readable form.

Article score

Composite 0..100

Composite score that weights five normalised inputs (each 0..100). It drives the order in lists and the radar.

articleScore = 0.30 · truth + 0.25 · rating + 0.20 · engagement + 0.15 · topicGrowth + 0.10 · freshness
Input Weight What it captures
truth 0.30 How well the article holds up against verifiable facts.
rating 0.25 Aggregated star / like rating from the community.
engagement 0.20 Logarithmic mix of views, votes and predictions.
topicGrowth 0.15 Recent activity around the topic vs. its 30-day baseline.
freshness 0.10 Exponential decay; default half-life 14 days.

Truth dominates because Hypexio is judged on it. Engagement is logarithmic so a single viral story does not overwhelm the rest. Topic growth and freshness are real but weaker signals.

Vote aggregation

Approval, reality, controversy

From individual votes we compute weighted averages and a controversy score. Weights amplify trustworthy users; raw counts remain visible so the UI stays honest.

Controversy is a separate dimension so that polarising stories surface explicitly instead of being averaged out of the approval ratio.

Topic weights

Activity distribution

Activity-weighted distribution across all categories — the total sums to exactly 100. Trends use a 30-day baseline.

Vote weight

Reputation 0..100

Each vote is scaled into the 1.0..2.5 range — linear in reputation, clamped on both sides.

voteWeight(reputation) = 1.0 + min(max(reputation, 0), 100) / 100 · 1.5

Source methodology

Trust 0..100

Every source carries a trust score (0..100) combining crawl density, historical corrections, and cross-check confirmations.

Full reference

Reference

The full description, including edge cases, lives in the shared package.