How the feed is ranked
Gawk aggregates publicly verifiable data — it does not invent metrics. The feed’s severity is a deterministic sort key over already-aggregated public data, not an invented score. Every card cites a primary public source. The formula below is pre-committed in code and declared on this page; a threshold change is one git commit.
Severity formula
| Card type | Severity | Fires when |
|---|---|---|
| TOOL_ALERT | 100 | Any tracked tool (Claude Code, Claude API, OpenAI API, Codex, Copilot, Windsurf) reporting a status that is not 'operational' on its public status page, OR an active incident on a status page that still reads green overall. |
| MODEL_MOVER | 80 | An OpenRouter top-30 model whose week-over-week rank delta exceeds the threshold (strictly greater than). |
| NEW_RELEASE | 70 | A HuggingFace text-generation model published in the last 48h by an org in the major-lab allowlist (Anthropic, OpenAI, Google, DeepSeek, Moonshot AI, Meta-Llama, Mistral AI, Qwen, xAI, Cohere, Alibaba, Microsoft, NVIDIA, Perplexity, Amazon) with at least 5 likes — likes are first-paint social proof; the rolling 30d download counter starts at 0 for brand-new repos. |
| SDK_TREND | 60 | A tracked package (PyPI / npm / crates / Docker / Brew / VS Code Marketplace) whose week-over-week download delta absolute value exceeds the threshold. |
| NEWS | 40 | A Hacker News AI-filtered story whose points exceed the threshold within the configured time window. |
| RESEARCH | 20 | An arXiv paper in the current top-5-by-recency snapshot for cs.AI + cs.LG. |
| LAB_HIGHLIGHT | 10 | The single curated AI lab with the highest 7-day GitHub event total in the current snapshot. |
Numeric thresholds
- MODEL_MOVER fires when |currentRank − previousRank| > 3 (strictly greater).
- SDK_TREND fires when |week-over-week %| > 10% (strictly greater).
- NEWS fires when HN points > 100 AND age ≤ 6h.
- NEW_RELEASE fires when a HuggingFace model’s
createdAtage ≤ 48h AND likes ≥ 5 AND the publishing org is in the major-lab allowlist.
Sort order
Cards are sorted by severity descending, then by underlying-event timestamp descending within the same tier. Sort is deterministic and stable; identical inputs produce identical orderings.
Quiet days
When zero cards with severity ≥ 40 land in the last 24 hours, the feed shows a quiet-day banner with the current state of the dashboard (top model, tool-health green/total, latest paper). The feed never fabricates cards to fill a slow day.
Sources
Every card cites the public source the underlying number was read from. The full source registry — names, governance, transparency notes — is published at /sources.
Regional bias on the map
Geographic placement on the live globe and flat map relies on a deterministic geocoder that resolves location strings from public GitHub and Hacker News profile fields. Coverage currently sits at around 21% of raw events and is biased toward English-speaking developer profiles. Chinese, Indian, and other non-English developer activity is systematically underrepresentedin the geographic view — the events still land in the Wire feed and panel aggregates, but they don’t become dots until the geocoder can resolve their author’s self-declared location.
The AI Publishers wire (MarkTechPost IN, Analytics Vidhya IN, Heise DE, Synced Review CN, The Register UK, MIT Technology Review US) and the curated AI Labs registry partially address this — both layers carry verifiable HQ coordinates and surface non-SF activity directly without depending on the geocoder. The seventh AI Publisher slot (latent.space) sits in San Francisco and adds practitioner-grade signal rather than regional counterweight. They are a counterweight, not a fix. Additional non-English sources are on the roadmap; suggestions are welcome via the community link in the header.
Auditability
The severity formula and trigger thresholds live in src/lib/feed/thresholds.ts. Any threshold change requires a git commit and is therefore auditable in the public repository’s history.