Inspiration

The inspiration for this project stems from the phenomenon of "data obesity" in modern fintech: people have more access to their bank data than ever, but they lack the actionable insight to do anything about it. Most tools focus on complex visualizations and historical comparisons rather than answering the simple question of what to change right now to save money.

What it does

The application acts as a high-speed financial diagnostic tool that:

Parses Bank Exports: Users can immediately upload a CSV bank export without needing to navigate complex bank API integrations.

Auto-Categorizes Spending: It uses a hybrid engine of keyword matching and LLM logic to sort transactions into categories like food, transport, and subscriptions.

Identifies Gaps: The "Gap Finder" compares spending against simple benchmarks to flag the 2–3 biggest financial drains.

Generates Actionable Insights: Instead of just showing numbers, the app provides plain-language "Insight Cards" that suggest specific habits to cut and estimate annual savings.

How we built it

The project was built for speed and clarity using a minimalist, high-performance stack:

UI/UX: Streamlit was used to build a clean, professional dashboard that deploys in minutes.

Data Processing: Python's pandas library handles all CSV parsing and data manipulation.

Intelligence: A combination of keyword dictionaries and the Claude API categorizes transactions and generates conversational financial advice.

Visuals: Interactive spending breakdowns are rendered using Plotly, which integrates natively with the Streamlit interface.

Challenges we ran into

The primary challenge was Categorization Accuracy, specifically dealing with cryptic bank transaction descriptions. While keyword matching handled the majority of common merchants, it initially missed about 20% of the data. Overcoming this required fine-tuning a prompt for the LLM to handle the "edge cases" without breaking the 24-hour hackathon timeline.

Accomplishments that we're proud of

Avoiding "Scope Traps": We successfully avoided time-sinks like user authentication and multi-currency support to focus on the core value proposition.The Gap Finder Logic: Implementing a functional benchmarking system where overspend is identified if category spending $S_c$ exceeds $1.5 \times$ the industry average:$$S_c > 1.5 \times (B_c \times \text{Income})$$Zero-to-Deployed: Taking a raw idea to a fully functional, shareable URL on Streamlit Cloud in under 18 hours.

What we learned

This project reinforced the power of Minimalist Engineering. In a hackathon environment, a simple, explainable tool that solves one specific problem (identifying overspending) is often more valuable than a feature-heavy application that is difficult to demo. We also learned that LLMs are incredibly effective at turning structured financial data into "human" advice that users can actually use.

What's next for Streamlit

The next steps involve moving beyond the static CSV upload to include:

Savings Simulators: A "what if" tool to visualize how cutting specific subscriptions impacts long-term wealth.

Enhanced UI: Incorporating even more professional-grade terminal-style charts consistent with the broader MoroccoMind ecosystem.

Predictive Benchmarking: Refining the gap analysis logic to be more dynamic based on the user's specific geographic location or income bracket.

Built With

Share this project:

Updates