The KMyMoney Handbook

# The KMyMoney Handbook

## for KMyMoney version 5.2

Michael T. Edwardes `<mte@users.sourceforge.net>`

Thomas Baumgart `<ipwizard@users.sourceforge.net>`

Ace Jones `<acejones@users.sourceforge.net>`

Tony Bloomfield `<tonybloom@users.sourceforge.net>`

Robert Wadley `<robntina@users.sourceforge.net>`

Darin Strait `<darin.strait@ashdar-partners.com>`

Roger Lum `<rogerlum@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

Copyright © 2000-2024 The KMyMoney Development Team

Legal Notice

KMyMoney, the personal finance manager by KDE.

This handbook describes KMyMoney version 5.2.

Chapter 1. Introduction
Introduction

# Chapter 1. Introduction

Revision 5.2.0 (2024-12-01)

## What is KMyMoney?

KMyMoney is a personal finance manager by KDE. It enables users to keep careful track of their personal finances by providing a broad array of financial features and tools.

The principal goals of the project are:

- Feature Parity. KMyMoney intends to provide all important features found in the commercially available personal finance managers. Although every release of KMyMoney gets closer and closer to that goal, there is still work to be done.

- Ease of Use. KMyMoney strives to be the easiest open source personal finance manager to use, especially for the non-technical user.

- Correctness. Based on tried and tested double entry accounting principles, KMyMoney ensures that your finances are kept in correct order.

What KMyMoney is not
What KMyMoney is not

## What KMyMoney is not

As a personal finance manager, KMyMoney is not intended to support the needs of a business. A small business might find sufficient functionality to use KMyMoney, but features such as accounts-receivable and accounts-payable are not directly supported. The larger the business, the less likely it is to find KMyMoney will meet its financial management needs. Most if not all the data needed for a small business, such as for reports for audit and taxation purposes is present, but may need to be extracted using various reports and then processed and assembled into the required formats. In addition, it would be possible to create client, supplier, document, or other features through plugins.

KMyMoney is not simply a clone of any of the commercially available personal finance programs. Although many of the features present in KMyMoney can be found in other similar applications, KMyMoney strives to present an individual and unique view of your finances.

Chapter 2. What's new in this release
What's new in this release

# Chapter 2. What's new in this release

Revision 5.2.0 (2024-12-01)

## Bug fixes and enhancements to functionality

As with every release, the KMyMoney development team continues to work hard to make each version better and easier to use in every way. Many bugs have been fixed since the previous stable release of 5.1.3; several areas of the program have seen functional enhancements; but the major noticeable changes from the 5.1 series of releases are in the ledger - more details below.

The conversion from using the earlier KDE libraries to KDE Frameworks was essentially complete in the early 5.1.x releases, with much of that work behind the scenes and not directly visible to the end user. The general look and feel should continue to remain stable, although some minor changes may be noticeable. In addition, the team has begun to make changes to support the conversion to using Qt6 and KDE6 libraries, which have already started to replace Qt5 and KDE5. With all these changes, the basic functionality of the program remains the same, aside from intentional bug fixes, improvements, and additions.

In past releases, this section of the manual included a list of many of the specific bug fixes and functional enhancements. However, rather than duplicating that information, you can find it directly in the Changelog.

The 5.0.x and 5.1.x series included some changes needing adjustments on the user's side, if they were upgrading from 4.8.x or an older version. However, we expect that most users have converted to 5.1.x by now. Specifically, there should be no adjustments needed by users converting from 5.1.x to 5.2. If for some reason, you are still using KMyMoney version 4, you are very strongly encouraged to upgrade, as it is getting increasingly difficult for the team to provide any assistance for very old versions.

Updates to this Handbook
Updates to this Handbook

## Updates to this Handbook

This section used to present some details related to the lack of a complete handbook update from 4.x to 5.x. As the handbook has now been fully updated for 5.2, this section is no longer necessary.

Chapter 3. Making the most of KMyMoney
Making the most of KMyMoney

# Chapter 3. Making the most of KMyMoney

Joe (joe1011010) `<joe1011010_km@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

### Help improve this Handbook

This and the following sections have had no significant updates since the very early versions of KMyMoney. While the basics of bookkeeping have not changed over the years, and there is nothing inaccurate or misleading here, there have been requests to update this area. If you have any specific suggestions or ideas for this, the author would like to hear from you, through one of the routes listed at the Support page at the KMyMoney web site

While much of KMyMoney might be obvious to a naive user, and you could go ahead, clicking some buttons and filling in some data, after a time, you might decide you have done it wrong and want to start again, even if you did read the documentation on each part of KMyMoney.

You will get a more efficient and effective system and much better use of your time if you first spend a little time planning how you are going to use KMyMoney, so follow the steps given here. This may seem very simple, and indeed, it is simple, but taking the time to assure that your understanding of how things work is the same as KMyMoney's will almost certainly save you time later.

## Basic Accounting

Imagine your money as balls, or beans, and to stop them rolling around and getting lost you keep them in a box, or pot. Accounting, or Bookkeeping, is the process of counting and keeping track of the beans in the pot, or more important, the beans in several pots.

You have some money in the pot marked “Cash”. You buy some goods, so you take some beans out of the cash pot and place them into another pot marked “Supplier”. The supplier gives you some goods in exchange for the cash, so you take the beans out of the pot marked “Supplier” and put them in the pot marked “Goods”.

The goods have a value (the price you paid) so you still have the same amount of beans, some representing cash and some representing goods.

In this case you have two movements of beans, or transactions. Each transaction needs two entries, one to take beans out and one to put beans in. This is called “double entry bookkeeping” or “double entry accounting”. The recording of the transactions is done in a “Ledger”; each pot is known as an “Account” or “Ledger code”.

Now you take some goods and give them to a customer, who gives you some cash in exchange. The goods were worth some beans and, hopefully, the customer has given us more beans than that, so making a profit. To over simplify, the beans from the Goods pot come back as Cash, but we can split that as the “Cost of Goods sold” and “Profit”. This transaction has three entries; one side of the “double entry” has been split.

This will be covered in more detail later on in this handbook in the section on split transactions.

### Defining the accounts (personal records)

Most accounts, or pots, as described above, represent a measure of our “Worth”. The cash and goods represent our “Assets”, which also include any amount someone owes us for goods we provided or money we loaned to them. The money we owe to others, say if we had not paid our suppliers, are our “Liabilities”. These accounts are transferable to Cash and have a value.

Any pots that cannot be valued are “Income” or “Expense”. Our phone bill (or the phone company to which we pay the bill) cannot be valued; we know how much we have paid, but not how much anyone else has paid. We know how much our employer has paid us, but we do not know how much they have paid anybody else, or how much money they have left to pay us next month. Although we cannot determine an actual value for these pots, it is useful to monitor how much we have put into or taken out of each of them.

In some cases a supplier is a “Liability,” in others it is an “Expense”. This is something we need to consider and decide for each case. Similarly, you may set up a loan as a Liability, particularly if you transfer the money into your bank account, but it could be an Expense if it was to buy some furniture.

Consider how you want to track and analyze your income and expenses. This will help you decide how to set them up in KMyMoney.

Finally, consider if you want everything in one set of accounts, or two or more. This may depend on the legal framework where you live, or just how you want to analyze things. Each set of accounts would be handled separately.

### Defining the accounts (business records)

There are similarities to setting up accounts for personal use, but there are additional considerations, including legal guidelines and requirements. KMyMoney does not explicitly address any of these issues, as it has been designed as a “personal” finance manager. In addition, these additional issues are not addressed in this handbook, but you must be aware of them if you are going to attempt to use KMyMoney for a business.

Mapping your finances to KMyMoney
Mapping your finances to KMyMoney

## Mapping your finances to KMyMoney

So, collect your recent financial papers and explore the following sections for more information on how you can map your own finances to each of the different areas of KMyMoney. Note that each of these sections below is presented in more detail in later chapters of this handbook.

### Accounts

An “Account” in KMyMoney represents one of the “pots” of the previous section: it can be anywhere which holds your money and possessions that you wish to monitor. You generally create an account in KMyMoney to represent each different account you have in “real life,” whether it is with a bank or other financial institution, or a store, or even just the cash in your wallet. There are several types of accounts available, which represent different types of places your money may be.

Transactions (to be described in more detail later) are created to indicate money moving in or out of one or more accounts.

As described below, accounts can either hold money which is actually yours (assets) or money which you owe (liabilities.) Liabilities can be thought of as magic pots, which you can take beans from even if there are not actually any beans there, but which you eventually need to replace.

#### Accounts - Asset

There are multiple types of Asset Accounts. They are all essentially the same, in holding your money, but there are some differences in the details of how money enters and leaves the different types of accounts.

Checking

  Standard bank checking account.

Savings

  Standard bank savings account.

Cash

  Money in your pocket or your wallet or in a jar or box on the shelf or under your bed.

Loan

  Loans you make to someone else.

Investment

  Money you invest.

Asset

  Property, collections, etc.

#### Accounts - Liability

These accounts represent your debts and money you owe to others.

Credit card

  Standard credit card account.

Loan

  Loans made to you, mortgages, etc.

Liability

  Anything else you owe that does not fit the other liability account types.

### Institutions

These represent financial institutions, such as banks or stores or investment brokers. They can be used to group accounts, and can show the total value of all your accounts within that institution. These do not need to reflect actual organizations, but are for your convenience in grouping your accounts. Their use is completely optional.

### Categories

A Category is a special type of account used internally by KMyMoney to track income and expenses. These accounts are non-managed, because as mentioned earlier, they do not have real values, and show only what you have gotten from them or contributed to them. Each category shows the total value of transactions which mention it. The principle of double entry accounting requires that every transaction includes a category or transfer account. This will also be explained in more detail later in the handbook.

Income Categories are used as places from which you receive money, and Expense Categories represent purposes for which you spend money. On rare occasion, money can flow the "wrong" way, such as getting a refund for an over-payment of a utility bill.

#### Sub-Categories

Categories can be split into sub-categories, but this relationship is primarily for your convenience, and is used for display purposes. Most of the time, the sub-category totals are not included in the higher level category total, although there are specific reports and displays where this can be done.

### Tags

Tags are very similar to Categories, as they are also non-managed accounts that do not have a value. However, unlike Categories, the use of Tags is completely optional. They can be used to group transactions for reporting purposes.

### Payees

A Payee (or Payer) represents someone or some group to which you pay money or which pays you money. As with Tags, they are non-managed, and do not have a value. They are primarily a convenience for being able to report how much money you have sent to someone or spent at a particular store. These are optional for most transactions, but are required for Scheduled transactions, which are describe below. A transaction history, with categories, can be shown for each payee.

### Scheduled transactions

Where transactions occur on a regular basis, such as salary or utility bills, these can be set up against a Schedule. Transactions are created from Schedules. Upcoming scheduled transaction as well as those which are overdue can be shown on the home page.

Useful Tips
Useful Tips

## Useful Tips

When you start KMyMoney, the Home View, or Home Page, shows a high level overview of your finances. It is divided into several sections, and you can customize which are displayed, and in what order. Along the left, there are icons for each of the major Views. Each view is used by KMyMoney to present a different type of data for entry or review.

Unless you keep your money under your mattress or under the floorboards, you probably make use of one or more institutions, where you have accounts, which may be in credit or debit. In order to familiarize yourself with the way KMyMoney works, choose an account you want to track with KMyMoney and select the File → New menu item in order to set up a data file.

If you have used another personal finance manager, you may be able to import the data from it into KMyMoney.

If you have some regular receipts into or outgoings from this account, you can go to the Payees View and enter the names of both the payers and the payees involved; then go to Scheduled Transactions View and fill in a New Schedule for each recurring transaction. If you haven't entered the payee or payer, KMyMoney will offer you the opportunity to do this in the middle of entering the Schedule.

To add other transactions go to the Ledger View; you can add new payees and categories while entering a transaction or by going to the Payees or Categories View before entering the transaction.

Depending on which option you chose when setting up the data file, you will probably find that the default Categories do not exactly match your needs; you can easily delete ones you know you are never going to need and add others that you do need. But when you are entering a transaction, you only have to type a few letters of a category and KMyMoney will offer you a dropdown list of the matching categories from which to choose.

You can add different accounts managed by different institutions; the favorite ones (also called preferred) will show when you open KMyMoney but you can quickly switch to any of the others.

When you make a payment, KMyMoney will work out what the next check number should be; delete this if you are not making a check payment or edit it if the first check you enter is not check number 1. Alternatively, it is possible to switch off auto-increment of check numbers.

Every so often you may get statements of your account from the institutions you use. You can reconcile your KMyMoney accounts against these statements so that you know you have an accurate representation of the current state of your finances.

If you go to the Reports View, you will find several default reports. To customize these, open the one most similar to the sort you prefer and then select 'New' (not 'Copy'.) You can then customize this to your needs and mark it as a preferred report if you wish.

Though KMyMoney is not intended for use in a business context, if you are running a business on your own and so do not need payroll functions, you may find that KMyMoney is sufficiently customizable to meet your needs, particularly as it comes with budgeting and forecasting features, and you can export your customized reports via CSV into other applications.

Plugins
Plugins

## Plugins

While a detailed knowledge of plugins is not necessary to use KMyMoney, a basic understanding is helpful, as the concept is mentioned in many places throughout this handbook. When KMyMoney was originally designed, all features and functionality were implemented within the source code of the program. As more features and functionality were added to the program, a plugin system was designed, so additional functionality could be added in a way that did not require modification of any of the core source code files. When KMyMoney starts, it looks in a specific directory for any plugins, and it creates the appropriate menu and configuration entries for those it finds.

When the first plugins were written, even though their source code was included with the complete source code of KMyMoney, not all Linux® distributions included them in the versions they compiled. For some time, the handbook included instructions for checking this and for compiling them yourself, if necessary. At this point, many of the basic features of KMyMoney have been implemented as plugins, and they are included by all distributions, as well as the Windows®, macOS®, Appimage, and other versions distributed on the KMyMoney web site.

See the section on Plugins in the chapter on Settings for more information on determining which plugins are installed and active, and how to configure them.

If you wish to write your own plugin in order to implement a new feature, such as importing or exporting data in a custom format, you should use one of the existing importer or exporter plugins as an example. If you do so, please write to the developers' mailing list `(kmymoney-devel AT kde.org)`, in case someone has already started a similar effort, and because your work may be of interest to other users.

Chapter 4. Using KMyMoney for the first time
Using KMyMoney for the first time

# Chapter 4. Using KMyMoney for the first time

Michael T. Edwardes `<mte@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## Running KMyMoney for the first time

### Screenshots may differ

When you run KMyMoney, it might not look exactly like the screenshots in this manual. Many details, such as fonts, colors, and icons, can be customized, using the Settings → Configure KMyMoney... menu item or the KDE System Settings application, depending on your operating system or distribution.

### The main window

The KMyMoney main window consists of four major parts

- A. The menu bar

- B. The toolbar

- C. The View selector

- D. The view

The menu and toolbar provide access to the features of KMyMoney and allow you to Create a new data file, open an existing data file, or configure how KMyMoney operates. The toolbar can be configured to show icons for the operations you use most frequently.

On the left side of the main window, the View Selector consists of at least eleven icons with optional labels, depending upon the software provided by your system, as some features can be included or excluded when the program is compiled. More icons could be added by various plugins. By clicking one of the icon, the view window on the right hand side is loaded with the appropriate view of your financial data. Each view provides a unique representation of your financial situation and allows you to view or edit the information shown.

The View Selector may contain the following icons

- Home: a configurable overview of your current financial situation (or an introduction page when no data file is open.)

- Institutions: your institutions and accounts displayed in a hierarchy.

- Accounts: your accounts displayed in a hierarchy.

- Scheduled transactions: your recurring payments, income, and transfers.

- Categories: special accounts that provide a means for you to group associated transactions.

- Tags: special accounts that provide an additional means similar to Categories for you to group associated transactions.

- Payees: your payees - the people and organizations you pay money to or receive money from.

- Ledgers: your transactions in each account.

- Investments: your portfolio summary

- Reports: a collection of various, customizable displays of your financial data.

- Budgets: your budgets.

- Forecast: forecast of the balances of your accounts and categories.

- Outbox: a display provided by the KBanking plugin to provide feedback on running processes.

Remember that some of these may not be present on your system; it depends on how your copy of KMyMoney was configured and built.

Creating a new file
Creating a new file

## Creating a new file

KMyMoney keeps all the data about your finances in a file. As was stated in Defining the accounts (personal records), you can keep more than one set of accounts, but the data for each will be kept in a separate file, and KMyMoney can only have one file open at a time. See the chapter on File Formats for more details about KMyMoney's data files.

In addition to that data file with all the financial data for that set of accounts, KMyMoney uses additional files to store data regarding configuration settings and display preferences. The exact location of these files depends on your specific Operating System or Distribution.

To create a new file you can either select the File → New menu item or choose the new icon from the toolbar. In addition, if the main welcome page is displayed, you can also select the first link: “Get started and setup accounts.”

KMyMoney will then open the “New File Setup Wizard” which will guide you through the process of creating the file.

Any information entered hereon the Personal Data page is used only to personalize your file. All these fields are optional, so you can use KMyMoney without entering any information now. In the future, this information may be used in some reports and for online banking. If KMyMoney requires any personal information in future releases and finds none, you will be prompted to enter the relevant data then.

In case you have an address for yourself stored in the KAddressBook, the button Load from Addressbook is enabled and pressing it imports all information into KMyMoney.

Once you have completed entering data, press Next.

If you need to change any of this information in the future, you can access this form with the File → Personal Data... menu item.

KMyMoney supports multiple currencies. To set your base currency (the currency you use day to day and which will be used for your reports,) select the appropriate entry from the list provided and press Next. A default will be selected based upon your locale settings, but you can easily choose a different currency, if appropriate for you situation.

In this example, US Dollar has been selected as the base currency.

After you click Next, the following page allows you to create an initial account. For the typical KMyMoney user this is a checking account.

Enter the name of the account and a possible account or reference number assigned by the institution managing the account. The name is arbitrary, and is simply how the account will be referenced and displayed by KMyMoney. Enter the opening date and the opening balance of the account. For example, if you want to use KMyMoney to manage all your finances as of 2008-01-01, then enter the balance of the account at the beginning of this date. The number can possibly be obtained from a paper statement. You may also enter the name and the bank code of the institution. The latter, known as the routing number in the US or the sort code in the UK, is optional and only required for online banking purposes, but it may also be helpful when importing bank statements in some of the formats supported (OFX, QFX.)

In case you don't want to setup an initial account or don't have a checking account, just uncheck the checkbox.

Once finished, press Next to proceed.

Choose the appropriate country and account template(s). Each template provides a different set of categories for organizing your finances. Multiple templates, even from different countries, can be selected using a combination of Ctrl and Shift together with the left mouse button. The account hierarchy to be setup will be shown in a preview part of the wizard. In case you cannot find a template that suits your needs, don't select a template at this time, and you can manually set up categories later.

Once finished with the template selection press Next to proceed.

This is the final page of the wizard. If you select the checkbox “Configure preferences after finishing the wizard”, the application settings dialog will be displayed after you have completed the account setup wizard.

At this point, clicking “Finish” will start the “Save storage as...” dialog, where you choose the type of storage (XML, possibly with encryption, or SQL) and specify the details of that storage method, such as file name and location or sql database details. See the File Formats and File Formats chapters for more information about each storage type.

Creating accounts
Creating accounts

## Creating accounts

There are multiple ways you can create an account:

Using the menu

  To create an account using the menu select the Accounts → New account menu item.

Using the Accounts View

  To create an account using the Accounts View, click the accounts icon in the View Selector to display the Accounts View. Right-click either the Asset tree icon or the Liability tree icon in the display and select New account from the popup menu. The Asset tree holds all of your accounts that are assets, such as savings and investments. The Liability tree holds all of your accounts that represent money you owe, such as loans and credit cards. These and all the other account types are discussed in more detail in the Accounts Chapter.

Using the toolbar

  If the New Account... button is displayed on the toolbar, you can click it to create an account.

### Tip

Note that KMyMoney uses context menus throughout the whole application. If you find yourself stuck trying to figure out how to do something, try clicking the right mouse button where you would expect to see a feature.

Creating a new account by any of the above methods opens the New Account Wizard. This wizard will take you step by step through the process of creating an account, gathering the required information at each step. To navigate through the pages click Next and Back. A full description of creating accounts can be found in the Accounts section.

Now that one or more accounts exist in KMyMoney, your account summary is shown in the Home View. You can create transactions manually in the Ledgers View, or set up automatic transactions through the Schedules View.

Scheduled transactions
Scheduled transactions

## Scheduled transactions

A scheduled transaction, sometimes called a schedule or a recurring transaction, is a transaction that occurs one or more times at a specified interval over a certain period of time. A typical example is your pay check that you receive every week or month, or a utility bill you pay every month. Rather than having to enter the transaction details each time you get paid, you can instruct KMyMoney to create a schedule that will enter a transaction for you when you get paid.

To maintain your schedules, click the Scheduled transaction icon in the View Selector.

Categories
Categories

## Categories

To maintain your categories, click the Categories icon in the View Selector.

A full description of this topic can be found in the Categories section.

Tags
Tags

## Tags

To maintain your tags, click the
Tags icon in the View Selector.

A more detailed description of this topic can be found in the Tags section.

Payees
Payees

## Payees

To maintain your payees, click the Payees icon in the View Selector.

A more detailed description of this topic can be found in the Payees section.

Importing financial data from other applications
Importing financial data from other applications

## Importing financial data from other applications

If you currently use another financial manager application, it is very likely that KMyMoney can import much or all of the data from that program, as long as they can be exported or saved in a format KMyMoney understands. The most common of these is the Quicken Interchange Format (QIF). Most financial programs can export this format, although the different applications' methods of exporting QIF is not discussed here for brevity.

A full description of importing data in this format can be found in the QIF Import section.

In addition to importing QIF format files, KMyMoney can directly open data files used by GnuCash file.

Searching for transactions
Searching for transactions

## Searching for transactions

KMyMoney provides a useful and powerful transaction search facility in the form of the search dialog.

The search dialog can be opened from the toolbar using the find icon or by selecting the Edit → Find Transaction menu item.

A full description of this topic can be found in the Search section.

Reconciliation
Reconciliation

## Reconciliation

At some point, you will want to reconcile your records and details of an account with the actual account to assure they match. This is generally done by comparing the account in KMyMoney with a printed or electronic statement for the account issued by the institution, such as bank, credit card, loan, or any other statement. Reconciliation involves matching what you have entered, specifically the transactions since the previous reconciliation, with what the statement lists. If any discrepancies are found, either you or the person who created the statement has made a mistake.

To reconcile an account, first select the account, either from the Accounts View or in the Ledgers View. Then, either click the Reconcile icon on the Toolbar, if it is visible, or select the Account → Reconcile menu item.

A more detailed description of this topic can be found in the Reconciliation section.

Backing up
Backing up

## Backing up

Now that you have created some accounts and entered transactions it's a good idea to perform a backup. Because the file used by KMyMoney is a standard Linux® file (or macOS® or Windows® file, depending on your operating system) you can just copy the file to another location to back it up or use the dialog provided by KMyMoney. Using the dialog is the preferred method because if KMyMoney ever starts using other file formats, such as SQL, then it would be much harder to copy the file manually.

To backup your file through KMyMoney Select File → Backup menu item and enter the folder where you wish the file to be saved. If the folder needs mounting first and you have the sufficient privileges then check the tick box labeled Mount this folder before backing up and click OK.

The file will be saved to the folder specified with the current date appended to the filename so it is easy to see the date the file was backed up.

For more details about the actual format of the data file, and the backup process, see the File Formats.

Launching KMyMoney
Launching KMyMoney

## Launching KMyMoney

Most commonly, you will launch KMyMoney from an icon or a start menu of your window manager or desktop environment. In this case, the default behavior is that KMyMoney will open the last file you had open. However, in some circumstances, you will want or need to launch KMyMoney from the command line.

For a complete description of all the available command line options, see the man page for KMyMoney. However, there are two special cases which we describe here.

kmymoney -n. The -n option tells KMyMoney not to open the last file it had open. This can be useful if the program crashes on startup.

kmymoney <path to file>. Giving KMyMoney a filename on the command line tells it to open that file instead of the last file it had open. You can use the name of any valid KMyMoney file, as described in the chapter on file formats. In addition, this can be used to import a GnuCash file.

How to move KMyMoney to a new computer
How to move KMyMoney to a new computer

## How to move KMyMoney to a new computer

### Moving your data

If you get a new computer, it's very easy to move your data. In fact, all you have to do is to copy your KMyMoney data file. The name of the file is shown in the title bar when KMyMoney is running; it usually ends in `.kmy`. The first time you run the application on the new computer you will have to tell it where you have put the data file, either by running from the command line, or from the File → Open... menu item. You should even be able to move between Windows®, Mac® OS, and Linux® systems.

If you have encrypted your data file, be sure the appropriate software and keys have also been set up on the new computer.

If your data is in an SQL database, refer to documentation for your database software for guidance on migrating your data.

Note that this assumes you have installed the same version of KMyMoney on the new computer as you were running on the old computer. Installing a newer version should also be safe, but you need to be aware of any issues related to that upgrade. Any such issues should be noted in the release notes for the new version.

### Moving your settings

If you only move your data file to the new machine, as described in the previous section, KMyMoney will work correctly, but you will have lost any configuration settings you changed from the default on your old machine. To maintain these settings, you also need to copy your configuration file. This file is called `kmymoneyrc`. The location of this file depends on your operating system and distribution. On a Linux® system, this will most likely be `.config` within your home folder. If you are migrating from a version of KMyMoney prior to 5.0, the old location was `.kde4`.

#### Moving plugin settings

If you have run any KMyMoney plugin, such as the csv importer or exporter, it may also have created a configuration file in that same folder, such as `csvimporterrc` or `csvexporterrc`. These files should also be copied to the new computer.

As with the main data file, this assumes the same version of the plugin on both computers. Upgrades are generally safe, but if the functionality of the plugin has changed greatly, it is advisable to carefully test using the old configuration file, to be sure the plugin behaves as you expect. Of course this applies even when upgrading the version of KMyMoney on a single PC.

Note that when upgrading from a previous version to version 5.0 or higher, the location of the template files used by the plugin for printing checks has changed. Please consult the release notes or the project website for more details.

### Note

These instructions are solely for moving your KMyMoney data and settings. However, there may be important items which are stored by KDE and not by KMyMoney, such as passwords stored in Keychain. Moving other parts of your KDE setup is beyond the scope of this manual, although many of the relevant files are also stored under `$KDEHOME`.

Getting Help / Contacting the Developers / Reporting Bugs
Getting Help / Contacting the Developers / Reporting Bugs

## Getting Help / Contacting the Developers / Reporting Bugs

Since support channels change over time, you can refer to the Support page at the KMyMoney web site for the most up-to-date information on where to get help with KMyMoney.

If you simply have questions about using KMyMoney, you want to confirm you understanding of how the application works, or need assistance figuring out the best way to handle a particular financial situation, please consider using one of the information sources, forums, mailing lists, or chat channels listed at the above link.

### Contacting the developers

For general questions or comments about KMyMoney, there is a users' mailing list `(kmymoney AT kde.org)` with more details here. This list is suitable for general questions and discussion. There is also a developers' mailing list `(kmymoney-devel AT kde.org)` with more details here. This list is intended for more technical discussions. Since replies are often sent only to the list, you may not get any response unless you subscribe to the list you send to.

Note that the developers generally monitor the various contact channels mentioned above, so direct email contact is rarely necessary. However, we're happy to hear about your experiences using KMyMoney over whatever channel you prefer.

### Reporting bugs

To report a bug please use the interface provided by KMyMoney by selecting Help → Report Bug menu item and filling in the required information. However, in case you have any difficulties with that method, you can report a bug (or file a wish-list or enhancement request) directly at the KDE bug reporting web site. Reports should be filed against the product “kmymoney”.

In any case, before reporting a bug, please read through the guidelines below. Following them will make it more likely that the developers will be able to quickly identify the problem without having to ask you for more information. Also try to be sure that what you are reporting really is a bug (or wishlist/enhancement request.) If things are just not working they way you expect, or you need help using some feature of KMyMoney, please use one of the alternate support channels listed above.

#### Writing High Quality Bug Reports

We encourage users to take extra time to write high-quality bug reports when submitting them. This reduces wasted effort on all sides, as the reporter and the developer who will fix it trade emails until this information is really in place.

Eli Goldberg wrote the canonical Bug-Writing Guideline, available at https://issues.apache.org/bugwritinghelp.html. Generally, you'll be well-served by following the guidelines and advice from that page. Some of those points are repeated below:

Include your system information. The Help → Report Bug menu item will fill this in automatically, but if you would prefer not to use this interface, there are several items you need to include in the report. We will need to know what operating system you are using (Linux®, Mac® OS, or Windows®), the version of KDE, and the version of KMyMoney you're running, and either the version of Mac® OS or Windows® or the name and version of your Linux® distribution and the version of your kernel. This information is extremely important, as many bugs (as well as behaviors mis-identified as bugs) depend on the Operating System.

Include a backtrace for crashes. The backtrace is often the single most useful piece of information in solving crashes.

Try to reproduce it. Let us know if you were able to do so. It's useful to know whether the bug only happened once and you couldn't get it to happen again or if it happens every time or if it happens sometimes but not others.

Include specific steps. This is a bad bug report: “I entered a transaction, and KMyMoney crashed.” A much better bug report is: “Using the transaction form, I entered a new transaction in my Credit Card account. I selected the Transfer tab, entered an amount, then changed to the Deposit tab, and back to the Transfer tab. When I returned to the Transfer tab, KMyMoney crashed. This bug is fully reproducible for me.”

Tell us what you expected to happen. In some cases, this is obvious, but in more subtle bugs, sometimes you'll see a bug report where it is not obvious what the reporter expected to happen. Always tell us what you think should have happened, as well as what did happen.

Consider running with debugging enabled. By compiling a version configured with --enable-debug=full you can ensure that the best possible backtraces are generated. If you encounter a crash, run KMyMoney again from within gdb, and reproduce the crash. When it crashes, type “bt” to generate a backtrace.

Running this way is a bit more difficult, so we don't expect all users to do this. However, if you're interested in helping KMyMoney become as stable as possible, this is the best way to do it short of finding the bug in the code and sending in a patch.

Chapter 5. Institutions
Institutions

# Chapter 5. Institutions

Roger Lum `<rogerlum@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

Institutions in KMyMoney serve as a way to group accounts. They are most commonly financial institutions like banks and brokerage firms, but they can be anything you want, such as “Self”, to hold accounts for the cash in your pocket and any other assets not actually help by a financial institution, or “Stores”, to group all your credit card and other accounts with retail stores.

## Institutions View

The Institutions View provides a summary of all the accounts grouped under their respective institutions. The list of accounts under any institution can be expanded or collapsed by clicking on the arrow to the left of the institution name. The last listed institution is "Accounts with no institution assigned."

The Institutions View displays several columns, showing information about the account. It also shows the total value of all accounts in each institution. You can select which columns are shown by right-clicking on any column heading and selecting or unselecting the checkbox next to the name of the column.

Name

  The name of the institution or account. This column is always displayed.

Balance

  The current balance of the account. No value is displayed for institutions.

Total Value

  For accounts, this is the same value as the balance. For Institutions, this is the total of the balances for all accounts in that institution.

IBAN

  The IBAN (International Bank Account Number) is shown if there is a value entered in the appropriate field on the account information dialog.

Bank Code

  The Bank Code. This identifier is formatted and used differently in different countries. It is known as the routing or routing transit number in the US and as the sort code in the UK. It is not currently used by KMyMoney.

SWIFT/BIC

  The SWIFT/BIC (Society for Worldwide Interbank Financial Telecommunication/Business Identifier Code)

Institution Options
Institution Options

## Institution Options

Right-clicking an institution name brings up an Institution Options menu, providing you with several choices. Selecting New Institution... opens the New Institution Dialog, where you can enter all the necessary information to create a new institution. Selecting Edit Institution... brings up an editable window where you can change the institution details. Selecting Delete Institution completely removes the institution from the data file. Any accounts associated with that institution will remain, but without being associated with any institution. Selecting New account... steps you through the new account process, which is described in more detail in the next section.

### New Institution

### Note

You must have a file open before you can create a new institution. If you do not have an existing file, you will need to create one.

Only the name is required in the New Institution Dialog, all other fields are optional. As with the personal information dialog, this data is not currently used by KMyMoney, but some items may be required by future releases for certain features. In particular, the Bank Code and the BIC (Bank Identifier Code) will be required for online banking, although this may depend on the country your bank is in.

### Account Options

The options discussed above refer to the institutions listed in the Institutions View. Most of the rows in this view are accounts. Right-clicking an account name brings up an Account Options menu. The entries and details for this menu are discussed at the end of the Accounts Chapter.

Chapter 6. Accounts
Accounts

# Chapter 6. Accounts

Michael T. Edwardes `<mte@users.sourceforge.net>`

