Skip to content
RockGroup
DocsAI Sentiment
DocumentationAI Sentiment Prov1.0

Live AI Sentiment Engine
Technical Guide

A transparent, honest walkthrough of what this system is, how it works, what it was built with, and — importantly — what it is not.

Read~12 minSections9UpdatedAug 2026

01. Overview

What is this?

The Rock Group AI Sentiment Engine is a real-time financial intelligence dashboard that monitors three live data streams — press releases, market news, and SEC 8-K reports — and applies large language model (LLM) scoring to each item as it arrives. Every signal is scored on a single -5 to +10 scale for sentiment and likely market impact, then pushed to your browser over a WebSocket the moment it lands.

It is a tool for awareness and signal discovery. It surfaces information you might otherwise miss in the noise and gives you a structured, scored view of what is happening across publicly traded companies right now.

95% built by Agentic AI. This entire platform — from the ingestion pipeline to the dashboard UI — was built almost entirely by agentic AI systems working autonomously. That includes both major frontier models (Claude & Grok) and locally hosted open-source agentic models (devstral, phi4, granite3) running locally. The locally hosted models played a significant role in building the data pipeline, reducing token costs substantially and demonstrating that frontier-quality agentic work is no longer exclusive to proprietary APIs. Humans shaped the product vision, crafted precise prompts, and provided ongoing judgment — intervening where necessary to clear infrastructure hurdles and environmental limitations beyond the agents’ control. The machines executed the engineering.

Plain English: Think of it as a research assistant that reads thousands of press releases, news articles, and SEC 8-K reports per day, assigns each one a score from -5 (crisis) through 0 (routine) to +10 (major catalyst), and shows you the ones that matter first. It does not trade for you, advise you, or guarantee any outcome.


02. The Dashboard

AI Sentiment Pro

There is one dashboard. There used to be two — a basic view and a Pro view — but the basic view was a strict subset of Pro, so it only ever split attention between two products that read the same data through the same model.

Streams view
One column per source — Press Releases, Market News, SEC Filings. Each card carries the score, its tier, the model’s own reasoning, and whichever market metrics you choose to show. Below tablet width the columns become a tab bar and only the selected stream is rendered.
Tickers view
The same signals merged and grouped by company, so every event for a name sits in one expandable row. A group reports its strongest-magnitude score, which means a company with a +2 and a -5 shows the -5.

Both views run off the same live window, filtered by the same score-tier rail and sorted by the same four orderings — described in the next section.

→ Open AI Sentiment Pro

03. Filters, Sorting & Workspace

Reading and shaping the feed

Everything on this page filters a window that is already in your browser — roughly 250 rows per stream, held in memory because they arrived over the live subscription. Nothing you type here issues a new request, which is why filtering is instant.

Sorting
Latest (default)Most recently scored first — the order the model finished them in.
ImpactScore weighted by how recent it is, ranked on the ABSOLUTE value: a -5 going-concern warning is as urgent as a +5 acquisition, so bad news is never sorted to the bottom.
ScoreStrongest sentiment magnitude first, regardless of age.
DetectedThe order the events were detected in the market, before scoring — useful for judging pipeline lag.

Every ordering falls back to score time as a tiebreak, so the order is total. Without one, equal-scoring rows swap places between renders and a live feed appears to twitch on its own.

Filtering
Tier railThe score legend down the side is also the primary filter — click a tier to keep only that band. Counts beside each tier describe the current window.
SearchMatches a ticker prefix or any part of a headline. Debounced by 160ms; the input itself never lags.
TickersA list like “AAPL, MSFT NVDA”. Prefix-matched, so typing “A” does not return every ticker containing an A.
Score rangeAn explicit min/max. An unscored row has no score, so it cannot satisfy a bound — with no bound set it is still shown.
Date rangeFilters on the day the item was scored.
Scored onlyHides rows that were ingested but have not finished scoring yet.
Watched / heldRestricts to your watchlist or your tracked positions.
Workspace

The watchlist, the position tracker and the field configuration live together in the Workspace drawer, as three tabs. The field configuration decides which of the ~30 available metrics appear on a card, grouped into market context, pipeline diagnostics and source-specific fields.

