Velocity Wiki

How Velocity scoring, states, categories, and content filters work

Velocity Scoring (0-100)

Every tracked item in Velocity receives a composite score from 0 to 100 that represents its current momentum and significance. Scores are computed by category-specific scoring engines, each with tailored components and weights that reflect what matters most for that domain.

Score Labels

HOT
80-100
WARM
50-79
COOL
20-49
COLD
0-19

Velocity States

States are derived from the current score and its trajectory compared to the previous data point. Each state has a corresponding score range and momentum direction.

Surging
80-100 + rising fast

Score is 80+ and trending sharply upward (delta >= 5). Maximum velocity with accelerating momentum.

Rising
60-79 or trending up

Score is 60+ or moving upward (delta >= 3). Strong momentum with growing coverage and engagement.

Stable
40-59

Score is in the mid-range without significant directional change. Steady coverage without acceleration.

Cooling
20-39

Score is declining. Activity is diminishing but the topic remains tracked.

Fading
0-19

Score is very low. Minimal activity, may become dormant if no new signals emerge.

Category-Specific Scoring Engines

Each category has its own scoring engine with tailored components and weights. The weighted sum of components produces the final 0-100 score. All component weights sum to 1.0.

News & Politics Scorer

Data Sources: Google News RSS, GDELT, Reddit r/news, Reddit r/politics

Source Count

25%

Number of distinct sources covering the story. Full score at 10+ unique sources.

Weight:
25%

Social Mentions

20%

Feed item volume in the last 24 hours. Full score at 50+ items.

Weight:
20%

Sentiment

15%

Average sentiment magnitude. Higher controversy (absolute value) drives higher velocity since polarizing stories get more attention.

Weight:
15%

Credibility

20%

Average relevance score of feed items as a proxy for source trust. Higher quality sources produce higher scores.

Weight:
20%

Time Decay

20%

Exponential freshness decay with a 6-hour half-life from the last update. A story updated moments ago scores near 100; one untouched for 12+ hours scores near 25.

Weight:
20%

Stocks & Markets Scorer

Data Sources: CoinGecko (for correlation), Google News RSS, Reddit r/stocks

Price Change

30%

Absolute percentage price change. A 10%+ move in 24 hours scores 100.

Weight:
30%

Volume Ratio

25%

Current trading volume compared to 20-day average. A 3x volume spike scores 100.

Weight:
25%

Technicals

20%

RSI deviation from 50 (overbought/oversold signals) combined with MACD signal strength. Extreme readings drive higher scores.

Weight:
20%

News Catalyst

25%

High-relevance feed items (>0.7 relevance) in the last 24 hours. 10+ catalyst items score 100.

Weight:
25%

Crypto Scorer

Data Sources: CoinGecko API, Reddit r/cryptocurrency, Google News RSS

Price Velocity

30%

Absolute 24h price change percentage. A 15%+ move scores 100.

Weight:
30%

Volume Spike

25%

Current volume compared to 7-day average. A 5x spike scores 100.

Weight:
25%

Social Sentiment

25%

Combination of sentiment magnitude (50%) and feed item volume (50%) in the last 24 hours.

Weight:
25%

Whale Alerts

20%

Large transaction signals from on-chain data. 5+ whale alerts score 100.

Weight:
20%

Elections Scorer

Data Sources: Google News RSS, GDELT, Reddit r/politics

Polling Delta

30%

Magnitude of recent polling shifts. A 5+ point swing scores 100.

Weight:
30%

News Volume

25%

Feed item count in the last 48 hours. 100+ items score 100.

Weight:
25%

Social Engagement

25%

Feed items with relevance score above 0.6. 30+ engaged items score 100.

Weight:
25%

Urgency Multiplier

20%

Proximity to election date. Within 7 days scores 95, within 30 days scores 80, within 90 days scores 60. On election day scores 100.

Weight:
20%

Entertainment Scorer

Data Sources: Google News RSS, Reddit (various subreddits)

Social Trending

30%

Feed item volume in the last 24 hours. 40+ items score 100.

Weight:
30%

Search Volume

20%

Total feed item count as a proxy for search interest. 100+ items score 100.

Weight:
20%

Media Coverage

25%

Unique media sources covering the topic. 8+ unique sources score 100.

Weight:
25%

Fan Engagement

25%

Positive sentiment (60% weight) combined with volume (40% weight). Enthusiastic fan activity drives higher scores.

Weight:
25%

Security & Cyber Scorer

Data Sources: CISA Alerts, NVD, Hacker News, Reddit r/netsec

CVSS Score

30%

CVSS base score (0-10) mapped linearly to 0-100. Critical vulnerabilities (9.0+) score 90+.

Weight:
30%

Active Exploitation

25%

Binary flag: actively exploited in the wild scores 100, not exploited scores 20.

Weight:
25%

Affected Scope

25%

Logarithmic scale of affected systems/organizations. 10,000+ affected systems score 100.

Weight:
25%

Patch Availability

20%

Inverse relationship: no patch available scores 90 (higher urgency), patch available scores 30. Plus a volume boost from recent security advisories (up to +15).

Weight:
20%

Technology Scorer

Data Sources: Hacker News, Reddit r/technology, Google News RSS, TechCrunch

