How Sibyl works
Sibyl pairs vector retrieval over source text with a temporal knowledge graph of structured facts. Numbers come from the graph (deterministic, queryable). Narrative comes from the source chunks (grounded explanation). The composition layer reads both and answers the question.
Layer 1
Ingest & structure
PDFs in. Per-page text, then Claude Haiku extracts structured facts:
(subject, predicate, value, valid_from, valid_to, source_page, source_quote). Bitemporal — facts are never deleted, only invalidated when superseded.Layer 2
Index & recall
Chunk text → embeddings (HNSW index). Facts → SQL on a temporal graph. At query time, top-k semantic chunks are retrieved alongside facts from the same source documents.
Layer 3
Synthesize
Claude Sonnet composes the answer using both. Every numeric claim cites a fact [F#]; every narrative claim cites a chunk [C#]. Charts are deterministic — drawn directly from the fact rows.
Source corpus
All public-source documents. Sibyl is built only on materials available at the issuer's website — no private or staff-shared records.