Budget Analyse

[![Version](https://img.shields.io/badge/version-1.2.0-blue.svg)](https://gitlab.com/remcovansanten/budget-analyse/-/tags/v1.2.0)

Views1
PublishedJan 14, 2026

Loading actions...

5 minBeginnerpromptSingle file

Skill content

Main instructions and any bundled files for this skill.

markdown

Budget Analyse

Version License

Personal finance management tool for Dutch ING bank statements with AI-powered categorization, budget tracking, and spending insights. Fully bi-lingual (English and Nederlands) Refer to the wiki for more details

v1.2.0 - Transaction Amount Redesign | Changelog

Features

Core Features

  • Multi-account support - Track checking and savings accounts separately
  • Automatic categorization - Rules-based + AI-powered transaction categorization
  • NIBUD integration - Dutch budget institute reference data for comparison
  • Multi-tenancy - Isolated data per user with PostgreSQL schema separation
  • Internationalization - Dutch and English language support

Budget Management

  • Budget Entry - Set yearly budgets per category with NIBUD references
  • Budget Overview - Excel-style 12-month grid (budget vs actual)
  • Budget Types - Fixed, rolling, flexible, and target budgets
  • Rolling balances - Cumulative underspend tracking for savings categories

Dashboard & Insights

  • Widget-based dashboard - Customizable with account balances, envelope health, category progress
  • Trends analysis - Income vs expenses, category breakdown, merchant analysis
  • Spending velocity - Track spending pace through the month
  • Alerts - Budget overspend, unusual patterns, missing recurring transactions

Transaction Management

  • CSV import - ING and Revolut bank statement formats
  • Duplicate detection - Prevent double imports
  • Bulk operations - Multi-select categorization
  • Rule creation - Create rules directly from transactions
  • Tags - Custom tagging for cross-category grouping

AI-First Categorization (v2.0)

  • scikit-learn as THE brain - Primary categorization engine, not a fallback
  • Weighted learning - Manual (1.0) > Confirm (0.7-0.9) > LLM (0.3-0.5) > Rule (0.2)
  • Recency multipliers - Recent corrections count more (7d=1.0, 30d=0.8, 90d=0.6)
  • Adaptive LLM thresholds - Mature tenants need less LLM help
  • Rule retirement - Rules automatically retire when AI reaches 95% confidence
  • Confidence badges - Visual indicators (silent ≥85%, yellow 50-84%, red <50%)
  • Learning dashboard - Model status, accuracy trends, retirement candidates
  • Privacy-preserving - Local model training, no data shared externally

Tech Stack

LayerTechnology
BackendPython 3.11+, FastAPI 0.115+, SQLAlchemy 2.0, PostgreSQL 16
FrontendReact 19, TypeScript 5.9, Vite 7, Tailwind CSS, TanStack Query
AI/MLscikit-learn (categorization), Anthropic Claude (cloud LLM), Ollama (local LLM)
InfrastructureDocker & Docker Compose

Quick Start

Requirements

  • Docker & Docker Compose
  • Git

Start Development

# Clone and start
git clone &#x3C;repo-url>
cd budget_analyse

# Setup environment variables
cp .env.example .env
# Edit .env with your configuration

./start.sh

# Or manually
docker compose up --build

Access Points

ServiceURL
Frontendhttp://localhost:5193
Superadminhttp://localhost:5194
APIhttp://localhost:8020
API Docshttp://localhost:8020/docs
Databaselocalhost:5452

Default Credentials (Demo)

Project Structure

backend/app/
├── main.py              # FastAPI init
├── models.py            # SQLAlchemy models
├── schemas.py           # Pydantic schemas
├── routers/             # 34 API routers
│   ├── accounts.py      # Multi-account management
│   ├── auth.py          # Authentication
│   ├── budgets.py       # Budget management
│   ├── categories.py    # Category management
│   ├── dashboard.py     # Dashboard API
│   ├── ml.py            # AI/ML endpoints
│   ├── transactions.py  # Transaction CRUD
│   └── ...
└── services/            # Business logic
    ├── ai_categorizer.py        # ML categorization
    ├── anthropic_categorizer.py # Anthropic Claude integration
    ├── training_service.py      # Model training
    ├── import_service.py        # CSV import
    └── rule_service.py          # Rule matching

frontend-react/src/
├── pages/               # 31 page components
│   ├── Dashboard.tsx    # Widget-based dashboard
│   ├── BudgetEntry.tsx  # Yearly budget setup
│   ├── BudgetOverview.tsx # 12-month grid
│   ├── Transactions.tsx # Transaction list
│   ├── Trends.tsx       # Spending analysis
│   └── ...
├── components/
│   ├── dashboard/       # Widget system
│   │   ├── widgets/     # Individual widgets
│   │   ├── WidgetRenderer.tsx
│   │   └── WidgetSettings.tsx
│   └── ui/              # Reusable components
├── hooks/               # 36 data fetching hooks
├── locales/             # i18n translations (en, nl)
└── lib/                 # API client, types, utils

Development Commands

# Start/stop services
./start.sh              # Start all services
./start.sh stop         # Stop services
./start.sh rebuild      # Rebuild images
./start.sh logs [service]  # View logs

# Quality checks
./start.sh quality backend    # Ruff, mypy, bandit, pytest
./start.sh quality frontend   # ESLint, TypeScript, Vitest
./start.sh quality all        # Both

# Testing
cd backend &#x26;&#x26; pytest                    # Backend tests
cd frontend-react &#x26;&#x26; npm run test       # Unit tests
cd frontend-react &#x26;&#x26; npm run test:e2e   # Playwright E2E

Documentation

FolderAudienceContents
docs/user/End usersUser guide
docs/developer/DevelopersArchitecture, development, UX patterns
docs/product/Product teamRoadmap, requirements
docs/operations/OpsSecurity, Docker setup

See CLAUDE.md for detailed developer documentation.

Version History

VersionHighlights
v1.2.0Transaction Amount Redesign (Signed amounts, unified calculation service)
v1.1.0Bug fixes (NaN serialization, session refresh), CSS standards compliance
v1.0.0Production ready, AI-First architecture v2.0, 100% UAT pass rate
v0.17.0Quality & fixes, privacy cleanup, E2E test stability
v0.16.0UAT Panel Review, GDPR compliance tests
v0.15.0Repository pattern, durable background jobs, accessibility
v0.12.0Superadmin application, Revolut CSV support
v0.11.0AI UX polish: Automatisering, Systeem Inzicht, Logboek, Back-up pages
v0.10.0Anthropic Claude integration, hybrid AI categorization, feedback loop
v0.9.0Dashboard widget system, dark mode, UX redesign
v0.8.0Budget Overview, Trends page, category activation dates
v0.7.0i18n support, AI categorization service
v0.6.0Multi-tenancy, authentication, NIBUD categories
v0.5.0Multi-account support, savings hierarchy

See CHANGELOG.md for detailed version history.

License

See License.md for details.


  • Developed by Remco van Santen - 2026 *
  • Completely AMP coded by Claude code and Gemini for auditing *
Share: