Know Your Spendings Application

KYSA (Know Your Spendings Application) helps to get a better overview of your account movements and spendings.
For this purpose, KYSA automatically evaluates account data that you exported from your online banking account as a csv. Since version 4.04 SEPA-XML-files are supported, as well. The transactions are evaluated and categorized, based on your category definitions. If you select exporting, KYSA will visualize the data and creates a bunch of comprehensible diagrams. This gives a good overview of the average costs/income in different categories.

The supported account types can be found in the main menu under the button of the same name. From version 3.07 on, it is also possible to search for and download new supported account types while connected to the Internet. With version 4.04. the SEPA XML format is supported for the first time, where account data of different banks can be exported in a standardized format. This means that account types can also be read in that are not (yet) supported as csv.

How is the program structured?

The user interface is clearly arranged: You can view the prepared data for each data set with just a few clicks and easily change any necessary settings.

The menu bar contains information about the program itself, as well as the settings for data preparation. In addition, I inform about the possibility to support me as a developer in the form of a donation.

In the settings menu the language, the displayed currency as well as the output of cost diagrams can be controlled. In addition, the folder for the storage of the results can be set.

Furthermore, the categories to be used by KYSA can be changed and if you wish, you can assign own account names. In the same place you can view the supported account types. More information about the categories and account names can be found under "What are the categories for and how does the categorization work?" and "Why do I need account names?"

Below the menu bar are the three main buttons (these can also be accessed from the "File" menu). Read more on that under "Import data", "Run data analysis" and "Open dashboard".

The main window below the buttons shows the currently imported data sets (Current Session Data) as well as the "Saved data sets" on the left side. Saved data sets belong to a defined account name and are continuously expanded and saved. In this area you can also select whether the results for this data record (or the whole group) are to be exported as Excel and in diagrams.

When a data record is selected, the categorized data entries of this record are displayed on the right side of the screen. These can be sorted as desired. From version 4.04 on, you can also filter the displayed data by main categories.
In this right part of the screen, the data record can be assigned to one of the defined account names. and will then be added to the already existing data of this account and saved. In addition, the categories of the individual transactions can be changed via a drop-down to one of the stored categories (the main category is automatically adjusted). The transaction text, transaction value and transaction dates can't be changed.

Import data

Raw data

The raw files (csv) of the supported account types or the Excel result files of KYSA can be selected here. Multiple files of the same type can be selected at once. Excel files must be in KYSA format, otherwise the import will not work.
KYSA checks the selected files and returns the import result (see also Troubleshooting).

If your account type is not supported, I can include it in the next account update if you wish. The best way to do this is to send the csv file of the account without any personal information (transaction text /names/account numbers) via email. You can find more information on the KYSA website.


In the cashbook, cash payments can be entered separately so that they can be linked to the account data (cash withdrawal categories). With this procedure, individual spendings can be analyzed even better, since otherwise only the generic "cash withdrawals" will be shown in the account transactions and analysis results. It is important for a successful import that you adhere to the formatting and input specifications given in the "Description" worksheet. For more information, see "Cashbook".

What are the categories for and how does the categorization work?

My categories

KYSA provides the ability to define your own categories in the "My Categories" menu. KYSA already comes with some categories preset.
Each category is linked to a main category, which is necessary for the overview data visualizations. Besides, a so-called "search string" can be defined for each category, which is matched by the categorization algorithm with the transcations text of the records. If you want to enforce fixed assignments for some transactions, you should define a search string that is as unique as possible and which is regularly found in the transactions text (e.g. "Tesco supermarket" for the classification of bookings with this content into the category supermarket). Upper and lower case letters, as well as punctuation marks and filler words ("the", "and", "one"...) in the search strings are not considered during the categorization.

In the menu "My categories" search strings can be deleted, added or changed. In addition, (main) categories can be added, renamed, deleted or reassigned among each other. The names are freely selectable, although not too many characters should be used. Otherwise the diagrams become confusing and overloaded. The display of long category names in the diagram can be improved by forced breaks ("\n" at the break position). Some (main) categories (like "Vacations & Travel") cannot be changed, because they are needed for further calculation steps.

How is the categorization done?

KYSA uses a two-step categorization algorithm.

In the first step, each individual booking is checked for the search strings specified by the user. If a search string is found in the transactions text, this booking is assigned to the appropriate category. If no matching search word is found, this booking is marked for application of the second mechanism.

In an intermediate step, all categories are then assigned to the respective defined main categories. Transactions marked for the second mechanism are assigned to the main category "Category proposed by machine“.

In this second classification mechanism, the KYSA takes an attempt to sort the marked categories using a learning algorithm based on past revenue categorizations. Since KYSA was developed to be data-sparse, there is no server-based database to get transaction information from. This means that the second classification mechanism is pretty "dumb" at the beginning. However, KYSA "learns" with each record that is evaluated after import.
This means that as a user you should carefully check all categories under the "category proposed by machine" to make sure that KYSA learns the correct relationship between transaction text & type and the resulting category. Especially for the first KYSA runs it makes sense to check the transactions carefully. Firstly to define search strings for recurring transactions under "My categories". Secondly, correcting the proposed categories not only leads to more accurate evaluations, but also helps the training the algorithm so that proposed categories fit better and better.

Why do I need account names?

In the Settings menu, account names can be defined. This makes sense if you have several accounts at the same bank and want to evaluate and save them separately. With these account names you can assign entries in the cashbook directly to an account.
If you didn‘t define your own account names, KYSA saves new raw data automatically under the name of the corresponding bank account type. If you have several accounts with the same bank this means that the records of these accounts are summarized and can not be evaluated separately again.
If only one account is used from one bank, no account names need to be defined.

Run data analysis

As soon as data has been imported (or already saved data is available), the data evaluation can be started. A separate window opens for this purpose, in which the following options for data evaluation can be selected or deselected. Data records that have been selected for export will be outputted as Excel file and diagrams (as *.png file) at the end.

Merge data

Here you can select the option to merge individual data sets into a separate file and then evaluate them as a whole. If this option is selected, a query is made in a separate step as to which files are to be merged and what name this new file should then have.

Include cashbook

Cash expenditures can be entered separately in the cashbook, so that they can be linked to the account data. This feature helps you to better understand your cash transactions, because your account data records only the cash withdrawals, not exactly what the money was spent on.

For each imported (or saved) account, the program checks whether data exists for the cash category specified in the cashbook. If this is the case, those entries in the cashbook with a date lying within the considered time period of the respective account will be added to this data frame. The added entries are automatically offset against the total amount of the specified cash category. The remaining amount then shows the cash expenditure not being described through the additional information in the cashbook. If data for the account type exists but KYSA wasn't able to link data points, a note with error codes (see chapter Troubleshooting) will be displayed.

If no own account names have been defined, the bank account types are used internally in the program as a fallback level and must then also be used accordingly for the cashbook (see description).

Evaluate long-term data

From version v3.04 on, KYSA stores all of your imported data files with the respective account name. If no account names have been defined, the the bank account types will be used as account names. The data is stored encrypted and adjusted for double entries. With the function "Evaluate long-term data" the stored data records can be evaluated in the evaluation, even if they are not to be exported. This means that the saved data will also be included in the selected vacation, Roundies, cashbook analysis or record linking. Saved account data is displayed as "Long-term_account name" in the main window and is stored in a folder with the same name when exported. This feature is not selectable as long as no data has been saved.

Output Roundies (Rounded pennies)

Here, the rounding amounts of the individual transactions are added from all account files to be imported and merged in a separate file. Afterwards the amount of savings from penny roundings is displayed according to the respective account they originate form and illustrated in a column diagram. Thus it is quickly visible, how much money could be taken quite simply from the account, if all transaction amounts were to be rounded to the full euro. The result of this step is always output, but not displayed in the KYSA main window because of the specific table names. This function is not applied to data that has been created through merging of separate files.

Extract vacations

Here, all data entries assigned to the main category "Vacations & Travel" are additionally merged from all imported (or saved) data files into a separate record. This data record can be marked for export after the data evaluation has been performed, so that a separate Excel and diagrams are then output for it in a subfolder. The function is not applied to data that has been created by merging.

Export results

Provided that a data record has been marked for results export, the evaluation data is output as an Excel file after data preparation, as well as a selection of diagrams depending on the dataset type and the data contained. These are:

  1. Boxplot of all transaction and categories

  2. "Violinplot" of all sales and categories (different presentation form to the box plot)

  3. Monthly overview of sales totals by month

  4. Bar chart for each category, separate charts for costs and income (if there are more than two sources of income)

  5. Overview of income and costs with the TOP3 items

  6. Pie chart for costs (and breakdown for three biggest main categories, if existing) and income (if more than two sources of income) Select files

Depending on the amount of data and your computer capacity, the export process may take a little longer. The program will give a message as soon as everything is completed.

Open dashboard

After the first successful data evaluation of the current KYSA session, KYSA enables the use of the dashboard. The dashboard is opened in a browser, but does not require an internet connection (locally hosted). Within the dashboard it is possible to view the entire categorized data or just a part of the whole time period live. If you wish to export some charts, you can do this manually. Transactions can be displayed grouped by month, expenses and income. In the expenditure and revenue display, there is also the option of displaying the categories as a bar chart or pie chart.

When clicking on a main category, the corresponding subcategories are displayed. Another click on the chart takes you back to the main category display.
The dashboard also provides the possibility to compare two different time periods of the same account. This gives a good idea of when major differences in categories occurred.
The dashboard only needs to be opened once. If data has been re-evaluated in the main program, it can be loaded into the dashboard via "Update data" and displayed there.

License and Privacy Notice

The use of this program is free of charge. I do not take any responsibility for results and/or possible problems or data loss that may occur during use. More details can be found in the license notice.

Donations are welcome via Liberapay.

Privacy notice: The program does not collect any personal data. An Internet connection is only required to download the program. The categorization is done locally using the category information provided by the user. This ensures that no data is obtained from the Internet or sent via it. All account data is stored locally inside an encrypted database.


Unfortunately not all errors can be foreseen, but I have provided the biggest sources of error with appropriate error codes. Here you can find the error codes and, where possible, tips for fixing them:

Error code Err00:

The data format of the selected file is not supported by KYSA and content cannot be read out.

Error code Err01:

There was a problem importing the selected files.

Error code Err02:

There was a problem in the data processing of the imported csv file.

Error code Err03:

The selected csv file was recognized, but the transactions amounts are missing.
Check the file to be imported for these amounts or export the transactions again from your online banking account.

Error code Err04:

There was a problem with the classification of the transaction information in the imported csv file.
The search text must be written small and without spaces. Check if the record contains empty cells and or the formatting has changed on the part of the bank.

Error code Err05:

This error only occurs if a cashbook is to be linked to existing account transactions.
The error code indicates that although data for the account (e.g. Comdirect Current Account...) was found in the cashbook, the cash category used in the cashbook could not be found in the categorized raw data.
Make sure that the cash category name(s) used are identical in the cashbook and in „My categories“; pay attention to upper and lower case writing and any spaces.

Error code Err06:

This error occurs only if a cashbook is to be linked to existing account transactions.
It indicates that despite the fact that the account and cash descriptions in cashbook and chosen account are matching, no data has been taken from the cashbook.
This occurs especially when the period of relevant data in the cashbook does not fit into the period of the chosen account.
Check if the entries in the cashbook are sorted in descending order (latest cash payment in the top line).

Error code Err07:

The processed data could not be exported as Excel-files. Check whether you have write permission for the results folder used.

Error code Err08:

The prepared raw data cannot be processed further for the creation of the diagrams. Information is missing in the datasets.
Check the output result file for missing data or incorrectly assigned data (e.g. sales amounts in wrong column).
Problems with incorrectly allocated data from csv-files can only be solved by changing the program source code.

Error code Err09:

The diagrams cannot be created.
Check whether you have write permission for the results folder used.
This error code can also occur when Excel files with incorrectly assigned contents are to be displayed in diagrams.

Error code Err99:

The data couldn't be written to the database.
Check whether you changed writing permissions for the KYSA private folder. If the error persists please contact me with a detailed error information.