Welcome to Bankr

Bankr is simple Python for your Bank Accounting to categorize your incomes and expenses

About

Bankr

  • …collects all your bank transactions or entries of your chart of accounts using a CLI. The entries are collected via CSV export from your bank accounts.
  • …categorizes the entries using a simple filter mechanism for repeated bookings. One-time entries can be categorized manually.
  • …allows to add, edit and delete bank transactions or entries manually.
  • …shows, finally, plots and statistics on the Book within the CLI or your web browser.
  • …is configured via small and human-readable YAML files, which you can modify using any editor.
  • …creates, hopefully, an overview over your finances.

Disclaimer

This software is crafted with the intention to be useful for your accounting business. It will not and it will never be responsible for your financial boom or ruin! It provides an overview of bank accounts, it does NOT increase or decrease any balance!

Furthermore, please see the license of this software!

Alpha Software

This software is in Alpha state. There are several TODOs in the source code, and some further limitations to remove for completion of its functionality! However, v2 of the data format should be quite stable right now.

Motivation

My motivation for writing these lines of Python code are two-fold:

  1. Learning Python, Pandas, and Panel within this small Python project.
  2. Starting with CSV based accounting, especially after some negative experiences with trying to use an HBCI (now FinTS) based accounting system. At least in Germany, banks tend to break their own HBCI accesses, especially since their most important accesses to bank accounts seem to be their own and individual banking apps. Fortunately, I am not aware of a bank, which does not allow a CSV based download of the respective transaction data.

Terms & Definitions

We use some simple terms to define the data generated by Bankr. These are:

  • The Book is a table of all Entries of all your relevant accounts, and therefore the main data of Bankr. In fact, it is the only data structure saved to disk. We use the term Book (capitalized) as opposed to the more precise »general ledger«, since it is easy to remember, and it is a simplified non-standard version of a ledger. The Entries in all Pages define the Book.
  • A Page is mainly the data in one CSV, imported and conditioned fo the data format of the Book. Furthermore, the term Page is used, if data extracted from the Book is taken for any calculations or statistics.
  • An Entry is one deposit to or disbursal from an account or IBAN. The data within an Entry – or one row of a Page or the Book – is defined by book-v3.yaml.

For more technical details see the section Implementation.

Commands

The data of the Book is collected and administrated using Bankr's command line interface (CLI). Its commands are:

  • bankr add - Add an Entry to the Book.
  • bankr app - Start or stop the Bankr App.
  • bankr cat - Categorize Entries of a Page or the Book.
  • bankr delete - Delete an Entry from the Book.
  • bankr edit - Edit an Entry of the Book.
  • bankr iban - Show the Accounts of the Book.
  • bankr new - Create a new Book.
  • bankr parse - Parse CSV for a Page, and eventually add it to the Book.
  • bankr show - Show the filtered Entries of the Book (max 500).
  • bankr stats - Statistics of the Book or per time interval.
  • bankr [COMMAND] -h - Print a help message for [COMMAND] and exit.

The help messages of the commands show a more detailed explanation, and more details on their options and arguments.

Bankr App: Dashboards

The data within the Book can also be presented using the Bankr App or Panel Dashboards. It is currently in understandable, but very preliminary form.