← all projects
Case study · signal fusion · statistical validation

GTA VI Hype Intelligence
can you measure public attention — and does it beat chance?

Three independent public signals — Google Trends (search curiosity), Wikipedia pageviews (information-seeking), and YouTube creator activity — fused into a single Hype Index and tested against 19 known GTA VI events. Permutation test confirmed real signal (p=0.003). Three independent generalization experiments found exactly where the detector breaks down — and that finding is reported as prominently as the win. 14-section Streamlit dashboard with signal lag analysis, NLP topic clusters, and bootstrapped confidence intervals throughout.

Live dashboard ↗ Repository ↗
p=0.003
VS RANDOM BASELINE
F1 0.599
BEST ABLATION (Trends+Wiki)
19
EVENTS EVALUATED
3
SIGNALS FUSED
14
DASHBOARD SECTIONS

01 · The question

GTA VI is one of the most anticipated games ever made. Rockstar Games has released almost nothing officially — yet public attention has been immense, measurable, and highly reactive to leaks, rumours, and rare official announcements. The question driving this project: can three fully public signals be combined into a meaningful proxy for that attention, and does the proxy actually detect real events better than chance?

This is a retrospective event-alignment experiment, not a hype predictor. I built it to find out — rather than assume — whether fusing signals helps, whether the result beats random, and where it fails. The methodology question was more interesting to me than the GTA VI subject itself: most "signal fusion" projects stop at the pretty dashboard. This one ran three adversarial generalization tests and published the worst result first.

A compiled event registry of 21 GTA VI events (19 inside the observable signal window starting Jan 2023) with independent source attribution and confidence ratings anchors every evaluation. Two events predating the signal data window are excluded from all F1/precision/recall calculations — including them would guarantee misses regardless of detector quality.

02 · Architecture

Google Trends3 keywords × 25 countries · no auth required
Wikipedia Pageviewsdaily · full date range · no auth required
YouTube Data API v310 event-targeted queries · free key
SIGNAL NORMALISATION → HYPE INDEX (3 WEIGHTING SCHEMES COMPARED)
Equal weightingbaseline
PCA weightingvariance-optimal
Rank aggregationposition-based
SPIKE DETECTION (rolling z-score) THEN EVENT ATTRIBUTION — never reversed
Signal ablationevery signal + every pair tested
Permutation test1,000 random-date trials
Bootstrap CIs95% on F1, precision, recall
3 INDEPENDENT GENERALIZATION TESTS
Chronological holdouttune on earliest 12 → test on latest 7
Leave-one-event-out19 independent trials
Holdout by event typetrain official/marketing → test leak/rumour
YouTube NLP · Geographic clustering · Signal lag analysis
14-section Streamlit dashboardprecomputed · live at gta-vi.streamlit.app

03 · Does combining signals help?

Weakly — and not by using everything. Full signal ablation (every individual signal and every pair) produced a clear ranking:

CONFIGURATIONMACRO F1NOTE
Trends only0.508Best single signal
YouTube only0.418—
Wikipedia only0.402—
Trends + Wikipedia0.599Best overall — adding YouTube didn't help
Trends + YouTube0.551—
All three combined0.572Worse than Trends + Wikipedia alone
Sensitivity grid peak (w=8, t=2.0)0.595Not used — would be tuning on eval data

YouTube's blended signal (creator activity + lifetime view count) diluted rather than enhanced the detector. A later sub-ablation confirmed the diagnosis: creator activity alone scored F1=0.518 (nearly matching Trends alone at 0.508), while audience engagement alone scored just F1=0.171. The API's total-view-count limitation — it returns cumulative totals at collection time, not real-time velocity — conflated creator activity with lifetime reach. The ablation didn't just find the best combination; it identified exactly why YouTube underperformed.

The 95% bootstrapped confidence intervals for Trends-only [0.325, 0.537] and Trends+Wikipedia [0.384, 0.595] overlap, meaning "combining helps" is a consistent but not yet statistically decisive finding at 19 events. Both results are in the dashboard. Neither is hidden.

