Kechi

Kechi is a tool which help you monitoring your bank account. It let you track the balance evolution, its trend, and analyse the incomes and outcomes compositions.

WebBot

In fact, Kechi is the name of the main program, the viewer which read and display useful views from your bank account tracking file.
The bank account tracking file is in simple text format (csv), which was chosen because it is very easy to convert to this format from any source. Nevertheless, as parallel development, I built a Bot program which is in charge of connecting my bank website every day to feed the bank account tracking file automatically.

I implemented two bots because each one has a specific part of code to fit its targeted bank (in my case, the Banque Populaire, and the Japan Postal Bank). These bots are working on a personal server since December 2009.
Beyond the bank csv file feeding, these bots also export RSS feed which make me able to track any new transaction on my banks accounts in live (obviously secured with SSH access).

Kechi

Balance tracking screen

The balance tracking screen shows the balance curve over the time, among with the past 30 days mean and trend.
All transactions are classified using categories that are very easily configured in the config.yml file (see below). The balance curve can be re-drawn with transaction filtered by categories. As the balance curve generally stick to a cycle, filtering by categories helps to make a better idea of the account situation.
The graphical component which is used is the famous JFreeChart (open-source), which is very comfortable to use. It also let you zoom in and out, edit the diagram properties, export it or even print it out.

Incomes / Outcomes screen

The outcomes / incomes screen display for both flow a graph that helps to compare the evolution over a 30 days period. For example on the current screenshot we can see that about half of the spendings goes to the rent (Red “loyer” in French on the picture) and that it is a straight-line outcome. It is also possible to filter by transaction categories, and to use the features offered by JFreeChart (zooming, graph edition, export, printing). Finally, categories are stacked according to their variance so that the graph is always as most legible as possible. This view is particularly adapted to make a quick idea of incomes / outcomes compositions and amount per month.

Configuration file

The configuration file defines the incomes and outcomes categories.
Each category is simply a string mask (regex) that the transactions label have to match.
Indeed, each transaction has a label, and it is generally quite easy to extract some general pattern to quickly classify a lot of transactions.

Here is an example of such a configuration file:

unknownCategoryName: Unknown
spendingCategories:
  'Insurance, Mobile, Internet': .*AVP SWISSLIFE.*|.*AVP CARREFOUR.*|.*Free Telecom.*|.*AMAGUIZ.*
  'Mobile JP': .*PREPAID ONLINE JP TOKYO.*
  Electricity: .*AVP EDF.*
  e-Shopping: .*PAYPAL.*
  ATM: .*RETRAIT.*|.*カード.*|.*手数料.*
  Leisures: .*CGR .*|.*MC DONALD.*|.*KINGFAT.*|.*GAUMONT WILSON.*
  Transports: .*TISSEO-REGIE.*|.*SNCF.*
incomeCategories:
  Wage: .*SALAIRE.*
  'Health insurance': .*VIR GROUPE SUISSE.*|.*VIR C\.P\.A\.M.*