Figure traceability
That every number in the report carries its query, period and source filter, all verifiable.
How it gets fixed
Structured output with the source mandatory on every row; anything without one does not publish.
In a financial report a figure without a source is not data: it is exposure. We build systems where every number can be traced back to the row that produced it, and where the model does not do arithmetic on its own.
4–8 weeks to production · 5 sectors running in production, financial among them · 48 hours to a proposal with fixed scope and price
Built on
Ninety seconds: who we are, how we work and what you get at the end.
Contracts, price lists, email, the CRM: what you already have becomes sourced answers and agents that do the work. Pick a case and follow the path.
Example: a department overspent. The system finds where the money went and notes it down.
Connected by API or uploaded. Nothing leaves your infrastructure when the case demands it.
84,000 records → 1 view
Searches by meaning and by exact word, and filters by the tag before choosing.
answers with source · 91 of 100
Swipe to follow the flow →
01
The variance surfaces once it has already happened, and by then the decision that would have prevented it is no longer available.
02
Copy, paste, reconcile, format. The most mechanical part of the month and the one that occupies the most people.
03
ERP, bank, billing, payroll and spreadsheets, and none of them ties out exactly to the others.
04
The forecast model lives in a sheet one person understands, and that person takes holiday.
05
By the time the figure is ready and validated, the window to act on it has closed.
01
The rule
This is the decision that separates a usable financial system from a dangerous one. A language model can get a sum wrong and present the result with exactly the same confidence as a correct one, with no signal that anything failed. So arithmetic leaves the model: the numbers come from a database query, the ERP or a calculation engine, and what the model does is interpret what they mean, write the analysis and answer questions about them.
The second rule is traceability. Every figure in a report carries where it came from — which query, which period, which filter — visible to whoever reads it. That is what lets someone on the team defend the number in a committee, and what makes the system auditable rather than a box that emits PDFs.
And a warning about forecasting: predicting cash flow is a statistical problem, not a language one. When the case calls for it, the forecast comes from a statistical model with its confidence interval stated, and the language model only explains the result. A forecast presented as a single confident figure, with no range, is a sign that nobody modelled anything.
That every number in the report carries its query, period and source filter, all verifiable.
How it gets fixed
Structured output with the source mandatory on every row; anything without one does not publish.
On a sample: that no number in the report was calculated by the model rather than queried.
How it gets fixed
The calculation moves into the query or the engine and the model is left with the writing.
When two systems disagree about the same period, the report declares it instead of picking one.
How it gets fixed
An explicit reconciliation rule and an alert when the gap exceeds the agreed threshold.
When the data is unavailable or the period is incomplete, it says so.
How it gets fixed
A financial report with a declared gap is useful; one that fills the gap is a problem.
We do not build systems that make investment decisions, approve credit or authorise payments on their own. Responsibility for a financial decision has a name on the org chart, and automating it does not transfer that responsibility: it blurs it.
And if financial information lives scattered across sheets with no single source, the right project is that consolidation, not the assistant. An analysis system over data that does not tie out produces analysis that does not tie out, with better prose.
MCP servers against the systems already in operation.
Applied where there is volume and stable rules, not where there is expectation.
Chunking, reranking and hybrid search, evaluated with recall@k and NDCG.
Architecture, evaluation criteria and cost per query before writing code.
Key takeaways
There is one rule in this domain: the model does not calculate. The numbers come from the system — a query, a sheet or a calculation engine — and the model explains and writes them up.
A language model gets sums wrong silently and presents the result with the same confidence as a correct one. All arithmetic lives outside the model, and that is an architectural decision.
Every figure in the report carries its source: which query, over which period, with which filter. Without that, nobody in the team can defend the number in a committee.
What pays best is not forecasting but consolidation: pulling together what today lives in five systems and three spreadsheets, which is where month-end hours go.
An AI system is worth what its sources are worth. These are the standard connectors; anything with an API or a database connects the same way, and what has no API is handled by file.
SAP
Enterprise ERP
Oracle
ERP and database
NetSuite
Cloud ERP
Salesforce
CRM and service
HubSpot
CRM and marketing
PostgreSQL
Database and pgvector
Microsoft SQL
Database
Snowflake
Data warehouse
BigQuery
Google data warehouse
Databricks
Data platform
Redshift
AWS data warehouse
Synapse
Azure data warehouse
Supabase
Managed Postgres
Workday
Payroll and HR
QuickBooks
Accounting
Sage
Accounting and ERP
Xero
Cloud accounting
Shopify
Catalogue and orders
WooCommerce
Catalogue and orders
Magento
Catalogue and orders
Stripe
Payments and subscriptions
Google Drive
Documents and folders
CSV y Excel
Flat files
Nothing in this category
We built and operated the assistant for a loyalty platform serving more than two million active users across ten countries.
We built the full pipeline: document ingestion and normalization, chunking, embedding generation, vector store on Azure AI Search and Pinecone, and retrieval with grounded generation on LangChain.
We held it above 99% availability for three years.
RAG systems →By taking arithmetic out of the model, which is the only approach that works. Numbers come from a database query, the ERP or a calculation engine; the model interprets, writes and answers questions about them, but does not add up. On top of that, every figure carries its source visibly — query, period, filter — and on a sample we verify that no number in the report was calculated by the model. A language model that adds up wrong presents it with the same confidence as if it were right, and that is the reason for the rule.
Yes, over API or an MCP server against SAP, Dynamics or whatever you run, and directly against the database when that makes more sense. The part that usually takes the most work is not the connection but agreeing which system is the source of truth when two disagree about the same period. That decision belongs to the finance team, not to us, and it has to be made before building.
It can, on one condition: the forecast comes from a statistical model with its confidence interval stated, and the language model only explains the result. Predicting is a statistical problem, not a language one. Be wary of any forecast presented as a single confident figure with no range: it is a sign nobody modelled anything and the number came out of generated text.
Only if you accept that, and in this function the answer is usually no. We deploy on Azure OpenAI or Amazon Bedrock inside your own subscription, so the data never leaves your cloud. In any configuration we use enterprise plans where data sent through the API is not used for training, and we can work on aggregates rather than individual records where the case allows.
Almost always consolidation and recurring reporting, not predictive analysis. Month-end is where the hours are, the work is mechanical, and the output can be checked against what the team already produces by hand — which makes it easy to demonstrate that it works. Analysis and forecasting come later, over data that already ties out.
Four to eight weeks to production for a consolidation and reporting scope, with something running from week one. It is quoted with fixed scope, price and date in a proposal 48 hours after the first call, and the price is driven by how many sources have to be connected and how clean they are.
It gets fixed, it gets built, or it is not worth it. And if the diagnostic does not reach three actionable findings, it is not charged.
We use cookies to improve the user experience. Privacy