Roger Lum `<rogerlum@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

Your KMyMoney file contains one or more accounts. All your money is in one of these accounts. There are several different types of accounts. Typical “Asset” accounts include bank accounts, cash, and investments. Typical “Liability” accounts include credit cards and loans.

There are two other account types: “Income” and “Expense.” These accounts are “Categories,” and are a way to organize your transactions. They are treated internally by KMyMoney as accounts, and are described in more detail in the section on Categories. Income and Expense accounts are always displayed in the Categories View, but it is possible to configure KMyMoney to also display them on the Accounts View.

You may also see “Equity” as an account type. Any account of this type is a special account in KMyMoney, used to hold the opening balance transactions of other accounts.

The final type, although it is displayed first on the list, is “Favorite.” These are accounts of any other type which you have indicated are “favorite” accounts in the details when creating or editing that account.

## The Accounts View

The Accounts View provides a summary of all the accounts. It is similar to the Institutions View, except accounts are grouped by the type of account. The list of accounts under any account type (or under the parent account for any subaccounts) can be expanded or collapsed by clicking the arrow to the left of the type or name.

Similar to the Institutions View, the Accounts View displays several columns with descriptive and summary information about each account. As with the Institutions View, you can select which columns are shown by right-clicking any column heading and selecting or unselecting the checkbox next to the name of the column.

The rest of this chapter will focus on Asset and Liability account functionality. Income and Expense accounts, i.e., Categories, are described in the chapter on Categories.

Name

  The name of the account. This column is always displayed.

Type

  The type of account, e.g., Savings, Checking, Credit Card, Stock, etc.

Online

  An indication whether this account has been configured for online access. The process of configuring accounts for online access is described in the Importing and Exporting Chapter., but details on the available settings are below in the section on Editing Account Information.

Tax

  An indication whether this account has been configured as important for tax purposes.

VAT

  An indication whether this account has been configured to apply a VAT on transactions.

Balance

  The current balance of the account, shown in the currency chosen when the account was created.

Total Value

  This is the same value as the balance, but always in the base currency chosen when data file was created. These values are summed for the row for the overall account type.

Number

  The account number, if one was entered.

IBAN

  The IBAN (International Bank Account Number) is shown if there is a value entered in the appropriate field on the account information dialog.

Creating an Account
Creating an Account

## Creating an Account

### Note

You must have a file open before you can create a new account. If you do not have an existing file, you will need to create one.

To create a new account, you can either select the Account → New account... menu item or choose the new account icon from the toolbar. You can also create an account from the Accounts View; click the Accounts icon in the View Selector and then right-click the Asset or Liability tree icon and select New account... from the popup menu.

### The Institution (Bank) name

The first step involves selecting an institution for the account. If this is an account for an institution you have already created, you can select the institution from the dropdown list. If you want to create a new institution, click New Institution. This will bring up the New Institution Dialog, as described in the previous section. If this is not a bank account, or if you do not want to use online banking, you do not need to specify an institution.

The Account Number and the IBAN (International Bank Account Number) are not required by KMyMoney. These fields may be left blank and filled in at a later time. The account number may be used for online banking and to assure data imports use the right account. The IBAN may be used by the KBanking plugin.

To proceed to the next step click Next.

### Account

First, enter a name for the account. This name will be used to identify it.

Next, select the type of account from one of the types available from the dropdown list. Different account types are handled differently within KMyMoney, so it is important to choose the correct type when creating the account. Also, different types of accounts require different setup information, and may display different pages in the new account setup wizard to collect that information.

Checking

  A normal checking account, such as you get with any bank or credit union.

Savings

  A normal savings account, such as you get with any bank or credit union.

Credit Card

  An account to represent your credit card.

Cash

  A general purpose account, typically used for accounts not held at a bank, such as the cash in your wallet.

Loan

  An account to manage a loan for money either borrowed or lent. With a Loan account, KMyMoney automatically calculates interest payments to help you track the remaining principal on the loan. Loans with no interest should use the plain Asset or Liability type below, depending on whether the money is lent or borrowed. A schedule can be created to manage ongoing payments.

Investment

  An account to manage an investment such as stocks, bonds, or mutual funds.

Asset

  An account to manage an asset that does not fit in one of the above types. For example, this can be used to track the value of a vehicle.

Liability

  An account to manage a money you owe or a future expense that does not fit in one of the above types. This is most commonly used for loans with no interest. If interest needs to be calculated, you should use the Loan type above.

Equity

  Accounts of this type are used for Opening Balance Transactions in other accounts. KMyMoney automatically creates one account of this type and it is rarely necessary to create another.

Select the currency to be used for the account from the dropdown list. The default is the currency chosen when the data file was created.

Enter the date the account was opened or select it from the calendar using the icon to the right. You will not be able to enter any transaction with a date earlier than the account opening date, but you can change this date later, if necessary.

Enter the opening balance for the account. If this is an existing bank account, this information can be found on your statement. If it is a new account, the opening balance can be left at zero.

Selecting the Favorite Account checkbox will allow easier access in some dialogs and views of KMyMoney. In some places, this has also been referred to as a Preferred account.

To proceed to the next step click Next.

### Credit Card Accounts

When creating a Credit Card account, after entering the basic information and clicking Next, you can optionally have KMyMoney create a Scheduled Transaction for you.

If you want such a transaction generated, make sure the checkbox is selected and enter the required information.

Click Next to continue.

### Investment Accounts

In KMyMoney, Investment accounts contain only equities (stocks, bonds, etc.) but do not contain cash. (This is why you cannot specify a Opening balance for an Investment account.) If a transaction in an Investment account requires or generates cash (such as to buy or sell stock,) a Brokerage account is used for the cash. Brokerage accounts are described further in the chapter on Investments. When you create a new Investment account, after entering the basic information, and clicking Next, you have the option to create an associated Brokerage account.

There have been many requests to let Investment accounts also hold cash, and this will likely be possible in a future version of KMyMoney, along with other things not currently possible. However, this will involve a significant effort, and is not expected in the near future.

It is generally best to create the Brokerage account here, which will be given the same name as the Investment account, with "(Brokerage)" appended. Currently it is not possible to specify the opening date or balance for the Brokerage account at this point; you may do by editing the account details after the account has been created.

### Loan Accounts

Loan accounts have special features to help you manage Loans with interest and scheduled repayments. By providing KMyMoney with information about the loan, KMyMoney can help you track interest payments and the remaining principal of the loan.

On the Details page you enter the general information about the loan.

First, select whether you are borrowing or lending money. If you are borrowing money the loan will be a Liability account. If you are lending money the loan will be an Asset account.

Next, select the payee or payer of the loan. As always, if the name doesn't yet exist in the Payees list, enter it here and KMyMoney will create it for you.

The next three items are for handling Loans on which payments have already been made, If you select Yes in the Did you make/receive any payments yet? dropdown, you can then select whether you want to record all payments or just those from the beginning of the current year. If you want to record from the beginning of the current year, you are than asked to input the balance at the beginning of this year.

Next, select how often payments will be made and how often interest is compounded. Compounding is where the interest is added to the amount owed on the loan so that when the interest is next calculated there will be more interest paid on the interest. It's common for interest to be compounded at the same frequency that payments are made.

Next, enter the date the first payment to be recorded.

Finally, enter information about how the interest rate varies. If the loan is fixed-rate there is nothing to do. If the rate varies, select Variable in Type of interest rate and then enter the interval between interest rate changes and the date the first change of interest rate is due: KMyMoney will ask you to update the interest rate when that date arrives. Click Next to continue.

The Payments page is where you enter the payment and interest values for the loan.

First, select whether the interest rate is calculated when the payment is received or when it becomes due. If you don't know, leave it on the default value.

Next, enter the following values:

Loan amount

  The amount of the loan.

Interest rate

  The annual percentage interest rate of the loan. This must be a positive number. If there is no interest, then the loan should be created as an Asset or Liability account.

Term

  The length of the loan. Enter a number and select either Months or Years.

Payment (principal and interest)

  The amount of each loan payment. This is the total of the principal and interest paid with each payment.

Balloon payment

  Additional final payment made at the end of the term to pay off the remaining principal of the loan. For a repayment loan this is often zero. For an interest-only loan this will be the same as the loan amount.

Finally, use the Calculate button to check the values you have entered. You must have entered either all or all but one of the values listed above. If you omit two or more values the button is disabled because it is not possible to check that the entered values are consistent: in that case you will not be able to use the Loan account facility in KMyMoney and will instead have to use a Liability or Asset account to track the loan manually.

If you omit one value, KMyMoney will try to calculate it for you. If you have entered all values KMyMoney will check the values are consistent. KMyMoney will not adjust entered values other than the "Balloon payment", which it may adjust slightly to deal with rounding. If the values are inconsistent or KMyMoney cannot calculate the omitted value, KMyMoney will let you know so that you can correct any errors and repeat the calculation.

Once the values are consistent, the Next button is enabled and you can advance to the next page.

The Fees page is where you can enter any fees added to the loan payments.

If there are any fees press the Additional Fees button. The Transaction Split editor will be displayed for entry of the fees. Any lines added here will be included in the payment schedule for the loan. When you save the splits the Fees page will display the principal and interest payment, the total additional fees, and the total periodic payment.

KMyMoney will create a Scheduled Transaction for your loan. The Schedule page is where you enter the remaining details needed to create the Schedule.

First enter the Category to which loan interest will be assigned. Then enter the account from which or into which the loan payment will be made.

The page also displays the first payment date for which the Schedule will be created.

Optionally, KMyMoney can create a transaction representing what was received or paid when the loan was created.

If you borrowed or lent cash select the account from which or to which the loan amount was paid.

If you borrowed money to purchase a car you can select or create an Asset account to help you track the value of the new car.

If you re-financed an existing Loan, check the Refinance existing loan checkbox, select the Loan account and KMyMoney will create a transfer transaction paying off the existing loan.

If you don't want to create the payout transaction, check the Do not create payout transaction checkbox.

### Parent Account

This is the penultimate step in creating any new account except a loan. Depending on the type of account that is being created, a tree of your Asset or Liability accounts will be displayed. Most accounts are direct children of the Asset or Liability account type. However, most accounts may be created as subaccounts, using another account as the parent. There is no financial impact of making an account a subaccount; it is only used for organizing the hierarchical display of accounts in the Institutions View of the Accounts View.

The Parent Account page is not currently shown for Loans because they cannot be created as subaccounts. Also, Investment accounts cannot contain other accounts so they are not shown in the tree.

Select the account you wish contain the new account. If you do not select a parent account, the new account will be created at the top level.

### Review and save the account details

This is the final step in creating a new account. A summary of the information entered is displayed. Review it, and if everything is OK press Finish. Otherwise, either press Back to make corrections or Cancel to abandon creating the new account.

### Note

The Currency cannot be changed after the account is created. The account type can be changed, but only within a limited set of sufficiently similar type.

Opening / viewing accounts
Opening / viewing accounts

## Opening / viewing accounts

To display an account in the Ledgers View, you can either click the link to the account in the Home View, or you can click the ledgers icon in the View Selector. If the account is not already displayed there, then click “+” in the right-most tab and select the account in the dropdown box which appears. Alternatively, in the Accounts View or the Institutions View, either double-click the account name or right-click and select Open ledger.

Editing Account Information
Editing Account Information

## Editing Account Information

To edit a particular account, right-click the account name in the Accounts View or the Institutions View and choose Edit account... or with that account open in the ledger, select Account Edit Account.... A window will pop-up with several tabs, each allowing you to view and change certain information about the account. For more information on any of these details, see the section on creating a new account. Note that some of these fields may be disabled, possibly depending on the type of account. For example, Currency will always be disabled, since it can be set when the account it created, but not changed after that. Price Entry is only enabled for Investment Accounts.

This dialog has several tabs for configuring different aspects of an Account.

General

  View the general information about the account, and change the name, start or opening date, as well as some of the other basic settings of the account.

Institution

  View and change the associated banking institution and account numbers. You can also create a new institution here.

Hierarchy

  This shows where the account is in the overall hierarchy of accounts. You can change the parent account by dragging the account and dropping it on a different parent account in this view of the account hierarchy, or in the Accounts View or the Institutions View. You can also change the parent account here by clicking the new parent account and then clicking OK.

Limits

  This tab is only present for asset and liability accounts. If you enter amounts in the available fields, KMyMoney will warn you when the account balance reaches or exceeds those values.

Tax

  Here you can check whether this is a VAT account, and you can specify the percentage of the VAT. In addition, you can check whether to include this account on tax reports.

Online Settings

  This tab is only be present if the account has been mapped to an online account. It has three subtabs.

  Account Details

    This shows the status of the online connection, the bank/broker, and the account number. It also allows you to store or change the password for the online account. Where and how the password is actually stored depends on your specific instance, but most commonly, it is stored by the KDE Wallet Manager.

  OFX Details

    Here you can adjust certain details KMyMoney uses when it establishes an OFX connection with the institution. This should only be necessary if you get certain errors when you first set up the online account, or perhaps if your institution changes its OFX server software.

  Import Details

    In the upper box, you can tell KMyMoney what to use as the start date for the import. The lower box has several items KMyMoney uses when creating transactions from the downloaded data.

    - You can choose whether the payee's name is based on the PAYEEID, NAME, or MEMO field of the imported transaction. Different institutions use different standards, so you may need to try a different value here if your imported transactions seem to consistently have the wrong Payee. Unfortunately, this only applies to Direct Connect, but will hopefully also apply to OFX file import at some point.

    - Some banks do not follow the OFX standard of providing a repeatable, unique FITID (Financial Institution Transaction Identification) which can cause duplicate transactions on repeated downloads. If this happens, you can change the method KMyMoney uses to detect duplicates from the OFX FITID to the internally calculated KMyMoney ID. This is not frequently necessary.

    - Importing transactions from an institution in a different timezone can sometimes lead to the wrong date on an imported transaction. If this happens, you can set a Timezone offset to adjust for the difference.

    - Very infrequently, an institution will create OFX downloads with the sign of the transaction amount reversed. You can click this checkbox to correct this problem.

    - A similar problem sometimes occurs, but only for the values in investment transactions, such as the purchase and sale of stocks. Clicking this checkbox corrects this.

Deleting and Closing Accounts
Deleting and Closing Accounts

## Deleting and Closing Accounts

An account can only be deleted if it has no transactions in it, and is not referred to by any other item in the data file. In general, this means you first need to remove all the transactions from that account in the ledger. Then you can select Account → Delete account... or right-click the name in the Accounts View and select Delete account... from the popup menu.

If you are unable to delete an account which looks like it has no transactions in it, there may be transactions which are not displayed in the ledger due to a filter setting. See Settings → Configure KMyMoney... → General → Filter. Clear all filters and set the start date to 1.1.1900 or so.

There may also be transactions in your ledger that are not shown, for example, if you have inadvertently typed in the wrong year when making an entry so that an entry remains outside the opening date of KMyMoney. This appears beneath the ledger page as remaining funds.

In some cases, you will be able to select Delete account..., but will get a popup stating why KMyMoney cannot delete the account.

Deleting an Account completely removes all data related to that account from your data file. However, there may be cases where you have closed an account at the bank, and although you do not want to see it in your daily use of KMyMoney you want to keep the data for use in historical reports, you can select Account Close account or right-click the name in the Accounts View and select Close account... from the popup menu. This will mark the account as closed, and it's visibility will depend on the setting of Show all accounts. Note that to close an account, it must have a zero balance, but it can still contain transactions.

It is also possible to re-open a closed account. This is most commonly necessary if you have closed an account, but find you did so before actually entering all transactions for the account, such as a final interest payment or dividend for an investment account. In this case, you can select Account Reopen account or right-click the name in the Accounts View and select Reopen account from the popup menu.

Account Options
Account Options

## Account Options

Right clicking an Account in either the Institutions View or the Accounts View will bring up the Accounts Options. You can also just select the Account menu.

Note that each of the listed menu options may be enabled or disabled depending on the particular account selected.

Selecting New account... steps you through the Account creation process.

Selecting New Category... steps you through the Category creation process.

Selecting Open Ledger brings you directly to the Ledgers View or the Investments View, depending on the account type.

Selecting Edit account... brings up a window allowing you to edit various aspects of the account.

Selecting Deleting account... deletes the selected account, but only if certain criteria are met, as described here. Otherwise, this item is disabled.

Selecting Reconcile... opens up the Reconciliation Wizard. Postpone and Finish are also described in the same section.

Selecting Transaction Report is only enabled for a limited selection of Accounts, in which case it opens a Transaction Report for the selected account, showing transactions YTD.

Selecting Close account closes the selected account, as long as certain criteria are met, as described here. Reopen account is described in the same section.

Selecting Map account... and Unmap account... allows you to associate an account with an online account and to remove the association. Selecting Update account... fetches transaction data from the online source for an account which has already been mapped. In addition, selecting Update all accounts..., which only appears on the main Account menu, updates all mapped accounts. These are all described in the Importing and Exporting Chapter.

Selecting New investment..., which only appears on the context menu when you right-click an account in the Investments View or Accounts View, brings up the New Investment Wizard.

Chapter 7. Categories
Categories

# Chapter 7. Categories

Roger Lum `<rogerlum@gmail.com>`

Michael Carpino `<mfcarpino@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

Internally, Categories are treated by KMyMoney as a special type of account, so many of the features of Categories are very similar to those of other Accounts.

## Categories View

The Categories View provides a summary of all the existing categories in your current data file. Similar to the Accounts View, categories are grouped into Income and Expense. As with the Institutions View and Accounts View, the list of categories can be expanded or collapsed by clicking the arrow to the left of the type or name. As with Asset and Liability Accounts, Categories can be considered subcategories, with a parent of another category instead of the top-level Income or Expense.

Similar to the Accounts View, the Categories View displays several columns with descriptive and summary information about each category. As with the Accounts View, you can select which columns are shown by right-clicking any column heading and selecting or unselecting the checkbox next to the name of the column.

The columns available for Categories are identical to those for Accounts for Name, Type, Tax, VAT, Balance, and Total Value. Online, Account Number, and IBAN are not applicable to Categories. There is one additional column available.

CC

  An indication that a cost center assignment is necessary under certain conditions when entering a transaction for this category. This is a recently added feature, which is not yet implemented, so this column is not currently used. In addition, it may not show up at all, depending on the value of a build time configuration setting.

Creating a category
Creating a category

## Creating a category

There are 3 ways to create a new category: select the Category → New category menu item, right-click a parent in the tree in the Categories View and select the New Category option, or directly type the name of the new category when adding or editing a transaction in the Ledger. Doing any of these steps will direct you to the Create a new Category dialog. This dialog contains three tabs: General, Hierarchy, and Tax. The General tab includes editable fields for the new category name, type, and currency (with the default currency preselected,) as well as options for Last check number, Notes, and a checkbox for Cost Center assignment required. In the Hierarchy tab, you are able to select the appropriate parent for the category. Finally, in the Tax tab, there are fields to enable and configure VAT support, and a checkbox to include this category in tax related reports.

Editing a Category
Editing a Category

## Editing a Category

To edit a category, right-click a category name in the Category View, and choose Edit category.... A window appears with the same three tabs as the Create a new Category dialog: General, Hierarchy, and Tax. Each tab allows you to edit certain details of the category.

The General tab allows you to edit the name of the category, any notes you entered when you created the category, and the Last check number. The Type and Currency cannot be changed from their initial values.

The Hierarchy tab allows you to change the parent of the selected category by clicking another category which then becomes the parent. In addition, you can drag a category and drop it under its new parent.

The Tax tab allows you to assign or change VAT details, or to alter the automatic VAT assignment. It also allows you to toggle whether or not the category is included in tax related reports.

VAT Support
VAT Support

## VAT Support

Thomas Baumgart `<ipwizard@users.sourceforge.net>`

You can turn an expense/income category into a VAT category, which means that it receives all the splits that actually make up the VAT payment towards the government. You can also enter a specific percentage rate.

Categories can be assigned a VAT category, which allows KMyMoney to split a transaction for a category into two parts, one for the category and one for the VAT. Depending on the setting of the gross/net amount switch, the amount you enter for the transaction is the gross or net amount.

Example: In Germany, there are three VAT percentages (0%, 7%, and 19%). So I have a main category "VAT paid" and three subcategories, one for each percentage rate. I create these on both the income and the expense sides so that I have six categories in total. For the goods I buy, I select one of the above mentioned categories as the "VAT category assignment".

When I buy goods, I enter them into a transaction. Let's assume I have selected the gross amount entry method, once I enter the category and amount, KMyMoney will recognize that there's a VAT assignment and calculate the VAT part, create a second split with the VAT account and VAT amount and reduce the category amount.

The same applies to income categories but the other way around. Hope that makes sense.

Deleting a category
Deleting a category

## Deleting a category

Deleting a Category is similar to deleting an Account. To delete a category, right-click its name in the Categories View, and select Delete Category.... If the category has no transactions, schedules, or budgets associated with it, and it is not set as the default category for new transactions with any payee, it will be deleted.

If the category has any of those items, a popup will be displayed allowing you to choose another category to which all those items can be reassigned before the category is deleted.

If you delete a category which is the parent of any other categories, a dialog will be displayed for you to choose whether to delete that category and all its sub-categories or just the parent category. If you choose to just delete the parent category, then all its sub-categories will be moved to its parent category.

Note that deleting some categories may prompt both for where to reassign its data and also whether or not to delete any sub-categories.

Open ledger for a category
Open ledger for a category

## Open ledger for a category

The menu options for categories includes a choice to open a ledger for that category. When this option is selected KMyMoney will display that category in a tab in the Ledgers View, showing all the transactions for the selected category. This allows you to quickly review all the transactions in detail for the selected category. You can then right-click any transaction to obtain additional details about the specific transaction, and can even edit the transaction.

Chapter 8. Tags
Tags

# Chapter 8. Tags

Cristian Oneț `<onet.cristian@gmail.com>`

Michael Carpino `<mfcarpino@gmail.com>`

Revision 5.2.0 (2024-12-01)

Tags provide an additional way for you to group and categorize transactions. They are often useful in searching for transactions and for creating reports.

## Tags View

The Tags View provides information about all the tags that have been added to the data file. The display is split into two areas.

### Tags List

On the left is a list of tags, with buttons for adding, renaming, or deleting a tag.

On the right you can see more detailed information about the tag selected in the list on the left, in one of the two tabs: Transactions and Details. The Transactions tab displays all the transactions associated with the tag. The Details tab includes a user-selectable color, as well as Notes, which are not used elsewhere. Note that if you change the color, which is used in the symbol displayed before the tag name in any associated transactions, you need to click Update at the lower right of the Details area for it to be saved.

### Adding a Tag

As with most actions in KMyMoney, there are multiple ways to create a new tag. First, you can click the
new tag icon. Second, you can right-click any tag and choose New tag.... This creates a new tag called “New tag.” See the next section for how to rename the tag. Finally, you can add a new tag directly in the ledger or within a split transaction by typing the name of the tag in the tag field. KMyMoney will ask if you want to add this tag and after selecting “yes” it will be added.

### Renaming a Tag

To rename a tag, either click the tag name to select it and then click
Rename Tag, or right-click the name and then select Rename tag. The name then becomes editable. Changing the name will affect the name in all the transactions in which it appears.

### Deleting a Tag

To delete a tag, either select it and click
delete tag or right-click the tag name and select Delete tag. If the tag has any transactions, you will be presented with a dialog that allows you to reassign them to a different tag.

### Note

Tags were introduced to KMyMoney in version 4.7, but not all of the methods for importing data are able to import tags. It is understood that this is an important feature, and it will eventually be added to all import methods

Tagged transactions and Tag details
Tagged transactions and Tag details

## Tagged transactions and Tag details

To view the transactions or view and edit the information associated with a particular tag, select the tag from the list and select the appropriate tab on the right side of the dialog.

### Tagged transactions

To see a list of the transactions associated with the selected tag, select the Transactions tab. This list is similar to the list of transactions for a Payee. You can double-click a transaction to edit it, or you can right-click the transaction and select Go to 'Account name' to go to the Ledgers View of that transaction in the account in which the transaction has been tagged.

### Tag details

To view and edit the information associated with a particular tag, select the Details tab.

- You can select the color used to highlight transactions with which this tag has been associated. If you click the color bar, you will get a color chooser dialog.

- Clicking the Closed checkbox will not alter any transactions already associated with the tag, but it will prevent assigning the tag to any additional transactions.

- To modify the notes associated with the tag, just edit the text in the box.

When you are done, don't forget to click Update, at the lower right of the window, although you will be prompted if you try to leave the dialog without having done so.

Chapter 9. Payees
Payees

# Chapter 9. Payees

Roger Lum `<rogerlum@gmail.com>`

Ace Jones `<acejones@users.sourceforge.net>`

Michael Carpino `<mfcarpino@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

Payees represent people or organizations to whom you give money. Payers are those from whom you receive money. They are handled identically in KMyMoney and are only distinguished by the direction in which the money moves. It is possible for a single person or organization to be both a Payee and a Payer. An example is your employer, who pays you money as a salary, but whom you might pay money when you eat lunch in the cafeteria at work. It is completely your choice whether to use the same Payee for both of these transaction types, or to create a separate Payee and Payer, if you want to track them separately.

## Payees View

The Payees View provides detailed information about all the payees and payers involved in transactions. KMyMoney stores information about all the payees and payers from all existing transactions. This makes it possible to pick a payee from a list instead of having to type the full name, which also decreases the chance of misspelling or typing the wrong name.

Like the Tags View, the Payees View is split into two main areas: a payees and payers list on the left, and a detail area on the right.

The Payees View is split into two main areas: a payees and payers list on the left, and a detail area on the right. The Your payees section allows for adding, deleting, renaming, and merging payees. The detail area has several tabs, showing the transactions, address, matching information, default category and account numbers for the payee selected in the list. Furthermore, links between payee-specific contents of a transaction's memo field and local file paths or remote URL can be created and managed.

The details area has several tabs: Transactions, Address, Matching, Default Category, Account Numbers, and Link Matching. Each of these is described in the following sections.

### Adding a Payee or Payer

To add a payee or payer, click the
New Payee button. This creates a new payee called “New Payee”. You can also right-click any existing payee and select Add payee.

### Renaming a Payee or Payer

To rename a payee or payer, select the payee (left click the name) and click
Rename Payee. You can also double-click the name or right-click the name and select Rename payee. The name then becomes editable. Changing the name will affect the name in all the transactions in which it appears.

### Deleting a Payee or Payer

To remove a payee or payer, select it and click
Delete Payee, or right-click the name and select Delete payee. If the payee has any transactions, you will be presented with a dialog that allows you to reassign them to a different payee, and also a checkbox to add the deleted name to the new payee's matching list.

### Merging Payees

To merge two payees, select one of them (left-click the name) then select the other (Ctrl+left click). You can then either click
Merge Payees or right-click either of the selected payees and select Merge Payees.. You will get a pop-up asking if you really want to merge the selected payees. If you click Yes, you will get another popup for you to specify the name of the payee for the combined data. There will be a drop-down with the names of the payees you selected for merging (you can actually select more than two) and it also allows you to type in a completely new name. There is also a checkbox to add the names of the merged payees to the matching list of the new payee.

Viewing Transactions for a Payee
Viewing Transactions for a Payee

## Viewing Transactions for a Payee

To view all transactions associated with a particular payee, select the payee from the list and select the Transactions tab in the details area. Double-clicking a particular transaction will allow you to edit that transaction in the context of the appropriate account. Right-clicking a transaction will pop up a context menu with appropriate actions, including the ability to go directly to the ledger of the appropriate account, with that transaction selected.

Additional Payee Details
Additional Payee Details

## Additional Payee Details

### Payee Personal Information

To view and edit the personal information associated with a particular payee, select the payee from the list and select the Address tab. Although we call this personal information, it is also applicable if the payee is a corporation or other organization. Along with address information you can also store a telephone number, email address, and notes pertaining to the selected payee. To modify this information, edit the detail area directly and press the Update button when finished.

### Transaction Matching Settings

#### Overview

KMyMoney has the ability to automatically assign the proper payee to imported transactions. This can be handy when importing transactions from your bank, when the payee name has extra unnecessary characters, or worse, if the payee names change. The ability to match transactions to a particular payee assists in providing a consist naming of payees within the ledger and reports.

For example, let's say your monthly mortgage payment comes in from your bank like this “SUN TRUST BANK, MAPLE VALLEY, GA 111506” one month and then “SUN TRUST BANK MAPLE VALLEY, GA 121606” the next month. You would really like both of those transactions to be assigned to your payee “Sun Trust”. In this case, the transaction matching feature is for you!

#### Setting up Payee Matching

On the Matching tab, you can set the matching settings for transactions imported for this payee. You can select one of four options with the Match method dropdown.

- No Matching: This disables the matching feature for this payee. This is the default setting for all payees.

- Match Payees name (partial): This enables the feature based on a partial name matching of the Payee and uses the payee name itself as the Match Key.

- Match Payees name (exact): This enables the feature based on an exact match of the Payee. You might use this method when you want to keep track of different Payees that have the same business name but have different locations.

- Match on a name listed below: This enables matching based on multiple different or optional names for a Payee. You would use this matching ability when you have a particular Payee that has different business names but you want all imported transactions identified by any of those names to be associated with a single Payee in KMyMoney.

  Another use of this method is if you want a payee for "Other food stores" to group all food stores other than the one or two you use often enough to want to track separately. You would enter each of the different store's names on the matching list, and all will then be matched to the same payee.

With any of these options you can choose whether or not to ignore the case sensitivity of the spelling of the payee based on whether you check Ignore Case.

#### Importing Transactions

The Match Keys you have set will be considered whenever you import transactions using QIF, CSV, OFX, or AqBanking from a file or online source. If the Match Key for one of your payees is found anywhere in the payee of the imported transaction, the corresponding payee from your list will be assigned to that transaction. Thus, a Match Key of “Sun Trust” will match “SUN TRUST BANK MAPLE VALLEY,GA” or even “MORGEN SUN TRUST&LOAN”. So choose your Match Keys carefully.

### Note

If a transaction payee matches more than one Match Key, the behavior is undefined. KMyMoney will arbitrarily pick one of the matching payees.

Manage link matching
Manage link matching

## Manage link matching

This tab can be used to link a part of the memo field of a transaction to a remote or local URL, for example to make invoices or other documents accessible.

The tab contains input fields for a pattern and a URL template. The specified pattern is treated as a regular expression, which is applied to the memo field of transactions associated with this payee, and the resulting text is inserted into the URL template at designated locations.

The resulting URL is displayed as a link in the general ledger for the corresponding transactions (see “Detail” column) and in the detail view at the bottom left of the memo entry field.

The link can also be accessed via the “Open URL” menu item in the context menu of a transaction or via a keyboard shortcut.

The associated keyboard shortcut can be configured in the Setting and Help Menu.

### Hints

Found patterns, which must match Perl-compatible regular expressions, are inserted in the URL template in the place of the supported placeholders. Simple examples are:

- \d+\b - one or more digits followed by a word boundary.

- \d{2,4}\b - 2 to 4 digits followed by a word boundary

- \d{3}-d{6}\b - 3 digits followed by a hyphen and 6 digits followed by a word boundary

Supported placeholders are:

- %1 - first found expression

- %2 - second found expression (optional)

When using two independent patterns, the individual expressions in the pattern are separated by parentheses, e.g., `(..)...(..)`.

In addition, predefined variables can be used in the URL template. Currently supported variables are:

- %year - the year from the date of the corresponding transaction

Chapter 10. Schedules
Schedules

# Chapter 10. Schedules

Roger Lum `<rogerlum@gmail.com>`

Michael T. Edwardes `<mte@users.sourceforge.net>`

Michael Carpino `<mfcarpino@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## Introduction

Schedules maintain information about transactions that occur one or more times over a specified period of time.

Sometimes called a scheduled transaction or a recurring transaction, a schedule provides a means to record information about a transaction that happens on a regular basis. You can schedule deposit, transfer, withdrawal, and loan transactions. There is a lot of flexibility in schedules, including transactions that occur Once, or on a basis of number of Days, Weeks, Half-months, Months, or Years.

Because you know these transactions happen regularly, whether they are payments made to you or payments you make to someone else, you can create a Schedule to record information about the recurring details to simplify and easily remember when the event will next occur.

Schedules can be created to reflect money coming in or out of your accounts on a consistent basis. Common uses include paychecks, taxes, insurance, credit card payments, dues, interest, loans, mortgage, and rents. Scheduling a payment like these provides for a useful reminder so you can manage expected future financial matters effectively.

A schedule consists of two main parts: the transaction data and the scheduling data. The scheduling data records the occurrence of the schedule, i.e., when the transaction is to be entered into the ledger and how. The transaction data records the normal details about the transaction, including options for Payment method, Account, Pay to/from, Category, Tags, Memo, Due date, Amount, and Status. Along with these, you can also select additional options based on when to process the transaction.

Types of schedules
Types of schedules

## Types of schedules

There are four different types of schedules in KMyMoney:

Deposits. These schedules are for money coming into your account, such as a paycheck, bonus, or interest income.

Bills/Withdrawals. These are for money going out of your account, such as a membership, utility bill, tax payment, or car registration.

Transfer. These are for money going out of one account and into another account, such as making a credit card payment from your checking account.

Loans. These are a special type of schedule, which is created when you create a Loan account.

The Schedules View
The Schedules View

## The Schedules View

Open the Schedules View by clicking the Scheduled transactions icon in the view selector.

The Schedules View consists of a single display area with a New Schedule... button and a Filter text box above it.

