HomeAI & Machine LearningCompetitor Signal Radar — Sentiment & Topic Clustering

📡 Competitor Signal Radar — Sentiment & Topic Clustering

Simulated competitor mentions stream in and get scored for sentiment and clustered by topic — watch the radar update live as signal volume shifts.

AI & Machine Learning3DModerate60 FPS
ai-competitive-intelligence ↗ Open standalone

About the Competitor Signal Radar

Competitive intelligence teams do not read every mention of a rival company by hand — there are simply too many of them. Instead, real systems ingest a stream of mentions from news, social media, review sites and forums, run each one through a sentiment classifier and a topic tagger, and roll the results up into a live dashboard: how much are people saying about this competitor right now, on which topics, and is it good or bad news? The value of that dashboard depends entirely on freshness — a rolling window over the last few minutes or hours reacts to a live incident in a way that an all-time average never can.

This simulation generates a synthetic stream of competitor mentions using a real generative model rather than literal text: three competitors, each with its own topic-probability distribution, and five topics, each with its own topic-dependent sentiment distribution (outages skew sharply negative, feature launches skew positive). Mentions arrive as a Poisson process at a configurable rate, get scored for sentiment on the spot, and are aggregated into a trailing rolling window whose length you control. Watch the five-spoke radar chart track volume and sentiment per competitor, the bubble chart track sentiment and volume per topic across the whole market, and the event log scroll past in real time. The "trigger outage" button injects a burst of negative reliability mentions for one competitor so you can watch both views react to a real shift in signal.

Frequently Asked Questions

What is a rolling window and why does it matter here?

A rolling (or trailing) window keeps only the events from the last N seconds and discards anything older, recomputing every statistic from scratch as new events arrive and old ones age out. It matters because a simple all-time average hides recent shifts — if a competitor has had 10,000 lifetime mentions with average sentiment 0.1, a fresh wave of 50 furious complaints barely moves that number. A short rolling window is far more sensitive to what is happening right now, which is exactly what a monitoring dashboard needs: freshness traded off against the noisiness of a smaller sample size.

How does sentiment scoring work in real NLP systems, versus this simplified generator?

This simulation draws each mention's sentiment from a topic-dependent normal distribution — a shortcut that produces realistic-looking patterns without reading any real text. Real sentiment analysis systems instead process actual language: classic approaches use a lexicon of positive/negative words with rule-based negation handling, while modern systems fine-tune a transformer model on labelled examples so it can output a continuous score or a positive/neutral/negative class for any sentence, capturing sarcasm, context, and domain-specific meaning that a lexicon would miss. Both approaches ultimately produce the same kind of number this simulation fakes — a scalar from roughly −1 to +1 — which is why the downstream radar and bubble views generalise to real pipelines even though the input here is synthetic.

Why does a sudden negative spike matter more than a slow drift?

A slow drift in average sentiment usually reflects a gradual, structural change — pricing perception shifting over a quarter, say — that a team can address on a normal planning cycle. A sudden spike, especially in a topic like outages, usually means something is actively breaking right now: a real incident, a viral complaint thread, or a PR crisis in progress. Because a rolling window reacts within seconds to a burst of new mentions, it surfaces spikes almost immediately, which is precisely the scenario the trigger-event button in this simulation is built to demonstrate — watch how fast the radar spoke and bubble both move when the burst lands.

What do the radar chart and the bubble chart each show, and why show both?

The radar chart has one spoke per topic, drawn once per competitor as an overlaid polygon, so its shape answers "which competitor is being talked about, on which topics, right now, and is that positive or negative" — it is built for comparing competitors against each other. The bubble chart collapses the competitor dimension and instead plots every topic on axes of sentiment (x) and volume (y), so its shape answers "which topics are hot and which are toxic across the whole market" — it is built for spotting outliers at a glance. Together they cover the two questions a competitive-intelligence analyst asks most: who, and what.

Why do the three competitors show different topic mixes?

Each competitor in this simulation is assigned a fixed probability distribution over the five topics — for example Meridian is configured to generate far more Outage/reliability and Customer complaint mentions than the other two, simulating a competitor with a rockier operational track record, while Astra skews toward Pricing and New feature launch mentions, simulating a company that is shipping and marketing aggressively. This mirrors real competitive intelligence, where different companies genuinely do generate very different mixes of press coverage, social chatter, and review content depending on what is actually happening inside each business.

What is a Poisson process and why use it to simulate mention arrivals?

A Poisson process models events that occur independently at a constant average rate, with the time between consecutive events following an exponential distribution. It is the standard model for arrival streams that have no memory of when the last event happened — customer mentions, support tickets, and web requests all behave this way reasonably well in the short term. This simulation draws each inter-arrival gap from an exponential distribution parameterised by the arrival-rate slider, so raising the rate does not just add more events uniformly — it also changes the burstiness pattern in a statistically realistic way.

What doesn't this simulation capture that real competitive-intelligence text analysis would?

This simulation never reads any actual text — topics and sentiment are drawn straight from probability distributions, so it cannot capture the things real text analysis lives on: sarcasm, mixed sentiment within a single mention, entity disambiguation (is "Vantek" the company or someone's cat?), source credibility weighting, language and dialect variation, or the fact that a single influential post can be worth more than a thousand ordinary ones. Real systems also have to deduplicate reposts, detect bot amplification, and decide how much to trust an anonymous account versus a named journalist — all judgement calls this simplified generator skips entirely by construction.

⚙ Under the hood

Simulated competitor mentions stream in and get scored for sentiment and clustered by topic on a live radar chart.

Three.jsWebGLAIMachine Learning

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)