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.
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.
Weakly — and not by using everything. Full signal ablation (every individual signal and every pair) produced a clear ranking:
| CONFIGURATION | MACRO F1 | NOTE |
|---|---|---|
| Trends only | 0.508 | Best single signal |
| YouTube only | 0.418 | — |
| Wikipedia only | 0.402 | — |
| Trends + Wikipedia | 0.599 | Best overall — adding YouTube didn't help |
| Trends + YouTube | 0.551 | — |
| All three combined | 0.572 | Worse than Trends + Wikipedia alone |
| Sensitivity grid peak (w=8, t=2.0) | 0.595 | Not 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.
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:
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.
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.
| TEST | RESULT | INTERPRETATION |
|---|---|---|
| Chronological holdout Tune earliest 12 → test latest 7 | F1: 0.076 | Collapse from dev F1=0.500. Harsh but noisy — only 7 test events |
| Leave-one-event-out (LOEO) 19 independent trials | 68.4% catch rate | More optimistic — reasonable generalization to individual unseen events |
| Holdout by event type Train official/marketing/controversy → test leak/rumour | F1: 0.000 | Complete collapse on unseen event categories |
| Walk-forward (strictest) Each event tuned using only prior events | Lowest of all tests | LOEO'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.
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.
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 PAIR | CORRELATION (r) | LAG |
|---|---|---|
| Trends → Wikipedia | 0.59 | Trends leads by ~1 week |
| Trends → YouTube | 0.65 | Trends leads by ~1 week |
| Wikipedia ↔ YouTube | 0.79 | Same 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.
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.
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.
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.
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.
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.