chronocause · Causal AI · Information extraction

Turning the news into a causal graph you can query.

Lightweight extraction of causal event graphs from unstructured text — financial, political and general news — with a stable schema, provenance on every edge, and optional market-impact annotation.

In developmentCausal AIApache 2.0
The question

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.

Approach

How it works

  1. A stable schema. Event, CausalRelation and CausalEventGraph — consistent output regardless of which model produced it.

  2. 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.

  3. 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.

  4. 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.

  5. Market impact & decay. With user-supplied price series, each extracted event is annotated with the co-occurring price move and its half-life.

Results & insight

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.

From a sentence to a graph

“The central bank raised interest rates, and shares fell sharply the next day.”

CAUSEScentral bankraised interest ratessharesfell sharply

Each node and edge keeps the exact text span it was extracted from — that provenance is what makes the graph auditable.

Roadmap

Where it stands

  1. M0Schema, repo skeleton, dataset license auditDone
  2. M0.5Ingestion layer — CSV, API, SQL, vector DB, GDELTDone
  3. M0.6Market impact & decay annotationDone
  4. M1Multi-provider LLM backendDone
  5. M2PyPI v0.1 release + Hugging Face demoOpen
  6. M3Local offline backend + training pipelineDone
  7. M4Benchmark: local vs. LLM, per domainOpen
  8. M5Model card, inference endpoint, write-upOpen
Limits

Stated plainly

What this does not show
  • 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.
Stack & sources

Under the hood

PythonlitellmPyTorchtransformerspeft
Discuss this research

Working on a similar problem?

Collaboration, an application of chronocause in your context, or a speaking slot — I reply personally.

Start a conversation