Wie wir scoren — und warum
Drei Score-Familien (Article-Score, Vote-Aggregation, Topic-Weights) bestimmen, was prominent steht. Hier die Formeln in lesbarer Form.
Article-Score
Composite 0..100Composite-Score, der fuenf normierte Eingaben (jeweils 0..100) gewichtet aufsummiert. Das Ergebnis bestimmt die Sortierung in Listen und im Radar.
articleScore = 0.30 · truth + 0.25 · rating + 0.20 · engagement + 0.15 · topicGrowth + 0.10 · freshness | Eingabe | Gewicht | Was sie misst |
|---|---|---|
| truth | 0.30 | Wie gut die Aussage gegen verifizierbare Fakten besteht. |
| rating | 0.25 | Aggregiertes Star/Like-Rating der Community. |
| engagement | 0.20 | Logarithmischer Mix aus Views, Votes und Predictions. |
| topicGrowth | 0.15 | Aktivitaet rund um das Thema vs. 30-Tage-Baseline. |
| freshness | 0.10 | Exponentieller Decay; Default-Halbwertszeit 14 Tage. |
Truth dominiert, weil Hypexio sich daran misst. Engagement ist logarithmisch, damit ein viraler Beitrag nicht alles ueberschreibt. Topic-Growth und Freshness sind echte, aber schwaechere Signale.
Vote-Aggregation
Approval, Reality, ControversyAus den Einzelvotes berechnen wir gewichtete Mittelwerte und einen Controversy-Score. Gewichte verstaerken vertrauenswuerdige User; Roh-Counts bleiben sichtbar, damit die UI ehrlich bleibt.
approvalRatio = likeWeight / (likeWeight + dislikeWeight)realityAvg = sum(weight · realityValue) / sum(weight)controversyScore = 100 · (1 − |approvalRatio − 0.5| · 2)
Controversy ist eine eigene Dimension, damit polarisierende Beitraege explizit sichtbar sind und nicht aus der Approval-Ratio "rausgemittelt" werden.
Topic-Weights
Aktivitaets-VerteilungAktivitaets-gewichtete Verteilung ueber alle Kategorien — die Summe ergibt exakt 100. Trends laufen ueber den 30-Tage-Vergleich.
activity = 1 · votes + 3 · predictions + 5 · articlesweight = round(100 · activity_7d / Σ activity_7d)trend(up) when activity_7d / baseline ≥ 1.2trend(down) when activity_7d / baseline ≤ 0.8trend(stable) sonst
Vote-Weight
Reputation 0..100Stimmen werden in den Bereich 1.0..2.5 skaliert — linear in der Reputation, beidseitig geclamped.
voteWeight(reputation) = 1.0 + min(max(reputation, 0), 100) / 100 · 1.5 Quellen-Methodik
Trust 0..100Jede Quelle hat einen Trust-Score (0..100), der Crawl-Dichte, historische Korrekturen und Cross-Check-Bestaetigungen zusammenzieht.
- Aktive Quellen werden taeglich gecrawlt; HTML-Hashes deduplizieren.
- Quellen unter Trust-Score 30 erscheinen nur in Article-Bodies, niemals als Lead.
- Korrekturen werden public per Diff dokumentiert.
- Anonymous-Posts und Pressemitteilungen ohne benannten Autor zaehlen als low-trust.
Vollstaendige Referenz
ReferenzDie ausfuehrliche Beschreibung samt Edge-Cases findet sich im Shared-Package.
packages/shared/README.md