Skip to main content

Financial ETL CLI: parse, normalize, and explore your bank transaction data.

Project description

fintl

CI codecov License: MIT Python 3.13+ Ruff uv ty

Financial ETL CLI: parse, normalize, and explore your bank transaction data.

TL;DR

This tool helps you process, visualize and search your balance and transaction information that you have exported from your bank accounts.

Currently supports DKB, Postbank, GLS and Scalable Capital Broker.

Supported file formats: CSV, HTML, and PNG. PNG parsing uses a local ollama instance with a multimodal model — opt-in via fintl.toml (required only for Scalable broker PNG statements; gracefully skipped when not configured).

All your data stays on your machine. No need to trust another entity that is PSD2 certified.

How to install

git clone https://github.com/eschmidt42/fintl.git
cd fintl
uv sync
uv tool install .

After installation, fintl should be available on your PATH:

which fintl
# e.g. /Users/YOURUSER/.local/bin/fintl

How to use

  1. Configure your ~/.config/petprojects/fintl.toml. For details see here.
  2. Go to your bank account.
  3. Select your service, e.g. Giro.
  4. Export csv file or similar to ~/Downloads, or directly your source dir for your bank / service.
  5. Optionally, if you've stored your file in ~/Downloads, run cd ~/Downloads followed by fintl store (uses your fintl.toml from step 1).
  6. Optionally, if you want to process PNG screenshots via Ollama, start Ollama.
  7. Run the etl via fintl etl (also uses your fintl.toml from step 1).
  8. Upon success visualize / search your data via fintl plot or fintl search.

Please see here and below for more usage details.

Repo structure

  • src/fintl/accounts_etl/ — core ETL logic: schemas, parsers, registry, runner
  • src/fintl/cli/ — CLI entry point and subcommands (etl, store, search, plot)
  • tests/ — tests for packages of this repo

Development

Run tests:

uv run pytest -n auto tests

Type check:

uv run ty check src

Lint, format, type check, test and all the other good stuff:

pre-commit run --all-files

For release steps see here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fintl-0.1.0.tar.gz (41.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fintl-0.1.0-py3-none-any.whl (76.3 kB view details)

Uploaded Python 3

File details

Details for the file fintl-0.1.0.tar.gz.

File metadata

  • Download URL: fintl-0.1.0.tar.gz
  • Upload date:
  • Size: 41.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fintl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fc9f2cece9d315094c284041e949d08cf7b82d47205bc0d86059163f487a62f0
MD5 c30c4741c35c8622ca372b6f549ca996
BLAKE2b-256 af25bb9499b04495780ea8d82ab76fb97b167a504b30274112318a7f469b2359

See more details on using hashes here.

Provenance

The following attestation bundles were made for fintl-0.1.0.tar.gz:

Publisher: publish.yml on eschmidt42/fintl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fintl-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fintl-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 76.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fintl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da62471b3e3b98908c041792fee487af07fc0bdc0f01e4d52a006b6d7a0b7547
MD5 ada9cb4d6c3307046e0944b8b5adb35b
BLAKE2b-256 832af749f59b4cbc68031eabf8a823afd0321218bf1c21060b259b987cb48761

See more details on using hashes here.

Provenance

The following attestation bundles were made for fintl-0.1.0-py3-none-any.whl:

Publisher: publish.yml on eschmidt42/fintl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page