How It Works

Project K.E.M. fuses four data modalities into one stock embedding, then runs a two-arm system: an unsupervised novelty detector and a supervised probabilistic forecaster.

From Data to Forecasts

Three stages

Ingest
1
For each stock we collect four data modalities: market/technical data, financial statements, news text, and sector-graph connections.
Fuse & integrate
2
Modality-specific encoders turn each source into a vector; a fusion layer combines them and a temporal integrator gives the stock a single, time-aware embedding.
Two arms + concordance
3
Arm 1 scores novelty against the stock’s baseline; Arm 2 forecasts directional probability. A concordance engine reports where they agree and publishes the result.

Pipeline

The two-arm architecture

Technical EncoderMarket DataFinBERT Text EncoderNews ArticlesFundamental EncoderFinancial StatementsGraph EncoderSector ConnectionsFusionLayerTemporalIntegratorArm 1 · NoveltyMahalanobis / Isolation ForestArm 2 · ForecastingSupervised TransformerConcordance EngineSignals & forecasts

Four modality encoders → fusion layer → temporal integrator → Arm 1 (novelty) and Arm 2 (forecasting) → concordance engine. See the Guide for what each output means.

Encoding each modality

Each data source is handled by a specialized encoder. Technical data flows through a time-series encoder over a canonical, fixed set of price and indicator features. Financial statements pass through a fundamental encoder; news text is embedded with a FinBERT-based text encoder; and sector relationships are encoded by a graph convolutional network. Every encoder emits a vector in a shared representation space so the modalities can be compared and combined.

Fusion & temporal integration

A fusion layer merges the per-modality vectors into one embedding, and a temporal integrator conditions it on recent history so the representation is time-aware rather than a single-day snapshot. The result is one embedding per stock per day — the common input both arms consume. Consistency here matters: every producer (bulk import, the daily pipeline, and model training) builds the stack the same way so embeddings from different processes live in the same vector space.

A note on proprietary bounds

We describe the mechanics openly for research transparency, but specific network dimensions, layer counts, and training hyperparameters are kept high-level. What matters for evaluating the dashboard is not the exact architecture — it is whether the published, forward-tracked predictions hold up against realized outcomes on the Performance page.

Explore the research

Read the concept definitions, browse the embedding space, or check realized performance.

Academic research platform — not investment advice.