Inspiration

We wanted to build something more useful than a traditional budgeting dashboard. Most financial tools show numbers and charts, but they do not explain what is driving company spending behaviour or help finance teams decide what to do next.

We were inspired by how difficult it can be for managers and finance teams to quickly understand large transaction datasets, policy violations, and approval risk. Our goal was to make expense intelligence conversational, visual, and actionable.


What it does

Budge is an AI-powered expense intelligence platform that helps SMB finance teams understand spending, detect policy issues, and make faster approval decisions.

Users can explore company transaction data and ask natural language questions like:

  • “How much did we spend on fuel?”
  • “What did we spend on gas last month?”
  • “Show top merchants this quarter.”
  • “Which department has the most policy violations?”
  • “How much do we anticipate spending on fuel next month?”

Budge provides:

  • conversational spend analysis powered by Gemini
  • dashboard summaries and visual spend breakdowns
  • transaction search and filtering
  • policy violation detection
  • high-risk transaction review
  • approval recommendations
  • expense report grouping by fleet unit and period
  • spending forecasts based on historical transaction patterns

How we built it

We built Budge with a full-stack JavaScript architecture.

The frontend is built with Next.js, React, TypeScript, Tailwind CSS, Radix UI, and Lucide icons. It provides the dashboard, transaction ledger, Ask Budge chatbot, policy engine, approvals queue, reports, notifications, and settings screens.

The backend is built with Node.js and Express. It loads enriched transaction data from transactions_enriched.json, runs analytics in code, performs policy checks, generates approval requests, and exposes API routes for the frontend.

We integrated Gemini for:

  • natural language query understanding
  • follow-up question resolution
  • result summarization
  • policy explanation support

We also added a lightweight forecasting module using historical transaction data to predict future spend and estimate risk.


Challenges we ran into

One of the biggest challenges was ensuring responses grounded in real transaction data rather than in language model answers. We solved this by having Gemini produce structured filters while the backend performs the actual calculations.

Another challenge was handling messy finance language. For example, users may ask about “gas,” while the dataset category is “Fuel.” We added category aliasing and canonicalization so natural language maps correctly to the available transaction categories.

We also had to make follow-up questions work naturally, so the system can understand references like “compare that” using conversation memory.


Accomplishments that we're proud of

We are proud that Budge feels like an intelligent finance assistant rather than just another dashboard.

Some accomplishments we are especially proud of include:

  • building conversational AI over real transaction data
  • grounding answers in backend calculations instead of invented AI numbers
  • creating a policy compliance engine with violation detection
  • building an approval workflow for high-risk transactions
  • adding spend forecasting from historical data
  • designing a polished multi-screen finance operations interface

What we learned

Through this project, we learned a lot about building AI systems that combine language models with deterministic backend logic.

We learned that AI is most useful in finance when it helps translate user intent, but the actual numbers should come from trusted calculations. We also learned how important data normalization, category mapping, and context memory are for making conversational analytics feel reliable.

Most importantly, we learned how to turn complex expense data into something easier to understand, investigate, and act on.


What's next for Budge

In the future, we would like to:

  • connect Budge to accounting and card platforms
  • add secure user authentication
Share this project:

Updates