For quants & systematic desks

An impact graph you can backtest. Explained, sourced, point-in-time.

Pipe a clean per-stock signal into your models — direction, aspect and relevance with a sourced reason behind every edge. Not a sentiment score, not a black box.

COVERAGE
330+
megatrend nodes across 25 Tier-1 families
140k+
listed companies in the resolution universe
12k+
companies mapped to one or more trends
20+
global exchanges, ticker-resolved

Plus forex, crypto and private/off-coverage companies as first-class entities. Universe and mappings are continuously audited — every cross-market figure is canonical-deduped and FX-normalised, so you're not double-counting dual listings.

METHODOLOGY

Every edge is explainable — and defensible.

The only non-deterministic layer is the language model, and we gate it hard. Here's how a signal earns its place in the feed.

01

Structured, not scored

Each edge is (stock × article) with a direction, an aspect (demand, supply, regulation, capital, competition…) and a relevance weight. Feed any of them as features — no NLP parsing on your side.

02

Double-gated, no leakage

Theme membership and article epicenter must both agree before a stock is attributed to a trend. A chip giant sharing a biotech headline doesn't leak into your biotech screen.

03

Real competition, not co-mention

Rivalry edges are head-to-head (a shared article naming ≤2 companies), with valuation and ranking comparisons explicitly excluded — so "competitors" means substitutes, not co-occurrence noise.

Full methodology — eligibility, weighting, corporate-action handling, disclaimers — is published, not hand-waved. Read the methodology doc →

POINT-IN-TIME

Timestamped when the story broke. Never revised.

No look-ahead

Every edge carries the moment its story was ingested. Backtests see exactly what the graph saw, when it saw it.

No survivorship or backfill bias

It's a forward record built from day one — not a reconstructed history quietly cleaned of names that later failed.

Window grows daily

Coverage runs from 2026 onward and extends every day. Best fit today: recent-regime and forward testing; multi-year depth accrues over time.

# one edge, as stored
stock: NVDA.US
article_at: 2026-06-12T14:03Z
direction: -0.92
aspect: demand
relevance: 0.88
reason: "China data-center
             revenue at risk"
revised: never
MACHINE-CONSUMABLE

Built to be pulled, not scraped.

One authenticated GET returns clean JSON — ticker-resolved, canonical-deduped, country-scoped. No HTML, no free-text to parse.

Screen a whole theme, pull a stock's impact timeline, or filter the news feed by entity_type (stock / forex / crypto / private). Billing matches exactly what's returned.

Full API reference →

GET/v1/megatrends/:id/stocksranked members of a trend
GET/v1/stocks/:id/newsa stock's explained impact timeline
GET/v1/stocks/:id/competitorshead-to-head rivalry edges
GET/v1/news/search?entity_type=filtered impact feed
SIGNAL, NOT NOISE

The feed is triaged before it reaches you.

Hasbro: 13 → 1

An ETF-roundup article naming 13 tickers collapses to the one name it's actually about — the rest aren't attributed exposure they don't have.

Price-wrap → 0

"Stock X is undervalued by 24%" style price-target wrappers carry no fundamental impact — they're scored to zero, not fanned out across a sector.

Named, not sprayed

Edges attach to the companies a story is genuinely about — so your screen stays high-signal instead of drowning in incidental mentions.

Put a defensible signal in your model.

Read the methodology, then pull the feed. Talk to us about bulk and historical access.