The Korean market, rebuilt as a graph

News rides the graph

Pipeline

Source → graph → validation → product

Filings and news run through separate paths into three products. Two paths cross the supply-chain graph (TENDRIL, BLOOM); one skips it entirely (MURMUR). Every output clears its own validation gate before release.

SourceLayerMapVerifyProductDART filingspublic filingsL0 · graphsupply chain KGTicker spaceno mapping neededQC · precisionexpert reviewTENDRIL-KOparquet · S3News wire1–3x / dayL1 · newsevent-drivenMappingdedup · issue · tickerBacktestt+1~t+5 CARBLOOM-KOjsonl · webhookNews wire1–3x / daySentiment scoreno graph passMap tickerticker × dateIC · backtestquantile spreadMURMUR-KOparquet · T+1
01

TENDRIL + BLOOM

A signal stack on the relationship graph

The graph alone refreshes yearly — too slow to feel live. Paired with a news trigger (BLOOM) it stays current, and an alt-data layer (+α) will stack on the same coordinate system next.

+α Alt-data · not startedL1 · BLOOM — news event propagation → beneficiary signalslive cadence · webhook / daily batchL0 · TENDRIL — supply-chain knowledge graph (coordinate system)DART · annual main refresh
L0 · Base

TENDRIL-KO

Supply-chain graph data

Problem

Korean mid/small-cap supply-chain relations are missing in structured form. Analysts spend hours skimming filings to map second-tier partners.

Customers

  • Offshore hedge-fund data teams
  • Domestic asset-manager research
  • Data vendors · aggregators
Source
DART annual & audit filings
Relations
PRODUCES · USES · SELLS_TO · AFFILIATE_OF
Coverage
2,595 KRX companies · 48K+ relations
Grounding
89.2%
History
2024 complete · backfilling to 2020
Cadence
Annual main · quarterly minimum obligation

Flow

DARTfilingsAI extractgroundingNeo4j graphnodes · edgesticker spaceparquetsnap + delta

Output shape

sample
srcrel_typedstconfidence
051910PRODUCEScathode0.94
051910SELLS_TO3732200.88
005930USESWonik QnC0.81

Schema · Delivery

draft
graph_nodes.parquet · graph_edges.parquet
node_id · rel_type · confidence · evidence_doc_id · as_of

Monthly snapshot + delta · S3 / parquet

L1 · News layer

BLOOM-KO

Event beneficiary signals

Problem

When news breaks, first-hop names are already late — second and third hops are nearly impossible to surface. Knowing the graph is not the same as using it in time.

Customers

  • Retail investors
  • Brokerage apps
  • B2B alert API
Source
News events × TENDRIL graph propagation
Output
Ticker candidates · hop(1|2|3) · path · score
Validation
Issue-unit definition · stage-2 backtest
Channel
B2C reports · B2B alert API

Flow

News eventseed tickerMappingdedup · issueticker mapPropagateL0 hop 1·2·3beneficiariessignalsjsonl / webhookhopS123→ ticker · path · score

Output shape

sample
hoptickerscorepath
13732200.91051910 → 373220
20584700.74… → Wonik → 058470
30390300.61… → hop3

Schema · Delivery

draft
signals.jsonl — one event = one record
event_id · seed_ticker · propagated[] · rationale

3x daily batch · realtime available on request

+α Alt-data

Not started — once a source is locked, it maps to ticker IDs and joins the stack

02

MURMUR-KO

News sentiment scoreset

Separate path — does not pass through the knowledge graph

Problem

Korean news-sentiment panels are effectively absent from English-language vendors, and existing mappings skew large-cap with thin coverage. Independent of the graph stack, it is the fastest product to ship.

Customers

  • Quant fund alt-data teams
  • Factor research
  • Data marketplaces
Source
News only (no graph pass)
Panel
Ticker × date · score(-1.0 ~ 1.0)
History
2023~ · point-in-time guaranteed
Metrics
IC · quantile spread · coverage

Flow

Newsdaily ingestSentimentscore -1 ~ 1no graph passMap tickerticker × datepanelparquet

Output shape

sample
datetickerscoren_articles
2024-03-120059300.4218
2024-03-12000660-0.117
2024-03-123732200.6712

Schema · Delivery

draft
news_sentiment.parquet
date · ticker · score · article_count · weighted_score · dispersion

T+1 09:00 daily batch