04 · Does it beat chance?

Yes, clearly. The permutation test ran 1,000 trials, each randomly placing 19 event dates within the signal window and computing detection F1. Only 3 of 1,000 random configurations scored as well as or better than the real event dates:

p = 0.003
3 OF 1,000 RANDOM TRIALS MATCHED OR BEAT THE REAL EVENT ALIGNMENT

The real GTA VI events align with detected spikes far better than random dates would. That's the core statistical validation: the Hype Index is detecting something real, not just picking up on random variance in internet noise.

05 · Does it generalize? Three tests, three answers.

This is the most important section of the project. Generalization was tested three different ways rather than assumed from a single flattering number, because a single train/test split on 19 events is itself a small, noisy experiment.

TESTRESULTINTERPRETATION
Chronological holdout
Tune earliest 12 → test latest 7
F1: 0.076Collapse from dev F1=0.500. Harsh but noisy — only 7 test events
Leave-one-event-out (LOEO)
19 independent trials
68.4% catch rateMore optimistic — reasonable generalization to individual unseen events
Holdout by event type
Train official/marketing/controversy → test leak/rumour
F1: 0.000Complete collapse on unseen event categories
Walk-forward (strictest)
Each event tuned using only prior events
Lowest of all testsLOEO's 68.4% was partly inflated by future-data leakage in tuning

Put together: the detector generalizes reasonably to a new individual event of a familiar type, but fails almost completely on an entire category it has zero training examples of. That's not buried in an appendix — it's the headline result for the generalization section. A system that can only detect events it has already seen a similar version of has a clear, characterizable limitation boundary. That boundary is now documented.

Why the default uses window=8 / threshold=1.5, not the grid peak.

The sensitivity grid found window=8/threshold=2.0 scores higher (F1=0.595 vs 0.572). Swapping in that value after seeing the results would itself be tuning on the evaluation set — exactly what the holdout tests exist to catch. The original threshold was used consistently across every other experiment. Changing it here would not be reporting the best result; it would be reporting the result that happened to look best in hindsight.

06 · Signal lag — a non-obvious finding

A secondary finding emerged from cross-correlation analysis that wasn't the main hypothesis: the three signals don't move together, and they lead each other by consistent amounts.

SIGNAL PAIRCORRELATION (r)LAG
Trends → Wikipedia0.59Trends leads by ~1 week
Trends → YouTube0.65Trends leads by ~1 week
Wikipedia ↔ YouTube0.79Same week — strongest pair

Google Trends tended to lead both Wikipedia and YouTube by roughly a week — people search before they read deeply or watch videos. Wikipedia and YouTube moved together in the same week with the strongest pairwise correlation. This is a specific, non-obvious asymmetry observed in the data — read as a pattern, not a causal claim, and it gets its own dedicated dashboard section.

07 · Limitations — stated plainly

Core detector doesn't generalize to unseen event categories.

The single most important limitation. F1=0.000 on held-out leak/rumour events when trained only on official/marketing/controversy. Discovered through deliberate testing, not avoided.

YouTube signal conflates creator activity with lifetime view count.

The API returns total views at collection time, not real-time velocity. This is why YouTube underperforms in the ablation — it's not measuring attention at the moment; it's measuring accumulated reach since upload.

Reddit wasn't available.

API access wasn't approved in time, so text/sentiment analysis runs on YouTube titles and descriptions — a narrower signal measuring creator framing, not genuine audience discussion.

19 evaluable events is a modest evaluation set.

Every F1, precision, and recall number is directional at this sample size. That's exactly why the permutation test and bootstrap CIs matter more than any single point estimate — and why three generalization protocols were run rather than one.

Correlation and event-coincidence are not causation.

Anywhere in this project. A detected spike means an unusual change in measured signals coinciding temporally with a known event — never that the event caused the change.