To create a new schedule click New Schedule.... KMyMoney will display the new schedule dialog, which can be used to create a Deposit, Transfer, or Bill/Withdrawal schedule. Loan schedules are handled differently, as described in the Loans section of this manual.

The New Schedule dialog
The New Schedule dialog

## The New Schedule dialog

A New Schedule dialog is now shown, prompting for the schedule and transaction details. The requested data include the following:

1. Schedule Name

2. Next due date

3. Frequency

4. Payment method

5. Amount

6. Other transaction details

7. Schedule options

### Filling in the Schedule name, Frequency, and Payment information.

Enter the name of the schedule and the date of the next occurrence into their respective fields. The name is how the schedule will be labelled in the Schedules View and other displays. Specify how often the schedule should occur, using the Frequency field and dropdown list. If the dropdown is set to “Once”, the Frequency field will be disabled. Otherwise, the dropdown indicates a time interval, and the transaction will happen every Frequency occurrences of that interval. Note that some intervals can be indicated in more than one way, such as 6 x "weekly" or 3 x "every other week" or 2 x "every three weeks." You cannot indicate fractions of an interval, such as twice per month; you need to use a shorter interval, such as 1 x "every half month."

If the amount varies transaction to transaction make sure to check the The amount is an estimate because it varies for each payment checkbox in the Options area below, and you will be prompted for the correct amount when it is entered into the ledger. The amount is entered as a positive number in either the Payment or Deposit field. The other required fields in this area are the Account and the Category. The Status dropdown indicates the state of the transaction when KMyMoney enters it into the ledger. The remaining fields in this section are optional.

### Modifying the Schedule Options section

The If this schedule occurs on a non-processing date: dropdown allows you to choose how to handle non-processing days. Non-processing days include weekends and holidays known to KMyMoney for the region specified in the appropriate configuration option. If the schedule occurs on a non-processing day you can choose whether to Do not change the date, Change the date to the previous processing day, or Change the date to the next processing day. This option is available to replicate some of the real world business operational processing.

The The amount is an estimate because is varies for each payment checkbox allows you to select whether KMyMoney automatically enters that amount into the ledger or prompts you for the actual amount when the schedule is due.

The Do not change amount of category but modify exchange rate of transaction checkbox can be used when the schedule involves an account and a category with different currencies. If it is not selected, the amount specified is used when the transaction is entered into the ledger. Checking the box tells KMyMoney that the amount is specified in the currency of the category. You will still need to confirm the other value or the conversion rate when the transaction is entered into the ledger.

The Process this schedule always at the last day of the month checkbox allows for scheduling for irregular month-end date processing.

The Enter this schedule into the register automatically when it is due checkbox tells KMyMoney to enter the transaction into the ledger on the correct date without human intervention. Otherwise, when the transaction is due to be entered, KMyMoney will open a dialog box asking you to confirm that you want it to be entered. This behavior is configurable, and more information can be found in the Settings section.

If you know the schedule will not continue indefinitely, check the This schedule will end at some time and you can enter either the Number of transactions remaining: or the Date of final transaction.

When you have entered all the necessary information click OK to continue.

Editing schedules
Editing schedules

## Editing schedules

To edit a schedule simply select the entry in the list, then right-click and select Edit scheduled transaction in the context menu. This will bring up a dialog similar to the New Scheduled transaction dialog, where you can update the necessary data.

Deleting schedules
Deleting schedules

## Deleting schedules

To delete a schedule simply select the entry in the list, then right-click and select Delete scheduled transaction. in the context menu.

### Warning

Note that while many actions in KMyMoney can be undone, this is not true for deleting a schedule. If you delete a schedule, and realize you did not want to do that, you will have to completely recreate it from scratch.

Duplicating schedules
Duplicating schedules

## Duplicating schedules

To duplicate a schedule simply select the entry in the list, then right-click and select Duplicate scheduled transaction in the context menu.

Entering scheduled transactions
Entering scheduled transactions

## Entering scheduled transactions

Entering a scheduled transaction means actually creating a transaction in the appropriate ledger, using the details specified in the schedule. Scheduled transactions can be entered in one of 3 different ways:

- Manually, by right-clicking the entry in the Schedules View and selecting Enter next transaction in the context menu.

- KMyMoney can enter them with or without your interaction upon startup.

- KMyMoney can enter them with your interaction during online banking or when you import a bank statement.

### Confirming the transaction to enter

The first and third methods will display an Enter scheduled transaction dialog (possibly after displaying an informational window about the process.) This dialog prompts you to confirm or update the required information that was entered when you created the schedule.

This information can be changed, and the changes can be applied to just this one instance of the schedule or to all subsequent transactions. After checking that all the data is correct clicking OK will add the transaction to the ledger and update the next due date of the schedule to the next occurrence. If you have changed any of the transaction data a further confirmation of what you changed will be displayed, giving you a final chance to accept or reject the changes.

Select what you want to do with the information presented and click OK or Cancel.

### Letting KMyMoney enter the scheduled transaction(s) for you

Alternatively, KMyMoney can check which schedules are due upon startup and enter them for you if the appropriate option was checked when setting up the schedule.

If the option was not checked then KMyMoney will open the previously mentioned dialog and you can follow the steps mentioned there. KMyMoney will also open the dialog if the amount is an estimate so you can enter the actual amount.

You can also opt to have KMyMoney not check which transactions are scheduled on startup by deselecting the option in the Settings dialog and any overdue transaction or transactions due 'today' will be shown in the Home view for you to enter manually.

Chapter 11. Ledgers
Ledgers

# Chapter 11. Ledgers

Michael T. Edwardes `<mte@users.sourceforge.net>`

Roger Lum `<rogerlum@gmail.com>`

Michael Carpino `<mfcarpino@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## The Ledgers View

The Ledgers View is functionally the data integration center of KMyMoney. This view is for entering, examining, editing, and deleting transactions in your defined accounts. This view has had a major overhaul since the 5.1 series of KMyMoney releases. The main difference is that it is now a tabbed display, so you can have more than one account displayed at once. You can actually only see one at a time, but switching by simply clicking a different tab is significantly more convenient than having to select the other account in a dropdown.

The main display area shows zero or more tabs, each one for the ledger display on one account. The rightmost tab will always have a +. Clicking this will display a dropdown where you can select the account to view, and a new tab will be created for that account. The rest of this chapter will describe using the ledger for any single account.

The Ledgers View allows for several key actions: searching and viewing transactions; entering new transaction; and editing, duplicating, deleting, and scheduling existing transactions. Along with this it also provides the ability to move, mark, show additional details for transactions. Other functionality within the Ledgers View includes modifying and reconciling the account.

The view has three elements:

- The transaction list

- The filter area, which may or may not be displayed

- The transaction form, which may or may not be displayed, depending upon your configuration settings as selected in the Configure KMyMoney Ledger section.

Previous versions of KMyMoney had a dropdown where you could select the account to be displayed in the ledger. This is no longer necessary, as to view another account, you just open a new tab.

### The transaction list

The transaction list displays all the (possible filtered) transactions in the account. The following columns are always displayed:

Date. the post date, or the actual date the transaction occurred

Detail. the category/categories, other account (for transfers,) and memo for the transaction

Payment and Deposit. the amount of money either leaving or entering the account in this transaction. A value will appear in one or the other column, as appropriate.

Balance. This depends on the currently displayed sort order, and will not be calculated if the display is filtered by use of the filter box or transaction status dropdown, as described above.

The following columns are optional, and their presence can be toggled by right clicking any column header and selecting or deselecting the appropriate checkbox. Currently, the columns cannot be reordered. The width of a column can be adjusted by using the mouse to grab the line between that column header and the one to its right.

No. the transaction number, which is always optional

Entry. the Entry Date, which is the date the transaction was entered into the ledger.

Payee. the person or organization you are giving money to or receiving money from.

C. the Reconciliation Status. The value can be blank, “C” for Cleared, or “R” for Reconciled. The meaning of these terms is discussed further below.

After a transaction has been entered, it is displayed in the transaction list. You can also change transaction properties or even create new transactions directly in the list. In the transactions list, the default order of transactions is sorted by transaction date, with the most recent transaction on the bottom. Left clicking the header of the transaction list brings up a dialog box that will allow the ability to change the sort order of the transactions. For instructions on how to change the default sort order, see the Sorting tab section of the KMyMoney Settings Chapter.

Note that altering the sort order can be useful in special circumstances, but for many sort orders, especially where the transaction post date is not the first sort key, the balance column will not be very meaningful, and will almost certainly not match the balance of any statement or display by the bank or institution. To minimize confusion, in such cases, the balance column will show all values as “---” and headers which are date dependent (e.g. online balance or reconciliation) are not shown.

In previous versions of KMyMoney you needed to right-click a column header to change the sort order. Now, right-clicking allows you to toggle display of the optional columns, and you need to left-click to change the sort order.

At the bottom of the transaction list, KMyMoney displays three values:

Last reconciliation. This is the most recent date when you reconciled this account. Reconciliation is an important process for many accounts, and is described in its own chapter.

Cleared. This is the total of all cleared and reconciled transactions in this account. See this section for more information about the cleared and reconciled states of transactions.

Balance. This is where KMyMoney displays the current balance of the account, which is the sum of all transactions in the account. However, if you select more than one transaction in the transaction list, this changes to display the sum of the selected transactions. This returns to the balance when no transactions or only one transaction is selected.

### The filter area

In previous versions of KMyMoney, the filter area was above the transaction list, and it was always displayed. Now, when shown, it is below the list. It is normally hidden, but can be displayed by typing Ctrl+F. At the left of the filter area is a
dialog close icon. Clicking this will clear any filters in place and hide the filter area.

When displayed, most of the filter area is a text entry box. Typing here will cause KMyMoney to display only transactions containing the text typed in the box. The text specified can be in any of the fields of the transaction for the displayed account. Clicking the
clear text icon at the right end of the text entry box will clear any text that has been entered.

At the right of the text entry is a status filter dropdown. The default value is Any status, which does not apply any filter to the list. The Not marked and Cleared choices have been previously explained. Not reconciled includes transactions in either of the above groups. There is currently so specific filter for Reconciled transactions.

Imported selects transactions which have been imported, even if they have been matched with a non-imported transaction. Matched selects transactions which have been matched, either by KMyMoney as part of the import process or manually matched by the user. However, once you have clicked Accept on such a transaction, it will not be selected by this filter.

Erroneous selects transactions where KMyMoney has detected some problem. Most commonly, these are unbalanced transactions, which is often the case for imported transactions where a category was not assigned.

Scheduled selects upcoming Scheduled Transactions. These are displayed in the Transactions List for your convenience, but have not actually been entered into the ledger yet. When you right-click on one of them, the context menu displayed is Scheduled transaction options which is not the same as Transaction options displayed for regular transactions.

### The transaction form

Whether or not the transaction form is displayed in the Ledgers View depends on your configuration settings and the type of account being displayed. If present, it includes fields for all the details of a single transaction. It is described in more detail in the following sections.

When it is displayed, the transaction form is a read-only display of the currently selected transaction. It is always at the bottom of the Transactions View, below the filter area, if that is displayed. It is separated from everything above it by a splitter bar, which can be dragged up or down to change the height of the form. If dragged to the bottom, it will hide the form, although the height of the form set that way is not persistent, and will revert to its default when KMyMoney is restarted. The splitter, like the transaction form itself, is only available when the appropriate configuration to show the form is activated.

Entering and Editing Transactions
Entering and Editing Transactions

## Entering and Editing Transactions

Entering and editing transactions is now done directly in the transaction list, whether or not the transaction form is displayed.

The fields in the input area match the fields in the transaction list. Additional fields include the Memo field, for a more detailed description or information related to the transaction, and a Category selection. The Split button allows you to split the transaction into multiple categories.

To enter a new transaction into the ledger, you can either click the empty entry at the bottom of the ledger list, press Ctrl+Ins, or select the Transaction → New transaction... menu item. To edit an existing transaction, use the Up and Down arrow keys to navigate through the list. After pressing Enter or double-clicking an entry, the transaction list displays the fields required to enter or edit the transaction.

Note that the layout of the transaction entry area has been revised in KMyMoney 5.2. Whether a new transaction is a deposit, withdrawal, or transfer is determined by the data you enter in the amount and category fields. You do not need to explicitly choose a specific tab or specify To: or From:.

To move through the fields press the Tab key and when done press Enter to save the changes or Esc to cancel.

In case the option Use Enter to move between fields is selected, the Enter key moves to the next field just as the Tab key except for the last entry field where it saves the data.

### The fields of a transaction

Enter the information using the following notes on the available fields. Note that many fields have “Auto Completion” turned on. That is, if you start typing, KMyMoney will offer alternatives matching the characters you begin to enter. To select the matching content simply click the entry or press the appropriate keyboard keys. If the entry is not listed finish typing the content to add the new value. The next time you type the content, KMyMoney will find it for you as you begin to enter the initial characters.

Note also that the actual fields displayed for a transaction depend on the type of account. For example, Investment Account transactions include fields for activity type, security, and other investment specific items.

#### Payer/Payee

This is who the money comes from or goes to. If the payee is a new entry KMyMoney will ask if you wish to add this to the list of Payees. Any other information related to a payee or payer, such as address, phone number and account number as well as notes can be updated in the Payees View.

#### Category

This specifies an income or expense category for accounting and reporting purposes, and enables you to group certain transactions. Type the name of the category into the defined field. If you have entered the category and it does not exist then KMyMoney will ask if you want to create a new one. If you select Yes KMyMoney will then open a dialog box that allows for the further definition of the category based on General, Hierarchy, and Tax characteristics.

For Transfer transactions, you select the other account in the Category field.

If you wish to associate parts of the transaction with different categories, KMyMoney can handle this need. An example might be a cash withdrawal of 50, of which you use 10 on food, 20 on beer, and 20 as cash. The transaction will therefore be assigned three categories: Food, Beer, and Cash. To do this, you need to use Split Transactions, which is described in more detail below.

See the special section on KMyMoney fields for some additional information on how to use this field.

#### Tags

Tags are similar to Categories, and can be used to maintain an orthogonal view to Categories. They provide the ability to group transactions within a Category based on your defined needs. This need could be defined by a specifics to Person, Place, or Thing. For example, you might have a Category for each different type of automotive expenses, and then have a Tag for each vehicle. As with Categories, you can select from the dropdown list, or type a new Tag name, and be prompted if you want to create a new Tag with that name. Within the Tag field KMyMoney will allow for multiple tags entered within a single transaction. Also, you can enter tags on an individual split.

#### Memo

A single or multi-line memo can be entered if you wish to record any further details of the transaction.

#### Number

The transaction number can be entered if needed. Note that the check number field can be made visible or invisible in the ledger list if desired. This is configured in the Ledger Settings dialog. While this is most commonly used for a Check Number in a Checking account, it can be used in any type of account, in any way you might want to number your transactions.

#### Date

The transaction's date must be entered to specify when the transaction took place. See the special KMyMoney fields section for more information on how the date input field can be used to make entering dates quicker and easier. For transactions in checking and credit card accounts, it is your choice whether to use the actual date (when you wrote the check or made the purchase) or the posting date as reported by the bank or credit card company. Using the actual date can help you track when you made the purchase, for example, but the statement or downloaded data from the bank is more likely to use the posting date. KMyMoney automatically keeps the date the transaction was entered into the ledger, but this is in a different field, which is optionally displayed in the ledger list.

Note you cannot explicitly enter the Entry Date, which is the date the transaction is actually entered into the ledger. This is always set by KMyMoney

#### Amount

Finally, enter the transaction amount into either the Payment or Deposit field. Note that a simple calculator can be displayed, either by clicking the icon to the right of the field, or by entering the % character into the field, or by entering any of these mathematical symbols: + - * / in a formula, as in 12 + 3. When entering the plus sign, the calculator will be opened. Note that only the final result of any calculation will be saved as the Payment or Deposit amount of the transaction.

When you are satisfied that all the fields have been adequately filled in, click Enter. If you accidentally press or click Enter before you have finished entering all the data, click Edit to resume entering the data.

The transaction form
The transaction form

## The transaction form

In previous versions of KMyMoney it was possible to enter or edit data in the Transaction Form. As of version 5.2 the Transaction Form is a read-only display of the transaction selected in the transaction list, possibly showing more details than are displayed in the list above.

Split Transactions
Split Transactions

## Split Transactions

The split transaction feature allows you to divide a transaction into multiple categories, representing, for example, the different types of items bought with a single purchase at a store.

A transaction always contains one or more splits. Each split represents money moving into or out of a single account. Most of the time, a transaction contains exactly two splits, one for the account the money is coming from and the other for the account the money is going to. The term “Split Transaction” is used when there are actually three or more splits, when one side of the transaction is further divided into more than one split. This is most commonly done when money moves in or out of a typical bank account, but is allocated to more than one category.

If a transaction has only one split, it is almost always said to be “unbalanced,” meaning that money is coming from somewhere, but not going anywhere (or vice versa.) Such transactions are typically flagged by being displayed in red in the Ledger. Valid transactions with a single split are usually in Investment Accounts: Add, Remove, or Split shares. The other case is where the amount of the transaction is 0, which banks sometimes produce.

To enter a split transaction, create a new transaction, entering the total amount. Then, instead of selecting a category, click the
split icon at the right of the Category field. If you have already selected a category, that becomes the first entry in the split editor.

This will display the Split Editor, which shows the Category, Memo, and Payment or Deposit for each split. It also shows the total of the splits, the amount of the transaction, and the difference between them.

To enter a new split or sub-transaction click New, press Ctrl+Ins, or double-click an empty row. Double-clicking an existing row lets you edit the split. This will expand the row into form where you can enter or edit a split.

Here you specify the category and amount, as well as optional payee, memo, and tag(s). Note that if a payee and memo were entered into the transaction before entering the split editor, they will be included in the first split. It often makes sense to enter a specific memo for each split. This can also be done for the Payee, but it may make more sense to enter that only once for the transaction. To save the split, press Enter. To cancel, press Cancel.

After entering a split, the bottom of the split editor shows how much of the total transaction is still unassigned. After entering all the splits, press the OK button to save the entire transaction. If there is still an unassigned amount, you will be prompted to either return to editing the splits, change the total transaction amount, or leave part of the transaction unassigned. The same is true if the amount is overassigned, in which case the total of the splits is more than the amount of the transaction.

To redistribute an “Unassigned” or “Overassigned” amount, select the split to be adjusted, and click Apply Difference. If “Unassigned” was previously shown and non-zero, that amount will be added to the selected line item value. If “Overassigned” was previously shown and non-zero, that amount will be subtracted from the selected line item value. As a result, the “Unassigned” or “Overassigned” amount will be set to zero and the transaction can be saved successfully.

Note that the category field in the transaction form or the transaction list now displays a comma separated list of the categories in each of the split entries.

Other transaction actions
Other transaction actions

## Other transaction actions

### Editing transactions

To edit a transaction, double-click it in the list view, right-click the entry and select Edit from the popup menu. or press Enter when a transaction is highlighted.

### Deleting transactions

To delete a transaction, right-click it in the list view and select Delete from the popup menu when it appears, or click Delete on the transaction form.

### Matching Transactions

Generally, when you import transactions, either via QIF, CSV, OFX, or HBCI, KMyMoney will automatically attempt to match them against existing transactions. This can be useful for transactions which are created both as Scheduled Transactions, and also imported from your bank or credit card. To allow for differences in the dates, there is a default setting of 4 days, which may be changed in Settings Configure KMyMoney... Ledger section, Import Tab. Any transactions so matched will be indicated in the ledger with an
icon, and on completion of the import, you should review these and either accept or unmatch them.

If you find that an imported transaction was not automatically matched with an existing transaction when it should have matched, then it is possible to match them manually. Note there is a difference between manually matching two transactions and simply deleting one of them, even though they may appear to have the same effect. Specifically, it is important not to delete the imported transaction, because you will find that the next time you import your transactions, the deleted transaction may show up again. This is because modern import formats like OFX and HBCI use a “Transaction ID” to identify transactions. When you delete the imported transaction, the transaction ID goes with it, so the importer has no way to know this transaction was already imported. For CSV and QIF imports, KMyMoney creates an identifier for each transaction that is intended to serve the same purpose.

If this happens, the solution is to tell KMyMoney that the transactions are the same, using the manual matching interface. This allows you to match an imported transaction with a hand-entered (non-imported) transaction. To do so, select one of the transactions to be matched by clicking it, then select the other by clicking it while pressing the Ctrl key, and then select Match from the context menu. This will match and combine the two transactions. The values of both transactions must be the same for the match to work, except that the dates may differ by the window specified in the settings, as described above.

Since the value is the only field in the two transactions which must absolutely be the same, the value of other fields may differ. Note that although the two Payees may not be identical, they must have been matched by the import process. Match, you will see a Match Transactions dialog. This dialog allows you to choose which of the two transactions is used as the source of the other fields in the matched transaction. Note that if one of the transactions is imported, the date of that transaction will always be used in the matched transaction, even if all other fields are taken from the non-imported transaction. That dialog also gives you the option of reversing the transactions in terms of which is used as a source of fields which differ.

If you are happy with the status of the match dialog, click OK. The transaction is then displayed as a Matched Transaction in the Ledger. You can then click Transaction Accept or right-click the matched transaction and select Accept from the context menu.

During import of online statements, either directly or by importing a downloaded file, KMyMoney performs matching as best as it can based on the name of the payee and the amount of the transaction. In case of an invalid match, a matched transaction can be unmatched.

### Note

The matching interface will not allow you to match two transactions which have both been imported. Likewise, it also will not allow matching between two transactions which have both been entered by hand.

Understanding the State of a transaction
Understanding the State of a transaction

## Understanding the State of a transaction

A later section of this handbook discusses reconciliation in more detail. For now, it is only important to know that transaction can have one of three states: not marked (blank), cleared (C), or reconciled (R). When a transaction is entered, it's state is set to the value specified in the “Data entry” tab of the “Ledger” section of the KMyMoney configuration dialog, which defaults to “not marked”. Once the bank posts the transaction, the user can mark it as cleared and thus transform it to state (C). Note that these are only a subset of the states described earlier as available in the Ledger Filter.

When you receive a statement from the bank, all cleared transactions should be on the statement. When you reconcile your account, you confirm that the transactions marked Cleared and the transactions listed on the statement are the same, and that the beginning balance plus the sum of the cleared transactions equals the ending balance of the statement. When this is the case, you can 'finish reconciling' which changes the state of all cleared (C) transactions prior to the date of reconciliation to reconciled (R).

If you try to edit a transaction with at least one split marked as reconciled (R), you will be warned. There is a further discussion about why this is important in the section on Reconciliation.

Changing Transaction Settings
Changing Transaction Settings

## Changing Transaction Settings

There are several options that change the appearance and behavior of the Ledgers View in terms of transactions. These settings are found by selecting Settings Configure KMyMoney from the menu bar, and selecting the ledger icon from the list on the left.

Most of the settings are self explanatory. The section linked above has a more detailed explanation of each of the settings. Some of these settings have already been mentioned, but for clarity, several of them are explained briefly below.

Show transaction form. This setting is under the Display tab in the Settings dialog: toggle to hide the transaction form at the bottom of the Ledgers View. The transaction form is now a display only area for the transaction selected in the Transaction List. All entries and edits of transactions are now made directly on the list.

These images show what direct transaction entry looks like compared to the transaction form.

The transaction form:

Transactions entered directly:

Keep changes when selecting a different transaction/split. By selecting the next line in the transaction list or split editor, the changes are kept, instead of the default behavior where you have to push the green check mark to save changes.

Other Transaction Functionality
Other Transaction Functionality

## Other Transaction Functionality

Additional options are available from the Transaction Options menu, accessed by right-clicking any transaction in the list.

Options include jumping to the Payees view for the Payee in the transaction, jumping to the Ledgers View for another account in the transaction, creating a schedule based on this transaction, and changing the reconciled or cleared status.

To edit the account information from the Ledgers View, select Account from the menu bar. From the Edit Account... menu item, you can change the account details. There is also a menu item to bring up the Reconcile menu, which allows you to match transactions against an official bank statement or credit card notice.

Chapter 12. Investments
Investments

# Chapter 12. Investments

Ace Jones `<acejones@users.sourceforge.net>`

Michael Carpino `<mfcarpino@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## Investments in KMyMoney

In very general terms, an investment is any allocation of money with the expectation of a future benefit. KMyMoney's Investment accounts are designed for one particular type of investment: securities. A security investment (or just a security) is an instrument for investing money that is traded on a market with the intention of a profitable return in the form of either appreciation in value, income such as interest or dividends, or a combination of both. Stocks and mutual funds are the most common securities; and they are the ones specifically supported within KMyMoney. Bonds have a different financial structure, but can usually be handled by KMyMoney. Futures, commodities, options, and more complex investment instruments like derivatives are other types of investments, but KMyMoney has no special functionality for them. As long an investment has similar characteristics to a stock or mutual fund, it can be tracked.

### Investment Accounts

A KMyMoney Investment Account holds a collection of Securities, also referred to as Equities. An Investment account contains transactions, recording activities such as buys, sells, dividends, reinvestments, yields, splits and income of those investments. Each transaction in an Investment account must relate to a specific security.

It is common for an account at a Brokerage Institution to contain both securities and cash. In KMyMoney, an Investment account holds only securities. It cannot contain any cash balance. This was a design decision made when Investment accounts were first included in KMyMoney. It might be changed in the future, but that is likely to be done as part of a significant revision in all of KMyMoney's handling of investments. For now, any cash needed to purchase a security or gained from a sell or dividend transaction requires the use of a Brokerage Account.

### Brokerage Accounts

When an investment transaction uses (to buy a security) or produces case, such as from a sale or dividend, that transaction must refer to another account which can hold the money, most commonly a checking account. You can specify any suitable account for any investment transaction which requires one. However, KMyMoney has the concept of a Brokerage Account, also sometimes referred to as a “Cash Account”, which is the default account for such transactions.

When you create an Investment Account, you have the option of creating an associated Brokerage Account with it. The default name of the Brokerage account will be the name of the investment account with " (Brokerage)" appended. KMyMoney assumes this naming convention in several actions related to investments. Following the convention is not absolutely required, but without it, you will often have to take extra steps to complete the entry of transactions.

### Base Currency

Your KMyMoney data file has a base currency, specified when the file was created. In addition, an Investment account has a base currency, specified when it is created. Separately, each security has its own base currency. This is the currency in which it is traded. When a price quote is entered for an investment, the currency of the value given is always its base currency. A stock on the NYSE (New York Stock Exchange) would be in US dollars (USD), and one on an Australian market would be in Australian dollars (AUD). The base currency for a security does not need to be the same as the base currency for the Investment account holding that security.

The Investments View
The Investments View

## The Investments View

The Investments View provides a summary of all your investments, similar to several of the other major views. It has a single display area, with two tabs. The first tab, Equities, provides a high level view of those securities held within a single Investment Account, as specified in the Select Account: dropdown. The second tab, Securities, is similar, but provides slightly different information about all the stocks, mutual funds, bonds, etc., you track in KMyMoney.

### The Equities tab

The distinction between equities and securities on these two tabs may seem somewhat arbitrary, and is known to cause confusion. Perhaps the terminology may be changed in the future, if anyone can propose a different set of terms that doesn't have the same or other problems. However, as stated above, in the current terminology, an equity as shown on the Equities Tab currently refers to the details of an investment within an investment account. Within KMyMoney, it is a sub-account of an investment account, denominated in a security. A security as shown on the Securities Tab provides access to the security information unrelated to any account. A security can be referenced in multiple equities, which can also be said as different equities can be denominated in the same security.

At the top of the list of equities is the Select Account: dropdown, where you can select the investment account for which you want to see the specific investments. If you have checked Synchronize account selection of Ledgers View and Investments View in the configuration dialog, then if you are looking at an investment account in the Ledgers View, and then switch to the Investments View, that account will already be selected.

Similar to the Institutions and several other views, the Equities tab displays several columns with descriptive and summary information about each equity. As with the Institutions View, you can select which columns are shown by right-clicking any column heading and selecting or unselecting the checkbox next to the name of the column.

Name

  The name of the equity. This column is always displayed. All the other columns are optionally display, as described above.

Symbol

  This is trading symbol as used on the market where the equity is traded.

Quantity

  This is the number of shares of the equity you own in this investment account. The precision of this and the other value columns can be adjusted, as described later in this section.

Price

  This is the most recent price for this equity known to KMyMoney.

Value

  This is the total value of this investment in this investment account. It should be the same as the product of the Quantity and the Price.

Last Price Update

  This is the date of the most recent price. Prices can be updated in several ways, all described later in this section.

The order for any of the columns except Name can be changed by left clicking the column header, and dragging it to the left or right.

### The Securities tab

At the top of the list of securities is a search box. Because this tab lists all investments you own in all Investment accounts, it can grow lengthy, and you can use the search box to find a specific entry on the list, by typing any part of its name.

Security

  The name of the security. This column is always displayed. All the other columns are optionally display, as described above. The names should be the same names as shown in the Name column on the Equities tab.

Symbol

  This is trading symbol as used on the market where the equity is traded. It is also the same as the same column in the Equities tab.

Type

  This is the specific type of investment being tracked. Currently, only Stocks, Bonds, and Mutual Funds are possibly values.

Market

  This is the market where this investment is traded.

Currency

  This displays the symbol of the currency in which this investment is traded.

Fraction

  This is the smallest fraction used when entering the amount of this investment in any transaction.

As with the Equities tab, the order for any of the columns except Security can changed by left clicking the column header and dragging it to the left or right.

Creating an Investment Account
Creating an Investment Account

## Creating an Investment Account

The first step on the path to working with investments is to create an Investment account to hold your defined securities. Choose the Account New account... menu item to begin the process. Create an account as previously described in the Account section, making sure to choose “Investment” as the type of account.

To work with the new investment account, open that account in the Ledgers View, as previously described.

### Price Entry

Whenever you enter or edit a buy, sell, or reinvest transaction, you need to specify the number of shares, price per share, and the total amount of the transaction. As described here you actually specify only two of those values, and KMyMoney calculates the third. The default price entry setting for new Investment Accounts is “Price per share”, but this can be changed to “Total amount” when you edit the account.

Adding Investments to Your Account
Adding Investments to Your Account

## Adding Investments to Your Account

To add individual securities to your Investment Account, navigate to the Investments View, select the Equities tab, and choose the Investment account where the investment is held from the Select Account dropdown.

Right-click in any empty space in the view. This brings up the Investment Options context menu. Choose New investment... from this menu. This launches the New Investment Wizard which you use to create your new Investment.

### New Investment Wizard

The first thing you will be asked to enter is the name of the investment. This is the name which will be used on the Equities Tab. You will also be asked to specify the type of investment. The currently available values are Stock, Bond, and Mutual Fund. If your investment is not strictly one of these types, it is ok to mislabel here, as the type is not currently used to restrict or control what you can do with the investment.

Next, the investment details page is presented. The following information is entered on this page:

- Trading Symbol. A trading or ticker symbol is an abbreviation used to identify a publicly traded security of a particular instrument on a particular market or exchange. KMyMoney requires a trading symbol for all securities; however some investments do not have symbols. In this case, you will need to make up a symbol for it.

  The dropdown includes all trading symbols which currently exist in your data file. If you select one of these KMyMoney will reuse the referenced security for the new equity, unless you check the "Create duplicates of symbol," in which case a new security will be created with the same symbol.

  If you plan to use Online Quotes to retrieve prices for this investment, ensure that the symbol exactly matches the symbol used by your quote source. Yahoo covers most of the world's markets, and requires a suffix on the end of symbols outside the US, to specify the country or market. For example, Rubicon Limited on the New Zealand market should be entered as “RBC.NZ”.

- Full name of the investment, although it can be a friendly, readable name, e.g., “Advanced Micro Devices, Inc.” This name is also referred to as the security.

- Fraction. This indicates the degree of precision to which your holdings are measured. For example, in the US most mutual funds measure holdings to three decimal places, so you would enter 1000 in this field. Stocks are often measured to only whole units, so you could enter 1 for a stock like this, but you would use 10000 for a stock measured to four decimal digits. You'll want to mirror the same decimal places that your brokerage uses to record your securities so the transactions amounts match within KMyMoney. Using extra precision will not cause a problem, but using too little precision can cause rounding errors which can make KMyMoney unable to exactly match the information shown by your brokerage institution.

- Trading market. Where the investment is traded. This is an optional field which is provided for your convenience. This information is not used anywhere else within KMyMoney.

- Identification number. An optional field to enter additional identification information you might like to keep track of. Stocks often have such a number, which can sometimes be used as well as the symbol for retrieving information about it. Again, this information is not used anywhere else.

- Trading currency. The market exchange currency in which this investment is traded. This is typically the currency of the country that the security trades within. It is usually, but not necessarily, the same as the default currency for the Investment account holding that security.

- Price entry. When you enter or edit a buy, sell, or reinvest transaction for this investment, this dropdown indicates whether you want to enter the price per share or the total for all shares or to follow the default for the account, which was specified when the Investment Account was created.

- Price Precision. This is a small integer, specifying the number of decimal places used to specify the price of this investment in the specified currency. This is used for both purchase and sale price, the current price, and also for the total value of the investment.

- Remainder. This is a dropdown with values Round, Ceil, Floor, and Truncate, which specifies what KMyMoney should do in the last decimal place of values. For example, this can be relevant when you specify the total price of a purchase rather than an exact price per share.