Your workspace never leaves your browser. Watchlist, positions and field choices are stored in localStorage on your own device. They are not sent to us, not tied to an account, and are not recoverable if you clear site data. The legal disclaimer you accept is stored the same way, in sessionStorage, so it is asked again in a new session.

On a phone

Below 720px the three columns become a tab bar and only the selected stream is mounted — not merely hidden. Filters and the workspace open as bottom sheets. Hover tooltips are removed entirely, because touch has no hover; anything a tooltip says is also stated in the tier rail or in the sheets.


04. Architecture

How it is built

The system has four distinct layers: data ingestion, local processing, cloud sync, and real-time delivery to the browser.

🌐Data Sources
EXTERNAL
PR WireNews APIsSEC EDGAR 8-K
raw text firehose
⚙️Local Processing Layer
ON-PREMISE
Python PipelineLLM Scoring (frontier + local models)Sentiment Score -5 → +10
SQLite text_db+SQLite market_dbMarket data cross-reference
sync_to_cloud_db · every 1s
☁️Cloud Database
CLOUD
pr_datanews_datasecapi_data
PostgreSQLRealtime Engine (postgres_changes)
WebSocket Realtime · instant push on INSERT
🖥️Next.js Dashboard
BROWSER
AI Sentiment Pro
React stateSupabase JS clientNew card → < 1s latency

The sync module is a lightweight Python watcher that runs continuously on the server. It checks each table every second for new rowids, upserts new rows to the cloud database immediately, and also runs an independent market data sweep every 3 seconds to backfill any delayed market metrics.

The browser never polls. Once the page loads, it opens a persistent WebSocket to the cloud database Realtime. New rows push to the browser the instant Supabase receives them — typically within 1 second of the original event.


05. Data Sources

What data does it monitor?

Three distinct data streams feed the system simultaneously.

PR
Press Releases
Corporate press releases from publicly traded companies — earnings, product launches, executive changes, strategic announcements. High signal-to-noise ratio. Source URL is a premium feature.
NS
Market News
Financial news articles from market news providers covering macro events, analyst upgrades/downgrades, sector moves, and breaking company news. Broader coverage, more noise than PR.
SEC
SEC 8-K Filings (EDGAR)
Material-event disclosures filed with the SEC and identified by accession number. Each card shows the reported 8-K items and links to the filing itself. Only filings with a resolved exchange-listed ticker are surfaced.

Note on SEC coverage: The SEC stream is Form 8-K only — 10-K, 10-Q and S-1 are not currently ingested. Many SEC filings are also submitted by entities (mutual funds, insiders, foreign filers) that have no exchange-listed ticker; the pipeline filters those out, so only filings with a confirmed ticker reach the dashboard.


06. Scoring Methodology

How are scores generated?

Each incoming item passes through an LLM-based scoring pipeline before it reaches the dashboard. The model reads the full text of the article, press release, or filing and returns a structured JSON output that includes a sentiment score, a sentiment direction label, and a plain-English justification.

Score scale (-5 to +10)
8 to 10MAJOR CATALYSTHigh-probability market-moving event. Significant price action likely.
7 to 7.9HIGH SIGNALClearly positive event with meaningful upside.
5 to 6.9MODERATEMildly impactful. Possible upside but not a clear catalyst.
0 to 4.9ROUTINENeutral or low-impact event. Most filings land here.
-0.1 to -2MILD NEGATIVEMinor concerns — small miss, modest dilution risk, routine regulatory filing.
-2.1 to -3SIGNIFICANT NEGATIVEDilutive offering, guidance miss, downgrade, serious litigation.
-3.1 to -4SEVERE NEGATIVEMajor guidance cut, litigation escalation, serious regulatory warning.
-4.1 to -5EXTREME NEGATIVEBankruptcy risk, massive dilution, delisting threat, going-concern warning.
no scoreUNSCOREDIngested but not yet scored. Some events arrive before scoring completes.

The LLM also outputs a directional label (BULLISH · BEARISH · NEUTRAL · MIXED) and a justification sentence explaining the reasoning. Both are visible on each card.

