Do Not Let Models Invent Numbers - Vinoo Ganesh, Kepler
Vinoo Ganesh, CEO of Kepler, explains how the company builds a verifiable financial research platform. Models cite numbers but never write them. Deterministic code performs the math, a citation registry built from more than 30 million SEC documents anchors every figure, and a post-processing filter strips anything untraceable. The talk covers hybrid search and re-ranking on Turbopuffer, tenant isolation, and why plain RAG produced thousands of wrong numbers in evaluations.
Why LLMs and financial numbers don’t mix
In finance, an analyst never shows a client or portfolio manager a figure they cannot trace. Vinoo Ganesh, CEO of Kepler and formerly of Palantir and Citadel, argues that language models are probability machines. The same property that makes them creative makes them unreliable for mission-critical numbers. Attaching sources after generation doesn’t solve this. Retrieval through chunking and semantic search often surfaces the wrong document entirely, or the right document with an ambiguous figure. Is “17” in millions, billions, or yen? Is it revenue from 2023 cited in a 2025 filing, or a page number? Models also cannot be trusted to perform arithmetic such as growth rates, margins, and multiples, even though they can write code that does.
Models cite numbers, code computes
Kepler’s architecture separates three responsibilities. Retrieval finds the source, deterministic code performs the calculations, and a post-processing filter removes any figure that cannot be tied to a registered source. The model is permitted to cite numbers but never to write them. Ganesh frames the result as a structural guarantee: if a number lacks a citation, the model cannot produce it.
Building the citation registry
The team processed the full corpus of SEC filings, more than 30 million documents, in a pre-processing pass. The output is a citation registry of deterministic numerical anchors pulled from filings, including income statement and balance sheet line items and figures in MD&A text such as “revenue grew 37%.” Roughly 21,000 citations were correctly extracted. Each citation is a clickable anchor back to its source document, and the system refuses to emit any citation it cannot verify.
Raw values are not enough. Each fact is structured with a value, unit, scale, and period, and it is annotated with the period it describes rather than the filing it appears in. A billion-dollar revenue figure from a 2025 10-K is treated as 2023 data. Ganesh also argues that XBRL does not solve this problem, since it is incorrect roughly 10% of the time. Investment decisions also draw on internal material such as SharePoint, Box, OneDrive, and Outlook, so the architecture has to structure data where it exists and add search where it doesn’t.
How a question moves through the system
For a query such as a company’s adjusted EBITDA, the model first plans the work. It determines which 10-Ks and 10-Qs to pull across years, whether an investor presentation or earnings call disclosed a restatement, and which tools to call. Tools then retrieve facts, compute results, build tables, and register everything into the citation registry. As tokens stream out, the LLM dereferences pointers to registry entries, and the platform renders each number with its provenance.
Hybrid retrieval on Turbopuffer
Retrieval runs in a Turbopuffer namespace that combines dense vectors with BM25 keyword search. Embeddings are generated with ZeroEntropy at 1280 dimensions. Results from approximate nearest neighbor and BM25 are merged with reciprocal rank fusion into a candidate set of around 60 documents. A cross-encoder then re-ranks them. A distinct step weights sources by trust, because earnings call transcripts and 10-K disclosures often conflict. Ganesh treats that conflict as a feature to deconflict explicitly, not as a bug. The strategy is to search wide and re-rank. This depends on re-embedding cheaply as new information arrives, which is costly when self-hosting an embedding model.
Tenant isolation at the document level
Security is enforced per document. Every search hit is reauthorized against Postgres, and each stage of retrieval adds another filter, so data cannot leak across sources. Scoped tokens can only be issued by the auth service, and access requires a signed device. The concrete concern is that one Citadel trading desk should never see another desk’s research. Ganesh ties this to protecting a firm’s alpha within its own ecosystem.
Making every number traceable
Every fact receives a unique identifier that supports entity recognition and resolution. Facts are stored in a deterministic engine, and a separate display layer lets users render values in thousands of dollars, yen, or other units while still pointing back to the original source. The platform’s invariant is that any number or fact can be clicked to reveal its source. Because of this, queries are idempotent: the same question yields the same result on every run.
Stripping what cannot be verified
The most striking finding concerns where numbers come from. Roughly a third of citations were figures the model would otherwise have supplied from its training data, such as a 2005 revenue number. Such a number cannot be guaranteed to be from the right year or scope, so it is removed. Ganesh acknowledges this is aggressive. The model becomes less of a free-thinking partner, and Kepler is a poor fit for creative work or marketing copy. In some cases the system attempts citation repair, an agentic step that tries to find a credible source for an untraceable claim, though he kept the details of that process vague.
What plain RAG gets wrong
In evaluations, the filter refused 10,981 citations produced by running native retrieval-augmented generation on top of general models such as Claude or ChatGPT. Of those, 3,810 were simply wrong numbers. Ganesh’s conclusion is that semantic search over a vector database is not enough when numerical accuracy and auditability matter. Many startups that wrap chat models around financial research face this same gap. He argues that a new architecture must combine traceability with deterministic computation.
Where the guarantees end
The platform guarantees that models cite numbers rather than write them, that every citation is verified, that arithmetic is pushed to the compute layer, that tenants are isolated, and that recall is measured. The platform does not replace analysts or enable a fully automated hedge fund. Ganesh sees the near-term direction as quantamental investing, in which unique retrieval combined with deterministic computation lets AI take over the tedious work of extracting data from S-1s and PDFs, leaving analysts free to focus on ideation.