Finally, you're presented with the Online Update screen. This is where you tell KMyMoney how you would like to update the prices of your investment, if you do want to use an online source. The following items are set here:

- Use Finance::Quote. This is an option for GnuCash users who are used to this style of quotes. Most users can leave this unchecked. Finance::Quote is a Perl module, so to use it, you would need to have both Perl and its Finance::Quote module installed.

- Online Source. The online source you'd like to use for this particular investment. The most common choice is “Yahoo Finance”. Try that first, and if the investment cannot be found using this source, then experiment with the others.

  Note that although KMyMoney knows how to extract security prices from web pages retrieved from Yahoo and many other sources, those sources have been known to change the format of those pages, which can prevent KMyMoney from successfully extracting the desired information. This is an unfortunately too frequent topic of discussion on the various support channels. However, if fetching prices works for a long time and then you start to get errors, please consider this possibility.

- Factor. A multiplier that should be applied to quotes retrieved for this investment. This is most commonly needed for UK stocks where the price quoted is in pence (1/100), and the stock is denominated in pounds. In this case, enter 0,01 for the Factor.

### Using a Security in more than one Investment Account

### Caution

It is possible to own shares of the same security in more than one investment account, such as a regular investment account and also a retirement account. In previous versions of KMyMoney it was easy to unintentionally have KMyMoney treat them as if each of the securities was a different underlying investment. That often caused confusion, as well as duplicate storage, such as having two copies of the entire price history of the equity. Currently, it is much easier to avoid this situation, but it is important to pay attention when creating new equities within an Investment Account.

When you add a security to an investment account, and that investment already exists in another investment account, you need to be careful if you want to reuse it rather than creating a new, duplicate entry. In the New Investment Wizard, after selecting the name and type of investment and clicking Next, when you select an existing Trading Symbol some of the other fields on the form will be filled in with the relevant information from the existing security, and the existing security will be used unless you select the "Create duplicate of symbol" checkbox.

Editing an Investment
Editing an Investment

## Editing an Investment

The Equities tab of the Investments View lists your current holdings in this Investment account. Right-click any of the investments to bring up the Investment Options context menu, where you can add, edit, or delete an individual investment from this account. Also, you can update the price of an investments here either manually or via its online source. In addition, it is possible to close an empty account, or to reopen a closed account.

If you choose to Edit an Investment, you will use the Investment detail wizard, which looks and functions just like the New Investment Wizard, as described in the previous section.

Right-clicking an entry in the Securities tab produces a Securities Options context menu, where you can edit or delete a security. Actually creating a security is done when you create an equity in an Investment account, and do not choose to reuse an existing security, as discussed above.

Investment Transactions
Investment Transactions

## Investment Transactions

Investment transactions are entered and edited in the Ledgers view, as with transactions in other types of accounts. However, the fields shown will be different, and vary depending on the activity or transaction type. Investment transactions have some additional elements, described below.

### Activity

The Activity for an investment transaction describes what type of action is happening to the security. The following activities are supported:

Buy/Sell

  Use to record the purchase or sale of an individual security. This action requires an account to transfer the funds from/to, which defaults to the Brokerage account, if one has been defined for this Investment account.

Dividend/Yield/Interest Income

  Also known as a “Cash Dividend,” this action is used when you receive an interest or dividend disbursement of cash from your security. This action also requires an account to transfer the funds to. The three terms are used interchangeably.

Reinvest dividend

  This is a dividend where the proceeds are used to purchase additional shares of the security.

Add/Remove shares

  A simple increase or decrease in the number of shares you own. This should be used very rarely, because it's uncommon for shares to just show up in your account (or to disappear) unless it's a purchase, sale, or dividend reinvestment. One use of these activities is for some situations KMyMoney does not natively handle, such as the exchange of some number of shares of a security for a different number of shares of a different security or different class of the same security.

Split shares

  This is used when the stock is split. Enter the ratio of the split in the “Split Ratio” field. For example, in a 3:2 split, enter 1.5. Reverse splits, where the ratio is less than one, such as 2:3, although uncommon, are also allowed.

### Security

Each investment transaction must be associated with an individual security. The dropdown shows all securities you own in the current Investment account - select the one for this transaction.

### Account

For any transaction which generates or requires money, you must enter the account where the money is transferred to/from. If your investment account has an associated Brokerage account, it is usually best to transfer the funds there. This applies to funds for purchase or sale of the security, as well as for fees paid or interest or dividends earned.

### Shares, Price & Total Amount

For buy, sell, and reinvestment transactions, the number of shares, the price per share, and the total amount of the transaction must be established. You can enter any two of these, and KMyMoney will calculate the third. It is usually best to enter just the total amount and the number of shares, because these are the known facts of the transaction. KMyMoney will automatically calculate the price per share. Note that there is only one entry field for the price, and it will be labeled “Transaction amount” or “Price/share” depending on the setting of the Price entry option when the investment was set up.

### Fees

With many investment transactions you can include the fees (or commission) you paid the broker. If you enter a category for the fee, then a field will be shown to the right where you can enter the amount of the fee. If you need to enter more than one fee for the transaction, you can use the Split Transactions feature. In this case, when you complete entering all the splits, the total amount of the fees will be shown to the right.

### Interest

This is how you enter an interest or dividend payment from a security. As with fees, if you enter a category, then a field will be shown to the right where you can enter the amount. You can also use the split transaction feature, if required.

Working With Foreign Investments
Working With Foreign Investments

## Working With Foreign Investments

KMyMoney supports multiple currencies, and there are situations where this can be very useful, if not essential. However, doing so requires extra care to assure accurate records. As noted above, when you add a security, you must specify its trading currency. This might not be the same as the base currency for your KMyMoney file, and it also might not be the same as the base currency for the investment account in which you hold the security or for the account where you transfer your funds to/from for buys/sells/dividends.

Consider a hypothetical case, where your base currency is USD. You have an investment account in EUR, and a brokerage account also in EUR. In that investment account, you hold shares of TietoEnator, which is traded in SEK.

When you enter a buy transaction for this investment, use SEK as the currency. So if you buy 100 shares at a price of SEK 248.00, for a total of SEK 24,800.00, enter these values in the transaction.

When you choose the brokerage account to fund the transfer, you'll be warned that it's in a different currency.

When you finish entering the transaction, you will be prompted for a price update to the investment account's currency, in this case, SEK -> EUR. Review the documentation on Entering Prices Manually for more information on the price dialog.

If you then switch over to the brokerage account, you will see the transaction as EUR 2,254.54, assuming an exchange rate is 11.0000 SEK/EUR.

Updating Security Prices
Updating Security Prices

## Updating Security Prices

There are two ways of updating the prices for your investments. You can either enter the price manually or have KMyMoney fetch it from the web.

### Manual Price Updates

You can enter prices for your investments using the same Price Editor as used for currencies.

### Online Price Quotes

KMyMoney has the ability to download the latest prices for your securities and currencies via the web.

#### How Online Quotes Work

At your request, KMyMoney will fetch a page from the web that contains the latest price for each security. By default, prices are fetched from finance.yahoo.com, and are subject to the terms and conditions of that site.

The online quote lookup uses the security's trading symbol to find the price. Therefore, it is important to set the symbol correctly. Yahoo supports stocks from most major world markets, so it is usually just a matter of finding the correct symbol. For example, TietoEnator trades on the Stockholm Stock Exchange market, and its Yahoo symbol is TIEN.ST.

To find the trading symbol for a security supported by Yahoo, use the “Symbol Lookup” feature at finance.yahoo.com. You should have set the trading symbol when initially entering the security into KMyMoney.

#### Assigning a Quote Source

In order to get online price quotes, you first have to enable the feature for each security or currency you want updated, by setting an “Online Quote Source”. This is the name of the service from which the quote should be fetched. KMyMoney ships with several sources to choose from. Yahoo is the recommended default source, and should work for most investments and all currencies.

To assign a quote source for an investment, navigate to the investment summary view for the account in which the security is held. Edit the security by right-clicking it and selecting Edit Investment .... In the Investment Detail Wizard, click Next twice, for the Online Update section. In the Online source dropdown box, select the online source for your needs.

Versions of KMyMoney starting with 0.9 contain support for the Perl Finance::Quote package for obtaining online quotes. This is intended primarily as a convenience for those users converting from the GnuCash finance package, which uses it as its native method. If you do select this option, you should see a different list of sources, those supported by Finance::Quote. If the list is empty, it suggests that the package is not properly installed. See their web site at http://finance-quote.sourceforge.net for more information.

#### Adjusting a quote

Some online sources do not report the price in a base quantity (e.g., EUR) but in a fraction (e.g., Cent). Using this information for a price will produce wrong values for your investments.

If this is the case for your online source, you can use the Factor field to enter an adjusting factor. For the above mentioned example the factor would be 0.01.

The Factor field is only available if a Quote Source has been selected.

#### Fetching Quotes

Typically, you will update the prices for all your securities and currencies as a single operation. Choose the Tools → Update Stock and Currency Prices... menu item to bring up the online price quotes dialog. Press Update All to fetch quotes for all securities and currencies in your KMyMoney file.

#### Adding or Editing Quote Sources

Adding or editing quote sources is not recommended for anyone but the most technical user. You should feel comfortable reading HTML and writing complex regular expressions. If this doesn't sound like you, please use one of the suggested support channels if you are having problems with a particular source or if none of the quote sources work for you. If looking for a source for prices for a security not found by one of the existing sources, ideally, please point us to a web page where these prices can be obtained. Additionally you can consult with members of the KDE Community Forum for KMyMoney as they may already have a solution available for your needs.

If you do feel up to the challenge, here's how it works. The quote sources are contained in the settings dialog. Choose the Settings → Configure KMyMoney menu item. From there, choose the Online Quotes section. You can choose an existing source to edit, or create a new one. When you are done with your changes, be sure to press the Update button before exiting the dialog. Your changes are not saved by default.

The first thing to consider in an online quote source is the URL. This is the page that is fetched from the web. You will see a %1 in all sources, and a %2 in currency sources. For investments, %1 is replaced by the trading symbol. For currencies, %1 is replaced by the From currency, and %2 is replaced by the To currency. This URL is then fetched, all HTML tags are (optionally) removed, and that stripped file is then sent to the page parser.

Note that the URL can also be a file: URL, which the quote fetcher takes to be the path to an executable script. It will pass any command-line arguments to it that you have specified, and feed the stdout of that script to the page parser. For example, you might have a script called getquote.sh that contains custom quote logic, taking the symbol as a single parameter. Your URL would be “file:/path/to/getquote.sh %1”.

The page parser looks for a symbol, a date, and a price. Regular expressions tell it how to extract those items from the page. Please review the documentation for the QRegularExpression class for the exact syntax regular expressions used by KMyMoney. There should be exactly one capture expression, surrounded by parentheses, in each regexp field. The date format further tells the date parser the order of year, month, and day. This date format should always be in the form "%x %x %x". where x is y, m, or d. The date parser is very smart. “%m %d %y” will parse “December 31st, 2005” as easily as “12/31/05”. Two digit years are interpreted as being in the range of 1950-2049.

Unimplemented Features
Unimplemented Features

## Unimplemented Features

There are some features that are normally associated with investments which are not yet implemented in KMyMoney. These include, but are not limited to derivatives, options, and futures. In addition, when you sell a security, KMyMoney does not know which specific shares you are selling, i.e., the oldest or the most recently purchased, so it cannot calculate return on investment. Finally, it has no direct knowledge about any country's specific tax reporting requirements, although these can usually be handled by marking as Tax related all the categories you use for transactions which might have tax consequences.

The KMyMoney development team is aware of these and additional issues, and has been collecting requirements and notes for an eventual major re-write of how the program handles investments. When that process begins (there is no current schedule) there will be an opportunity for users to provide input on any additional needs and desires in this area.

Chapter 13. Currencies
Currencies

# Chapter 13. Currencies

Thomas Baumgart `<ipwizard@users.sourceforge.net>`

Michael Carpino `<mfcarpino@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

KMyMoney supports the use of multiple currencies in different accounts. For example, you can set up a savings account in Euros, a checking account in British Pounds, and still have your credit card account in US Dollars.

## Base currency

During the initial KMyMoney New File Setup, you are asked to select the base currency. Usually, the base currency is the currency you use in your home country. The base currency is the one that all income and expense categories use and that reports will be based on. When you set up a new account, KMyMoney will automatically default to the base currency. If your account requires you to use a different currency, you can change it during the New Account Setup.

KMyMoney is released with a list of all currencies known at the time, and that is the list from which you chose the default currency when you created your data file. The Currencies dialog is where you manage the list of currencies used in your data file. To display this dialog, select the Tools → Currencies... menu item.

### Adding a currency to your data file

For a newly created data file, the Currencies dialog will show only the currency you chose as the default currency. If you want to use a different currency for a new account, you must first add that currency. By clicking Add, you will be presented with the same list of currencies from which you chose the default currency. You can either scroll through the list or use the search box at the top to find the currency you wish to use. Click that currency, and click OK. The Currencies dialog will then include that currency in the list displayed, and you can now select that currency when creating a new account.

### Adding a new currency

Although it does not happen often, sometimes a new currency is introduced. This can be a new virtual currency, such as Bitcoin, or a change introduced by a country for financial policy reasons. While any such currency will be added to the next version of KMyMoney, it is possible to add it to your data file manually, in case you have a need to begin using it immediately.

To manually add a currency, bring up the Currencies dialog, as shown above. Right-click any existing currency and select New currency from the Currency Options context menu, or click New. This will bring up the Currency editor.

The Currency editor has some similarities to the dialog for editing details of securities

- ISO Code: the official alpha code for the currency. ISO also specified a numeric code, but this is not used in KMyMoney.

- Name: the full name of the currency.

- Symbol: the graphic symbol that represents the currency, such as $ for United States Dollar (USD) or € for the Euro (EUR.) In some cases, the symbol can only be specified in a particular character set that includes the appropriate glyph.

- Smallest account unit: the smallest officially supported unit of the currency.

- Smallest cash unit: the smallest unit for which there is actually a bill or coin.

- Rounding method: this dropdown provides a list of possible rules for rounding amounts calculated with more precision than allowed by the smallest account unit.

- Price precision: the number of digits or decimal places to be used for recording values in the currency.

Enter the information and click OK, and the currency will be created.

Entering transactions using different currencies
Entering transactions using different currencies

## Entering transactions using different currencies

Whenever a transaction is entered that refers to more than one currency, the exchange rate editor pops up and allows you to enter an exchange rate. Initially, the most recent price available from the price database will be used as the exchange rate. See Entering exchange rates for currencies for more information on how to provide exchange rates manually and obtain online price information.

Optionally, the exchange rate is saved in the price database once entered by the user.

Exchange rates for currencies
Exchange rates for currencies

## Exchange rates for currencies

### Entering prices manually

The Price Editor, also called the price database editor, allows you to enter or modify prices for both investments and exchange rates between currencies. You can pull it up using the Tools → Prices... menu item.

The first column in the dialog is labelled Commodity, which displays both trading symbols of securities and the symbols of currencies. In KMyMoney, a “Price” is the price of security in terms of a currency, or of a currency in terms of a second currency. For example, as I write this, the price of 1 USD in terms of 1 EUR is 0.94; that is, 1 USD costs 0.94 EUR. The first currency is the one being bought or sold, and the second one is the currency used to buy or sell it.

To manually enter a new exchange rate, press the New button, and you get the New Price Entry dialog.

Enter the first currency (USD in the example above) in the Security field. Enter the second currency (EUR in the example above) in the Currency field. Enter the effective date of the price in the Date field.

Press the OK button, and you will then see the Exchange Rate/Price Editor dialog.

You can specify a price in two ways. You can enter the To amount or total price of the first currency in terms of the second, or you can enter the actual Exchange rate. In this case, since you are entering the number of EUR for 1 USD, those two values are the same. However, this is the same dialog used to enter an exchange rate when you enter a transaction which involves two currencies. In that case, you will generally enter the amount, and let KMyMoney calculate the exchange rate, taking care of any rounding.

### Online currency updates

KMyMoney can fetch currency conversion rates from the web. Once you have entered a single price for a pair of currencies, the online quote feature will always list that pair amongst its options.

See the section on Online Price Quotes in the Investments chapter for more details.

Chapter 14. Reconciliation
Reconciliation

# Chapter 14. Reconciliation

Michael T. Edwardes `<mte@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## What is reconciliation?

Reconciliation is the process of assuring that your records for an account agree with the records of the institution for that account. This is done by matching the transactions you have entered into KMyMoney with the transactions listed for that account by the institution. This is most commonly done with the list of transactions in a statement, be it a bank statement, credit card statement, loan statement, or any other statement. It can also be done against an on-line listing of the account, although this is less common. If any discrepancies are found, then either you or the person who created the statement have made a mistake.

Completing the reconciliation process for an account says that you are sure that the records for that account, up to the date of the reconciliation, are correct. This is most commonly done for accounts at institutions like banks or stores, but some users choose do to this for other accounts, such as cash. In that case, it means that you are sure of the records up to the reconciliation date, and are certain you will not find any further cash receipts, and that the balance of the account in KMyMoney is the same as the actual amount of cash in your pocket.

Reconciliation is not required for any account, but by reconciling an account on a routine bases, such as monthly, you will have fewer records to examine if you do find a discrepancy.

The reconciliation wizard
The reconciliation wizard

## The reconciliation wizard

Note that as you progress through the reconciliation process, there are multiple possible paths for entering all the necessary data, especially if you need to find and correct some discrepancy between KMyMoney and the statement. All are valid, and one is not any better than another. Over time, as with many activities within KMyMoney you will find the way that best meets your needs and approach to managing your finances.

To reconcile an account, select the account in the Accounts or Institutions View, or display it in the register, then click the reconcile icon, select the Account → Reconcile... menu item, or use the Ctrl+Shift+R shortcut.

This will open the reconciliation wizard. The first page of the wizard briefly describes the process you will follow. Click Next to actually start the wizard.

### Statement details

The initial statement date presented by KMyMoney is typically 30 days after the more recent reconciliation for that account. The starting balance presented is the final balance as of the previous reconciliation. This is actually calculated as the sum of the amounts of all transactions in the account which are cleared or reconciled, up to the date of the previous reconciliation. The ending balance presented is the starting balance plus the amounts (added for deposits and subtracted for withdrawals) for all cleared transactions for the account since the previous reconciliation. (This also includes cleared transactions prior to the date of the previous reconciliation.) If the starting balance does not match the statement, then you need to confirm that the previous reconciliation was done correctly.

Theoretically, the ending balance at the time of the previous reconciliation should not be different from the starting balance at this time. However, KMyMoney does not prevent you from making changes to transactions prior to the most recent reconciliation. Edits of this type are the usual cause of such discrepancies. At some point, KMyMoney will probably be enhanced to make it much more obvious to the user if such an edit is made.

The statement date, starting balance, and ending balance can be found in your statement. Make sure that the figures match and click Next. If the starting balance does not match, see the previous paragraphs. If the statement date or ending balance does not match then enter the figures as listed on your statement and click Next.

### Interest

If you are reconciling a bank account or any account with interest and/or charges or fees, then enter these values in the appropriate fields. Both fields are optional, but if they are used, then a category must be assigned for each amount entered. Note that these amounts may have already been entered if you import transactions either directly or via a downloaded file, in which case you should not enter them again here, or you will have duplicate transaction.

### Interest or Charge

The interest field is for interest you gained. If you have to pay interest, e.g., for a credit card account, this should be entered as a charge. In both cases, you get to choose the proper category for the amount.

Click Continue to start matching your statement to what you have entered. Note that this completes the Reconciliation Wizard, but not the process of reconciliation. At this point, KMyMoney displays the Ledgers View for this account, but it changes the ledger display in two ways. First, it only shows transactions that have not already been marked as reconciled. Second, the line below the main ledger display shows the Ending Balance from the statement on the left, the cleared balance of the account in the center, and the difference between then on the right. As described below, you still need to clear transactions and then tell KMyMoney that the account is reconciled.

### Clearing transactions

During the reconciliation, any transaction can be edited to make it match the statement, and new transactions can be created as usual. To mark a transaction as cleared, click the C column of the transaction in the ledger. You can also select the Transactions menu or right-click the transaction to bring up the "Transaction options" context menu, and then select Mark transaction as... → Cleared (Ctrl+Alt+Space); A transaction is considered cleared when it matches the transaction on your statement.

As you mark transactions as cleared, the Cleared and Difference amounts shown below the ledger will be updated.

Note, however, that as reconciliation is the process of matching the data in your account with that on a statement, the Cleared amount shown below the ledger is the cleared amount as of the date of the statement. Changes to any transaction with a date after the statement date you entered in the wizard will be saved, but will not have any effect on the cleared amount shown below the ledger display.

### Completing Reconciliation

#### Finishing Reconciliation

When the difference between the statement and the cleared balance is zero, then the account is reconciled and you can click Finish. When you do this, KMyMoney takes all the transactions which have been marked as cleared (only those with a date before the statement date) and marks them as reconciled, and the value in the C column changes from “C” to “R”. In addition, it saves the changes and records that the account has been reconciled. (You still need to save the file to permanently save all the changes.)

#### The Reconciliation Report

The last thing the reconciliation wizard does it to present a report, in the form of a pop-up with two tabs.

##### Summary Tab

This tab shows a summary of the reconciliation, including the starting and ending balances, and the number and amount of payments and deposits: cleared, outstanding, and those after the reconciliation date.

##### Details Tab

This tab shows a list of outstanding payments and charges. These are unmarked transactions prior to the statement date of the reconciliation.

#### Postponing Reconciliation

If you're having trouble completing the reconciliation, or you need to gather additional information before you can complete the process, you can postpone the process to a later time by clicking Postpone. When you do this, KMyMoney remembers the values you entered when you started the wizard, it does not mark cleared transactions as reconciled, and it returns the ledger to its normal view. If you exit KMyMoney before clicking either Finish or Postpone, it has the same effect as clicking Postpone. Any edits you have made, such as marking transactions cleared or entering new transactions, are not touched, and you can still save them before you exit KMyMoney. However, you will have to run the reconciliation wizard again in order to reconcile the account.

If you do click Postpone, the next time you run the reconciliation wizard on this account, KMyMoney remembers the values you entered when you previously ran the wizard, and you will be able to change them, if necessary. In this case, the initial screen of the wizard is different, to remind you of this.

Chapter 15. Reports
Reports

# Chapter 15. Reports

Ace Jones `<acejones@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

The Reports View is a tabbed display. The Reports tab is always displayed, and lists all available reports, grouped under the headings listed and described below. You can click “>” to expand or collapse the specific reports under each heading. When you open any report, it is displayed in an additional tab, labelled with the name of that report.

The list of reports is always sorted first by the group name (by number) and then by report name. Clicking the “Reports” heading will reverse the sort order. You can also click the “Comment” header to sort by the report comment instead of name. The report's name and comment can be set or edited on the General tab of the Report Configuration dialog.

## Available Reports

### Income and Expenses

The reports in this section show your income and expenses either for the current month, for each month in the current year, or for each year. Of course, the duration of the overall report and the duration captured by each column can be configured to your liking. Various Graphs and Pie Charts also may be produced.

### Net Worth

Here there are reports that describe your net worth, either at the current moment, every month for the current year, or every year of your history. In addition, there is a 7-day Cash Flow Forecast and a Net Worth Graph. There are also reports to get the balances for all of your accounts at any given point in time.

### Transactions

This section includes reports that list individual transactions. This is the best way to print your account register for a specific period of time. The transactions printed can be grouped together according to your liking by choosing the appropriate report, such as:

- By Account

- By Category

- By Month or Week

- By Payee

- By Reconciliation Status

- By Tag

### Cash Flow

The Cash Flow report is similar to a Transaction report, but it displays all cash-flow related transactions for the specified period, which defaults to the current month.

### Investments

These reports help you keep track of your investments. They only include investment accounts. There are a variety of presentation filters and styles, as shown in this partial list.

- Investment Transactions: Similar to a Transactions report, but it includes share prices and quantities.

- Investment Holdings by Account: Shows the current shares, prices, and values for each account.

- Investment Holdings by Type: Same as the previous report, but organizes the accounts by type (Stock, Mutual Fund, etc.)

- Investment Performance by Account: Shows the annualized performance over any period of time. This performs a cash flow analysis of all money coming into and going out of the account. As a result, this is a very accurate picture of how well your investments are doing.

- Investment Performance by Type: Same as the previous report, but organizes the accounts by type (Stock, Mutual Fund, etc.)

There are also graphs for Investment Prices and Investment Worth.

### Taxes

The tax reports are just like the transactions reports, with the addition that only Tax related categories are included. This allows you to flag certain categories as being tax-related, and then get one big report at the end of the year to see the transactions for those categories all in one place. They may be listed either by Category or by Payee, and for the last fiscal year.

### Budgeting

The budgeting reports are similar to net worth reports, but the reports can display the budget for a given year, or even compare it to the actual income and expenses for the same period.

### Forecast

The forecast reports are just like the net worth reports, but they use the information to display forecast information. You can display the information at various levels and for the time frame of your choosing.

### Information

These reports display non-transaction information about accounts, loans, and schedules.

### Charts

If Charts are enabled, this section lists all the reports which are marked to display a graphical chart as the default. They are also listed in one of the other sections, but they are aggregated here for your easy reference.

### Favorite Reports

This section lists all the reports you have marked as a favorite in the report configuration dialog. They are still listed in one of the other sections, but they are aggregated here for your easy reference. Favorite reports can also be included on the Home View for even easier reference.

Working With Reports
Working With Reports

## Working With Reports

There are a number of actions you can take on each report. You can access some these by right-clicking the report name in the list of reports, which brings up the Report options context menu. Alternately, once you have run a report, there are buttons across the top of the view to invoke each of these:

- Chart: Only present if the report is capable of displaying a chart. Clicking this option toggles between the report and the chart.

- Configure report: Change the properties of this report. You can customize the report to your liking and save it for future use. See the next section for more details

- New report: Create a new, customized report based on the selected report.

- Export report: Reports can be exported, or saved, in HTML or CSV format. HTML is intended to preserve the displayed formatting of the report. CSV exports the data underlying the report.

- Delete report: Customized reports can be deleted. The default reports that ship with KMyMoney cannot be deleted.

- The Close report button was removed in 5.2. To close the current report tab, click the small x to the right of the report name on the tab.

Configuring Reports
Configuring Reports

## Configuring Reports

### Working with custom reports

You can configure the default reports or create your own from them by selecting New report, and then configuring the new report. When you click Configure report you will be presented with the Report Tab of the Report Configuration dialog. Initially, the new report it is named the same as the old report with “(Customized)” added to the end. You can change the name to whatever you want. You can even name your custom reports the same as a default report, or the same as another custom report. You can use the Comment field to further distinguish reports.

The Report Configuration dialog has a Report tab and a Filters tab, which each have a number of subtabs. Each subtab displays options for configuring different aspects of the report. Note that specific subtabs and options within them may not appear if they are not relevant to the report being configured.

### Report Tab

This is where you configure general information about the report as well as controlling details about what data is presented and how it is presented.

#### General subtab

Here you set the basic properties of the report.

- Report Name: Choose or edit the name for this report.

- Comment: Enter a comment to help you remember the details of this report and identify it if the name is the same as any other report.

- Convert values to base currency: Select this option to convert all values in the report to your base currency. Leave it unchecked if you'd like to see values in their original currency. If currencies are not converted, then subtotals will not be shown.

- Mark as favorite report: Check this to cause this report to show up on the Home View and in the group of Favorite Reports.

- Skip value if price is zero: This option is only used for investments reports which show prices instead of balances as all other reports do. Selecting this option includes prices only if there is an actual price for the date; otherwise 0 will be shown. In a graph, the value will be skipped. If this option is off, the last existing price is shown for a period. If it is on, in a table “0” is shown, and in a chart a linear interpolation for the missing values will be performed.

#### Rows/Columns subtab

This is where you configure how you would like the rows and columns of the report to be selected and organized. This tab presents different configuration options depending on the style of report you are configuring.

For income/expense and net worth reports:

- Budgets: If you have any budgets defined, you can select one as well as whether differences between budget and actual amounts should be propagated from one time period to the next

- Totals: Choose whether to display a row and/or column for total amounts.

- Rows: Choose whether to base the report on Income and Expense (Categories) or on Asset and Liability accounts.

- Detail: Choose the level of detail required for this report.

  The following levels of detail are available:

  - All: Show every category or account.

  - Top-Level: Show only the highest-level categories or accounts, and roll up the sums of the subordinate categories or accounts into those values.

  - Groups: Show only the totals of the income and expense or asset and liabilities.

  - Totals: Show only the grand totals.

- In addition you can specify whether or not to include scheduled and/or transfer transactions and unused accounts or categories.

For transaction reports:

- Organize by: Choose how to group the transactions in this report.

- Show Columns: Choose which columns should be shown in the report. The date and transaction amount are always shown.

- Include only Tax Categories: Only show categories which have been marked as tax-related.

- Include only Investment Accounts: Only show transactions from investment accounts.

- Include only Loan Accounts: Only show transactions from loan accounts.

- Include transfers: Unless this is checked, transfer transactions are not included in transaction reports

- Hide Split Transaction Details: When this option is available, it lets you specify that only the total amount of a split transaction is to be displayed.

- Hide totals: Selecting this prevents Total lines from being calculated and displayed

### Chart Subtab

This subtab allows you to configure what the report should look like when it is displayed as a chart. See the Graphs & Charts section for more explanation of the charting functions.

- Chart Type: The visual format of chart desired.

- Show grid lines: Whether to print horizontal and vertical grid lines on the chart.

- Draw values on chart: Whether to print the data values on the chart itself for chosen data points.

- Show chart by default: Whether this report should first be displayed as a chart when it's opened.

- Logarithmic vertical axis: normally the vertical axis is linear.

- Plot expenses downwards: normally both income and expenses are plotted upwards.

- Line width: The width of data lines on the chart, specified in pixels.

### Range Subtab

The Range subtab has two sections, Date range and Data range for controlling the limits and subdivisions of the displayed data. Note that this only controls the display, to control the data used by KMyMoney to create the report, see the section on the Filters tab.

#### Date range

Selecting one of the descriptive values from the Range dropdown automatically sets the values of the From and To date fields. You can override either or both of those dates, in which case the first dropdown will show “User defined”.

The Ticks dropdown controls the placement of ticks on the date axis of the chart.

#### Data range

This lets you control the limits, ticks, and labels on the vertical data axis. The default value for the Range dropdown is “Automatic”, lets KMyMoney choose reasonable values for the other fields. If you select “User defined” you need to specify all the other fields. From and To set the lower and upper limits of the axis. Major tick length and Minor tick length control the positioning of larger and smaller tick marks along the axis. Labels Precision controls the number of decimal places used in the numbers displayed along the axis.

### Filters tab

The filters tab has several subtabs, which can be used to filter or limit the data KMyMoney uses to prepare the report. These are the same subtabs used to control searching for transactions. Please refer to the Search Transactions section for details on those tabs.

### Report Plugin Configuration

Behind the scenes, Reports are actually implemented as a plugin in KMyMoney, and there are some items which can be configured through the Reports View Plugin Configuration dialog.

Maximum number of legend items to display limits the number of items to list in the legend of the graph or chart display of a report. This can be useful if there are enough items that the legend would otherwise overwhelm the main display.

Charts line width is the default width in pixels of any lines in the chart display of a report.

Charts palette gives some choice in the array of colors used in graphs and chart displays of a report.

Since the graph and chart displays of reports are shown using HTML, the Default CSS file lets you provide a css file to customize these displays.

Graphs & Charts
Graphs & Charts

## Graphs & Charts

### Viewing as a Chart

Many reports can be viewed in either textual form or graphical (chart) form. The same report configuration parameters are used in either case. You can easily jump back and forth between the textual and graphical forms by pressing the Chart or Report buttons along the top of the Report View.

Please pay attention to the amount of data you choose to display on a chart. If you are not careful, using the same configuration for both textual and graphical forms means it's possible to configure a chart to be visually cluttered, unappealing, and uninformative. KMyMoney will not force you to keep your charts readable and useful! Also be aware that some reports will take a long time to calculate and display if too much is included.

### Available Chart Types

#### Line Graph

A line graph is one of the simplest forms of a chart. There is one line for each series. Usually, a series is data from a single account or category over time; see below for more details. The time periods stretch out along the bottom axis, and the currency values are along the left axis.

The detail level for each line is controlled in the Rows/Columns Subtab of chart configuration. If you choose the “Top-Level” detail level, there will be one line for each of the top-most accounts or categories, which shows the sum total of all underlying accounts or categories. If you choose “Groups,” it will instead show one line each for Income, Expenses, Assets, or Liabilities, depending on the other settings.

#### Bar Graph

The bar graph works exactly the same as the line graph, except there is one bar for each series in each time slice.

#### Pie Chart

The pie chart is the simplest chart type available. It shows data from only one time slice, as opposed to showing the values across time. This chart shows only the data from the totals column of whatever report is selected. If your report is configured to NOT convert values to the base currency, there will be no totals column, in which case this report is not useful.

#### Ring Chart

The ring chart is very similar to a pie chart, except there is one “ring” for each time slice in the report.

Chapter 16. Importing and Exporting
Importing and Exporting

# Chapter 16. Importing and Exporting

Ace Jones `<acejones@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## GnuCash Importer

