# Sales reports and a question-answering chat for a truck fleet

Entry E01. Sector: Mobile retail fleet selling uniforms at hospitals. Status: in production. Delivered: 2026-08.
Source: https://ai.prospicience.in/work/fleet-sales-reporting-and-chat

Prospicience built a sales warehouse for a mobile uniform retail fleet that rebuilds five reports from till exports in one click. The owner asks questions in plain English, AI turns each into a database query, and the answer comes back with that query beside it. Three months of sales, 5.17 million dollars, balance to the cent, on a server costing a few dollars a month.

Speed: Deploy-ready in one day.

## The challenge

Sales reports were assembled by hand from till exports. The owners could not see which truck made money, or which products and customers drove it, without someone spending a day in a spreadsheet.

## Why it mattered

Every decision about trucks, stock and customers waited on a day of spreadsheet work, and each answer depended on the person who built it. Ad hoc questions had nowhere to go at all. The owners needed figures they could act on without checking them twice.

## What we built

- Built a one click process that turns till exports into a clean reporting database and picks up new till columns automatically.
- Delivered five reports: overall sales, profit per truck, average sale per truck, product mix, and which kinds of customers buy.
- Added a chat where the owner asks a question in plain English and gets the answer with the exact query behind it.

## The result

- Five reports that rebuild in one click, replacing a day of spreadsheet work.
- 36.8k invoices and 172.9k line items loaded, with dollar totals matching the source to the cent.
- A plain English chat for the questions the reports do not cover, and every answer shows its working.
- The whole system runs on a 1 GB server that costs a few dollars a month.

## Built for trust

Every rebuild checks its own totals and stops loudly if they do not balance, so the owners act on the numbers without rechecking them. Known data gaps sit right next to the chart they affect, and cancelled sales are reported on their own line.

## AI at work

AI answers the owner's ad hoc sales questions in plain English, turning each one into a database query and returning the figure with that query beside it. Questions that once waited on a day in a spreadsheet are answered on the spot.

What it produces: plain English answers to sales questions, the exact query behind every answer, figures by truck, product or customer type on request.

- Ad hoc questions that had nowhere to go now get an answer in the same sitting, with no spreadsheet work.
- The five standard reports rebuild in one click without AI, so AI is spent only on the questions they do not cover.
- Every rebuild balances its totals and picks up new till columns automatically, so each month's questions run on data as clean as the last.

How it works day to day: Till exports go in and the warehouse rebuilds and balances itself. The owner types a question, AI writes a read only query, the database returns the number, and the answer arrives with the query so anyone can check it.

## Figures from the delivered system

- sales checked and balanced: $5.17M
- cancelled sales set aside: about $25k
- reports: 5
- server needed: 1 GB, very cheap
- time to rebuild: one click
- invoices loaded and balanced: 36.8k
- line items loaded: 172.9k

## The technology

- Reads the till exports you already have
- Five reports that rebuild in one click
- A chat that answers in plain English and shows its working
- Runs on a server that costs a few dollars a month

AI models used: GPT (OpenAI), Claude (Anthropic).

### Technical notes

- Star schema warehouse in embedded DuckDB, rebuilt from point of sale CSV exports
- Claude text to SQL over the schema, read only, with the generated SQL returned alongside every answer
- Reconciliation assertions run on every rebuild and fail loudly rather than silently
- Colour vision deficient safe chart series palette
- Docker on a single small cloud instance

## Questions

### Can an AI query our sales data without making numbers up?

Yes. The chat turns each question into a database query, runs it, and shows the query alongside the answer. The number on screen is the number the database returned, and anyone can check the query that produced it.

### What happens to cancelled or voided sales?

They are counted separately and reported on their own line. About 25,000 dollars of voids sit in plain view, so every report reflects what actually happened on the trucks.

### Do we need a data team to run this?

No. The whole warehouse is a single file on a one gigabyte server. A rebuild is one click, and new columns coming out of the till are picked up automatically.

Capabilities: data-warehouse-and-text-to-sql, finance-and-reconciliation-ai, ai-agents-and-automation.
