All case studies
Generative AI · Fintech

BitWiser

A financial intelligence platform we built to turn messy, high-volume financial data into clear, explainable insights, pairing a deterministic analytics engine with an LLM reasoning layer.

Domain
Financial Intelligence
Discipline
Generative AI · Data
Type
In-house R&D build
Kafka
Streaming ingestion
Deterministic
Compute core
Cited
Every figure sourced

Business Problem

Finance teams sit on enormous volumes of transactional and market data, yet extracting a clear answer to a simple business question can take days of manual spreadsheet work.

The obvious move is to point an LLM at the data. The obvious problem is that a model confidently inventing a revenue figure is worse than no answer at all. We built BitWiser to find out whether a system could answer plain-language questions about a financial position with numbers that are correct, explainable, and always traceable back to source data.

The AI Pipeline

We separated deterministic computation from language reasoning, so the LLM never invents a number. It only explains numbers the analytics engine has already computed.

Retrieval Layer

Relevant metrics, definitions, and prior context are retrieved from a vector store to ground every response.

Deterministic Compute

All figures are produced by an auditable analytics engine, never by the model, eliminating numerical hallucination.

Reasoning & Narrative

An LLM composes the explanation, highlights drivers, and frames trade-offs in the language of the business.

Citations & Provenance

Every claim links back to the exact records and calculations that produced it, so trust is verifiable.

Data Processing

Financial data arrived from multiple systems in inconsistent formats. A Kafka-based ingestion layer normalizes, validates, and deduplicates records in a streaming fashion, so insights reflect near-real-time reality.

A carefully modeled PostgreSQL warehouse stores the canonical, reconciled figures, while a vector store holds the semantic context the reasoning layer needs to interpret them.

Analytics Engine

Streaming ingestion feeds a reconciled data warehouse. Queries flow through a deterministic compute core, then an LLM reasoning layer turns results into sourced narrative insights.

Data Sourcesmarket · ledgerKafka Ingeststream · validateData WarehousePostgreSQLCompute CoredeterministicVector Storesemantic contextReasoning LayerLLM · narrativeSourced Insightcited output

What It Demonstrates

The core idea held up: separate the arithmetic from the language. Once the analytics engine owns every number and the model is only allowed to explain figures it has been handed, numerical hallucination stops being a tuning problem and becomes structurally impossible.

That constraint is the whole design. It is also the part most teams skip, and it is the first thing we would bring to a finance or reporting product, where an insight nobody can trace back to source data is not an insight at all.

Technologies Used

PythonFastAPIPostgreSQLKafkaLangChainVector DatabasesRedisGCP

Have a problem like this to solve?

We build these systems end to end. Let's talk about yours.

Book a Consultation