Tony Bloomfield `<tonybloom@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

### GnuCash Files

The KMyMoney GnuCash importer is known to handle direct reading of standard (XML) files as produced by GnuCash versions 1.8 and 2.0. File from more recent versions should also be imported without problem. There is no recent, formal testing to confirm this, but the developers' mailing list `(kmymoney-devel AT kde.org)` has a report of success importing a file from GnuCash 5.3. Specifically, however, the following are not supported:

- import of database (Postgres) data

- import of 'multi-book' files

- import into an existing KMyMoney file

- import of small-business specific features (Employees, Invoices, etc.)

- export to GnuCash files.

The import will probably only work correctly if presented with a valid file. It is recommended that the Actions → Check & Repair All menu item of GnuCash be run before saving the file and attempting to import into KMyMoney.

Files can be opened by specifying the filename on the command line (kmymoney <path to file>), or by means of the KMyMoney File → Open (Ctrl+O) or File → Import menu items.

The similarity between the two products means that much day-to-day data can be imported in a straightforward fashion. However, there are some areas where there are differences, and various options are provided to deal with these. The following sections will describe some of these differences; understanding them should lead to a smoother import, where any of them are relevant to your data.

### Similarities, Differences, and Terminology

#### Small Business Usage

It should be noted that KMyMoney is a personal finance manager, and as such, does not directly support any of the business features of GnuCash, such as tax tables, payroll, and tracking of lots. Any Accounts Payable or Receivable accounts found in a file will be imported as Liability or Asset accounts respectively.

#### Accounts

##### Account types

For both products, the highest level of structure in the file is the account. KMyMoney supports 5 main types of account: Asset, Liability, Income, Expense, and Equity, each of which may have various subtypes, e.g., Checking, Credit Card, etc. KMyMoney includes a 'standard' account for each of these five types, and all other accounts are held subordinate to one of these. KMyMoney enforces more consistency (or less flexibility, depending on your point of view) between account types than does GnuCash, and the importer will correct any inconsistencies it detects. This may result in a slightly different account structure, though this can, within reason, be amended after the import is complete.

##### Categories

KMyMoney uses the term Category to denote an account of an Income or Expense type. Unlike GnuCash, these are not considered as “ledger” accounts, and entry of transactions directly into categories is not supported. Allocations to Categories are made when transactions are entered or edited in other account types.

##### Structure and Placeholders

GnuCash supports the use of Placeholder accounts. In effect, these are just read-only accounts into which no transactions can be entered, but which function in an analogous fashion to folders in a folder structure, as a holder for other accounts. Though KMyMoney does not support this feature as such, it does provide a parent/child account relationship, so the importer simulates placeholders by creating empty accounts.

##### Account Type map

GnuCash type | KMyMoney type
--- | ---
`BANK` | `Checking`
`CHECKING` | `Checking`
`SAVINGS` | `Savings`
`ASSET` | `Asset`
`CASH` | `Cash`
`CURRENCY` | `Cash`
`MONEYMRKT` | `MoneyMarket`
`STOCK` | `Stock`
`MUTUAL` | `Stock`
`EQUITY` | `Equity`
`LIABILITY` | `Liability`
`CREDIT` | `CreditCard`
`INCOME` | `Income`
`EXPENSE` | `Expense`
`RECEIVABLE` | `Asset`
`PAYABLE` | `Liability`

#### Transactions and Splits

##### Balanced transactions

In both programs, data is entered in the form of transactions, each generally consisting of 2 or more split entries. In fact, valid GnuCash transactions will always contain at least 2 splits, and to conform to GnuCash's double-entry bookkeeping standard, these must be in monetary balance (i.e., they must balance out to zero). KMyMoney encourages, but does not enforce, this standard, but any imported transaction which is not balanced will be marked in the Ledgers View as having a problem.

##### Payees

KMyMoney prefers that all transactions have a Payee (a generic term that encompasses both payees and payers,) and unlike GnuCash, it maintains a list of these payees. Payee names are generated by the importer from the GnuCash transaction's Description field.

##### Transfers

KMyMoney uses the term Transfer to describe a transaction which does not involve a Category, but only transfers money between Asset and/or Liability accounts.

##### Reconcile

KMyMoney provides an account reconciliation function similar to that of GnuCash, and the corresponding transaction status will be imported.

#### Commodities

GnuCash uses the term Commodity to cover both currencies and non-currency assets. These are treated separately in KMyMoney.

##### Currencies

KMyMoney has built-in support for all foreign currency types. KMyMoney also requires that the user specify a base currency, this being the default currency for new accounts. The importer will attempt to determine the most likely base currency, though this choice may be rejected in favor of an alternative.

### Note

KMyMoney does not currently support accounts denominated in 'defunct' currencies, except those replaced by the Euro. At present, it will be necessary to remove any such accounts from your GnuCash file before importing. We hope to improve on this situation in a future release.

##### Securities and Investments

Non-currency assets (typically stocks and bonds) are called Securities by KMyMoney, and represent the main difference between the two products, in that KMyMoney requires any account denominated in a security to be subordinate to an Investment Account. This is described in more detail in the chapter on Investments. Though users may have implemented such a relationship, GnuCash imposes no defined structure on it, so the importer is unable to detect it and perform an automatic conversion. Three options are therefore made available:

- Create a separate Investment account for each security, with the same name as the security

- Create a single Investment account which will act as “parent” for all security accounts

- Create several Investment accounts, and assign securities to them as directed by the user.

It depends entirely on user requirements and preference which of these options is relevant in each situation. In some cases, manual restructuring of accounts after import may be necessary.

##### Prices and currency rates

Security prices and currency exchange rates, as displayed in the GnuCash Price Editor, will be imported. In addition, price and rate entries will be generated from all transactions involving securities and multiple currencies.

##### Online Quotes

For obtaining online price and currency rate quotations, GnuCash uses a Perl based package called `Finance::Quote`. Recent versions of KMyMoney contain support for this package for obtaining stock quotes, and this will be used by default when importing data from GnuCash. You may however select to convert to the native method used by KMyMoney which is covered in more detail in the section on online quotes.

If you choose to do so, the following dialog will allow selection of a “native” KMyMoney price source, or a user-defined source, for each account for which online quotes are required. However, the stock (ticker) symbol will be imported unchanged. Since this symbol will almost certainly be different in the two packages, it will need to be manually edited after completion of the import process. Future currency rate updates will not use `Finance::Quote`, and will always use the native retrieval method.

#### Scheduled Transactions

KMyMoney does not retain the separation made in GnuCash between template transactions and their frequency of occurrence. Transaction data will be duplicated if the same template is used in different schedules, but this is not likely to be of great significance.

##### Schedule types

KMyMoney classifies all schedules as one of three types: Bills, Deposits, or Transfers. Since GnuCash does not make such a distinction, the importer attempts to determine the classification from the accounts and direction of money movements. It may be that in some cases incorrect assumptions are made, and these will need manual correction.

##### Suspect Schedules

Some features of GnuCash scheduled transactions are not available in KMyMoney, so the importer tries in each case to reach a reasonable compromise in converting the data. These transactions will be flagged as suspect, and the user will be given the option of editing them directly during the import process. Examples of situations which may cause this are:

- some frequency intervals supported in GnuCash are not currently available in KMyMoney

- KMyMoney does not support the use of formulae and variables in amount fields

- complex cases which have not yet been identified for import

Despite best efforts, it is possible that, due to the many options involved, a scheduled transaction may cause a fatal error within KMyMoney. If this sort of problem seems to be occurring, the importer offers the option to drop all suspect schedules.

#### Reports

KMyMoney provides a comprehensive selection of configurable reports, described in more detail in Reports. These will not necessarily, however, match precisely those reports available in GnuCash.

### Selecting Importer Options

#### Investment Handling

See "Securities and Investments" above.

#### Online Quotes

Turn this off if you wish to use the native method for future online price quotes. See "Online Quotes" above for more details.

#### Scheduled Transactions

See "Scheduled Transactions" above.

#### Decoding Options

If your native language is written in letters or symbols which are different from those used in the 'Latin' languages (i.e., generally Western European,) these are represented in a special fashion (“encoded”) in your GnuCash file. If these characters are not displayed correctly on your screen, then they must be decoded. Currently, it is often not possible to detect accurately which form of decoding must be used, so you may need to set this option manually by selecting an entry from the list. In general, the first item in the list will be that which is considered appropriate for your locale (i.e., the country and language which was selected as native when your operating system was installed,) so this should be tried first. Since the import process does not overwrite your GnuCash file, you are free to experiment with any of these selections.

#### Transaction Notes option

Under some usage conditions, non-split GnuCash transactions may contain residual, often incorrect, memo data which is not normally visible to the user. When imported into KMyMoney however, due to display differences, this data can become visible. Often, these transactions will have a Notes field describing the real purpose of the transaction. If this option is selected, these notes, if present, will be used to override the extraneous memo data.

#### Debug Options

These need only be used in the event of import problems. If you have such problems, you should also report them to the developers' mailing list `(kmymoney-devel AT kde.org)`. Note that the traces produced by these options may contain data of a confidential nature, and the Anonymize data option should be used if they are to be made publicly available.

### Import Report

At the end of processing, the importer produces a report showing the number of different entities processed, and any errors or anomalies encountered. This report will be displayed on screen, and may be saved to a file for later review. A full report may contain the following sections:

- Record counts

- Inconsistencies in account types and actions taken

- Details of suspect schedules

QIF Importer
QIF Importer

## QIF Importer

Thomas Baumgart `<ipwizard@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

### QIF format considered harmful

Generally speaking, the QIF format should be avoided wherever possible. For many reasons, it is a poor choice for transporting financial data. Among other things, QIF suffers from these problems:

- Lack of standardized format: Different versions of the same program will impart different meanings to the same element.

- Lack of transaction identifier: Because there is no ID number associated with each transaction, matching duplicate transactions is haphazard at best.

- Lack of expressiveness: The grammar is really simple, and cannot portray the depth of financial information found in today's financial environment.

This is generally why Intuit stopped supporting QIF input at all with Quicken 2005. If you have the option of getting data some other way, like OFX, always choose that option.

### How to import a QIF file

To import a QIF file, first ensure you have a valid KMyMoney file open, then select the File → Import → QIF... menu item.

The resulting dialog prompts for the QIF filename, allowing you to type in the full path to the file or to locate the file by clicking Browse.

Note that KMyMoney differentiates between the import of a bank statement file and a file with historic data exported from another application. A bank statement file does not necessarily include all the data related to a single bank statement; it may contain only one or a few transactions. The default is to import a bank statement file. In case you are importing data from your previous personal finance manager application, select the appropriate option.

Next, you need to select a QIF Profile for the import. Because there is no universally standard format for a QIF file, different vendors have taken liberties with the format, and introduced their own nuances. The QIF Profile allows KMyMoney to know about the peculiarities of your file. In general, the default QIF profile should work with most QIF files. In some cases it might be necessary to use a modified QIF profile. See the next section for more details on that subject.

Click Import to import the QIF file.

KMyMoney will start scanning the file to determine the formats used to represent dates and numbers. In case it cannot determine a date format unambiguously, KMyMoney will ask the user to select one from the list of possible date formats.

Next, KMyMoney imports the data and creates all necessary objects, such as payee information, account and category records, and stock price information. Wherever possible, existing transactions will be matched against the imported information, to avoid duplicate transactions. A progress bar is shown and updated during the import process.

In case KMyMoney could not detect the name of the account to be imported, the user will be asked to select the account into which the data should be imported. If the account does not already exist in your file, a new account can be created by clicking Create.

At the end of the import, KMyMoney shows a statement import statistics window.

After importing, all of the imported transactions will be shown with a yellow background in the Ledgers View. In case KMyMoney was able to match an imported transaction with an already existing transaction, the background is shown in light green.

### Note

The colors used to mark imported and matched transactions are customizable and may be different in your environment.

The next step is to verify the imported data and accept all the imported transactions. This is a general process and also applies to imports from other sources. It is similar to the process for matched transactions. All imported transactions are marked in the ledger with an
imported icon. Once you “Accept” the transaction, it is no longer marked as Imported.

### Transaction matching

As noted previously, one of the major drawbacks of the QIF format is the lack of a unique identifier for each transaction. Thus, if you import a QIF file and some of the transactions are already in your ledger, you may get duplicates. KMyMoney attempts to get around this by looking for transactions that look similar to those you already have. If it finds something that looks like the same transaction, it will match the apparent duplicate.

This can be a problem if you have transactions that look very similar but are actually different. In this case, you can unmatch those transactions later in the Ledger View.

### Writing an import filter

Sometimes you may have data in a custom format, like comma-separated-values (CSV) or something else unique to your situation. As of version 4.6, KMyMoney includes a CSV Importer Plugin, but you can still import other types of files into KMyMoney using a QIF Import Filter. A filter is a custom program you write which takes your special file as input, and produces a QIF file as output. This can be a shell script, a perl script, a compiled program written in C/C++, or anything else you can dream of, as long as the system can run it. The filter will be run with the input file as stdin and stdout is assumed to be a valid qif file to pass on to the actual QIF importer.

To use a filter, edit your favorite QIF Profile or create a new one (see the next section for details on QIF Profiles,) and select the Filter tab. Enter the full path to your filter program in the Input filter location field, or click the browse icon next to the field and navigate to the filter in the File Open... dialog. Then, whenever you do a QIF import using this profile, the file you select for importing will be run through your filter first. Note that the filter location field contains the full path to the filter program or script, but can also include command line parameters for the program.

Next, if you want the File Open... dialog where you choose the file to input to have a filter for your specific file type, enter a comma separated list of file filters (such as “*.abc,*.xyz”) in the Input filter file type field. With the above example, when you open a file for import using this profile, you will only see files ending in abc or xyz. If you leave the field empty, no name filtering will be done, and you will see all files.

A common problem is to convert a list of comma-separated-values into a QIF file. Prior to the addition of KMyMoney's CSV Importer plugin, this would have been a textbook case for the awk tool. We still use this example here, just to show a sample of how the import filter process works. Create a script called `csv2qif.awk`, with the following two lines as contents:

        BEGIN { FS=","; print "!Type:Bank" }

        { print "D"$1; print "T"$2; print "N"$3; print "P"$4; print "M"$5; print "^" }

Then, change the QIF keys (D,T,N,P,M) to match the order of the columns in your CSV data. Set the input filter to `awk -f csv2qif.awk`.

Another problem sometimes arises in the encoding of QIF files. KMyMoney expects files to be UTF8 encoded. If your file is encoded in something else, it can be useful to convert it to UTF8. For example to convert it from iso-8859-1, you would set the input filter to `recode iso-8859-1..utf-8`.

### Special KMyMoney QIF extensions

As already mentioned, one of the major drawbacks of the QIF format is the lack of a unique identifier for each transaction. If you are writing your own QIF file creator (or filter, as described above,) you can overcome this problem. KMyMoney supports the '#' field. The importer will interpret this as a unique transaction ID, and disregard the record if the transaction is already in the system.

QIF Profiles
QIF Profiles

## QIF Profiles

To edit an existing QIF Profile, or to create a new one, bring up the QIF Importer dialog by selecting Settings → Configure KMyMoney... (Ctrl+Shift+,) from the main menu, clicking
Plugins at the bottom of the left panel, and clicking Configure on the entry for “QIF Importer”.

Note that because the QIF Importer and the QIF Exporter are implemented as separate plugins, there are separate entries for each on the Plugins configuration dialog. Configuring either one brings up the same Profile Editor dialog.

On the left, the Profile selector displays a list of all existing QIF Profiles; select one to edit its configuration. To create a new profile, press the New button. You can rename an existing profile by selecting it in the Profile selector and clicking Rename, and delete one with the Delete button. Clicking Reset resets all the fields of the currently displayed profile to their default values.

The right area of the dialog has four tabs.

The “General” tab contains a field for a description of the filter, several fields to specify what KMyMoney should expect certain fields to look like in the qif file output by the filter, and a checkbox which tells KMyMoney whether or not to attempt to match similar transactions to avoid duplicates.

The “Filter” tab allows you to specify the location of both an import filter, as described in the previous section as well as an output filter, which works similarly, but is applied when writing out a data file. The Input filter file type is not applicable to an output filter, as the file dialog for the file to be written does not require filtering.

The “Date” tab is primarily applicable to QIF Export, as KMyMoney is usually able to determine the date format by examining the actual data. The primary purpose is to specify the order of the date parts, and the delimiter which separates them.

Because the QIF format is not standardized, it's impossible to know which century is meant when using two digit years. In QIF files with two digit years, there is an assumed default century, and an apostrophe is used as the year separator to specify that entry is in the OTHER century. However, since which century is assumed to be the default is not standardized, the Apostrophe Handling field is used for this purpose, indicating the intended century when an apostrophe is used as the year separator. As an example, you would set the Apostrophe Format to "2000-2099", so dates with an apostrophe will be interpreted as being > year 2000. In this case, dates without an apostrophe will be treated as being in the 1900's.

The “Amounts” tab is used on QIF Export to specify the Decimal Symbol and Thousands Separator to be used. However, you need to specify those for each line in the QIF file which can contain an amount. To alter those settings, click one of the lines in the upper part of the display, then use the dropdowns below to set the characters to be used.

QIF Exporter
QIF Exporter

## QIF Exporter

To export one of your accounts to a QIF file, choose the File → Export → QIF... menu item. You will be prompted for which single account to export, what file to export it to, and what QIF Profile to use.

### Note

The QIF Exporter does not handle export of investment accounts. It may appear to work, and will produce an output file, but that file will not include any actual data.

The QIF Exporter uses QIF Profiles in a similar way as the QIF Importer, but it uses the information in the Profile to format the QIF file being written, rather than to interpret the file being read. Parallel to the importer, you can use a custom written filter program. There is a separate field on the Filter Tab of the QIF Profile editor for an output filter, so you can use the same QIF Profile for both importing and exporting, but use a separate filter for the two processes.

OFX Importer
OFX Importer

## OFX Importer

Ace Jones `<acejones@users.sourceforge.net>`

Thomas Baumgart `<ipwizard@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

The OFX importer was one of the first components of KMyMoney to be written as a Plugin. At that time, there were only a few plugins included in the source code, and they were not always included in versions built for Linux® distributions, so it was sometimes necessary for users to be able to compile the plugins themselves. This is rarely the case any more, but see the section on Plugins for more information. Currently, many of the features considered core parts of KMyMoney are implemented as plugins, so that fact is not always mentioned in this handbook where those features are discussed. See also the Plugins section in the Settings Chapter.

### What is OFX

OFX stands for “Open Financial Exchange”. According to the OFX Work Group web site “Open Financial Exchange is an open standard for client-server systems and cloud based APIs for exchanging financial data, and performing financial transactions between financial institutions, and financial applications.” The specification defines formats for transfer of financial data both by file and by direct interchange. Additional historic information may be found on the Wikipedia page

Although the OFX standard is much more complete and robust than QIF, there are still variations, depending on the specific implementation used by any institution. OFX files may have an extension of “OFX” or “QFX” (upper or lower case); this does not imply any particular difference in the content. The specification was originally based on SGML, and more recent versions are based on XML, so the files can be read in any text editor, but as whitespace is not relevant to the content itself, some implementations do not use any, making it very hard for a human to read.

In addition, even though the standard includes provisions for additional types of data, KMyMoney is only able to import transaction data, with some additional data such as the current balance of accounts.

Although it appears to have disappeared, there used to be another site with good information at OFX Home, which maintained a directory of financial institutions that support OFX. This was often useful if you had problems setting up OFX direct connect. They also had a forum for discussions about OFX issues. As the domain is still registered, we will leave this reference just in case the site reappears in the future.

### Importing OFX data

The OFX standard defines the organization and formatting of financial data, but that data can exist either as a regular file or as a stream of data between two computers. The most straightforward way of getting OFX data is to download it from your bank or other financial institution as an OFX file. In most cases, when you are logged into the bank's web site, on the page which displays your transactions, there is a button or link for downloading that data. It may say OFX or QFX, or you may request the data for Quicken or Web Connect (see below for more on this term.) You also have the option of specifying the date range of transactions to download (although that is sometimes restricted to periods matching the available statements,) as well as filtering by type of transaction.

If you have downloaded an OFX file, the most basic way to import it is to choose the importer from the menu bar, selecting the File → Import → OFX... menu item. If OFX does not show up under Import, you do not have the OFX Importer Plugin installed correctly, or it is not enabled. Please see the previous section.

The first thing the importer will do is ask you into which account to import the transactions. If the file includes transactions from multiple accounts, you will be asked this question multiple times.

After importing, some of your transactions may be shown with an exclamation mark on a yellow triangle in the ledger. This is because they need to be assigned a category. The importer was not able to automatically assign a category based on your past transaction history. You can edit each transaction in the ledger to assign a category, and the mark will be removed.

This section describes the “native” OFX importer. OFX files may also be imported using the AqBanking Importer Plugin. The two importers do behave slightly differently, and they are written and supported by two different developers.

### Importing Investments

Please note that if you are importing a file with investment transactions, those investments must first exist in your KMyMoney file. The trading symbol is used to match, so please ensure that the symbol in KMyMoney is exactly the same as the one in the file you're importing.

### Web Connect

Rather than explicitly downloading an OFX file, as described above, an easier way to import an OFX file is to set up Web Connect. Visit your bank's web site, and click the button or link to download your data as an OFX file. (Some institutions will only list QFX, which is equivalent.) Your browser should ask whether you want to save the file, or else what program you would like to use to open the file. Point your browser to KMyMoney. It will then import the downloaded OFX file directly into the KMyMoney file you currently have open, or the file you most recently had open. You can also change the file associations of your desktop environment, and have the system automatically open KMyMoney if you click an OFX file in your file browser.

If you need to import the OFX file into some other KMyMoney data file, open that file in KMyMoney first, and then visit your bank's web site.

### Direct Connect

KMyMoney also supports OFX Direct Connect. This gives KMyMoney the ability to contact your bank directly to download transactions, assuming the bank supports it.

Please be warned: not all banks support OFX Direct Connect, and those that do often use software provided and supported by third parties, and those third parties often provide customer support only to users of specific, commercial financial management software. No bank directly supports KMyMoney, so you may have to tell them you want to bank directly from MS Money or Quicken. In addition, the OFX Work Group web site mentioned above also says “Further, the API allows the exchange to be facilitated either directly or via an intermediary such as data aggregation service providers.” Users have reported that banks which have migrated to using such aggregation service providers are even less likely to provide any support unless you are using one of the commercial applications.

In addition, your bank may require a separate signup than for the regular web site, it may give you a separate password or PIN, and it may even charge you a separate fee for this service.

If Direct Connect works for you, it allows you to update your records by downloading recent transactions with a single button push. If it does not work on your first attempt, you may find an easy solution to your issue, or it may take a lot of research, and there is no guarantee that it will work in any particular situation. However, please do not take any of this as a reason to not try it.

The first step is to configure each account for which you wish to download transactions. Go to the Accounts view, right-click the account you wish to configure, and choose Map to online account.... This is also available from the Accounts menu if the account is open in the Ledgers View. In case more than one online banking plugin is installed on your system you will be asked which one to use. For the internal OFX method select KMyMoney OFX. A list of banks will be downloaded from the Internet and a wizard will guide you through choosing a bank, entering your username and password, and selecting an account. Should you find that your bank is not listed, then it may still be possible to use the manual option. Your bank may be able to provide the required parameters, or you may have to do some research to find them.

### Note

As implied above, setting up OFX Direct Connect can sometimes be a challenge, especially as the implementations at most institutions do not provide sufficient details in error messages. One particular issue to note is that many institutions require you to change your password the first time you access it online using this method. Unfortunately, at this time, the library that KMyMoney uses (libofx) does not have a way to interactively change a password. In some cases, it is possible to get a technical support person at the institution to change the password for you. Until we are able to expand this section with more detailed troubleshooting information, if you have trouble getting this to work for you, you can ask for help on the developers' mailing list `(kmymoney-devel AT kde.org)` or one of the other support channels.

Once you have an account set up with online banking, go to the ledger for that account, and choose Account → Update account.... This will connect to your bank, and download your recent transactions. See the next section on how you can configure the actual date range of transactions to fetch.

### Note

In older versions of KMyMoney, the Payee name was always taken from the `PAYEEID` field in the OFX data. As of version 4.6, the payee name can be based on either the `PAYEEID`, `NAME`, or `MEMO` field in the OFX transaction. The next section shows how you can configure this feature and some other OFX direct connect settings.

### Configuring OFX import details

This was described previously, in the section on editing account details.

### Exporting an OFX file

It is currently not possible to export your data as an OFX file. If you are interested to contribute in this area, please contact the libofx development team for details.

CSV Importer Plugin
CSV Importer Plugin

## CSV Importer Plugin

Allan Anderson, ✝

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

### Reasons for importing CSV Files

In general, it is preferable to import OFX. However, not all institutions provide data in that format. CSV (comma separated value) files are almost always available, sometimes described as Excel or spreadsheet files. Also, they can often be created fairly easily by capturing the data you want to import, such as in a text file, and manually editing it.

The initial focus of the CSV Importer was on handling data from bank statements, but the ability to also import some investment statements was added. In addition, it has been further enhanced to import both currency and stock prices. The original code for this was initially created, before becoming a CSV importer, to produce QIF files from CSV files, which could then be imported. This ability is still present, but is likely to be removed, as focus is now on directly importing CSV files. Also, KMyMoney has the native ability to export QIF files, so there is no longer a real reason to produce a QIF file from a CSV file.

### Getting the plugin

The CSV importer is one of the newer features to have been added to KMyMoney in the form of a plugin. However, as with other plugins, the CSV Importer is included with the core KMyMoney source code, so it should be available in all Linux® distribution versions, as well as the versions for other platforms made available through the KMyMoney web site. The menu choice to import CSV files should automatically show up under the File → Import submenu.

To ensure that it is enabled within KMyMoney, check the Settings → Configure KMyMoney... menu item, select Plugins on the left pane, and look for the CSV Importer in the displayed list of plugins. If the CSV importer does not seem to be installed in your version, the first place to check is in the same place you got your base KMyMoney package. See if a later version is available, or if the importer is available as a separate package.

If you have built from source, there should be no additional requirements. The KMyMoney build process should detect the plugin source and compile the plugin. There are configuration settings which can be used to exclude this or other plugins from being built, but these should rarely be needed.

### Importing a CSV file

To import a CSV file, choose the importer from the main menu: File → Import → CSV.... If CSV does not show up under Import, the CSV Importer Plugin is not installed correctly or is not enabled. Please see the previous section.

The CSV Importer is presented in the form of a wizard, with a separate page for each individual step of the process.

#### CSV Import Wizard: Start

When launched, the CSV Importer displays the Start or File page. On the left is a list of the steps of the import process, with the current one highlighted. The upper right area is where data to be imported will be displayed; before that it shows some brief instructions relevant to the current stage of the wizard. Below that is a set of radiobuttons for selection of the type of data to be imported. That list currently includes Banking, Investment, Currency prices, and Stock prices. Next, there is a profile selector dropdown, which is enabled if once the radio button has been selected for one of the import file types.

#### CSV Import Profiles

Each type of CSV file to be imported requires specification of several details regarding the expected formatting of the data, as described in the following sections. Not only do the details differ for the different types of data files imported, it is possible to need different configurations for the same type of data from different sources. So you do not need to enter all those details each time you import a file, the CSV Importer allows you to specify the details once, and save them in a named profile.

The name of a CSV import profile is completely arbitrary, but will be easier to remember if it reflects both the type of data being imported (bank, credit card, investment, ...) and the source of the data. There is no need to reference the account into which the data is imported, and it is possible to use the same profile for importing into more than one account, such as two checking accounts at the same bank.

The profile selector dropdown includes the names of all CSV Importer profiles you have previously created, and it also lets you type the name of a new profile. Below the profile selector dropdown, there are three buttons. When you click Add, which is always enabled, a new profile will be created with the name entered in the dropdown. Nothing will happen if that field is empty or if it displays the name of an existing profile. As you proceed through the rest of the CSV import wizard, the various configuration settings you enter or modify will be saved in the selected profile.

If you have previously created one or more profiles, the other two buttons will be enabled. If you click Remove, the profile named in the dropdown will be deleted. If you click Rename, then alter the name displayed in the dropdown, and click Rename again, the profile will be renamed accordingly.

Next to the profile selector, there is a Skip setup checkbox. Initially, you should not select this checkbox. Once you have set up a profile and finished the wizard, all the configuration parameters you entered are saved in the resource file under the profile name. The next time you use that same profile, the parameters will be loaded into the UI (User Interface). The wizard would then plod through the following pages of parameters that you won't need to change. So, once you are happy with a profile, it may be helpful to check this box. The wizard will then move directly to the final page, and, assuming no problems are found, you just have to click Import.

At the bottom there is a Select File button. Clicking this will bring up a file selector dialog to let you choose the file to import. At the bottom of the remaining pages of the wizard are buttons to go < Back to the previous step of the wizard, move on to the Next > step, or Cancel the import.

To review, on the Start page of the wizard, first select the checkbox for the type of data you are importing. In the profile selector dropdown, you can select the name of a previously created CSV Importer profile, or enter a new name, possibly the name of the account into which you wish to import, and click Add. Finally, click Select File, and a file selector dialog will open, where you select the CSV file you wish to import.

#### CSV Import Wizard: Separators

After opening your selected data file, the wizard will advance to the Separators page, and you should now see your data.

### Warning

It may appear that the data displayed in the upper section of the plugin window may be edited, and in fact they may, but any edits are not kept. The table is purely for display, not for editing. The input file is never altered by the CSV Importer, and the data actually imported comes from the input file, not from the display. The one exception to this is covered in Securities and Symbols below.

The CSV Importer should have detected the appropriate Encoding, Field Delimiter, and Text Delimiter. You can change the encoding if the program did not choose correctly. If you need to change the Field Delimiter, such as if your data is actually tab delimited, and not a comma delimited, be aware that doing so will reset any field choices you may already have made. Generally the quote (") is the correct text delimiter, but you may change it as necessary. Click Next to proceed.

#### CSV Import Wizard: Rows

You will now be on the Rows or Lines page. Here, you indicate if any lines should be ignored at the beginning or end of the file.

This page allows you to adjust the import to ignore header and footer rows at the beginning or end of the file, which do not actually contain data to be imported.

Start line. Set this so the importer skips any header lines in the file. Your choice will be saved in this profile for future use. The start and end lines interact, and the start line may not be higher than the end line, nor may it be higher then the actual number of lines in the file. If the Start line selector does not respond, check the end line setting.

End line. The importer will automatically set this to the last line in the file, or to the setting last saved. You will only need to adjust it if there are footer lines in the file the importer should ignore. Otherwise, you are likely to get a data error warning when the plugin attempts to parse incorrect data. Again, if the End line selector does not respond, check the Start line setting.

Above these two fields is a Header contains account name or number checkbox. If checked, the importer will look in the lines above the start line for the name of number of the account to use for the import. If not, you will be prompted for that information.

When you are ready, click Next to proceed to the next step.

#### CSV Import Wizard: Columns

You should now be on the Columns page. This is where you tell the importer which columns in the file contain the data which maps to the specific fields needed to create a meaningful record or transaction, depending on the type of data being imported. There is a different version of this page for each type of data, as each requires a different combination of items.

##### CSV Import Wizard: Banking

For most fields, you just need to use the dropdown to select the appropriate column. Note that many fields have an “x” button to the right. Clicking it will clear whatever value has been entered or selected in the field to the left. In addition, there are some special considerations.

- To the right is an area with two tabs. If your file has a single column for all values, select the Amount tab. However, if there are separate columns for debits and credits, select the Debit/credit tab.

  On the Amount tab, start by selecting the column which contains the amount of the transaction. If there is a column which contains “Credit” or “Debit” to indicate which the amount is, select that column as the Debit/Credit Indicator. Separately, if there is a string included in the amount field which indicates the amount is either a credit or a debit, enter that string in the appropriate Indicator field. Finally, if despite setting all the above values correctly, the amount imported is reversed from what it should be, check the Opposite signs checkbox.

  On the Debit/credit tab, simply enter the numbers of the columns with those values in the appropriate fields.

- It is possible to select more than one column for the Memo field, by making consecutive selections. Memo columns already selected are indicated in the Memo columns: field. If you select multiple columns in this way, their contents will be concatenated in the Memo field.

- If you attempt to choose the same column number for two fields, the importer will alert you and clear both selections. However, it is possible, if desired, to use the same column in both the Payee/Description and Memo fields. If you select a column for the Payee/Description field, and then select the same column for the Memo field, you will receive a warning that duplicate columns have been selected, but asking if you wish to proceed. If you do, click Yes, and the column will be used for both fields.

- One particular reason to also capture the Payee/Descriptor field in the Memo field is that the incoming Payee/Description field might get completely changed on import when KMyMoney does transaction matching. Selecting that field also as Memo will preserve that data, which would otherwise get lost.

If you notice you have made an incorrect choice, just change that selection. If several changes need to be made, you can click Clear all and start over.

Once columns have been chosen for all the necessary fields, the Next button will be enabled, and clicking it will advance the wizard.

##### CSV Import Wizard: Format

The next page of the wizard still shows the data to be imported on the top, but the lower section provides three dropdowns. The initial values are set by KMyMoney based on examining the actual data.

The Decimal Symbol defaults to “auto,” which usually produces the correct results. If not, you can explicitly specify the “dot” or “comma.”

The Thousands Symbol is set automatically, and the field may be disabled if it will not affect the results.

This needs to be set according to the order of year, month, and day in the dates in the file. If the plugin finds data incompatible with this setting, it will complain when you try to import. However, if the setting is wrong, but it produce invalid results not detected (such as data with no days higher than 12, so month and day could be switched) you will simply get incorrect data, because the plugin cannot know you made a mistake. In this case, the error will be obvious in the ledger after import.

The Date format specifies the order of day, month, and year, and is also set automatically. However, in some cases, such as data with no day higher than 12, you will notice the problem after the import. In such cases, you will need to repeat the import, and choose the actual order of the date components.

##### CSV Import Wizard: Investment

This page is similar to the Banking page, although it is somewhat more complex. Most selections are fairly obvious, but there are some items which can seem confusing until you have completed the process once or twice.

- As on the Banking page, you may select more than one column for the Memo field

- The Type/Action selector is to identify the column which contains the action type, such as Buy, Sell, Dividend, etc.

- The Price Fraction selector is to indicate the fraction/multiplier for compatibility between imported and stored prices. For instance, if the import file price is in cents, but your KMyMoney account is priced in dollars, select 0.01. Or, if your KMyMoney data file pricing is in dollars, and so is the CSV file being imported, then set Price Fraction to 1.0.

- There are two ways to specify fees for transactions. If your file has a distinct column for fees, use the Fee Column selector. Note that on this page, this is the only field to explicitly include "column" in the label, to emphasize that it is for the fee column, not for any actual fee. Beware, though, that the fee might have been taken into account in the price.

  If there is a fee, but it is a percentage figure, rather than a specified value, click the Fee is percentage check box, and enter the percentage rate into the Fee rate field. In addition, if there is a minimum fee, specify it in the Minimal Fee field, which becomes enabled when you enter the Fee rate (with a decimal point.) At this point, clicking Calculate Fees will add a column at the right of the table above, and will indicate the calculated fee for each transaction.

  If you made a mistake in entering the fee information, clicking Clear Fee will reset all the fee related fields to their initial values.

- Below the column selectors are two areas for the security identity. Depending upon your broker or financial institution, your file may contain entries for only one or for several securities.

  - If the file contains transactions for just a single security, with the name possibly in a header row, the name should be entered into the Security Name box. The name you enter will be added to the dropdown list for future use. You may subsequently wish to remove that name from the list. If so, select it, then click Hide security. This removes it only from this list, and has no effect on your main KMyMoney file.

  - If the file includes transactions for several securities, each will be identified by its ticker symbol in a column with further detail in another column. Select those columns in the Symbol and Detail selectors. It may be that a security has no official symbol, and in this case a pseudo-symbol may be invented; this is not a problem, as long as it uniquely identifies that security in the import file. Sometimes the actual activity type is embedded in the detail column, possibly prefixed by a standard text. For instance, if the field contains “type: dividend”, go to Filter text box and enter “type: ” including the trailing space.

When all required fields are selected, the Next button will be enabled, and clicking it will advance the wizard.

##### CSV Import Wizard: Securities and Symbols

For an Investment file, after the Columns page has been accepted, you need to assure that each security in the file is matched to the correct security in your KMyMoney file, before import can proceed. At this point, another window will open, showing the securities and symbols contained in the import file. Note that unlike the data display in the main wizard windows, the changes you make on this page are imported.

Completing this page is straightforward, if you consider these items:

- Each row represents one transaction, and so it may appear there are duplicate rows. This is OK.

- Each security name must match exactly the existing security as specified in KMyMoney. If it does not match, it will be created as a new security, which you probably do not want, unless it represents the purchase of a new security.

- A symbol must be shown for each security.

- The only information on this page should be the security symbol and name. Any other information initially shown (such as date or activity type) is still in the actual import file, but should not be shown here.

You can edit a symbol or security name by double-clicking the cell. For each security, if necessary, edit the name in one of its rows, If the correct security name appears in the imported file, double-click it to select it, then copy and paste/edit, taking care if you have used a variation or abbreviation within KMyMoney. If you edit a security name, that edit will be applied to all rows with the same symbol.

Any line without a symbol will be treated as a brokerage-type checking item. If any transaction involves another account, e.g., a checking or brokerage account for a received dividend or for making a payment, a message box will pop up for the account name to be entered for the transfer. This will generally be the Brokerage account you chose or created when you created the Investment account. Similarly enter the column number containing the payee, if requested. If a mistake is made when entering the account name, the import will go ahead, but KMyMoney will not recognize it, and will flag those transactions as missing a category assignment. If the required account name is rather long, just enter a few characters. The import will proceed but the transactions will be flagged by KMyMoney as missing a category assignment, and you will need to select the correct transfer account after the import. Click OK when done. The import process then gets handed over to KMyMoney.

If you have more that one transaction referring to the same security, you can edit all of them at once, using multi-select. For instance, to add a symbol for several lines, press and hold the Ctrl key, and in the symbol column, select each transaction. While still holding the Ctrl key, all those symbol cells should still be selected, so click one and enter the symbol. Click inside the window but outside that column, or hit Enter (not OK). Now that those transactions all have the same symbol, double-click one detail entry and edit the security name as you wish. Click elsewhere on the window (or Enter) to accept the edit, which will then change all those entries. The remaining entries will show the symbols picked up from the transactions in the import file.

Now click OK, then Import. In the Enter Account box, enter the name of a Brokerage/checking account for funds. If you enter a valid name that account will be used. If you can't be bothered entering a correct but long name, enter a few characters. The import will accept that but the transactions in the ledger after import will need a proper account to be selected. For the Brokerage box, enter the number of the column containing that detail. Now, on the Invalid transaction box you may get a few entries because the activity type does not match the qty/price/amount combination. On each message, click Select Transaction Type, and a dropdown will appear indicating valid activity types for that combination of values.

Now the import has occurred and you're into KMyMoney to select the investment account to use. Then the checking account, if there were any brokerage type transactions.

##### CSV Import Wizard: Currency Prices

something about importing currency prices

##### CSV Import Wizard: Stock prices

Something about importing stock prices

#### CSV Import Wizard: Finish

On reaching the Final page, the plugin automatically validates the values. If the numeric value column/s is/are highlighted in green, then the validation was successful and all that is necessary is to click Import CSV and control then passes to the main KMyMoney program. However, if the start and/or end lines are incorrectly set, or if the wrong columns were selected, the highlighting will be in red, and an error message will appear indicating where the error lies. The user will then need to click Back to get to the relevant page to correct the error.

It might also be that if debit and credit columns are in use, one of those columns may legitimately contain no entries. This would mean that that column has no decimal symbol present, and this would result in a warning. If you see that this is the case, you may click either of the buttons to accept (Accept this or Accept all.)

Decimal Symbol. Another possible problem might be that the selected decimal symbol is incorrect. Selecting the symbol to match the data should clear that error. Normally, you should not need to change this selection. Note that the Decimal Symbol must be set to match your file, not your locale. If your locale setting has a different value, conversion will be seen to take place. The display of the file in the upper part of the window will show numeric fields highlighted in green if the current setting produces valid results, otherwise in red. The highlighting also reflects the Start line and End line settings. There could be warnings if any of the selected cells appear not to contain the selected symbol.

Thousands Symbol. This does not need to be selected, as it is set automatically based on the Decimal Symbol. It is provided purely as a guide. In addition, the selector will be inactive if none of the values to be imported is greater or equal to 1000.

Import CSV. Clicking this button tells the plugin to actually import the data from the file, based on the choices you have made above. KMyMoney will prompt you for the correct account into which to import the data.

#### Make QIF File

This button gives you the ability, after the import has been completed, to save the data from the CSV file as a QIF file, should you require one for any reason. This was actually the original functionality that drove the creation of this plugin. However, as KMyMoney itself is now able to export a qif file, the capability is now probably of little use and is likely to be removed eventually.

#### Finishing up

For a Banking import, the plugin has finished, and KMyMoney will prompt you, as stated above, for the correct account into which to import the data. For an Investment import, however, a little more may be required. If, during import of a transaction, the plugin finds no valid transaction type, it will display the offending transaction, and the user may select a valid type to substitute, depending on the combination of quantity, price, and amount values. For every transaction, the plugin will validate the column contents to ensure they match the action type. For instance, if a quantity appears but no price or amount, it is assumed that the transaction can be only an Add or Remove Shares. Or, if there is an amount but no quantity or price, then a Dividend is assumed, etc.

If you wish to save your settings, remember to click Finish, and the plugin will then close.

#### Adding Investment Activity Types

If you find that your investment statements keep including activity types that are not recognized, just add them to the section in the resource file. (See below for more details on this file.) For instance, in the `[InvestmentSettings]` section of the file, the `BuyParam` field includes entries for `Purchase`, `Buy`, `New Inv`, and `Switch In`. If you find a different one, add it to the correct list and restart the plugin. You may notice that there are similarities in the entries in different fields, and you may find that the wrong activity type is being selected. The plugin checks these lists in the following order: `Shrsin`, `DivX`, `Reinvdiv`, `Brokerage`, `Buy`, `Sell`, and `Remove`. Re-ordering the lists to suit this does not work as might be expected, since the entries in the resource file get sorted into alphabetical order. If the offending parameter is one you don't need, just delete it from the file. If that is not possible, you may need to edit your file before input.

#### Configuration of CSV importer plugin

A well-known drawback of QIF format is that it is a fairly loose format. With CSV files, there is this same problem, only more so, in that there is no agreed standard at all. With investment files, in particular, there is much more scope for variation in specifying the different types of activities represented in the data. The plugin handles this by listing these activity types in a resource file, called `csvimporterrc`. The location of this file depends on your operating system or distribution. On a Linux® system, this will be `$KDEHOME/share/config` where `$KDEHOME` is usually `.config` within your home folder. If you are migrating from a version of KMyMoney prior to 5.0, the old location of `$KDEHOME` was `.kde4`, also within your home folder. Using this resource file allows the user to add an activity type that the developer had not encountered. If the file does not exist when the importer first runs, it will create a default version, containing a few of the more obvious descriptions.

A number of sample CSV files are provided (in the `kmymoney/contrib/csvimporter/` folder in the source tree) in the hope that they may help. For example, in the investment sample, an activity type is "`ReInvestorContract Buy : ReInvested Units`". In the validation process, the first successful match is on the `ReInv` in `ReInvestorContract Buy`, so the transaction therefore gets classed as `Reinvdiv`, even though `Buy` also is mentioned. Another example which has been observed is an activity type of `Reinvest` even though the transaction included neither price nor amount, but only a quantity, so that needed to be treated as `Add Shares`, or `Shrsin`.

When this plugin was created, only a few investment formats had been seen as examples, and it may well be that you will encounter one which cannot be handled correctly. If you find such a file, please send a suitable example (edited to remove or replace personal information) to the KMyMoney user list `(kmymoney AT kde.org)` or developer list `(kmymoney-devel AT kde.org)`, the developer will do his best to modify the plugin to handle it.

##### CSV Importer configuration dialog

Finally, there are a few other items which may be configured in a dialog invoked through the CSV Importer configuration dialog, which can be invoked from the Plugins page of the main KMyMoney configuration dialog. This includes which items will be autodetected by the importer and which profile will be used if you do have the importer export a QIF file, as mentioned above.

### CSV Exporter

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

To export data to a CSV file, choose the File → Export → CSV... menu item. The dialog which appears gives you a number of choices which control the data to be exported.

Please note that an exported CSV file can include data from only one account.

Specify the name of the exported CSV file either by entering the complete path in the File to export to field, or by clicking Browse and navigating to it in the Save File dialog. Choose which account to export with the Account to export dropdown.

The time period of data exported is controlled by the Date Range Start on and End on date fields. The default values represent the complete date range of your entire data file, and they are adjusted when you select an account to export.

By default, the Field Separator is a comma, but you can also choose to use a tab or semicolon.

If you check the Contents to Export Account radio button, then the data exported will be the transactions from the specified account and date range. However, if you select the Categories radio button, then the exported file will contain one row for each category which has been defined. For top level categories, the category name is shown, and an “I” or “E” is shown to indicate whether the Category is Income or Expense. For non top-level categories, the parent category is also shown.

The exporter will output a set of columns appropriate for the type of account being exported.

Woob Importer
Woob Importer

## Woob Importer

Dawid Wróbel `<me@dawidwrobel.com>`

### What is Woob?

Woob, or “Web outside of browsers” is “a collection of applications able to interact with websites, without requiring the user to open them in a browser.” One of such applications allows specifically to interact with financial institutions. KMyMoney provides a plugin that employs it directly, therefore allowing to import transactions from those banks and institutions which otherwise do not offer support for any other financial protocol that KMyMoney handles.

### Installing Woob

### Note

KMyMoney currently requires that you install Woob independently. See below for details.

Some Linux® distributions package Woob, and that is the preferred method of installation, if it is available. If not, you need to install a recent version of Python 3 first before continuing. All major Linux® distributions package Python, and you should use that version, if possible. Otherwise, you can download a package for your system from the official Python website. The exact minimum version of Python required by Woob can be found on the Woob website.

With Python 3 installed, you should now be able to easily download and install the required Woob modules. Please refer to the instructions on the Woob website. When KMyMoney runs, it checks for the presence of Woob, and loads the plugin if Woob is found. See the Plugins section in the Settings chapter for more information on confirming that the woob plugin is loaded.

### Using Woob

If Woob is installed, and the KMyMoney woob plugin is loaded, you should be able to set it up for use with an account by invoking the Account → Map to online account... menu item. Once that is done, the Account → Update account... menu item will download transactions for that account using Woob.

Chapter 17. Loans
Loans

# Chapter 17. Loans

Darin Strait `<darin.strait@ashdar-partners.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## Understanding Loans

### Feedback requested

The author would appreciate feedback on whether to expand this section to discuss the variation of principal and interest to attain a fixed recurring payment. It is mentioned in the section on actually creating a loan in KMyMoney but it seems it should be mentioned earlier.

This chapter describes how KMyMoney handles loans. Loan regulations and customs vary from locality to locality. For detailed explanations of loans, as well as information on local regulations and customs, please see other resources.

A loan is an agreement under which a borrower receives money from a lender and agrees to return the money as one or more repayments in the future. KMyMoney allows you to track loans by which you, as borrower, receive money from or, as lender, give money to someone else. Most individuals borrow more than they lend, so you will generally be the borrower and a finance company will generally be the lender. If you lend money to a family member or a friend, you can use KMyMoney to keep track of this loan as well.

This guide will assume that you are borrowing from some sort of finance company, but the topics discussed here apply equally well to loans that you might make to a person. The main difference between borrowing and lending money is that an expense category is used to keep track of interest when borrowing money and an income category is used to keep track of interest when lending money.

### Some relevant terms

Principal. The amount that is borrowed is called the “principal” or “loan amount”.

Term. The period or duration of a loan is called the “term” of the loan. At the end of the term, the entirety of the principal will have been returned to the lender. Terms are generally expressed in weeks, months, or years. A term can also be expressed by the number of payments. For example, a one year loan with weekly repayments could be described as a one year loan or a loan with 52 repayments.

Repayments. The repayment of the principal to the lender is generally not done as a lump sum. Instead, a series of repayments are made, each representing a portion of the principal. Such repayments are sometimes known as “amortization payments” and in KMyMoney “Amortization” is defined as the act of paying off a loan in installments.

Payment Frequency. The frequency of installments is referred to as “Payment Frequency”. Examples of this might be weekly, bi-weekly, monthly, quarterly, or yearly. This is also sometimes referred to as the payment period. In the US, periodic payments are most commonly made every month, therefore the loan's period is one month.

Interest Rate. For the privilege of being able to use the money, the borrower will pay the lender a fee called the “interest”, normally expressed as a percentage of the amount of the principal over a defined period. Interest rates can be fixed, where the interest rate does not change over the lifetime of the loan, or variable, where the interest rate can change over time. Typically, interest payments are included with each periodic repayment.

Note that a loan in KMyMoney must have an interest rate greater than 0. Money borrowed or lent with no interest must be entered as a liability or asset account.

Periodic Repayments. Since repayments are generally made on some sort of scheduled basis, such as weekly, monthly, quarterly, or yearly, they are referred to as “periodic repayments”. The sum of all periodic repayments plus the final repayment will add up to the loan principal plus the interest.

Fees. There may be other fees besides interest that are required to be paid, possibly with every installment. These are called “recurring fees”. Examples of recurring fees include (but are not necessarily limited to):

- “Impound” or “escrow” account payments. Payments of this sort are commonly used to hold funds to pay annual or bi-annual property taxes.

- Mortgage insurance

- Disability insurance

- Loan account maintenance fees

### Summary

In summary, the borrower receives a lump sum from the lender at the start of the loan. The borrower makes a periodic payment to the lender. The amount of the periodic payment is the sum of the principal payment (which is used to pay down the balance or remaining principal of the loan,) the interest payment (which rewards the lender for allowing the use of the money by the borrower,) plus any recurring fees (which cover any incidentals.) At the end of the loan, the borrower has paid back the entire principal.

Example
Example

## Example

For an example, you might borrow $25,000.00 for a new automobile and agree to pay the bank one payment each month for 60 months. The interest rate on the loan might be 5.5% per year.

In this scenario, the loan amount is $25,000.00. The term of the loan is 60 months or 5 years. The term of the loan could also be described as 60 payments since there will be one payment per month for 5 years. The repayment frequency is one month since periodic repayments will be made once a month. The periodic repayment, which is calculated by KMyMoney, would be $477.53.

A “loan schedule” is a chart or table that shows the date that a repayment should be made and the amount of each periodic repayment. Often, these schedules break the periodic payment down into its constituent parts: the principal repayment, the interest payment, and the recurring fees payment.

Creating a New Loan
Creating a New Loan

## Creating a New Loan

In KMyMoney, a loan is a type of account. Therefore, to create a new loan, you begin by selecting the Account → New Account menu item. Continue by answering the questions that the wizard poses to you.

### Note

The New Account Setup wizard not only sets up a Loan Account, but also creates a Scheduled Transaction for the periodic payments. If you try to edit either the Loan Account or the associated Scheduled Transaction, you will be presented with the Edit Loan Account Wizard. This allows you to adjust many of the details of the loans, but not all. Unfortunately, some aspects of the Loan Account cannot currently be changed, such as the account's parent account.

If you display the Schedules View, right-click on any of the listed schedules, and select Edit scheduled transaction from the menu which pops up, KMyMoney will display the Edit scheduled transaction dialog. In contrast, if you do this with a loan schedule, you will be shown the Edit Loan Account Wizard, and mentioned above. However, if you hold down the Shift key when you click Edit scheduled transaction, the Edit scheduled transaction dialog for the loan will be show, where you can change some of the details of the recurring transaction.

Also note that if you delete the schedule associated with a loan, you cannot undo this action, and will have to start from scratch, creating a new loan account and schedule.

Optionally, as with any other account, a loan can be associated with a particular institution. If you are borrowing from a mortgage company or a car loan company, you could create an institution that describes this firm and associate your loan with the institution. If you are borrowing from your Uncle Ted, there is no need to set up an institution.

Making Extra Principle Repayments On Loans
Making Extra Principle Repayments On Loans

## Making Extra Principle Repayments On Loans

If you would like to make an extra principal repayment, you can do so. Simply enter a transaction using the ledger. This extra repayment of principal will be taken into account for the interest calculation that happens for the next periodic payment.

Examples of extra principal payments include (but are not necessarily limited to):

- Contributing an extra $50 a month

- Doubling the periodic principal repayment for every period. (The principal repayment can be found for any particular period by referring to the loan schedule.)

- Making a 13th principal repayment every year. (This assumes a loan that is repaid in monthly installments.)

### Note

If you are doubling the principal repaid with every periodic payment, you will need to recalculate the loan schedule for each installment. This will allow there to be an accurate value for the required principal repayment with each installment.

Chapter 18. Budgets
Budgets

# Chapter 18. Budgets

Colin Wright `<cdwright@gwi.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## What is a budget?

A budget is a categorized list of expected income and expenses for a period.

The Budget facility of KMyMoney allows you to create annual budgets. More than one Budget can be created for any year. You set monthly Budget values against any Income or Expense categories that you have defined. The values can be set in three ways, depending on the Period:

Monthly

  (Default) specify a single value applied to every month in the Budget

Yearly

  Specify a single value to divide evenly across each month in the Budget

Individual

  Specify separate values for each month.

  This is used for income and expenses spread irregularly through the year.

KMyMoney provides a number of reports which compare actual income and expenses against the entered Budgets. These are described in more detail in another section.

Your budgets
Your budgets

## Your budgets

You can access your budgets in the Budgets View, which you can display by clicking the appropriate icon in the View Selector at the left hand side of your KMyMoney window.

There are two major sections in the Budgets View. On the left, there is a list of budgets you have created. Above that are buttons for creating, renaming, and deleting budgets. On the right, there are three sections. At the top is the Categories List. At the bottom is a display of the amounts assigned to the budget selected on the left for the category selected in the Categories List above. Between those two areas are some additional controls for managing the budget.

### Viewing, creating, renaming, and deleting budgets

The left section of the Budgets View displays the list of Budgets contained in the current KMyMoney file. If no Budget has yet been created the list will be empty. The list of Budgets has two columns:

Name

  Name of the Budget

Year

  Fiscal year of the Budget. Note that the starting month and day of the fiscal year can be specified in the Configure KMyMoney dialog. To change the fiscal year of a Budget, double click the year.

Values from the selected Budget are displayed to the right. To select a different Budget you can click the budget name in the list on the left. Alternatively, when the list has focus, you can select a different Budget using the Up and Down keys. If you have made changes to a Budget and then select a different budget, KMyMoney will ask you whether you want to save or discard the changes.

There are three buttons above the list of Budgets.

New

  Create a new, empty budget. The default name of a new budget is "Budget <year>" where <year> is the current fiscal year.

Rename

  Edit the name of the selected Budget. You can also edit the name of a Budget by double-clicking the name of a Budget in the list.

Delete

  Delete the selected Budget.

Additional options are available on the Budget Options context menu accessed by right-clicking a Budget.

New Budget

  Create a new, empty Budget.

Rename Budget

  Rename the selected Budget.

Delete budget

  Delete the selected Budget.

Copy budget

  Creates a copy of the selected Budget. The new Budget has the name "Copy of <budget>", where <budget> is the name of the copied Budget.

Budget based on forecast

  Fills in budget amounts based on data from KMyMoney's Forecast values. See the section on Forecasts for more information.

### Categories List

The Categories List displays the list of Income and Expense Accounts. (Remember, within KMyMoney, categories are treated as a special type of account.) As in other places in KMyMoney, the list is organized in a tree structure. The list can be expanded or collapsed to show or hide Subcategories within a Category. The Categories List has a number of columns:

Aside from the Name column, all other columns may be shown or hidden by right-clicking any column header, and checking or unchecking the checkbox next to the column name. For more details about the meaning of each column, see the Categories View section. Only the columns specifically relevant to Budgets are listed below, but all Category columns may be displayed.

Name

  Account (Category) name

Type

  Category Type (Income or Expense)

Balance

  Current balance of Account. This will be blank for Categories, unless the Category is defined in a foreign currency. In this case, Balance will show the value for the Category in its defined currency.

Total Value

  Total yearly value in the Budget. If a Category has Subcategories and the Category's list of Subcategories is collapsed the value displayed is the sum of the values for the Category and all of its Subcategories. If a Category is defined in a foreign currency, the Total Value will show the value in the base currency.

Below the Categories List are several controls. The
Upd (Update) and
Res (Reset) buttons are described further below. The
collapse and
expand buttons collapse or expand the entire Categories List.

The Categories List can be filtered in two ways. Checking the Hide unused budget categories checkbox hides any Categories for which no value has been assigned to the Category or any of its Subcategories in the selected budget. To the right of this, is an unlabelled text box. Only categories which include whatever is typed in this box are listed, but their parent categories are also listed.

Note that changing either the Hide unused budget categories or the filter value is likely to change the list of Categories displayed. You may need to re-expand the list to see all the Categories that should be displayed with the current settings.

### Assignments

The Assignments area shows the values for the Category selected in the Categories List.

Account

  The name of the selected Category. If the Category is a Subcategory, its full name is displayed in the Category:Subcategory format.

Total

  The total yearly value assigned to the Category.

Include subaccounts

  If this is checked, then Reports show actual income or expenses in Subcategories belonging to the Category against the Category instead of the Subcategory.

  If a Subcategory has a value defined in the Budget, then the income and expenses are shown against the Subcategory.

  If the Category selected in the Categories List has its Subcategories collapsed, although its Total Value will show the sum of the Total Values for all its Subcategories, the amounts in the Assignments area may still show 0, unless this box has been checked or an amount has explicitly been assigned to the Category.

  In general, you will either check this box and assign values to the Category and not to any of its Subcategories, or not check the box, and assign values to the Subcategories but not the Category. If any Subcategories have assigned amounts when this box is checked, then those amounts are rolled up to the Category.

Clear

  Clicking this button resets the budgeted category value or values to zero.

Period

  This radio buttons allow you to select the period for which the value applies

  Monthly

    A single value is entered, specifying the amount per month. This is the default setting.

  Yearly

    A single value is entered, specifying the amount per year.

  Individual

    Values are specified for each Calendar month. This is used where expense or income is spread irregularly through the year.

  If a value is or values are already specified and the Period is changed, KMyMoney will ask whether to use the current total yearly value to assign the new values.

### Update and Revert

When a Budget's values are first modified, the Update and Revert buttons are enabled. Multiple changes can be made to the Budget. Pressing Update will store the changes and disable these buttons.

The Save button only saves changes that have been stored using the Update button. Thus, if you have modified a Budget but not yet stored the changes Save button will not affect the modified Budget and the Update and Revert buttons remain enabled.

Revert undoes any changes made to a Budget since the last Update and disables the Update and Revert buttons.

Budget Reports
Budget Reports

## Budget Reports

KMyMoney provides a number of reports to compare actual income and expenses against a Budget. These are listed in Reports under "Budgeting". There are two types of Budget Reports:

Budget only

  These reports display values from a Budget.

  Monthly Budget

    Displays the monthly values from a Budget.

  Yearly Budget

    Displays the monthly values from a Budget, with yearly total.

Budget vs. Actual

  These reports compare values from a Budget to actual income and expenses. In each budget report you can find the columns Budget, Actual, and Difference. Each report differs in the period that is shown.

  Budget vs. Actual This Year

    From the beginning of the year until today

  Budget vs. Actual This Year (YTM)

    From the beginning of the year until the last day of the previous month

  Monthly Budgeted vs. Actual

    From the beginning of the year until the last day of the current month

  Yearly Budgeted vs. Actual

    From January 1st until December 31st

  Yearly Budgeted vs. Actual (Graph)

    Same as the previous report but it shows the graph by default

  These reports provide a base from which custom reports can be created by changing the date range and Budget, among other options.

Chapter 19. Forecast
Forecast

# Chapter 19. Forecast

Colin Wright `<cdwright@gwi.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## What is a Forecast?

In KMyMoney, a Forecast is a prediction of the balances of Accounts during a specified future period of time.

Forecasts can be predicted using one of two methods.

Scheduled and Future Transactions

  KMyMoney uses a combination of future transactions already entered into the ledgers and the entries in the Schedule.

History-based

  KMyMoney uses values from past transactions.

The Forecast View shows the predicted balances at account cycle dates and the expected difference between the starting and ending balances. The summary also displays messages about significant predicted changes to the accounts during the forecast period. In addition to the summary, you can also view day-by-day balances and the minimum and maximum balances for each forecast account cycle.

The next section describes how you can configure the forecast method and other parameters used to calculate a Forecast. Following that is a section with more details on the Forecast View.

Configuring the Forecast
Configuring the Forecast

## Configuring the Forecast

The parameters used to calculate a Forecast, including the forecast method, can be set in the Forecast view configuration dialog. Since the forecast functionality is implemented as a KMyMoney plugin, you can reach this dialog by invoking the Settings → Configure KMyMoney... menu item, selecting Plugins on the left pane, and clicking the configure icon next to Forecast view.

Number of Days to Forecast

  The forecast will be calculated up to this far into the future.

Number of Days of Account Cycle

  A Forecast is not based on actual months, but repeating periods of the number of days set in this field. The most common values used are 30 or 31.

Day of Month to start Forecast

  This sets the day of the current month which is used as the starting point of counting both cycles and the number of days to forecast. A value of 0 means to use the current day.

Forecast Method

  As mentioned in the previous section, you can choose whether KMyMoney uses scheduled and future transactions or historical transactions to calculate a Forecast.

History-based settings

  The settings in this section of the dialog are only applicable if the Forecast Method is set to “History-based”

  Number of Cycles to use in Forecast

    This sets the number of cycles of historic data to use for predicting future values.

  History Forecast Method

    Selecting one of the three radio buttons, Simple Moving Average, Weighted Moving Average (this is the default setting,) and Linear Regression, sets the mathematical formula KMyMoney will use for a history based Forecast.

The Forecast Method set here applies to all Forecasts. The other settings become defaults, which can be changed when actually calculating and viewing a forecast on the Forecast View.

At the bottom of the dialog, the Defaults resets all values to their default values. The OK and Cancel have their usual meanings.

Viewing the Forecasts
Viewing the Forecasts

## Viewing the Forecasts

You can display the Forecast View by clicking the appropriate icon in the navigation pane at the left hand side of your KMyMoney window.

The top area of the Forecast View is the Forecast Settings. At the left are several fields to control the forecast calculations. The defaults for these values are set on the Forecast View configuration dialog, as described in the preceding section. The values (with the name used on the configuration dialog shown in parentheses if it differs) are:

- Days to Forecast (Number of Days to Forecast)

- Days of Accounts Cycle (Number of Days of Account Cycle)

- Day of Month to start Forecast

- Historic Cycles (Number of Cycles to use in Forecast)

- Chart Detail: This item is not set on the configuration dialog. Choose one of the following values to control the results as displayed in the Chart tab.

  - All

  - Top-Level

  - Groups

  - Total

To the right of these items, KMyMoney shows the Current Forecast Method. To the right of this is a Forecast button. When you click this button, KMyMoney calculates the forecast based on the settings to the left, and displays the results in the lower part of the window. Just below these is the History Forecast Method, which is only enabled if the current forecast method is set to “History”.

The bottom area of the Forecast View has five tabs.

### Summary Tab

The Summary tab has two sections.

#### Account Summary

On the left is the Account Summary, displaying one row of information for each Asset and Liability, with the columns shows below. Note that if the Forecast is based on Scheduled and Future Transactions, there will only be rows for accounts referenced in such transactions.

Account

  The name of the Asset or Liability account

Current

  The current balance of the account

Account Cycle Balance

  The Forecast period is split into account cycles. The default account cycle length is 30 days, but can be set by the user.

  The first account cycle date is the first Forecast date. By default this is the current date plus one account cycle, but this can change depending on the "Day of Month to start Forecast" setting.

  The remaining account cycle dates are determined by adding the account cycle length to the previous account cycle date. This is continued until the calculated account cycle date would be beyond the Forecast period,or Days to Forecast.

  For each account cycle date the predicted balance is displayed.

Total Variation

  The rightmost column displays the predicted difference in value between the balances at the start and end of the forecast. If the predicted end value of the account (in terms of net worth) is less than the start value the whole row is highlighted in red.

#### Key Summary Information

The right portion of the Summary tab displays noteworthy information about accounts. This includes:

Assets below zero

  A message is displayed (in red) for any asset account for which the value starts or will drop below zero during the forecast period.

Liabilities above zero

  A message is displayed for any liability account for which the value starts or will rise above zero during the forecast period. Note that the value of a liability is the negative of its ledger balance, since a positive balance indicates money owed.

### Details Tab

The Details tab also displays one row for each Asset and Liability account, but the columns displayed differ from the Summary Tab.

Account

  The name of the Asset or Liability account

Dates

  For each date in the Forecast period a column displays the predicted balance of the account on that date. The date columns are in ascending order from left to right.

Total Variation

  The rightmost column displays the predicted difference in value between the balances at the start and end of the forecast. If the predicted end value of the account (in terms of net worth) is less than the start value the whole row is highlighted in red.

### Advanced Tab

The Advanced tab also displays one row of information for each Asset and Liability account. The information is split into columns as follows:

Account

  The name of the Asset or Liability account

Minimum Account Cycle Balance Information

  For each account cycle number <n> in the Forecast period the following columns are displayed:

  Min Bal <n>

    The minimum predicted balance during the account cycle

  Min Date <n>

    The date on which the balance reaches its predicted minimum.

  Max Bal <n>

    The maximum predicted balance during the account cycle

  Max Date <n>

    The date on which the balance reaches its predicted maximum.

  Note that all the minimum balances and dates are shown before all the maximum balances and dates.

Average

  The average balance of the account during the forecast period

### Budget Forecast Tab

The Budget tab displays a forecast calculation for all Income and Expense categories. Unlike the Summary Tab, there is one column per month, starting with January of the current year, and ending with the month which includes the end of the Forecast period. The final column is a total, rather than a predicted value or a value calculated based on any predicted value.

### Chart Tab

This displays the Forecast in a chart or graphical form. The level of detail varies depending on the detail level selected on the option above.

Chapter 20. Search Transactions
Search Transactions

# Chapter 20. Search Transactions

Darin Strait `<darin.strait@ashdar-partners.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

You can use the Search transactions dialog to search your data for transactions based on criteria that you specify. You can access the dialog by selecting the Edit → Find transaction... menu item, or typing Ctrl+Shift+F.

There are two main tabs in this dialog. The Criteria tab displays a number of subtabs for specifying the search criteria. When the Find button is pressed, the search is initiated and all criteria that have been entered on any of the Criteria subtabs will be taken into account.

After the search has completed, the results will be displayed under the Result tab. Below the list of results, KMyMoney shows the number of transactions that met the search criteria. Double-clicking an individual transaction in the result list will bring up the appropriate ledger with that transaction selected.

The Reset button resets all of the fields on all of the criteria subtabs back to the defaults. This allows you to specify new search criteria.

The Close button closes the Search Transactions dialog box.

## Search Criteria

There are several subtabs under the main Criteria tab, each of which allows you to specify a different type of search criteria. Below the area for specifying the criteria, KMyMoney lists each of the different types of criteria that are currently specified for the search.

### Text

This tab allows you to specify text to search for. There are also a dropdown field and two check boxes that control how the text is used in the search.

By default, the search will match on simple substrings. For example:

- “Best” will find “Best Cakes, Inc.”

- “est” will also find “Best Cakes, Inc.”

In the dropdown field next to the text field, select Contains if you want to find transactions that contain the text, or select Does not contain if you want to find transactions that do not contain the specified text.

If you check the Case Sensitive box, the search will be case sensitive. For example, “best” would not find “Best Cakes, Inc.” if this option is set.

If you check the Treat Text as regular expression box, the text will be treated as a regular expression. For details on how to craft a regular expression, visit the Qt™ documentation about the QRegularExpression class.

### Account

This tab allows you to specify the accounts that should be searched.

Accounts are displayed in a tree format. Accounts that are marked for search are indicated with a checkbox. If you click All, all accounts are marked for searching. If you click None. no accounts will be marked for searching. Individual accounts can be marked or unmarked by clicking the box next to the account name using the left mouse button. A complete hierarchy of accounts can be marked or unmarked by clicking the box using the right mouse button.

### Date

This tab allows you to specify which dates should be searched. The date refers to the post date of the transaction.

The “Range” dropdown provides a convenient way to set the From and To date controls. The From and To controls can be manipulated individually. Dates can be entered manually, and clicking the down arrow at the right of the field will bring up a typical calendar widget to select the date. The controls will prevent you from entering non-existing dates. Date values can also be changed by clicking the up and down arrows while the cursor in within a particular part of a date.

### Amount

This tab allows you to specify what amounts should be searched for.

You can search for an exact amount or for a range of amounts. If you click the calculator icon, a small on-screen calculator will pop up to assist you in entering a value.

### Category

This tab allows you to specify which categories should be searched.

Categories are displayed in a tree format, similar to Accounts. Categories that are marked for search are indicated with a checkbox. If you click All, all categories are marked for searching. If you click Income, all income categories will be marked and all expense categories will be unmarked. If you click Expense, all income categories will be unmarked and all expense categories will be marked. If you click None, no categories will be marked for searching.

Individual categories can be marked or unmarked by clicking the checkbox next to the category name using the left mouse button. A complete hierarchy of categories can be marked or unmarked by clicking the box using the right mouse button.

### Tag

This tab allows you to specify which tags should be searched.

Tags that are marked for search are indicated with a checked box. If you click Select all, all tags are marked for searching. If you click Select none, no tags will be marked for searching. Individual tags can be marked or unmarked by clicking the checkbox next to the payee name.

If you check the Select transactions without tags box, only transactions with no tag will be selected.

### Payee

This tab allows you to specify which payees should be searched.

Payees that are marked for search are indicated with a box. If you click Select all, all payees are marked for searching. If you click Select none, no payees will be marked for searching. Individual payees can be marked or unmarked by clicking the box next to the payee name.

If you check the Select transactions without payees box, only transactions with no payee will be selected.

### Details

This tab allows you to specify various additional search criteria.

Type can be one of the following:

- All Types

- Payments

- Deposits

- Transfers

State can be one of the following:

- All states

- Not reconciled

- Cleared

- Reconciled

Validity can be one of the following:

- Any transaction

- Valid transaction

- Invalid transaction

You can search for a particular transaction number or search for a range of transaction numbers.

Search results
Search results

## Search results

The Result tab displays the Entry (entry date, optional,) Date (posting date,) Account, Payee, Details (memo,) C (reconciliation status,) Decrease, and Increase for each transaction that matches the search criteria you have entered. Clicking the right mouse button on the header row of the results list allows you to toggle the display of the optional columns.

Double-clicking a transaction will display the corresponding account ledger with that transaction selected.

Chapter 21. File Formats
File Formats

# Chapter 21. File Formats

Thomas Baumgart `<ipwizard@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

Unless you choose to use a relational database, KMyMoney will store all your financial information in a file. Most commonly, the file name will end in `.kmy`. Also, when you launch KMyMoney, unless you use a command line option that tells it not to do so, it will open the last file it had open. However, it is important to know that there is actually more than one type of file KMyMoney can use to hold your financial data.

This chapter describes the file formats in which KMyMoney can store its data in permanent form. It also discusses backing up your data.

## Data File formats

In general, KMyMoney stores its information in form of an XML document. Depending on the actual format, which is set in KMyMoney's configuration, this XML document will be written:

- as a plain text file, encoded in UTF-8,

- as a compressed file, using GZIP compression,

- as an encrypted file, using GPG encryption, or

- as an anonymous plain text file, encoded in UTF-8 but with all your personal data scrambled.

Each of these is described in more detail in the following sections.

### Plain text file

This is the most space consuming format supported, as no compression is performed. It is not intended for normal use, and is provided to support debugging purposes and the capability to modify the file manually. If you end a filename in `.xml`, the file will be stored in this format.

### Note

Manual modification of the file is not recommended to the normal user, and should only be performed if the internal working of KMyMoney is fully understood or if instructions from the developers tell you what to do. Don't blame the KMyMoney developers if you damage or destroy your data: You have been warned!

### GZIP-compressed file

This is the normal format used by KMyMoney when you store a file with the extension `.kmy`.

### Note

If encryption has been selected in the configuration, the file will be stored encrypted, as described in the next section.

If you want to look at the contents of a GZIP compressed file, rename it to a filename ending in `.gz` (e.g., rename `myfinances.kmy` to `myfinances.kmy.gz`), then use gunzip to uncompress the file and look at it. You don't have to compress it before loading it into KMyMoney the next time, because KMyMoney can read the uncompressed data as well. Nevertheless, if you save it thereafter, it will be saved compressed again. Use the `.xml` extension to write it in uncompressed format.

### GPG-encrypted file

Using the GPG-encrypted file format is a very secure method of storing your personal finance data on your storage device. When KMyMoney has been instructed through the settings dialog to store your data encrypted, it will cipher the data using GPG and the key you provided before actually storing it. When opening an encrypted file, you have to provide the passphrase necessary to open your keyring. The encrypted file itself will be stored in GPG's ASCII armored format.

### Note

When using GPG encryption, GPG also compresses the file using gzip, so no extra compression is necessary.

#### GPG-Keys

If you have not done so already for mail encryption, you need to generate a key-pair in order to use the GPG encryption feature of KMyMoney. Also, GPG must be installed on your system.

The details about how to generate a key-pair and how to take care of it are beyond the scope of this document. A Mini Howto on this subject can be found at https://www.gnupg.org/documentation/howtos.en.html. The web sites of most Linux® distributions also contain instructions on using GPG in that distribution.

#### Setting the keys in KMyMoney

On the encryption page of the settings dialog, there is a dropdown list where you can select the key that should be used for encryption and decryption. Additionally, there is a field where you can enter the key-id of a key not in the listbox. You can use either the key-id, the email address associated with this key, or any other valid GPG key identification as the value for this field. When you enter the key-id, KMyMoney will check its validity and display a green LED icon in the dialog if a key is found.

### Caution

Make sure you have both the public and the private key for this id. If you do not own the private key for the id entered, you will not be able to open the file again.

#### The KMyMoney recovery key

Also on this page of the settings dialog you have the choice of selecting supplemental encryption with the KMyMoney recovery key. This option is available to you if that key is stored in your GPG keyring. Selecting this option will allow you to recover your data even in the case you lose your own private key. This is possible because the data is not only encrypted for your own key, but also for the KMyMoney recovery key. This key is only available to selected KMyMoney developers (at the time of writing only to the author.) As of the May, 2024, the recovery key is set to expire on 7 January 2025.

Under normal circumstances, you will open/save/close your file as usual. In the abnormal case of loss of your key, you have the chance to contact one of the developers who has access to the KMyMoney recover key and request help to recover your data. You may contact the developers via email to the KMyMoney developer mailing list at `(kmymoney-devel AT kde.org)`.

To get the recovery key, go to The KMyMoney recovery key page of the KMyMoney web site. Copy and save the “PGP PUBLIC KEY BLOCK” (including the “BEGIN” and “END” lines) to a text file and then import it with gpg.

Remember that the developer can only help recover your data file if you actually do encrypt it with the recovery key, in addition to your own key.

### Anonymous file

This format is not intended to be used for normal data storage. It is supported so that in case of a problem, you can supply the KMyMoney development team with your file without disclosing any of the confidential details in your financial data. For example, it changes institution, account, payee, and category names to strings such as "I000001" and "A000001"; it makes similar changes to all data such as account numbers, and it also randomly changes the amounts of transactions.

If instructed by the developers, use the Save as... menu item to store your data in anonymous format by selecting `Anonymous files` as the filter. This also changes the file extension to `.anon.xml`.

To verify that your problem still exists, reload this anonymized file and try to duplicate your problem. If the problem is still present, send the file to the developer mailing list at `(kmymoney-devel AT kde.org)` for further investigation. If the problem does not show ... well, I don't want to think about this scenario right now.

### Data file locations

All of the above file types can be stored on a local hard drive, a removable device such as a usb thumb drive, or a network location. Depending on your Operating System, a remote location may need to be mapped or mounted prior to use.

### Limitation on Windows

On Windows®, in order to use a network or remote file location, that mapped location must be mapped to a drive letter.

Backup
Backup

## Backup

We will not attempt here to convince you that making backup copies of your data is an extremely good idea; hopefully you are already convinced of that. This section describes three ways to do this, and you can use any one, two, or even all three of them. Note that this is about backing up a data file; if you use an SQL backend to store your data, see the documentation for that database system for instructions on making backups.

### Backup file location

If you need a backup copy of your data to confirm some aspect of your finances at a previous point in time, or to revert to an earlier state, such as to undo importing a lot of data to the wrong account, it doesn't matter whether the backup copy is local or stored elsewhere, such as on an attached network drive. However, if you need a backup to recover from loss of data if you disk drive failed, for example, it is essential that the backup is not on the same drive as your primary data file. In case of a larger disaster, such as a house fire, you would need a backup copy stored in a fireproof safe or at a physically different location. Please keep this in mind as you establish your backup strategy.

### Autosave

KMyMoney has the ability to automatically save a copy of your data file at regular intervals. It can also do so on closing the program, if the data has changed. This behavior can be configured on the KMyMoney configuration dialog, General section, Global tab.

### File copy

Unless you are using SQL storage, your data may be compressed, and it may be encrypted, but is kept in a regular file. Whenever you save your data with the File → Save menu item, it writes all your data to a file, replacing the previous version. The most straightforward way of backing up your data is by making a copy of that file. A single copy can even have the same file name if it is in a different folder than your original file, but if you are going to keep multiple copies, it makes sense to include some version of the current date and time in each file name. You can save these to a network drive, or to a USB storage device, or even to an optical device. The primary downside of this method is that you need to keep track of all the backups, but it does provide the most flexibility.

### Backup command

To make things a bit easier, you can select the File → Backup menu item.

When you click OK KMyMoney will create a copy of your data file, with the date (formatted as YYYY-MM-DD) appended to the name. Note that this means only one backup per day can be created by this method. If you have already created a backup on the same day, KMyMoney will ask if you want to replace the previous backup or cancel.

KMyMoney will save this file to the directory specified in the Mount Point field. You can either manually type the full path to the directory or click Choose... and navigate to it using the file browser. The directory can be on a local storage device or it can be a network folder.

If the specified directory is actually a mount point for a storage device that is not always mounted, you can check the Mount this directory before backing up checkbox. Do not use this for a regular network file share which is always mounted.

Chapter 22. Database
Database

# Chapter 22. Database

Tony Bloomfield `<tonybloom@users.sourceforge.net>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

## Using relational databases

### Introduction

Since release 1.0, KMyMoney allows you to hold your data in a relational database. One of the advantages of using this industry-standard format is that it may allow you to view your data using one of the graphic front ends such as OpenOffice.org™ or LibreOffice™, or perhaps in some format that KMyMoney currently doesn't provide. Also, a little knowledge of SQL (“Structured Query Language”, the language used world-wide to access relational databases) should enable you more easily to export data to an external program, for example, a budgeting application.

### Note

Although most relational database systems allow concurrent access to a database by more than one user, this is not possible with KMyMoney. Even though KMyMoney can store its data in a relational database, it actually uses the database as just a different type of file storage. When you open your file, the program reads all of the data from the database. As you work with your data, the changes are made only to the internal storage; they are not immediately written back to the database. Only when you save your data does KMyMoney write the entire file back to the database.

There have been requests for KMyMoney to update the database for each data change, but this would require a significant change to the entire way the program manages its internal data structures, so this is extremely unlikely to happen in the foreseeable future.

### Preparation

To access the database, KMyMoney uses the SQL module supplied by Qt™ Software as part of their Qt™ programming system. This module supports many database systems through a collection of drivers. Qt™ has drivers for a large number of open source and proprietary relational database systems, including MySQL™, PostgreSQL, and SQLCipher. The module also supports some 'heavier', more industrial, systems such as Oracle® and IBM DB2®.

Previous versions of KMyMoney supported SQLite. This has been replaced with support for SQLCipher, which is a standalone fork of the SQLite database library that adds 256 bit AES encryption and other security features. The SQLCipher driver will read existing SQLite files. See the section below on SQLCipher for more details.

With the exception of SQLCipher, these systems use a client/server model, where the 'client' software sits on 'your' machine, while the server lives on the same machine as the database itself, which may be elsewhere on a network. Of course, in the normal scenario for a personal finance application such as KMyMoney, 'your' machine can act as both client and server. Your first task therefore, having decided which database system you wish to use, is to install the client, and most probably server, software.

In addition to the database software itself, you must also install the corresponding Qt™ driver module. Most Linux® distributions will include driver modules for the more popular databases. Otherwise, check with the Qt™ software web site and search for “SQL drivers”.

### Note

SQLCipher and SQLite do not operate on a client/server model; each database is held in a regular file, local or remote, accessed using the normal methods supplied by the underlying operating system. In this case, therefore, there is only one software package and the driver to install. Also, some of the following information, particularly that related to administration, may not apply.

### Administration

Looking after databases is a little more complex than dealing with regular files. Each system has different methods for performing those necessary administrative tasks such as creating databases, assigning permissions to various users, or producing backups. Describing these tasks is outside the scope of this manual, but all of the supported products provide comprehensive reference documentation, and a quick search of the web will point you at many tutorials on the subject.

#### Creating the database

KMyMoney includes SQL code to create an initial database to hold your data if one doesn't exist. However, it is strongly recommended that you pre-create a database, because most of the products provide a number of options which may be relevant. One that may be of particular importance to some would be the designation of the character set (e.g., UTF-8) to be used for text fields.

At this time, you will also need to specify permissions for various users to perform different operations on the database. In most systems, the user who creates the database will be automatically assigned all permissions, but this is an area in which the documentation should be consulted.

For your first use of the database, and occasionally at other times when the database layout changes, you will need permission (also called privileges) to create and alter tables and views (see next paragraph.) There may be different names for the permission/privilege in different systems, but something like `CREATE` and `ALTER` should be commonplace. For normal running, you will need to be able to read and write records; these are normally defined in SQL as `SELECT`, `INSERT`, `UPDATE`, and `DELETE` permissions.

#### Creating Tables

On your first use, KMyMoney will attempt to create the necessary table structures. In order to achieve the maximum compatibility between various database types, only a subset of common data types are used. There may nevertheless be situations where a particular type is not supported, and in this case, provision has been made to generate the SQL code necessary to create the tables. This code can then be modified as required and used to create the tables outside of KMyMoney. Should you find yourself in this situation, help can usually be obtained from one of the channels listed in the section on Getting Help. See Manual Database Creation for more information.

### Creating a Database

Using KMyMoney, open or import an existing data file, or create a new one. Then select File → Save as Database menu item. Select SQL from the Storage type to use for your data dropdown, and click OK. You will then see the following dialog:

Complete the fields appropriate to the database type you have selected (as usual, mandatory fields will be highlighted) and click OK to create the database.

#### Database Type

This dropdown lists all the Qt™ SQL drivers installed on your system. Select the driver for your database type. If the one you want is not in the list, you need to install the appropriate driver. See your distribution documentation, or visit the Qt™ software web site and search for 'SQL drivers'.

#### File (SQLite/SQLCipher only)

SQLCipher has one database per file so enter the filename in which you wish to create the database. To browse the file system, click the icon to the right of the filename. For SQLCipher databases, the Database Name, Host name, Username fields are not relevant. The SQLCipher file must have the appropriate read/write permissions set by the underlying file system to enable the appropriate access for the currently logged-in user.

The creators of SQLCipher released version 4.0 in November, 2018. However, many KMyMoney users, especially those who do not upgrade very often, or who use LTS (Long Term Support) Linux® distributions, may still be using a database created with version 3 of SQLCipher. At some point, usually after upgrading KMyMoney or their distribution, they find they are unable to open their database, with an error that is not particularly informative or useful. What is required in this case is to upgrade the database itself from version 3 to version 4. Instructions for this can be found on the SQLCipher website.

#### Database name (others)

The default database name is `KMyMoney`, but you may choose some other name if you like. For some database types, KMyMoney may not be able to create the database, so it must be pre-created using the appropriate administrative procedure. However, KMyMoney will usually be able to create all table structures where necessary. If not, you can create them yourself. See Manual Database Creation for more information.

#### Host name

For the average user, the default name of “localhost”, being the machine you are currently using, is correct. For networked databases, enter the connected host name of the database server.

#### User name and password

Check the permissions set up on your database, or contact the database administrator, for the correct values to use here. The user name must be capable of selecting, inserting, updating, and deleting records. If the user name is the same as your login name, a password is not normally required.

### Accessing your data

#### Table design

To access your data in KMyMoney, use the File → Open Database menu item. This will open a dialog similar to the above.

### Note

If you created your database by first opening a file, and then doing File Save and choosing SQL as described above, then any subsequent changes to your data are saved only in the database, not in the file. This means that you can use the file as a backup or snapshot of your data at a particular time. To make a new backup like this, open your database, choose the File → Save As... menu item, choose XML as the storage type, and giving an appropriate file name. Remember to re-open your database, so KMyMoney does not continue to use the file.

To access your data in other formats, you will need to know a little about how it is held in relational databases. By far the easiest way to get a feel for this is to open the database in a front-end such as OpenOffice.org™. This provides a list of the various tables which make up the database, and enables you to see the layout of each of them.

To extract data, e.g., into a spreadsheet or external file, it is almost invariably necessary to select linked data from more than one table. This is done by “joining” the tables, using a field which is common to them. You can find a lot more information about how this is done from the online database tutorials mentioned above. The following table lists the fields used to define these inter-table relationships.

Relationship | Match | With
--- | --- | ---
Institutions and Accounts | `kmmInstitutions.id` | `kmmAccounts.institutionId`
Accounts Parent/Child | `kmmAccounts.id` | `kmmAccounts.parentId`
Transactions and Splits (see Note 1) | `kmmTransactions.id` | `kmmSplits.transactionId`
Accounts and Splits | `kmmAccounts.id` | `kmmSplits.accountId`
Payees and Splits | `kmmPayees.id` | `kmmSplits.payeeId`
Schedules and Transactions | `kmmSchedules.id` | `kmmTransactions.id`
Transactions and Currencies | `kmmTransactions.currencyId` | `kmmCurrencies.ISOCode`
`Accounts and Securities (see Note 2)` | `kmmAccounts.currencyId` | `kmmSecurities.id`
Securities and Prices | `kmmSecurities.id` | `kmmPrices.fromId` or `kmmPrices.toId`
Currency Rates | `kmmCurrencies.ISOCode` | `kmmPrices.fromId` or `kmmPrices.toId`

Notes:

1 – txType = "N“ for normal transactions, "S“ for scheduled transactions

2 – if kmmAccounts.isStockAccount = "Y“

#### Field formats

Several of the data fields are held in an internal format which may not be immediately useful to external programs. In these cases, the information has been duplicated in both internal and external formats.

Monetary amounts and share values are shown both in numerator/denominator format, and, with a field name suffixed with “ `Formatted` ”, in the form as typically displayed.

Similarly, some fields, such as account type appear both as a numeric code, and in a field suffixed '`String`' in the form and language of the application.

#### Updating your data

Having data in an industry standard format does give you the ability to modify it outside the KMyMoney application. DO NOT DO IT unless you really know what you are doing, and always be certain to make a backup copy of your data first. If you get it wrong, KMyMoney may not be able to access your data, and you could even end up losing it altogether. You have been warned!

#### Stored queries

Most database systems allow you to store commonly used queries and procedures, and in some cases, these may be held as tables or other objects within your database itself. As you will have guessed from the above, all the tables used by KMyMoney begin with the lowercase letters '`kmm`'. This standard will be maintained, and only tables beginning with these letters will be updated. Thus, provided you avoid these in the naming of your queries etc., you should not experience any problems.

### Manual database creation

### Note

This section covers more advanced database usage and may be skipped by the general user.

#### When to use

There may be occasions when KMyMoney is unable to create the database automatically, or creates it without some options required by the user. For example, the database system used may not completely conform to standard SQL usage, or support may be introduced for new systems which have not been fully tested in KMyMoney.

Prior to using this facility, you should try just creating the database entry itself (i.e. with the `CREATE DATABASE` statement). Provided the database exists, KMyMoney may well be able to create the tables, etc. in the normal database save procedure described above.

#### Generating the SQL

If this fails, it is possible to generate the basic SQL commands needed to create the various tables, views, and indexes required by the application. Select the Tools → Generate Database SQL menu item. This will present the following dialog:

On selecting the database type, the appropriate SQL will appear in the SQL for creation text box; this can be edited by the user, or saved to a text file by clicking Save SQL. In the latter case, the database must be created using the administrative functions provided by the database system.

If after editing the text in the dialog, you want KMyMoney to create the database, you will need to complete the other fields in the dialog, as detailed in Creating a Database above, and click Create Tables. Note that, except in the case of SQLite, you will need either to include a suitable `CREATE DATABASE` statement as the first command, or have previously issued such a command externally to KMyMoney.

#### Warning

You should be very careful editing the definitions of any of the basic tables or views (those with names beginning with '`kmm`'.) Some changes, such as increasing the length of an integer field, may have little impact, but you should not remove or change the sequence of any fields, or KMyMoney may refuse to function, or may corrupt your data.

While adding or removing indexes may improve performance, you should also be aware that the opposite may happen. Some knowledge of the internal operation of KMyMoney may help to get the best performance in these circumstances.

### Encryption

Encryption of data in your database is not currently supported.

Chapter 23. KMyMoney Settings
KMyMoney Settings

# Chapter 23. KMyMoney Settings

Roger Lum `<rogerlum@gmail.com>`

Michael Carpino `<mfcarpino@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

The settings described in this chapter modify the behavior of KMyMoney, allowing you to customize it to meet the needs of your unique financial affairs, and to modify its look and feel to match your personality. These settings can be changed through the Settings → Configure KMyMoney... menu item or by using the keyboard shortcut Ctrl+Shift+,. In order for any changes to take effect the Apply button must be clicked.

On the left of the Configure or settings dialog is a list of icons and labels, each representing a particular area of the program. When you click one of those icons, the right part of the dialog will display controls for configuring that area of the program, often divided into several tabs.

## General

### Global tab

Autosave options

  An autosave file is just a copy of your data file. The main point of these is that they are automatically created, according to the configuration settings, so you do not need to remember to take any action. Any autosave files created will be in the same directory as the data file currently open.

  Checking the Autosave periodically box instructs KMyMoney to automatically save your file at the interval defined by the minutes field. The default value is 10 minutes. You can change this setting from 0 (autosave immediately after entering a transaction) up to 60 minutes.

  Checking the Autosave when file is modified upon close box instructs KMyMoney to autosave your file when the program is closed, but only if any changes have been made. You also have the option upon closing the program to backup your KMyMoney file.

  The Number of backup to keep can be set from 0 (Off) up to 20. The autosave files will be stored in the same folder as the main file. If your data file is MyFinances.kmy, then when an autosave file is created, it will be called MyFinances.kmy.1~. Any existing autosave files will have their number increased by 1, up to the specified number.

Fiscal Year

  KMyMoney allows you to specify a fiscal year different from the calendar year. To do so, enter the day and month on which your fiscal year begins. This value is used for budgets and some reports.

External programs

  This setting does not directly affect the operation of KMyMoney, but provides a convenient way to launch any external utility, such as an advanced calculator. The first step is to enter the full path to your chosen program in the Calculator text box.

  There is currently no direct menu item to launch the calculator, or whatever external program you have set. There are then two ways to launch the program.

  First, you can use Settings Configure Toolbars... menu item to place the
  Calculator icon on the Toolbar. Then, when you click that icon on the Toolbar, KMyMoney will launch the selected application.

  Second, you can use Settings Configure Shortcuts... menu item to set a custom keyboard shortcut. (The entry is under KMyMoney/Calculator in that list.) You can then use that shortcut to launch the application.

### Views tab

Startup page options

  When KMyMoney starts up, this option indicates whether to start with the Home View (Start with homepage) or with the view displayed when the program was last closed (Start with last selected view.)

Type of the KMyMoney view

  This lets you select one of three layouts for the View Selector, where you choose Selecting List or Tree view, the icons and their labels will be located at the left side of the window. The List view displays larger icons above the name of each view, while the Tree view has smaller icons to the left of the names. The Tabbed view locates the icons and labels in tabs across the top of the window.

Synchronize account selection of Ledgers View and Investments View

  If this option is selected, the accounts displayed in the Ledgers View and Investments View will be synchronized, meaning if you change the account displayed in one of the views, and then switch to the other view, the information for the same account will be displayed. This increases the efficiency of navigating between these 2 views. If it is not selected, selecting either of those views will show the same account previously selected in that view, regardless of the account selected in the other view.

### Filter tab

Accounts / Categories

  Checking the Do not show unused categories box hides unused categories in the Categories View. A hidden category is still available should a transaction require it. By typing a hidden category in the ledger it will become available for use.

  Equity accounts are used to track individual equities or investments held in an Investment Account. These should not be confused with the top level Equity group of accounts, which includes the account(s) which contain the opening balances for other accounts. By default, equity accounts are hidden in the Accounts View. Checking the Show equity accounts box will display the equity accounts in the Accounts View.

  By default, Categories are hidden in the Accounts View. Checking the Show categories in the accounts list view will display the Categories in the Accounts View.

  Checking the Do not show zero balance equities box will remove any zero balance equity accounts from appearing in the Accounts View.

Schedules

  Checking the Do not show finished schedules box hide all finished schedules from appearing in the Scheduled transactions View.

Transactions

  Transactions prior to the date in the Do not show transaction prior to field will not be displayed in the Ledgers View. This can be useful if your data includes many years of transactions; setting this to one or two years ago hides older transactions.

  Setting this option to January 1, 1900 (the default value) is a good way to debug date-related data import problems, in case some dates were erroneously very far in the past.

  Checking the Do not show reconciled transactions box will filter transactions by reconciliation state. Transactions that are marked as Reconciled will not be shown in the Ledgers View.

### Support tab

Logging

  KMyMoney can create a log file when it imports data. This can be useful for troubleshooting problems, but it is important to be careful, as these log files can contain sensitive data, such as usernames and plain-text passwords, as noted in the dialog.

  For any logging to take place, specify the path to the directory where logs will be created in the Log path field. You can also click ... to the right of the field, and use the file chooser dialog to navigate to the chosen directory.

  If you check the Log imported statements box, whenever KMyMoney imports data, it will save a file called “ `kmm-statement-`yyyy-mm-dd`T`hh-mm-ss.sss`.txt` ” in the specified directory. This file is an XML file with all the data just imported.

  If you check the Log OFX transactions box, whenever KMyMoney uses OFX direct connect to retrieve transaction data, it will log all the interactions it has with the remote OFX server. It will append these to a file called `ofxlog.txt` in the specified directory. As mentioned above, this file is likely to contain account and user names and plain-text passwords.

Home
Home

## Home

### Home page display sections

These options allow you to customize the appearance of the Home View (also called the Home Page or Main Window) by choosing which information to display there and the order in which it appears. Selected sections can be reordered by clicking the respective Up or Down button. A section may not appear, even if the appropriate entry is checked, if it would be empty.

Assets and Liabilities

  This will display a list of asset accounts on the left and liability accounts on the right. These and the other account lists on the Home Page are sorted in alphabetical order, unless otherwise noted. Normally, only open accounts will be listed, unless Show all accounts has been selected.

  For this and the other account lists on the Home View, the display will include the account name, date last reconciled, and current balance. In addition, there may be other columns displayed, as configured in the Account information display Lower on this window.

Scheduled payments

  This will display upcoming occurrences of Scheduled transactions, distinguishing those which are overdue, due today, or due in the future. It shows the date, schedule name, account, and amount of the payment, and the account balance after the payment. By default, it will show up to six transaction. If six are displayed, there is a link you can select to show more, up to 30 days in advance.

Favorite accounts

  This will display the accounts that are identified as Favorite accounts in the Account Edit account... Configuration dialog.

Payment accounts

  This will display all Payment accounts; these include any account into which income can be deposited, and/or out of which bills can be paid.

Favorite Reports

  This will display a list of all reports that have been identified as a favorite in the Configuration dialog of the Report. The list is in the order of the date when each report became a favorite.

Forecast (schedule)

  This will display a forecast for asset and liability accounts, similar to the Summary Tab of the Forecast View. Details of the display can be controlled with the Forecast Configuration dialog.

Net worth forecast

  This will display a chart of your forecast net worth for the next 90 days.

Budget

  This will display a current month summary and overruns for any defined budget(s). If no budget is defined, it will display no budget or overruns, with the actual current month spending.

Cash Flow

  This will display a Cash Flow Summary analysis for the current month.

### Homepage/Summary page scaling

Zoom factor:

  This option allows for the selection of the font size as a percentage to fit the Home View based on the user preference.

Remember zoom factor when leaving the program if manually changed with mouse-wheel

  Selecting this will save your font size preference if you have changed it on the Home page by using the mouse-wheel.

### Account information display

These options allow you to customize what information is included in any list of accounts on the Home View.

Show account limit information

  Displays the account limit as set in the Account Edit dialog.

Show balance-status of mapped online accounts

  Shows the balance status of mapped accounts, and accounts which have had transactions imported. The status is symbolized by an icon in the column preceding the account name. Note that the colors described here may be different than displayed for you, depending on the display theme selected. A
  green checkmark indicates the online balance and local balance are the same. A
  red warning sign indicates a mismatch between the local file and online-balance. A
  mailbox with a green arrow indicates that the local file has transactions newer than the most recent online update. This alerts the user to perform an online-update.

Show number of not marked transactions per account [!M]

  Inserts a column after the account name, showing the number of not marked transactions in the account.

Show number of cleared transactions per account [C]

  Inserts a column showing the number of cleared transactions for the account.

Show number of not reconciled (not marked + cleared) transactions per account [!R]

  Inserts a column showing the number of not reconciled transactions for the account, i.e., the sum of all not marked and cleared transactions.

Show date of last reconciliation

  Inserts an additional column showing the last reconciliation date for the account.

Ledger
Ledger

## Ledger

The settings and options in this section allow for the modification of the transaction ledger displayed in the Ledgers View.

### Display tab

Show a grid in the ledger

  Selecting this option displays grid lines in the Ledgers View. This is an additional viewing option that may make it easier to visualize separate transactions and their component parts.

Show transaction form

  Selecting this option displays the transaction form at the bottom of the ledger, and that is where you enter or edit a transaction. If the transaction form is not displayed, you edit a transaction within the ledger itself. With this option enabled, fewer transactions are visible in the ledger, compared to when it is disabled.

Display overdue schedules with planned date

  Scheduled transactions with future dates are shown in the Ledgers View for the relevant account. When the date passes, and a scheduled transaction becomes overdue, it is no longer shown in the ledger, unless this option is selected.

Ledger entry details

  Show all ledger entries in full detail. Selecting this option makes the ledger show all the information for all displayed transactions, with separate lines in the Detail Column for Category, Tags, and the Memo. If it is not selected, Category, Tags, and Memo will not be displayed. This has the same effect as selecting the Show Transaction Detail menu option.

  Use the ledger lens. Selecting this option displays all the detail lines for the selected transaction, even if Show all ledger entries in full detail is not selected.

  Show all split details in ledger. Selecting this option shows more details about split transactions.

