FinSight
Financial Analytics & Evidence-Grounded AI
FinSight explores how finance teams can interact with financial information using natural language without relying on language models for authoritative calculations. Every number is computed deterministically; the AI layer interprets the question and explains validated evidence. It never calculates.
Phynapse research & engineering project · Synthetic data
The business problem
Finance teams want to ask plain-language questions of their numbers: why did operating expenses rise, how did margin move, where is budget being exceeded.
Language models are fluent but unreliable with arithmetic. A model that produces or modifies financial values creates answers that cannot be audited, which is unacceptable for financial reporting.
What we engineered
FinSight separates interpretation from calculation. A question is turned into a validated analysis plan drawn from a closed catalogue, executed by a deterministic Python/Pandas analytics engine, and packaged as evidence in which every fact carries its source dataset and formula. Explanations are generated only from that evidence package.
What the system does
Natural-language questions
Business questions answered against a controlled financial dataset, returning an answer, interpretation, evidence and caveats.
Deterministic analytics
Eight catalogued analysis types, including revenue performance, profitability, expense variance, budget variance, vendor spend and trends.
Evidence with provenance
Each fact records its source dataset, source fields and calculation, so every statement can be traced.
Grounded explanations
Each explanatory sentence references an evidence item; the explanation layer never receives raw data.
Abstention by design
Questions outside the catalogue return "unsupported" rather than a speculative answer.
Data integrity checks
Cross-dataset integrity checks and ledger-to-income-statement tie-outs run at startup.
Design decisions
- 01
Deterministic analytics first, language model second. Financial arithmetic is reproducible, testable and auditable.
- 02
The analysis plan is a closed vocabulary: arbitrary operations are impossible by construction.
- 03
LLM output is validated against typed schemas before use; a parse failure returns a structured error, not an invented answer.
- 04
When no model is configured, rule-based interpretation and templated explanations keep the system fully functional.
How information moves through the system
- 1
Question interpreter
Maps the question to a metric, analysis type and period.
- 2
Analysis planner
Accepts only catalogued analysis types and metrics.
- 3
Deterministic engine
Python / Pandas computes all metrics, breakdowns and series.
- 4
Evidence package
Every fact carries source dataset and formula.
- 5
Explanation generator
Grounds each sentence in an evidence item ID.
- 6
Structured answer
Answer, interpretation, evidence and caveats.
Built with
- Python
- Pandas
- FastAPI
- Pydantic
- React + Vite
- pytest
- OpenAI / Anthropic / Ollama (optional)
As documented in the project repository.
What this project is, and is not
- Engineered portfolio system using synthetic data only. Not financial advice and not an accounting system.
- Current interpretation is rule-based; questions outside the alias catalogue return "unsupported".
- The transaction ledger covers one fiscal year; some comparisons lack actual-spend data.
- In-memory storage: analysis results do not persist across restarts.
Review the engineering in the open.
The full source, documentation and tests for FinSight are available on GitHub.