Building Asketo: How AI Transformed Banking Data Into Financial Insights

August 9, 2025 Erik Botta

The Vision

What if you could transform your boring banking CSV exports into beautiful, actionable financial insights? That's exactly what Asketo did - a family cashflow analytics tool that turned mBank transaction data into smart spending recommendations and gorgeous visualizations.

The entire project was built through AI-assisted development using Claude Code, demonstrating how powerful modern AI tools have become for rapid prototyping and full-featured application development.

What Asketo Achieved

2,810
Real Transactions Processed
59%
Categorization Accuracy
20+
Smart Categories
6 Months
Analysis Period

Asketo successfully analyzed my real mBank account data, automatically categorizing transactions from Czech merchants like Rohlik.cz, Alza.cz, Albert, Kaufland, and identifying spending patterns across groceries, electronics, utilities, and travel expenses.

The AI Development Process

Building Asketo was a fascinating demonstration of AI-human collaboration. The entire application - from core architecture to web interface - was developed through prompting and iterative refinement with Claude Code. Here's what made this approach so powerful:

Rapid Prototyping to Production

Instead of spending weeks on initial setup, the AI helped establish a solid Python project structure with proper testing, modular design, and best practices from day one. What normally takes days of boilerplate setup was accomplished in minutes.

Real Data-Driven Development

Using my actual mBank CSV exports with 2,810 transactions, we iteratively refined the categorization logic based on real merchant patterns. The AI analyzed transaction descriptions to identify Czech retailers, payment systems, and spending categories.

Czech Banking Expertise

The AI understood nuanced Czech banking terminology like "PŘEVOD Z CÍLE" (transfers from goals) and "SPLÁTKA KREDITNÍ KARTY" (credit card payments), implementing sophisticated logic to distinguish between income, expenses, and internal transfers.

Technical Architecture

Smart CSV Parser

Handles Czech banking formats with automatic encoding detection and multi-currency support

Intelligent Categorization

20+ categories with Czech merchant recognition and pattern matching

Modern Web Interface

Flask + Tornado server with Bootstrap 5 responsive design and Chart.js visualizations

Privacy First

All processing happens locally - no data leaves your computer

The Critical Challenge

The most complex part wasn't the web interface or categorization - it was getting the financial calculations exactly right. mBank CSV exports show internal transfers as positive amounts, which would incorrectly classify them as income using simple amount-based logic.

We implemented a hybrid classification approach that combines amount-based logic with transfer pattern detection. This ensures transfers like "PŘEVOD Z CÍLE" are correctly identified as transfers rather than income, preventing major calculation errors.

Rigorous Testing

To prevent financial calculation regressions, we built comprehensive test suites that validate:

Beautiful Visualizations

Asketo transforms raw CSV data into interactive dashboards with:

Family-Ready Features

One of Asketo's standout features is network accessibility. The web server binds to 0.0.0.0:5000 by default, making it accessible to other devices on your network. This means family members can access financial insights from their phones, tablets, or computers without any complex setup.

Lessons from AI-Assisted Development

What Worked Exceptionally Well

The Human Element

While AI handled the implementation, my role was crucial in:

The Result

In a single development session, we created a production-ready financial analytics tool that:

Production Infrastructure & CI/CD

Beyond the application development, Asketo required a complete production deployment pipeline. This was achieved through Infrastructure as Code using Terraform and automated configuration management with Ansible, all orchestrated through GitLab CI/CD.

Infrastructure as Code with Terraform

DigitalOcean Deployment

Frankfurt region droplet (s-1vcpu-1gb, $6/month) with Ubuntu 22.04 LTS for cost-effective European hosting

Security Hardening

UFW firewall, Fail2ban protection, SSH key authentication, and minimal open ports (80, 443, 22)

GitLab Integration

Automated pipeline with validation, planning, and manual deployment approval stages

State Management

Terraform state stored in GitLab backend with infrastructure drift detection

Automated Configuration with Ansible

The Ansible deployment handles complete server configuration and application deployment:

GitLab CI/CD Pipeline Architecture

3
Pipeline Stages
2
Infrastructure Projects
80%
Deployment Automation
$7
Monthly Hosting Cost

The pipeline includes infrastructure discovery, where Ansible automatically fetches the droplet IP from Terraform state, enabling seamless integration between infrastructure provisioning and application deployment.

Docker-Based Production Deployment

The production environment runs entirely in Docker containers for consistency and isolation:

Future Vision

Asketo demonstrates how AI-assisted development can rapidly create sophisticated applications with enterprise-grade infrastructure. Future enhancements could include support for additional Czech banks (Česká spořitelna, ČSOB), predictive analytics, budget tracking, and mobile applications.

This project proves that with the right AI assistance, Infrastructure as Code, and automated deployment pipelines, you can build production-ready applications that solve genuine problems - from development to deployment, all through intelligent prompting and modern DevOps practices.

Project Status

Note: The Asketo project has been decommissioned and the infrastructure has been taken down. This post serves as a case study of AI-assisted development techniques and demonstrates practical approaches for building sophisticated data processing applications through AI collaboration.

Back to Blog