Information headers

  Show group headers between transactions. Selecting this option will display group headers in the ledger. These refer to time periods or milestones such as Last month, Last week, This month, Last reconciliation, Next week, and Next month.

  Show header for the previous and current fiscal year . Selecting this option will display group headers in the ledger for the current and the previous fiscal year.

  Reconciliation group headers. This dropdown controls the display of group headers for reconciliations. If Don't show reconciliation entries is selected, then no group headers will be shown for reconciliations. If Show last reconciliation entry with date and balance in ledger is selected, only the most recent reconciliation will be indicated by a group header. If Show all reconciliation entries with date and balance in ledger is selected, then a group header will be shown for all previous reconciliations.

### Sorting tab

These three sections allow you to set the default sort order of transactions in the Ledgers View. In all cases, the list on the right shows the fields which have been selected as part of the sort order for that view, and the list on the left shows all the fields available for sorting which have not yet been chosen. To sort on an item, select it (single mouse click) and click the right arrow between the two lists. You can adjust the relative order of the fields by selecting one and adjusting its position in the list using the up and down arrows to the right of the list. You can switch between ascending and descending sort for any item by double-clicking it.

The fields available for sorting are the same for all three sections: Amount, Category, Entry Order (the date the transaction was created, not the internal transaction id,) Number, Payee, Post date, Reconcile state, Reconciliation date, Security, and Type.

#### Normal view subtab

This tab controls the default sort order of the regular Ledgers View.

#### Reconciliation view subtab

This tab controls the default sort order of the ledger while in the Reconciliation View. This is the display of transactions shown during the process of Reconciliation.

#### Search view subtab

This tab controls the default sort order of the ledger while in the Search view.

### Data Entry tab

These options affect the process of creating new transactions.

Auto increment check number

  Enabling this will automatically increment the check number whenever entering a new check transaction. It has the same effect whether you use the Ledger Lens or the Transaction Form.

Keep changes when selecting a different transaction/split

  When enabled, selecting a different transaction or split will save any edits made to the current transaction. When disabled, selecting a different transaction split will prompt you whether or not to save any changes.

Use Enter to move between fields

  When enabled, pressing Enter will change the focus to the next field of the transaction. When in the last field, the transaction will be saved. When disabled, navigation between fields would occur by using the Tab key or the mouse. Pressing the Enter key would save the transaction, no matter which field is currently in focus.

Match names from start

  This option controls payee matching. When enabled, payee names will always be matched from the start. When disabled, any substring will be matched. Also, when enabled additional options for matching can be established in the Matching Tab of the Payees View.

Automatic reconciliation

  This option needs to be documented.

Initial cursor position within the date field

  When you advance into a transaction's date field (either by creating or editing a transaction, or using Tab or Enter), this dropdown determines whether the cursor will start in the Day, Month, or Year portion of the date.

Default reconciliation state

  This dropdown allows you to select the default reconciliation state for new transactions: Not reconciled, Cleared, or Reconciled.

Autofill

  This option allows you to select the desired behavior for autofill. This controls which, if any, previous transactions for the same payee are displayed, and which, if any, of those transactions are used to auto-fill details of the new transaction.

  - No Autofill

    This will deactivate autofill, and you must manually enter all details for the new transaction.

  - Same transaction if amount differs less than percentage set below

    With this option selected, when you enter a new transaction, KMyMoney will display a list of previous transactions for the same payee and account. If the amount of a previous transaction is close enough to the amount you have entered, it will be considered a match, and details from that previous transaction will be used to autofill details of the new transaction. “Close enough” means within the percentage specified in the box next to Same transaction if amount differs less than, and can range from 0 to 100%. If the percentage is 0, all previous transactions for the payee and account will be displayed, and you can select one of those transactions to use for autofill by clicking it.

  - With previously most often used transaction for the payee

    With this option selected, when you enter new transaction, KMyMoney will fill in all the transaction details based on the previously most often used transaction for the selected payee.

Use memos from previous transaction

  When selected, the memo from the previously entered transaction will be automatically entered as the memo for the new transaction.

### Import tab

Match transaction within days

  Search for matching transactions within the range of the imported transaction +/- the given number of days, which can be set from 0 to 99.

Ask for a new payee's default category

  If this option is selected, whenever a new payee is detected during an import, the user will be asked for the default category for the payee.

Scheduled Transactions
Scheduled Transactions

## Scheduled Transactions

These options allow you to modify the behavior of Scheduled Transactions.

### Startup options

Check schedules upon startup

  Enables checking the schedule upon startup of KMyMoney. If a scheduled transaction matches the schedule criteria set then KMyMoney will produce a notification requiring handling of the transaction.

Enter transactions this number of days in advance

  Specify how many days in advance a scheduled transaction should be entered.

### Processing Days

Use holiday calendar for region

  Select the region of the world that best suits your needs.

### Ungrouped Item

Number of days to preview schedules in ledger

  Specify how many days in advance should scheduled transactions show up in the ledger. For future scheduled transactions displayed in the ledger, you can enter or skip them by right-clicking them.

Online Quotes
Online Quotes

## Online Quotes

These settings determine how price quotes are retrieved from different online sources. These include stock, bond, and other equity prices, as well as prices for precious metals and currency conversion.

This section allows you to change the online quote sources for KMyMoney. Generally speaking, this is an advanced feature, and should only be attempted by the most technically adept users.

For more details, please refer to the Online Price Quotes section.

### Note

The initial list and configuration of online quote sources is set up when KMyMoney first creates your data file. If an online source makes a change which requires a change to these settings in order for KMyMoney to continue to use it as a valid source, the user must make the necessary changes, using this dialog, based on instructions posted at one of the suggestedsupport options. Hopefully, in the not to distant future, the way online source configuration is handled will be changed so that KMyMoney can automatically fetch any necessary updates to these settings without requiring the user to make any manual edits.

Colors
Colors

## Colors

These section allows you to customize the colors used within KMyMoney. If Custom colors is not checked, then default colors will be used.

To customize colors check the Custom colors checkbox. You can then modify any of the colors by clicking the color button, which will open color select palette. This will provide unlimited options in color selection. You can select a defined basic color, pick a color by clicking anywhere on the displayed color palette, input an HTML defined color, or specify values for Hue, Saturation, Value, Red, Green, and Blue.

Fonts
Fonts

## Fonts

This section allows you to modify the fonts used within the Cell or Header fields.

Use system fonts

  Select this to use system fonts. Deselecting this option allows you to select the fonts of your choice.

Cell font

  Specify the custom font to use within each cell of the ledgers.

Header font

  Specify the custom font to use for the headers of each view within the ledger.

Icons
Icons

## Icons

This option allows for the selection of icons that will be displayed.

Individual icon settings

  The dropdown list presents a selection of icon themes available for use. Additional icons may be available for downloading and use depending on the operating system or Linux® Distribution installed.

Plugins
Plugins

## Plugins

This section provides information about the available plugins, and allow you to modify the behavior of some of them. Note that the list of plugins displayed will depend on which plugins KMyMoney found when it started. It does not matter whether the plugin was compiled as part of the application or added as a separate package.

Every plugin can be enabled or disabled, according to the state of the checkbox to the left of the name of the plugin name and icon. In addition, at the right, there is an information button for each plugin, which will show the plugin version and author(s.) For some plugins, further information on configuring and using it may be found by clicking configure just to the left of the information button.

Until recently, there was only one plugin that required configuration, the Check printing plugin. Now, there are several plugins which have configuration pages which are invoked from this page. These are listed in the following sections. Note however, that many of them have already been described earlier in this document.

### Check printing plugin

There is a plugin for printing checks, which is included with the source of KMyMoney, and which should always be enabled. It allows printing of a check based on the data from a selected transaction, with the layout controlled by an HTML template. You need to use a template which is matched to your pre-printed checks. A default, built-in template is provided. You may also choose a custom template. To do so, click configure to get the Check printing configuration dialog displayed. At the top you can check the box to use a custom template. To the right of that is a button which brings up a file chooser, to select an alternate template file.

A template file is an HTML file, in which specific strings are used to reference fields from the transaction and from the current account and institution to show where they will be printed on the check. KMyMoney ships with a default, built-in template. At this address, you can find the HTML source file of the default template, as well as some additional templates. You should either be able to use one of them or to modify one to suit your needs. Note that only a subset of the HTML standard is supported — the detailed documentation on that can be found here.

### CSV Importer

Some aspects of configuring the CSV Importer plugin have already been discussed here. However, there is also a dialog which can be invoked here.

#### Autodetecting

It is generally best to let the plugin autodetect the field delimiter, decimal symbol, and date format. However, it is possible to disable this behavior for each of these items by unchecking the appropriate box.

In some cases, a csv file to be imported contains the name of the account somewhere in the first lines of the file. You can request the plugin to automatically look for this by checking the appropriate box, separately for banking and for investment imports.

#### QIF export profile

Although it is currently better just to use the QIF exporter plugin directly, it is still possible to have the CSV Importer export a QIF file. In this case, you can use this dropdown to select the default QIF export profile to use.

### Forecast View

This is described in the Configuring the Forecast section of the Forecast Chapter.

### iCalendar

KMyMoney is capable of exporting a file in the “iCalendar” format, so you can import your scheduled transactions into KOrganizer, or another calendar program, so you can be reminded of scheduled transactions. Actually exporting the file is done with the File → Export → Schedules to iCalendar menu item.

The exported file will contain one event for each scheduled transaction. There are controls to configure whether to have the calendar show reminders for the events, as well as how many reminders, and how far ahead of the events the reminders are created, although these seem not to currently have any effect on the file created.

The final field on the dialog allows you to specify the default name and path of the exported file. As usual, you can either type the full path, or click the file selector icon at the right and get a file selector dialog. Currently, the file save dialog does default to the folder specified here, but you still need to enter the actual file name at the time of export.

### KBanking

This plugin adds support for HBCI/FinTs, OFX, and PayPal online banking by using AqBanking, which is an open source project on its own. HBCI/FinTs used to communicate with banks are only used in Germany.

Configuring this plugin is not done through this dialog, but with the Settings Configure Aqbanking... menu item, and there is further information there.

### QIF Exporter, QIF Importer

These are described in the section on QIF Profiles. As pointed out in that section, QIF Import and QIF Export are implemented as separate plugins, they both utilize the same set of profiles.

### Reports view

This provides a dialog where you can configure some default values to be used when displaying Reports. The details are described with the other Report Configuration settings.

### XML Storage

The default storage of your data is in XML format, described in the chapter on File Formats. Because the code which reads and saves your data is implemented as a plugin, the configuration dialog which controls some aspects of this storage is accessed through the Plugin section of the general KMyMoney Configuration, although it is described in the above linked section.

Chapter 24. Questions and Answers
Questions and Answers

# Chapter 24. Questions and Answers

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Revision 5.2.0 (2024-12-01)

This chapter addresses a number of issues that frequently cause confusion, especially for new users of KMyMoney. If you find that KMyMoney is doing something you don't understand (or sometimes not doing something you want it to do,) please check this list before asking for help on one of the mailing lists. If your problem is not mentioned here, refer to the section on getting help.

24.1. Installation and Startup Questions
  24.1.1. KMyMoney crashes when I try to launch it.
  24.1.2. Will KMyMoney work on my X/Ubuntu™ desktop? Will KMyMoney work without a full KDE desktop?
24.2. Configuration Questions
  24.2.1. Can I change the start of the fiscal year, to match my tax year or accounting year?
24.3. Account and Transaction Questions
  24.3.1. Why can't I edit a transaction?
  24.3.2. Why is a transaction shown in red and how can I get rid of the color?
  24.3.3. Why can't I add an opening balance to an account?
  24.3.4. When I created an account, I used the wrong type, and now it won't let me change it. I can edit the account, but the dropdown for account type is either disabled, or does not list all the possible types.
  24.3.5. I have a loan with 0% interest, but I get an error in the New Loan Wizard that does not let me use this value.
  24.3.6. Why don't I see all my transactions in the ledger?
  24.3.7. I mistyped the name of a payee and want to change it in all transaction. Is there a global search/replace?
  24.3.8. Why can't I delete an account?
24.4. Import and Export Questions
  24.4.1. Where do I find some more information about OFX parameters?
24.5. Miscellaneous questions
  24.5.1. Why is there no translation for 'my' language?
  24.5.2. Why did the version number jump from 1.0.5 to 4.5, and what happened to KMyMoney2?
  24.5.3. How can I report a bug? How can I request a new feature?
  24.5.4. Why isn't there an easy way to print some scheduled transactions, or part of the ledger, or ...

### 24.1. Installation and Startup Questions

24.1.1. KMyMoney crashes when I try to launch it.
24.1.2. Will KMyMoney work on my X/Ubuntu™ desktop? Will KMyMoney work without a full KDE desktop?

24.1.1. | KMyMoney crashes when I try to launch it.

There are many reasons KMyMoney might crash or give an error instead of starting up normally. Sometimes an error message is shown, but if not, you can run KMyMoney from a command line, to see if any useful information is output to the console. On Linux®, this just means typing "kmymoney" in a shell. macOS® should be similar. On Windows®, you will need to type the full path to the KMyMoney executable.

If this does not show the cause of the problem, you need to determine if there is an issue with the software or with your data. To do this, you need to launch KMyMoney without opening your data file. If the application starts up, but crashes when you try to load your data file, try loading an older copy of your file. (You did make a backup, didn't you?)

If KMyMoney crashes on startup without trying to load a data file, there may be a problem with your installation. See the section on getting help.

24.1.2. | Will KMyMoney work on my X/Ubuntu™ desktop? Will KMyMoney work without a full KDE desktop?
| Yes, KMyMoney will work without a full KDE desktop, but you will have to install the basic KDE libraries first. The easiest way to do this is to use your distribution's package management system, which will handle these requirements automatically. If you are going to install from source, you will probably need development versions of those libraries.

### 24.2. Configuration Questions

24.2.1. Can I change the start of the fiscal year, to match my tax year or accounting year?

24.2.1. | Can I change the start of the fiscal year, to match my tax year or accounting year?
| Yes, you can easily set the start of the year in the Global Options section of the Configure KMyMoney dialog.

### 24.3. Account and Transaction Questions

24.3.1. Why can't I edit a transaction?
24.3.2. Why is a transaction shown in red and how can I get rid of the color?
24.3.3. Why can't I add an opening balance to an account?
24.3.4. When I created an account, I used the wrong type, and now it won't let me change it. I can edit the account, but the dropdown for account type is either disabled, or does not list all the possible types.
24.3.5. I have a loan with 0% interest, but I get an error in the New Loan Wizard that does not let me use this value.
24.3.6. Why don't I see all my transactions in the ledger?
24.3.7. I mistyped the name of a payee and want to change it in all transaction. Is there a global search/replace?
24.3.8. Why can't I delete an account?

24.3.1. | Why can't I edit a transaction?

You cannot make any changes to a transaction with a date before the opening date of the account it is in. The most common reason for this is importing all the data for an account. If the import file does not contain an opening date for the account, KMyMoney will use the current date. The way to fix this is to edit the account, and change the opening date to be earlier than any transaction in that account.

24.3.2. | Why is a transaction shown in red and how can I get rid of the color?
| A transaction is shown in red if any part of the amount has not been assigned to a category. This is most commonly caused by importing a QIF or OFX file or by downloading statement data online. All you have to do is to modify the transaction such that the whole amount of the transaction is assigned to categories.
24.3.3. | Why can't I add an opening balance to an account?
| If you provide an opening balance when you create an account, it is shown as the first transaction for the account. If you do not, then the transaction is not there, and because it is a special type of transaction, you cannot simply add it as you could a deposit or withdrawal. However, you can add it later by editing the account.
24.3.4. | When I created an account, I used the wrong type, and now it won't let me change it. I can edit the account, but the dropdown for account type is either disabled, or does not list all the possible types.
| You can easily change an account type between checking, savings, and cash. However, because of the way KMyMoney stores the account information, it does not allow other changes of account type. The way around this is to create a new account of the correct type, move all the transactions from the old to the new account, and then delete the old account.
24.3.5. | I have a loan with 0% interest, but I get an error in the New Loan Wizard that does not let me use this value.
| The internal calculations of the new loan wizard do not allow a 0% interest rate. The best way to handle this situation is to create a simple liability account with a starting balance for the amount of the loan, and then create a schedule for the required payments.
24.3.6. | Why don't I see all my transactions in the ledger?

There are several settings that control which transactions are displayed in the Ledger View of an account. First, check the ledger filter area. If there is anything typed in the search box, only transactions containing that text will be shown. If the status dropdown has been changed from “Any status,” then only transaction of the selected type will be shown. In addition, there are two important settings in the filter options section on the KMyMoney Settings dialog. If the Do not show transactions prior to field is set, only transactions on or after that date will be shown in the ledger. If the Do not show reconciled transactions box is checked, then no reconciled transactions will be shown.

24.3.7. | I mistyped the name of a payee and want to change it in all transaction. Is there a global search/replace?

There is no global search and replace function in KMyMoney. Nevertheless, it is easy to change a payee's name: select the Payees View and find the entry with the name you want to change. Click with the right mouse button on the payee, select Rename payee from the context menu, and enter the new name. Since the transactions only use a reference to the payees record, all transactions now show the new name.

24.3.8. | Why can't I delete an account?

In order to delete an account, KMyMoney can have no other references to it. That means you must delete all transactions from that account or move them to another account. If you still can't delete an account, there may be scheduled transactions referring to that account, which may not be visible in the ledger. You need to delete any future transactions and the schedule itself, or switch them to a different account.

### 24.4. Import and Export Questions

24.4.1. Where do I find some more information about OFX parameters?

24.4.1. | Where do I find some more information about OFX parameters?
| Searching the web with specific questions can sometimes provide useful results, but there is still one site which might give you more information: OFX Home.

### 24.5. Miscellaneous questions

24.5.1. Why is there no translation for 'my' language?
24.5.2. Why did the version number jump from 1.0.5 to 4.5, and what happened to KMyMoney2?
24.5.3. How can I report a bug? How can I request a new feature?
24.5.4. Why isn't there an easy way to print some scheduled transactions, or part of the ledger, or ...

24.5.1. | Why is there no translation for 'my' language?

KMyMoney uses the KDE settings for language, so first, make sure that your region and language settings are correct. If they are, the most likely reason is that no one has offered to translate it yet. Translating KDE/Qt™-based applications is very simple, and does not require any programming skills. If you would like to translate KMyMoney into your language, please post a message to the proper team mailing list. Should you fail to find your language in the list or could not contact the team members please mail directly to the KDE translation mailing list (subscription required) and someone will give you the details on how you can easily provide a translation for KMyMoney.

24.5.2. | Why did the version number jump from 1.0.5 to 4.5, and what happened to KMyMoney2?

The use of KMyMoney2 was a historical legacy from when the project went from KDE 1 to KDE 2. To avoid changing the name every time there was a new KDE version, we decided to stick with KMyMoney.

The first version of KMyMoney that was considered sufficiently stable was labeled 1.0, even though it ran under KDE 3. As the project became more closely aligned with KDE we decided to use the same major release number.

24.5.3. | How can I report a bug? How can I request a new feature?
| The developers encourage your feedback. See the section on Contacting the Developers/Reporting Bugs.
24.5.4. | Why isn't there an easy way to print some scheduled transactions, or part of the ledger, or ...
| Look in the Reports section. Many of the reports actually provide an easy way to print thing you can't quite do directly from the ledger or other screens.

Chapter 25. Reference
Reference

# Chapter 25. Reference

Revision 5.2.0 (2024-12-01)

## Menus

Roger Lum `<rogerlum@gmail.com>`

Jack H. Ostroff `<ostroffjh@users.sourceforge.net>`

Below is a complete list of the menu selections in KMyMoney, with a very brief description of what each one does. Note that many of these menu choices will be unavailable, or grayed out, depending on the current display or state of the application. In addition, some may not be present if it relates to a feature not included in your particular version. For example, you are not able to edit an account unless you have an account selected or displayed in the current view.

### File Menu

File → New book (Ctrl+N)

  Creates a new, empty KMyMoney data file. Only one KMyMoney file can be open at once, so this will close your current file first, if one is open.

File → Open (Ctrl+O)

  Opens an existing KMyMoney data file.

File → Open Recent → ...

  Provides quick access to recently opened files.

File → Open Database...

  Opens an existing database.

File → Save (Ctrl+S)

  Saves the currently open file. Only enabled if there are any changes to save.

File → Save As... (Ctrl+Shift+S)

  Saves the currently open file with a different filename.

File → Import → ...

  Imports financial data from other file types, such as QIF and GnuCash, or a template file of accounts and categories that can be used in setting up new accounts.

File → Export → ...

  Exports the current file as a different file type, such as QIF, or exports a list of your accounts and categories as a template.

File → Print... (Ctrl+P)

  Prints the current file.

File → Backup...

  Saves a backup the current file.

File → Personal Data...

  Allows to edit personal data.

File → File information...

  Displays information about the currently open KMyMoney file.

File → Close (Ctrl+W)

  Closes the currently open data file.

File → Quit (Ctrl+Q)

  Quits KMyMoney. Offers to save the currently open data file, if there are any changes.

### Edit Menu

Edit → Undo (Ctrl+Z)

  Reverses the most recent action.

Edit → Redo (Ctrl+Shift+Z)

  Re-applies the most recently undone action.

Edit → Find transaction... (Ctrl+Shift+F)

  Searches transactions.

### View Menu

View → Show Transaction Detail (Ctrl+T)

  Shows transaction details in the Ledgers View. With this option turned on, all lines of the transaction will be shown. When it is turned off, only one line will be shown.

  If you only want to see details for the currently selected transaction, but only one line for the others, you can turn on the Ledger Lens.

View → Hide reconciled transactions (Ctrl+R)

  Hides reconciled transactions in the ledger.

View → Hide unused categories (Ctrl+U)

  Hides unused categories in the views.

View → Show all accounts (Ctrl+Shift+A)

  Shows all accounts in the views, including closed accounts and accounts with zero balance.

### Institution Menu

Institution → New institution...

  Add a new institution.

Institution → Edit institution...

  Edit an institution.

Institution → Delete institution...

  Delete an institution.

### Account Menu

Account → New account...

  Adds a new account.

Account → Edit account...

  Edits an account.

Account → Delete account...

  Deletes an account.

Account → Open ledger

  Displays the Ledgers View of the selected account.

Account → Reconcile... (Ctrl+Shift+R)

  Reconciles an account through the reconciliation wizard.

Account → Postpone

  Postpones reconciliation of an account.

Account → Finish

  Finishes reconciliation of an account.

Account → Cancel

  Cancels reconciliation of an account.

Account → Transaction report

  Opens a transaction report of the selected account.

Account → Show balance chart...

  Opens a YTD (Year to date) chart of the balance of the selected account.

Account → Close account

  Closes an account.

Account → Reopen account

  Reopens an account, if closed.

Account → Unmap account...

  Unmaps an online account.

Account → Map account...

  Maps an account to an online account.

Account → Update account...

  Imports transactions from online banking for the selected account.

Account → Update all accounts...

  Import transactions from online banking for all mapped accounts.

### Category Menu

Category → New category...

  Adds a new category.

Category → Edit category...

  Edits a category.

Category → Delete category...

  Deletes a category.

Category → Open ledger

  Displays the Ledgers View of a category.

### Transaction Menu

Transaction → New transaction (Ctrl+Ins)

  Adds a new transaction.

Transaction → Edit (Ctrl+E)

  Edits a transaction.

Transaction → Edit splits (Ctrl+Shift+E)

  Edits the splits of a transaction.

Transaction → Delete (Ctrl+Del)

  Deletes a transaction.

Transaction → Duplicate (Ctrl+D)

  Duplicates a transaction.

Transaction → Mark transaction as ... → Not Reconciled (Ctrl+Alt+Shift+Space)

  Changes the status of the selected transaction(s) to Not Reconciled status.

Transaction → Mark transaction as ... → Cleared (Ctrl+Alt+Space)

  Changes the status of the selected transaction(s) to Cleared.

Transaction → Mark transaction as ... → Reconciled (Ctrl+Shift+Space)

  Changes the status of the selected transaction(s) to Reconciled.

Transaction → Go to "account"

  Displays the other account of a transaction in the Ledger.

Transaction → Go to payee (Ctrl+Shift+P)

  Displays the Payees View and focuses on the payee of the selected transaction.

Transaction → Create scheduled transaction...

  Creates a new scheduled transaction using the details of the selected transaction.

Transaction → Match

  Matches two transactions. This is most commonly used to match an imported and a manually entered transaction, but other combinations also work.

Transaction → Unmatch

  Unmatches a transaction that KMyMoney has proposed as a match of imported transactions. Note that this menu choice is only present if a matched transaction exists and is selected.

Transaction → Accept

  Accepts a proposed merge of two transactions.

Transaction → Select all (Ctrl+A)

  Selects all transactions in the ledger.

Transaction → Print check

  Prints the contents of the selected transaction in the displayed ledger, formatted according to the selected template. See the section on configuring the Print check plugin for more information.

### Tools Menu

Tools → Currencies...

  Lists the currencies known to KMyMoney.

Tools → Prices...

  Lists stock and currency prices.

Tools → Update Stock and Currency Prices...

  Updates stock and currency prices from online sources using the Online Price Quotes feature.

Tools → Consistency Check

  Runs a check on your file, fixes any problems it can, and displays a report of the results.

  Make a backup of your file before running this option.

Tools → Performance-Test

  Runs a performance test on your file and displays the results.

Tools → Generate Database SQL

  Generates the SQL necessary to create a database.

Tools → Debug timers

  This is a tool for developers.

### Settings and Help Menus

The Settings and Help menus of KMyMoney are based on those described in KDE Fundamentals with some additional items.

Settings → Enable all messages

  Re-enables any messages you may have turned off by checking Don't tell me about this again in a dialog box.

Settings → Configure Language...

  By default, the language used by KMyMoney depends on the system wide settings for location or locale. This allows you to change that language, and to set a fallback language, which is used for text which has not been translated into the primary language.

Settings → Configure Keyboard Shortcuts... (Ctrl+Alt+,)

  Allows you to add or modify keyboard shortcuts for various actions.

Settings → Configure Aqbanking

  Configure online banking settings, but only if the KBanking module is enabled. More information may be found in the section on configuring the KBanking plugin as well as in the GnuCash documentation.

  The process of setting up online access in AqBanking is described in the GnuCash wiki (German only). This menu entry brings you to the dialog shown in step #3. The process until step #18 is the same for KMyMoney. Once done, you can map the account in KMyMoney using Account Map account and select the account from the list provided. From there, simply use Account Update account, or in case you have more than one online account mapped Account Update all accounts.

  See How do I configure online banking for further details.

Help → Find Action... (Ctrl+Alt+I)

  Displays the names and shortcuts of all actions in KMyMoney. Clicking on one will invoke that action, if it is currently enabled.

Widgets
Widgets

## Widgets

Thomas Baumgart `<ipwizard@users.sourceforge.net>`

Revision 5.2 (2024-12-01)

KMyMoney has some specific widgets not found in other applications. The usage of these widgets is explained in this chapter.

### Date entry and Date picker

Whenever KMyMoney needs information about a specific date, e.g., the posting date of a transaction or the opening date of an account, it offers the user the date entry widget. This widget consists of three fields, which present the day, the month, and the year, separated by the date separator characters specified by your locale settings. If you push the down arrow next to the date, the program will open the date picker widget.

Within the date entry widget, the Left/Right cursor keys can be used to switch between the day, the month, and the year fields. Using the Up/Down cursor keys, the value of the selected field can be incremented/decremented. The + and - keys can be used to increment/decrement a single day. Month and year boundaries are considered and incremented/decremented if necessary. Pressing T will set the date to today's date.

The date can also be changed using the mouse. Clicking on the day, month, or year field selects the field. The value can then be incremented/decremented using the Up/Down cursor keys. In addition, if you use the Right/Left cursor keys, when you move to a different field, the entire field is selected, and you can just type the new value for that field.

The date picker widget shows the currently selected month, name, and year. Above that are four arrow buttons, two on each side of the displayed month and year. The leftmost buttons are used to decrement the year and the month; the buttons to the right of the year are used to increment the month and the year. The button to the very right closes the date picker.

Beneath the buttons, the widget presents a calendar page for the selected month. Clicking a day on the calendar selects that date, closes the date picker, and transfers the selected date into the day, month, and year fields.

At the bottom of the date picker widget, there are a button, a text edit field, and a combo box. Pressing the button selects today's date in the date picker. The text field can be used to enter a specific date. Pressing the Enter key shows that date in the date picker widget. The combo box allows the user to select a specific week, and continue to pick a date from there.

In case an invalid date is entered, the date picker will show a red frame, and a tooltip will show details about the error.

### Value entry

The value entry widget consists of a text field (that accepts digits, thousands separators, and decimal symbols) as well as a button to the right. Use the digits to enter the value. Separate the fractional part by entering the decimal separator for your locale. If you click on the button to the right or press a key representing a numeric operation (e.g., +, -, /, * or %) a little calculator will pop up and allow you to calculate the final value.

Negative values can be entered by preceding the value with a minus sign. In case your locale is set to display negative numbers with parentheses around the value, the value can also be enclosed in parenthesis in the value entry widget.

Use the calculator widget just like a normal calculator and once done leave it by clicking on the = button or press the = key on your keyboard.

### Payee/Payer entry

The widget for entering a Payee/Payer is very similar to a typical combo-box, but has some additional features.

When you are requested to enter a payee/payer for a transaction, you can start entering the name by pressing keys on your keyboard. As long as there are entries in the list of payees/payers maintained by KMyMoney which match the characters entered, they will be presented in a box beneath or above the text entry area. Using the mouse or the Up/Down keys, one can select a name from that list. Using the keyboard additionally requires you to select the entry by pressing the Enter key. Clicking the X to the right of the entry area clears the field. Clicking the down arrow to the right of the X displays the complete list of possible payees/payers.

If a name is entered that is not yet known to KMyMoney you will be asked if you want to create a new payee/payer record. If you do not wish to do so, then the field will be blanked. Otherwise, the record will be created and added to the list.

### Category/Account entry

The field for entering a Category or Account is very similar to the one described above for Payees/Payers.

To the right of the entry field, between the X for clearing it and the down arrow for displaying the complete list, there is a split icon, which opens the Split Editor

Chapter 26. Credits
Credits

# Chapter 26. Credits

Revision 5.2.0 (2024-12-01)

Program Copyright (c) 2000-2024 The KMyMoney Development Team

This program is licensed under the terms of the GNU General Public License.

Documentation Copyright (c) 2000-2024 The KMyMoney Development Team

This documentation is licensed under the terms of the GNU Free Documentation License.

## Active Developers

- Thomas Baumgart `(ipwizard AT users.sourceforge.net)`: Release manager and de-facto Maintainer. Core engine. Project admin.

- Ralf Habacker `(ralf.habacker AT freenet.de)`:Developer.

Special Thanks
Special Thanks

## Special Thanks

- Allan Anderson, ✝: Patches. CSV import/export.

- Marko Käning `(mk-lists AT email.de)`: Patches, packaging, and KF5-CI for OS-X.

- Laurent Montel `(montel AT kde.org)`: Patches.

- Javier Campos Morales `(javi_c AT users.sourceforge.net)`: Developer & Artist.

- Jack H. Ostroff `(ostroffjh AT users.sourceforge.net)`: Documentation and user support.

- Wolfgang Rohdewald `(woro AT users.sourceforge.net)`: Patches.

- Kevin Tambascio `(tambascio AT users.sourceforge.net)`: Initial investment support.

- Robert Wadley `(robntina AT users.sourceforge.net)`: Artist. Icons, splash screen, Home View.

Inactive Developers and Contributors to Previous Versions
Inactive Developers and Contributors to Previous Versions

## Inactive Developers and Contributors to Previous Versions

- Tony Bloomfield `(tonybloom AT users.sourceforge.net)`: GnuCash Importer. Database support.

- John C `(tacoturtle AT users.sourceforge.net)`: Developer.

- Christian Dávid `(christian-david AT web.de)`: Developer.

- Michael T. Edwardes `(mte AT users.sourceforge.net)`: Original author, much initial source code. Project admin.

- Bernd Gonsior `(bernd.gonsior AT googlemail.com)`: Reports.

- Ace Jones `(acejones AT users.sourceforge.net)`: Reporting logic. OFX Import. Online Quotes. Documentation.

- Roger Lum `(rogerlum AT gmail.com)`: Documentation.

- Ian Neal `(iann_bugzilla AT blueyonder.co.uk)`: Scheduled transactions and calendars.

- Cristian Oneț `(onet.cristian AT gmail.com)`: Patches and Plugins.

- Felix Rodriguez `(frodriguez AT users.sourceforge.net)`: Project admin.

- Alvaro Soliverez `(asoliverez AT users.sourceforge.net)`:Forecast. Reports.

- Darin Strait `(darin.strait AT ashdar-partners.com)`: Documentation.

- Fernando Vilas `(fvilas AT users.sourceforge.net)`:Database support.

- Łukasz Wojniłowicz `(lukasz.wojnilowicz AT gmail.com)`: Developer.

- Colin Wright `(cdwright AT gwi.net)`: Patches and Documentation.

- Dawid Wróbel `(me AT dawidwrobel.com)`: Patches and Woob integration.