HN Score

25%

Hacker News front page points or HN feed item count as proxy. 500+ HN points score 100.

Weight:
25%

Reddit Engagement

25%

Reddit feed items in the last 24 hours. 20+ items score 100.

Weight:
25%

News Coverage

25%

Unique non-social media sources (excludes Reddit, Twitter, HN). 6+ traditional media sources score 100.

Weight:
25%

Industry Impact

25%

Average relevance score of feed items (70% weight) combined with a high-impact metadata flag (30% weight).

Weight:
25%

Content Filters

All ingested content passes through a two-stage filter pipeline. Items flagged as high risk are stored with content flags but may be excluded from default views.

Fake News Filter

  • Source credibility check: low trust weight (<0.4) adds risk
  • Single-source flag: stories from only one source are marked
  • ALL CAPS detection: titles with >60% uppercase letters flagged as clickbait
  • Clickbait phrase patterns: known sensational language patterns
  • Unreliable domain matching: known misinformation domains blocked
Low (0-0.24)
Medium (0.25-0.49)
High (0.50+)

Adult Content Filter

  • Keyword blocklist: scans title and summary for explicit terms
  • Category filtering: safe categories (technology, security, etc.) get baseline pass
  • Source whitelist: trusted providers (Reuters, AP, CISA, etc.) bypass the filter

Data Sources

Feed sources are weighted by trust/reliability. Higher weight sources have more influence on scoring. Sources are fetched on a cron schedule.

CISA AlertsSecurity

Official US cybersecurity advisories and emergency directives

0.95
trust
CoinGecko APICrypto

Real-time cryptocurrency prices, volumes, and market data

0.90
trust
NVDSecurity

National Vulnerability Database for CVE data and CVSS scores

0.90
trust
Hacker NewsTechnology

Tech community trending stories and discussions

0.80
trust
Google News RSSAll

Broad news coverage across all categories

0.70
trust
GDELT ProjectNews

Global event monitoring and media analysis

0.70
trust
Reddit (5 subs)Various

r/technology, r/cryptocurrency, r/news, r/politics, r/stocks

0.60
trust

Categories

Tracked items and feed items are classified into categories. Each category maps to a specific scoring engine.

Technology
Scorer: Technology
Security
Scorer: Security
Crypto
Scorer: Crypto
Stocks / Market
Scorer: Stocks
Elections
Scorer: Elections
News / Politics
Scorer: News
Entertainment
Scorer: Entertainment
Sports
Scorer: Entertainment
Science
Scorer: Technology
Health
Scorer: News
Environment
Scorer: News
Geopolitics
Scorer: News

Uplift — the positivity lens

Uplift is a virtual category. Trends that qualify keep their original category and Velocity score; the indexer just adds a tag (isUplift) so they also surface on /uplift. No double-counting.

Definition

Trends that are uplifting, positive, breakthrough, or beautiful.

How a trend qualifies

  1. The title + description run through a positive-keyword pass (cure, breakthrough, restored, donates, fundraiser, achieves, etc.).
  2. If any negative signal is present (death, war, crisis, attack, lawsuit…) the trend is rejected even if positive keywords also matched. False uplift is worse than missed uplift.
  3. Categories like security, public_safety, geopolitics, politics, elections, crime never qualify. Those domains too often pair positive language with bad outcomes ("first-ever indictment", "record arrests").
  4. Categories that lean toward uplift (science, health, technology, environment, culture, sports, social) qualify with one positive keyword. Other categories require two.

Sub-themes

Each Uplift trend is bucketed into one of five themes (visible as filter chips on /uplift):

Breakthrough

Scientific advances, inventions, world-firsts, space milestones.

Health

Cures, treatments, recoveries, lifesaving outcomes.

Restoration

Rebuilds, reopenings, environmental recovery, cleanups.

Community

Donations, fundraisers, reunions, rescues, adoption.

Achievement

Wins, records, graduations, completions.

Tunable

The keyword lists, negative-signal blocks, and category bias all live in src/lib/uplift-classifier.ts. They are intentionally easy to edit — Uplift is a curatorial signal, not a fixed law.

Alert Severity Levels

Geo alerts and security advisories use a four-tier severity system.

Critical

Immediate threat to life, property, or critical systems. Requires urgent action.

Warning

Significant threat that may escalate. Preparation and monitoring recommended.

Watch

Conditions favorable for a threat to develop. Increased awareness advised.

Advisory

Informational notice. No immediate threat but noteworthy conditions exist.

Watchlists

Watchlists let you group trends, topics, assets, locations, and categories into curated collections with configurable alert filters.

Features

  • Favorites - Pinned watchlists appear first in the list.
  • 🔕Mute - Silence notifications without deleting the watchlist.
  • Alert Filters - Category, severity, and location filters for notification control.
  • +Entity Types - Track trends, topics, assets, locations, or categories.

Subscription Tiers

FREE
  • 30-minute data refresh interval
  • Up to 3 watchlists
  • Basic alert notifications
  • Standard feed sources
  • Community support
PRO
  • 1-minute data refresh interval
  • Unlimited watchlists
  • Priority alert notifications
  • Premium feed sources + custom RSS
  • API access
  • Priority support