Published snapshot: · Checking for updates…
Methodology
Index version v1.2
What this measures
Measures the reach-weighted emotional valence of public discourse about AI across a defined platform basket. This is NOT a measure of public opinion: people who post about AI are not a random sample of the population.
How the text is analysed
This snapshot uses TypeSafe Jev (jev-latest). Each text is assessed for stance toward AI, concern category and irony. The published formula, not the language model, calculates the final ranking.
The four concern categories are existential risk, jobs and the economy, deception, and privacy. Texts with no category evidence are not forced into one. Model judgments can be wrong; these are discourse estimates, not calibrated probabilities of harm. History is recomputed using the current scorer and should not be read as a record of past forecasts.
From words to numbers — and what is not verified
Jev maps text onto a seven-level stance scale and concern categories. The formula then aggregates bounded, author-capped weights. A numeric output is a measurement convention, not proof that an opinion or claim is true. Followers and engagement measure attention; they do not establish expertise.
Independent validation on a human-labelled sample is still pending. The stance spacing, source weights and shrinkage are design choices, not scientifically fitted accuracy guarantees. Before recalibration we need independent coders, agreement checks and held-out tests by language, source and topic. The 95% interval does not include classifier error or selection bias; effective sample size does not prove independent evidence.
We separate publisher transparency, account identity and individual claim verification. A linked editorial policy is not a truth certificate. Unknown sources remain unreviewed, not fake. Repeated coverage may share one origin and is not automatically independent corroboration. No new credibility multiplier has been added to the index.
Research basis: Grimmer & Stewart · Text as Data · Sentiment quantification · Trust Project · Source checks
Model and company comparisons · watchlist/v2
We track a curated set of products and model families, not every released version. Each comparison uses one shared 24h or 7d window. Company sentiment requires a company mention; we do not automatically transfer a product's score to its vendor.
Targeted X searches rotate across providers and do not require positive or negative words. This English-language, budget-limited sample improves model coverage but is not a representative survey. Targeted-only posts inform entity comparisons and are excluded from the Overall index. Duplicate X post URLs count once per entity.
Entity scores use author-capped weights, effective-sample shrinkage and the sentiment-only composite. Trust score = 100 − fear score; neither is a probability or a percentage of people. Published ranks require at least 15 documents and effective sample 20. Early signals require five documents, effective sample five and three authors; they are hatched and unranked. Below this, only coverage is shown.
Observed engagement is likes + 2×reposts + 1.5×replies, rounded down. It orders selected evidence, not the trust ranking. No claim of measured engagement acceleration is made.
What the + / − points mean
Each post receives a signed share of the raw index relative to neutral 50. Positive points lean toward fear; negative points toward trust. All documents together reproduce the raw score. The homepage shows the smoothing and rounding adjustment separately, so the breakdown reconciles to Overall. A seven-day window has its own score.
This is an accounting allocation, not proof that a headline caused a change in public trust. The window-change view compares two non-overlapping samples with fixed normalisers and includes posts leaving the window. It differs from the published historical change. Matching article links or identical text form story groups; repeated coverage is not automatically independent evidence.
Reproduction notes · attribution/v2
After source-class balancing and author capping, allocate ES by each document's weighted signed stance and sample shrinkage. Allocate signed volume proportionally to ES, using its analytic limit at zero. Allocate the news term to each article by its share of news weight, with the same shrinkage. Apply the common gain 50 × tanh(κz) / z, with limit 50κ. The document points sum to I_raw − 50. Add I_published − I_raw to recover Overall.
The public JSON includes the index version, attribution version, timestamp, sample size and input fingerprint. Internal replay requires the retained corpus and cached scores. Public excerpts are a selection, not the full input dataset.
Engagement reflects attention, not agreement. Reach tiers are bounded; confidence and author concentration affect weight. Engagement growth is not inferred from a single observation.
Index v1.2 · 25 September 2026: individual posts have bounded influence. Each outlet counts as its own voice. A voice is capped at the larger of 0.5% or three times an equal share. News and community posts are balanced toward basket weights (35 : 55) before the voice cap; the final mix can differ when there are few distinct outlets. The published source mix shows the actual weights. The news term is a shrunk average tone. Earlier v1.1 snapshots are not directly comparable.
Article identity correction · 21 September 2026: repeated RSS/GDELT records with the same canonical article URL count once. Independent social posts remain separate. Current history is reconstructed with this correction; previously published snapshots can differ.
Liu & Son (2024): aggregation methods review ↗. Research background; these weights have not been established as universally optimal.
The formula
I_raw(t) = 50 · ( 1 + tanh( κ · [ α·ES(t) + β·VV(t)·tanh(3·ES(t)) + γ·MV(t) ] ) ) I(t) = λ · I_raw(t) + (1 − λ) · I(t−Δ) ES = engagement-weighted mean valence, shrunk toward 0 on small samples VV = seasonally-adjusted, robust-z-scored log volume growth MV = outlet-prestige-weighted mean tone of news, shrunk toward 0 like ES
- alpha_emotional_severity
- 0.5
- beta_volume_velocity
- 0.25
- gamma_media_virality
- 0.25
- kappa_gain
- 1.5
- shrinkage_k
- 200
- author_weight_cap
- 0.005
- author_cap_multiple_of_equal_share
- 3
- min_documents_per_source_class
- 10
- source_class_shares_note
- These are pre-author-cap balancing weights, not guaranteed final shares. The index sample's platform_mix reports actual capped weights.
- min_authors
- 150
Every component is normalised to [−1, 1] before the weighted sum. This matters: without it, the media term sits on a different scale from the others and silently dominates, making the weights decorative.
Where the data comes from
| Source | Class | Weight |
|---|---|---|
| Bluesky | public social | 0.22 |
| Threads | public social | 0.10 |
| Hacker News | public social | 0.08 |
| GDELT | news | 0.20 |
| News RSS | news | 0.15 |
| Mastodon | public social | 0.05 |
| YouTube | video audio | 0.09 |
| Podcasts | video audio | 0.06 |
| X · curated | curated elite | 0.10 |
| X · search | public social | 0.10 |
| X (model watchlist) | public social | 0.10 |
| Hacker News (model watchlist) | public social | 0.08 |
| Bluesky (model watchlist) | public social | 0.22 |
These are per-document source coefficients, not caps on a source's final share. Actual sample shares depend on volume, reach and confidence; a source may dominate the collected sample. The source feed shows those weighted shares and links to the original material.
Bands
- 0–24 Extreme Trust
- 25–44 Trust
- 45–55 Neutral
- 56–74 Fear
- 75–100 Extreme Fear
The scale runs from 0 (extreme trust) to 100 (extreme fear).
How we choose model searches
Every tracked family has a neutral keyword search. Four of seven X search slots rotate through the list; the other three follow recent attention, with a small preference for models that need more data. Repeated posts by one account do not increase that attention count. Targeted searches help comparisons but do not enter the Overall index.
Known limitations
- Discourse is not opinion. The sample over-represents technical, Anglophone, and highly-online populations.
- Emotion classification accuracy is bounded; sarcasm is the dominant failure mode and biases the index toward under-reporting fear.
- Confidence intervals reflect sampling uncertainty only, not model error.
- The index is not a forecast and has no established predictive validity.
Read these limits alongside the scores. The index describes the sources we collected; it cannot tell us what everyone thinks.
Data mode: live
When this deployment reports data_mode: synthetic, the underlying documents are generated rather than collected. The formula is the real one — the same code that runs against live data — but the corpus it consumes is invented.
Two consequences worth stating plainly. The numbers describe nothing about any real company, model or person. And the quotes are generated from templates with fictional handles: this platform does not fabricate statements and attribute them to real, named people, and running a demo is not an exemption from that.