Turning the news into a causal graph you can query.
You can ask an LLM for “cause and effect”. What comes back is free-form text that differs by model and provider and cannot be audited.
Decision-makers need something else: a graph they can query, chain across a whole document or corpus, and trace back to the exact sentence behind each claim.
How it works
A stable schema. Event, CausalRelation and CausalEventGraph — consistent output regardless of which model produced it.
Two backends, one API. Any LLM via litellm, or a small fine-tuned local encoder (BIO tagger, span-type and relation heads, optional LoRA adapters) that runs offline with no per-call cost.
Provenance by default. Every node and edge carries the text span it came from, so output can be audited and debugged instead of trusted blindly.
Bring your own data. Ingestion from CSV, REST APIs, SQL databases, vector databases or a built-in GDELT connector, with domain profiles for finance, political and general news.
Market impact & decay. With user-supplied price series, each extracted event is annotated with the co-occurring price move and its half-life.
What came out of it
The core schema and LLM backend work end-to-end; the local offline backend is implemented and tested, but no pretrained checkpoint ships yet.
“The central bank raised interest rates, and shares fell sharply the next day.”
Each node and edge keeps the exact text span it was extracted from — that provenance is what makes the graph auditable.
Where it stands
- M0Schema, repo skeleton, dataset license auditDone
- M0.5Ingestion layer — CSV, API, SQL, vector DB, GDELTDone
- M0.6Market impact & decay annotationDone
- M1Multi-provider LLM backendDone
- M2PyPI v0.1 release + Hugging Face demoOpen
- M3Local offline backend + training pipelineDone
- M4Benchmark: local vs. LLM, per domainOpen
- M5Model card, inference endpoint, write-upOpen
Stated plainly
- Market-impact annotation measures price movement co-occurring with an event — not a causally identified market effect (no benchmark adjustment, no counterfactual).
- No open-licensed dataset covers a full domain taxonomy today, so no pretrained local checkpoint is published yet.
- Scope: causal relations expressed in text — an information-extraction task, not statistical causal discovery from tabular data.