Scores are computed at ingestion time and stored. They do not update retroactively — a score reflects the model's assessment of the text at the moment it was processed.


07. Market Data

What market metrics are shown?

In addition to the LLM sentiment score, each card can display live and at-score market metrics. These are cross-referenced from a separate market data database and attached to the row at sync time — or backfilled up to 3 seconds later if the market data was not yet ready when the text item first arrived.

Public FloatOutstanding shares available to the public
Daily VolumeTotal shares traded on the day of the event
RVOLRelative volume — today's volume vs. 20-day average
Bid/Ask SpreadSpread at the time the score was computed
Price Change %Intraday price change at the moment of scoring
Dollar VolumeDollar-weighted volume at score time and live
Last Price at ScoreShare price at the exact moment the signal was scored

Not all metrics are available for every item. Market data availability depends on whether the ticker was actively trading when the signal was processed.

Market data disclaimer: All market metrics displayed are sourced from publicly available data feeds and are provided for reference purposes only. Accuracy is not guaranteed. Users should independently verify any market data against their own trusted sources before making any portfolio or trading decisions. Rock Group assumes no liability for data discrepancies or delays.


08. Limitations & Honesty

What this is not

We believe in being direct about what this tool does and does not do. These are real limitations, not fine print.

This is not financial advice
Nothing on this dashboard constitutes investment advice, a recommendation to buy or sell, or a guarantee of any market outcome. It is an informational tool.
LLM scores are probabilistic, not certain
The AI model can misread context, miss irony, be confused by technical jargon, or simply be wrong. A score of 9 does not mean a stock will move — it means the model assessed the text as high-impact based on its training.
Current dashboard shows real-time data only
The live dashboard streams new data from the moment the pipeline starts. Historical records exist in our database and will be made available to premium users in a future release.
Latency is ~1 second, not zero
Data flows from the source through local processing, then to Supabase, then to your browser. Total end-to-end latency is typically under 2 seconds from when an event is scored. It is fast, not instantaneous.
SEC 8-K coverage only
We currently track SEC 8-K reports (material event disclosures) only. Other SEC forms like 10-K and 10-Q will be added in the future. Only 8-K filings with a resolved exchange-listed ticker are shown. Entities without a ticker (funds, insiders, foreign registrants) are filtered out automatically.
Market data may be delayed or absent
Market metrics are attached asynchronously. Some items may show partial market data if the market database did not yet have the information at processing time.
This is not a trading system
There is no execution, no order routing, no backtesting engine in this product. This is a signal surface layer — what you do with the signals is entirely your own decision. Rock Group is developing a separate automated trading engine product that is not yet publicly available.

09. Built by Agentic AI

How was this built?

This platform was almost entirely designed and built by agentic AI and large language models working in iterative loops with a human directing the architecture and goals.

The entire codebase — the Python ingestion pipeline, the real-time sync script, the Next.js dashboard components, the TypeScript types, the scoring logic, the market data cross-referencing, and this documentation page — was generated, debugged, and refined through conversations with AI coding agents. The human role was directing intent, reviewing outputs, and making product decisions. The AI did the implementation.

Why does this matter?

A system like this — a real-time multi-source financial intelligence platform with LLM scoring, live market data cross-referencing, WebSocket delivery, and a configurable React dashboard — would have taken a team of engineers months to build. It was assembled in days, primarily through agentic AI. That is the actual state of the technology in 2026. This platform is a working demonstration of that.

The scoring pipeline itself uses LLMs to read raw financial text and produce structured output. The real-time delivery infrastructure was designed with AI assistance.

We are not hiding this. We think it is something worth being proud of. The barrier to building sophisticated, genuinely useful software has collapsed. What truly matters now is the quality of your judgment: deciding what to build, how to direct the AI tools, and when to apply deep subject matter expertise. The tools have become extraordinarily capable.

Ready to explore?

Open the live dashboard and see signals arriving in real time. The green LIVE indicator means the WebSocket is connected and new data will appear without a page refresh.

Rock Group · AI Sentiment Documentation · Last updated August 2026
Questions? Contact us