Back to Top

Money Manager Ex (MMEX) User Manual

Introduction

Money Manager Ex (MMEX) is a free/libre, open-source, cross-platform, easy-to-use personal finance software. It helps organize finances and track cash flow.

MMEX includes all the basic features that 90% of users would want to see in a personal finance application. The design goals are to concentrate on simplicity and user-friendliness – an application that can be used everyday.

MMEX is financial management system for anyone to track money, currency, capital assets, spending habits. MMEX is based on simple principles, to allow anyone with little, to no knowledge of finance and general bookkeeping to successfully manage their finances. MMEX does this by modeling the real financial world, to help the user maintain personal finances. MMEX is gratis (without payment or charge) and open-source software.

The primary goal of MMEX is to simplify the process of tracking financial information, in an easy to use program that can be used as regularly as necessary, to help track where money comes from and more importantly, where money goes, in order to make better informed financial decisions.

MMEX could be thought of as a computer checkbook which enables the balancing of accounts and to organize, manage and generate reports for finances.

MMEX also helps keep abreast of financial worth.

The purpose of this manual is to give the reader some basic instructions for using MMEX. This instruction manual will evolve as the program evolves. So check the help system with each update and see what’s new and how to better utilize MMEX.

Features

Working towards better Financial Health

Becoming financially organized requires a certain amount of discipline. Financial management can quickly become complicated when there is no clear understanding of how much money we receive as income versus how much money we spend as expenses.

Debt usually occurs when our cash flow becomes limited because expenses exceed income. In these situations, we are often forced to borrow money in order to maintain sufficient cash flow to purchase essential goods.

The first step toward better financial health is maintaining accurate and up-to-date financial records. Only when we clearly understand where our money goes can we make informed decisions about where to reduce expenses during periods of financial strain. And if borrowing becomes necessary, we will also be better equipped to manage our debts.

Did you realize you spent $600 on DVD movies last year? How many times did you actually watch them? Looking back, would that $600 have been better spent on the unexpected car maintenance that came up yesterday? There is no right or wrong answer when it comes to how you choose to spend your money. After all, you earned it and have every right to spend it as you see fit. However, it is always possible to make your money work more efficiently and get the most value out of every dollar spent.

This is where personal finance software comes into play. Such tools help organize and analyze financial data, providing clearer insight into what is really happening. Always remember that software is only as good as the data it processes: incorrect data will inevitably produce incorrect results. But if you have already started considering the use of personal finance software, you are well on your way to making every dollar count.

Let’s now move on and see how to work with Money Manager Ex.

MMEX Concepts

Money Manager Ex models the real world in order to help users manage their personal finances.

In everyday life, we usually receive money from someone in exchange for services we provide or products we sell. In MMEX, this is considered an Income or a Deposit. When we purchase goods or use services, the money we spend is considered an Expense or a Withdrawal. In MMEX, the people or organizations that give us money or receive our money are referred to as Payees.

Since we generally do not spend all the money we receive, we obviously need a place to store it. This may be a financial institution, several institutions, or simply cash in our pocket. MMEX refers to these places as Accounts.

Whenever we spend or receive money, this is recorded as a Transaction, and the reason for the income or expense is represented by a Category. In some situations, money needs to be moved from one place to another, such as withdrawing cash from an ATM (from a bank account to cash). This type of transaction is known as a Transfer.

This situation can be simplified as shown in the following diagram:

MMEX Concept

Another important aspect to consider is the currency used to perform transactions.

With all these elements to keep track of, MMEX uses a database to store and link all this information together.

Recommendations

The database generated by MMEX, known as the .mmb file, becomes an important file that must be protected. Depending on your needs, encryption can be used as a security measure, resulting in an encrypted .emb database. This allows a password to be attached to the database, which will be required every time MMEX is opened.

As with any computer system, the data we generate is important and must be protected against system failures. MMEX includes a backup system that can automatically create dated backup copies when the database is opened and/or when changes are detected. Up to four backup copies are retained for each database.

Create and Manage a New Database

In MMEX, all financial information (Accounts, Transactions, Categories, Currencies, Tags, Attachments, Settings, and more) is stored inside a single Database. This chapter explains how to create a new database, how to manage it properly, how to use encryption, how to open it on other devices, and how to perform reliable backups.

Introduction to MMEX Databases

An MMEX database is a SQLite file and can use two different extensions:

MMEX allows the use of multiple databases (personal, family, business, testing, etc.). The name of the currently open database is always visible in the application’s title bar.

At startup, MMEX automatically attempts to load the last database that was used. If no database is found, the user is prompted to open an existing database or create a new one.

This is especially useful when working with multiple databases: the title bar makes it easy to immediately identify which database is currently open, reducing the risk of entering or modifying data in the wrong file.

Initial screen without database

Create a New Database (.mmb)

To create a new database, choose:

FileNew Database…

You will be asked to specify:

Once the file is saved, the New Database Wizard will start.

The wizard guides the user through the initial setup steps, helping not only to configure the database, but also to create the first account, which is required before transactions can be recorded.

Initial Settings: Base Currency and User Name

The wizard requires two key pieces of information:

MMEX includes a set of predefined currencies, usually aligned with the user’s country settings. The Base Currency represents the main reference currency for the database: all reports and overall totals are calculated using this currency.

It is possible to create accounts in different currencies from the Base Currency. MMEX automatically manages exchange rates, allowing amounts expressed in different currencies to be compared correctly.

A complete explanation of currency management, exchange rates, and conversions is provided in the dedicated Currencies section.

Wizard: Base Currency and User Name

The Base Currency also allows accounts in different currencies to be managed while maintaining a consistent overall view of the total value.

These settings can be changed later via:

ToolsSettings…

Unencrypted Databases (.mmb)

.mmb files are standard SQLite databases without encryption. They can be opened by any MMEX installation and even by third-party tools.

Encrypted Databases (.emb)

.emb files use AES encryption and require a password to open. They are strongly recommended when storing the database in the cloud, transferring it between devices, or storing it on shared computers.

Convert from .mmb to .emb

To convert an existing unencrypted database:

FileSave Database As…

Choose Encrypted Database (.emb).

Convert from .emb to .mmb

Open the encrypted file, enter the password, then save it as:

FileSave Database As…

Opening a Database on Another Device

.mmb and .emb files are not device-locked. You can copy them to any computer, cloud service, NAS, or USB drive and open them normally.

Opening a database on another device

Common Problems and Solutions

Issue Cause Solution
Password not accepted Incorrect case or keyboard layout Check Caps Lock and keyboard language
Corrupted file Application interrupted while saving Restore from a backup
Version mismatch Older version of MMEX cannot read new DB format Update MMEX

Differences Between .mmb and .emb

Characteristic .mmb .emb
Security Low High (encrypted)
Password required No Yes
Performance Faster Slight overhead
External access Possible via SQLite tools Not possible

Managing Multiple Databases

You can switch between recently used databases via:

FileRecent Files…

Recent Files menu

Database Backup

MMEX generates backup copies (.bak files) to protect your data from errors, unexpected shutdowns, corruption, or incompatibilities with older database formats.

Backup options

Backup Settings

Backup options are located under:

ToolsSettingsOther

The available options are:

How Backup Files Are Generated

The backup filename is always based on the name of the main database (dbname.mmb), with a suffix added automatically by MMEX:

Backups Created on the Same Day

During a single day, MMEX may create up to:

Once a backup for that day has been created, MMEX does not update or overwrite it. Backup files are static snapshots of the database at the time they were created.

If additional changes are made during the same day:

.bak Files

A .bak file is a static copy of the database as it existed at a specific moment. MMEX never modifies or overwrites existing backup files.

How to Restore a Backup Safely

  1. Close MMEX.
  2. Locate the folder containing the database and its backups.
  3. Rename the main database (dbname.mmb) to something like:
    Last_dbname.mmb to avoid filename conflicts.
  4. Make a copy of the backup you want to restore (right-click → copy → paste).
  5. Rename the copied backup from:
    dbname_start_YYYY-MM-DD.bak or dbname_update_YYYY-MM-DD.bak
    to:
    dbname.mmb
  6. Open the renamed file using File → Open Database….

Backups as Historical Snapshots

Opening an older backup may cause MMEX to automatically apply scheduled transactions that fall between the backup date and the current date.

Immutable Backups

MMEX cannot mark a database file as read-only, but operating systems can.

Common Backup Issues

Issue Cause Solution
No .bak files created Backups disabled or no database changes made Check Tools → Settings → Other
Very long filenames A backup file was mistakenly opened as the main database Always use the .mmb file as your active database
Too many .bak files Max Files set too high Reduce the limit or clean older backups manually

Best Practices

Creating New Accounts

When creating a new database file, you will automatically be requested to create a new account.

To manually create a new account, from the menu, select AccountsNew Account….

This will bring up the Add Account Wizard. The wizard will assist in collecting the important information of the Name and Type of Account. The Account Type cannot be changed once it has been created, but the account name can be modified later when editing the account information.

The wizard guides the user through the initial setup steps required to start working with MMEX and ensures that at least one account is properly created before transactions can be recorded.

Name of the Account: This is a required field. The recommendation is to name your accounts uniquely and in relation to real-world accounts. Example: With CitiBank, we have a Savings account and a credit card Visa account. You could name your accounts as CitiBank Savings and Citibank Visa.

Type of Account: MMEX supports several types of accounts.

Checking Account
This is the most common type of account used in MMEX and represents standard bank accounts. It can handle most everyday account types, such as checking accounts, savings accounts, and credit card accounts. Also known as a Bank Account, it supports three kinds of transactions: withdrawals, deposits, and transfers.
Term Accounts
Term Accounts are similar to Checking Accounts, with the difference that they appear in a separate section on the Dashboard and can be shown or hidden during normal daily use.
These accounts are intended for specialized financial products such as cash term accounts, mortgage loans, personal loans, or other accounts with regular income or expenses that need to be tracked over time. They have their own balance section on the Dashboard and also support withdrawals, deposits, and transfers.
Investment Account
Investment Accounts allow you to track investments such as stocks, bonds, mutual funds, and other financial instruments you may own. This account type is designed specifically for monitoring investment holdings and performance over time.

To properly set up accounts, you should have balance information for the accounts you want to add to MMEX. You can get this information from your most recent bank, investment and credit card statements. To track additional information about this account, optionally you can enter your account details such as account number, institution, website, contact information, and access details. You can enter additional notes about the account in the notes field.

Most accounts have some kind of balance in them, for example say in a credit card account, you have a current balance of $2,304.67, you could put that value in the initial balance field. From that point forward, you only need to add transactions that occurred after that date.

The Account Status can be set to Open or Closed. Closed accounts are just that. They are no longer active. Setting this status is just a way to declutter your view in the Navigator. Permanent settings are made by changing the View on the Menu, ToolsSettings…, you can hide the closed accounts. See Navigator Tips.

Currency: This is initially set to the database Base Currency setting which was initially set when creating the database. You can set the currency that is associated with this account and can be different to the base currency.

The exchange rate for the currency can be changed using the menu: ToolsCurrency Manager….

Example: You live in the USA using US Dollars, and have an Italian bank account using the Euro. Most of your accounts are in USD. What is the real value of your Italian bank account? By changing the exchange rate for the Italian Euro, you can get the correct value of your accounts.

You can also mark accounts as a Favorite Account. This again is used to change the accounts that are visible in the Navigator. See Navigator Tips.

Account Setup Example

We have a savings account with $1,250, a check account with $500, a MasterCard owing $250, a Visa Card owing $475, a home mortgage loan of $230,965 and an education fund to send the children to college in the future currently at $5,000 earning interest.

We would set up the following accounts:

Account Type Account Name Initial Balance
Check/Savings Savings $1,250.00
Check $500.00
MasterCard -$250.00
Visa Card -$475.00
Term Home Mortgage -$230,965.00
Education Fund $5,000.00

On the Dashboard the balances would be $1,025 for Bank accounts, and $-225,965 for Term Accounts

When a payment is made from your Savings Account to your MasterCard with a Transfer Transaction the balance on the Dashboard remains the same. When a payment is made from your savings to your home mortgage, the balance on the Dashboard will reflect the payment. Now you can determine the amount of money you have on a day to day basis. Regular payments can also be set up from your savings account to your mortgage account using Scheduled Transactions.

Editing Account Information

Once you have created an account, you can edit any of the account information fields in the following ways:

This will bring up the account information dialog where the required fields can be changed.

Edit the account details then use the OK button to save the account information.

Creating New Transactions

Once you have created a new account, and selected the required account from the Navigator, or the Dashboard, the displayed account can have new transactions added as follows:

New/Edit Transaction dialog

A dialog will appear for new transactions. Use this dialog to enter the following details:

Date
This is generally the date of the transaction. Defaults to current day and can be changed.
Status
The default is None, but can be changed to Reconciled by the options settings.
Type
Transaction Types:
Withdrawal
is one where one makes a payment and is an expense.
Deposit
is one where money is received and is an income.
Transfer
is one where a withdrawal is made from one account and is deposited into another account. This type of transaction is not included in Income/Expense calculations.
Amount
Enter the amount for the transaction. The second amount field is associated with the Advanced Checkbox and will be activated only for Transfer transactions.
Advanced
For a transfer transaction, when the amount in the From Account is different to the To Account, the difference is recorded in the separate fields. This can be used to allow for currency rate changes.
Transaction Status
Unreconciled
When you enter a transaction, it initially is in the state of Unreconciled. Which means the transaction has not been reconciled with your bank/credit card company’s balance.
Reconciled
Once the transaction is checked and verified with a credit card company’s balance information, it can be marked as reconciled.
Void
If you entered a transaction that later became invalid or you canceled the transaction, instead of deleting the transaction you can also mark it as void so you have a record of the transaction.
Flag For Follow Up
This status marks transactions as needing more action. For example, you receive a balance statement from the financial institution and you notice that the transaction amount is different between what you recorded and what is in the statement. You can mark it as flag for follow up so that you can followup with the financial institution.
Duplicate
The status will be automatically be changed to duplicate if it is recognized as such.
Payee
This is a person or an organization to whom the money goes or comes from.
Clicking the payee button opens up the payee drop-down list. You can select the payee from the list or create a new payee for immediate use.
Category
Category selects the kind of expense/income for the transaction.
Clicking the category button opens up the category drop-down list. You can select the category from the list or create a new category for immediate use.
Split
This checkbox will activate the Split Transaction dialog
Split Transaction allows multiple categories to be recorded for a single transaction.
Can allow a transaction to have Income and Expense categories recorded as deposit and withdrawals, provided the overall transaction type is observed and remains positive, for Deposit and Withdrawal transactions.
Transaction number
This field to enter any kind of number associated with the transaction like check number.
Notes
This field can be used to record any special notes with regards to the transaction. The button under Notes can be used to select commonly used field notes.

Editing and Updating Transactions

Editing existing transactions can be achieved in a number of ways:

Any of these actions will open the transaction dialog box containing the details of the selected transaction. Make the changes and click OK to save the changes.

Transaction Filtering in Accounts

Transactions can be filtered by either fixed filters or, by using the Transaction Filter in the Account View. This will allow the user to limit the visible transactions to those defined by the appropriate filter. These filtered transactions can then be easily selected and individually modified.

These visible transactions can also be deleted in bulk if so desired.

Reconciling and Balancing Transactions

Unreconciled Transactions
This means that they have not been verified with the statement from the financial institution.
Reconciled Transactions
A transaction can be considered reconciled when the details of the transaction match that from the financial institution.

In MMEX, reconciled and unreconciled transactions are shown by different icons. When bank details are not checked against a bank statement, the user can select to set the default as Reconciled when creating transactions in the Settings.

Reconcile dialog

For a convinient reconcile, a reconcile dialog is provided.

Opening the dialog

It can be either openend from the navigator right-click contextual menu of the account:

Navigator account context menu


Or directly in the account view with the provided button:

Reconcile button


Dialog window

The dialog displays all pending transactions up to the current date sorted in two columns: one for withdrawels (payments and including transfers) and one for deposits including incoming transfers:

Reconcile dialog

Dialog settings
With the settings button in top right corner, the display of the reconcile dialog can be configured:

Reconcile dialog settings

These options are stored and reapplied with the next invokement.

Per default "void" transactions are not shown in the dialog.

Flagging transactions for followup

Some transactions might have some issues that you want to follow up on. Mark these as with status of flag for followup. This is indicated in MMEX with a different icon.

Custom Colors

The user can specify 7 custom colors in under the Transaction Colors heading in the View section of the Settings. In the checking/term panel, pressing Ctrl+1 through Ctrl+7 sets the transaction entry color to the user specified custom color. Pressing Ctrl+0 will change it back to the MMEX default transaction color.

Custom Fields

In MMEX, a transaction already has standard fields (Date, Payee, Category, Amount, Notes, etc.). In real life, however, information is often needed that does not have a natural place in these fields: a case ID, a payment method, an internal code, a project, a contract, a due date, a tag-based classification, a bank balance reported in the CSV, or the transaction type used by the bank (DD, CHQ, BGC…). Custom Fields are designed for exactly this purpose: they turn “informal” columns into consistent data, so you can import them, filter them, display them as columns, and use them in reports.

Why Custom Fields were introduced

Many users import years of history from other finance apps or from bank/Excel exports. Those files frequently include extra columns (tags, comments, transaction type, references, balances, custom flags) that are extremely valuable for analysis and reconciliation, but cannot be reliably stored inside standard fields without losing meaning (for example, forcing a bank “transaction type” into Category is a compromise). Custom Fields were introduced to:

Key concepts (before you start)

Before creating dozens of fields, it is advisable to define three key concepts:

Managing fields: Custom Fields Manager

In the Custom Fields Manager you create, edit, and remove field definitions. A definition typically includes:

Custom Fields Manager overview
Overview of the Custom Fields Manager with three example fields: Payment method (Single choice), Reference (Text with RegEx) and Warranty end (Date), with panel columns assigned to UDFC01 and UDFC02.
Edit Custom Field: Reference
Configuration details of the custom field “Reference”. The Tooltip guides the user, the regular expression enforces the PRAT-YYYY-NNNN format, and the panel column allows the value to be displayed in UDFC02.

Field types and validation (with practical examples)

The choice of field type is not cosmetic: it determines what MMEX considers valid, how values are imported from CSV/XML, and how reliable it will be to filter and report that data.

String
Free text. Great for IDs and structured short text. Can be validated by RegEx.
Example: “Case reference” with CASE-\d{4}-\d{4} forces values like CASE-2025-0142.
Integer
Whole numbers only. Useful for counters/quantities.
Example: “Loyalty points”, “Receipt number”.
Decimal
Numbers with decimals. Precision (“Digits Scale”) can normalize imported data.
Example: “VAT %”, “FX rate”, “Discount %”.
Boolean
True/False flags for quick filtering.
Example: “Tax-deductible”, “Reimbursable”, “Company card”.
Date
Calendar dates.
Example: “Subscription renewal”, “Warranty end”.
Time
Time-of-day (hh, hh:mm, hh:mm:ss). Helpful when multiple transactions share the same date.
Example: “Payment time”.
Single choice
Dropdown list. The best way to keep consistent classification.
Example: “Payment method” = Card;Cash;Transfer;PayPal.
Multi choice
Multiple selections (often separated by ;). This is the closest “tag-like” approach, but controlled.
Example: “Tags” = Home;Car;Health;Work.

When to use them (useful scenarios)

Custom Fields are useful whenever you want to separate accounting(Categories, accounts, transfers) from operational classification (projects, people, methods, codes, reconciliations). Typical scenarios include:

1) Payment method (Card/Cash/Bank transfer…)

Categories describe “what you bought”. Payment method describes “how you paid”. With a “Payment method” custom field you can answer: “How much did I spend in cash last quarter?” without polluting categories.

2) Projects / cases / cost centers

Add a “Project” field to track cross-category initiatives: Category = “Home:Materials”, Project = “Bathroom renovation”. You keep both category reporting and project-based reporting.

3) Lossless historical import from other software

When importing data from apps or banks that provide extra columns (tags, comments, bank transaction type, daily balances), Custom Fields are the correct way to bring everything into MMEX without compressing information into the Notes field. This is exactly one of the reasons why this feature is considered “powerful”: it allows faithful and verifiable migrations.

4) Controls and deadlines (warranties, renewals, contracts)

Using Date and Boolean fields, you can build a simple system to track deadlines such as “Warranty end” and “Renewed (Yes/No)”. Even though MMEX is not a full management system, this helps filter and locate related transactions and documents.

Assigning values in transactions

Once at least one Custom Field is defined for transactions, the New/Edit Transaction dialog displays a (usually expandable) Custom Fields section, where you can enter values specific to that transaction.

Entering Custom Fields in a new transaction
Entering Custom Field values while creating a new transaction: expanding the dedicated section, filling in the values, and saving the transaction.

Showing fields in the transaction panel (UDFC01–UDFC05)

To see values directly in the account view, you can map up to 5 custom fields to the special columns UDFC01…UDFC05.

  1. In Custom Fields Manager, set Panel’s column to UDFC01…UDFC05 for the fields you want.
  2. Open an account and right-click the column header area.
  3. Use Hide/Show Columns and enable the UDFC columns you need.
UDFC columns in the transaction panel
Custom Fields displayed as columns in the transaction panel using UDFC01 (Payment method) and UDFC02 (Reference).

Custom Fields in CSV/XML import (the most powerful use case)

In the CSV import dialog (and similarly for XML), MMEX displays the list of assignable fields. After the standard fields, you will also find the Custom Fields, typically identified by entries such as UDF: FIELDID next to the field description. This allows you to map any extra column in your CSV to an existing Custom Field.

CSV import with Custom Fields mapping
CSV import dialog showing file columns mapped to Custom Fields, displayed alongside standard fields.

Recommended procedure (robust and repeatable):

  1. Create the fields in the Custom Fields Manager (correct type, choices, RegEx, tooltip).
  2. Prepare the CSV with one column per Custom Field (clear header names, consistent values).
  3. Map the columns in the import dialog, assigning each column to the correct field (standard or custom).
  4. Run the import and review the log: validation errors point to rows or columns that need correction.
  5. Save an import preset (if available in your version) so the mapping can be reused.

Export and sharing: what to expect

When exporting to CSV/XML, the behavior depends on the version and the type of export selected. In general, if the goal is to “transfer data” from one MMEX database to another or to create an interoperable backup, it is advisable to verify that the export also includes Custom Fields and to always test with a small file first.

Using Custom Fields in reports & filters

Custom Fields can be used in three main ways:

For advanced users (or those who want a “professional” manual): Custom Field values are stored in a dedicated table and linked to transactions via the transaction ID (REFID). This makes it possible to create SQL reports that also extract and aggregate Custom Field data.

SELECT
		a.TRANSDATE,
		a.TRANSAMOUNT,
		p.PAYEENAME,
		c.CONTENT AS CustomValue
	FROM CHECKINGACCOUNT_V1 a
	LEFT JOIN PAYEE_V1 p ON p.PAYEEID = a.PAYEEID
	LEFT JOIN CUSTOMFIELDDATA_V1 c ON c.REFID = a.TRANSID
	WHERE c.CONTENT = 'Card'
	ORDER BY a.TRANSDATE;

Current limitations and exceptions to be aware of

Best practices (recommended workflow)

A robust workflow (especially for historical imports) is:

  1. Design a small number of well-defined fields (method, project, reference, controlled tags).
  2. Prefer Single/Multi choice when you need consistency and reliable reports (instead of free text).
  3. Add Tooltips to remind yourself (or others) of the input rules.
  4. Test with a small CSV (10–20 rows) and verify import, filters, and columns.
  5. Only then import the full history and evaluate any normalization using Massive content update.

Searching for Information

Finding Transactions

MMEX provides several tools to help users locate specific transactions within the database.

The quickest way to search transactions is by using the quick search field available in the account view. This search operates primarily on the Notes field and other visible transaction fields.

At the bottom of the transaction list in the account view, enter your search text in the field to the right of the magnifying glass icon. Click the magnifying glass or press the Enter key to start the search.

The search is applied only to the currently displayed account and processes all visible transactions. When working with large datasets (thousands of transactions), search operations may take a few seconds to complete.

For advanced searches based on amount, date, category, payee, custom fields, or complex criteria, it is recommended to use Transaction Filters or Transaction Reports, which provide far more detailed control.

Finding Payees

To locate a specific payee, open the Payee Manager using:

ToolsPayee Manager…

In the payee management window, use the search field at the bottom of the dialog. This search is not case-sensitive, and the payee list is filtered dynamically as you type.

If you do not know the exact name or spelling of a payee, you can use wildcards:

Examples

For more details about managing payees, see the Payee Manager section.

Important Notes About Search Behavior

Some fields, such as Categories and Subcategories, follow different search and selection rules depending on where they are used.

For example:

Searching within Custom Fields also has some limitations:

Working with Payees

Payees are the people or institutions that give us money, or the people or institutions who we pay, for our goods and services.

You can manage Payees by using the menu item: ToolsPayee Manager….

Once the Payee Manager opens you can add new payees, edit or delete existing payees.

To Add a new Payee:

  1. Enter the name of the payee in the Filter Payees box
  2. Use the Add button

You can also select the payee in the list, then use the Edit or Delete button to perform the required action.

To delete a payee, ensure that no transactions use this payee. This can be done by:

This would then make the payee free so it can then be deleted.

Working with Categories

Categories indicate the reason an expenditure is made or an income is received.

A Category is generally used to record Income or Expenses. Because MMEX allows us to transfer money between accounts, it is also recommended to use categories to record transfers. This will allow us to determine what money is being transferred for a specific reason, such as a repayment to a loan. This will not be seen as an income or expense in the overall picture. Using the same category for an income and an expense will upset balance figures.

Example: If we want to record the value of running a car, we would set up the following:

The first 4 subcategories are used to record expenses. If we are reimbursed for fuel costs for any reason, we would need to use Fuel Reimbursed as an Income subcategory. This would then allow us to determine the correct amount we are spending on fuel to run the car. This will become clearer when we are using Budgets.

Split Categories

When adding a new transaction, we can use more that one category to record a transaction. This is known as a split category.

The overall split category transaction is either a withdrawal or a deposit. Although the categories within the split, need to reflect the overall transaction type, each category can be classified as a withdrawal or deposit within the split.

Split categories can easily be viewed for a transaction by using a contextual menu selection when a split category entry exists.

Managing Our Categories

You can manage Categories by using the menu item: ToolsCategory Manager…. Once the category dialog opens, you can add new categories and subcategories.

To Add a new Category:

  1. Select Categories at the root of the tree (At the top)
  2. Use the Add button
  3. Type the new category name into the text box
  4. Press the OK button
  5. The new category will appear at its alphabetical place.

To Add a new Subcategory:

  1. Select the category that you wish the subcategory to belong to
  2. Press the Add button
  3. Type the new subcategory name into the text box
  4. Press the OK button

You can also change the names by selecting the category/subcategory in the list, use the Edit button, modify the name in the text box, then use the OK button. Use a similar action to delete the category/subcategory in the list.

Ensure that no transactions use this category/subcategory combination. This can be done by:

This would then make the category free so it can then be deleted.

You can nest subcategories, with information available here: nested categories #1477.

Working with Tags

Tags are an advanced classification tool that allow you to assign contextual information to transactions, independently of Categories, Accounts, or Payees. While Categories describe the nature of an expense or income, Tags describe the purpose, project, person, event, or context related to that transaction.

Why Tags exist and when to use them

Tags were introduced to provide a more flexible classification system than Categories alone. A Category defines “what type” of transaction was made; a Tag defines “why” the transaction was made or “in which context” it belongs.

Tags are especially useful when:

Using Tags keeps your Category structure clean while allowing deep and flexible analysis.

Adding Tags to a Transaction

The Tags field is available in the New/Edit Transaction window. You can:

New/Edit Transaction window showing the Tags field




Tags also work with split transactions, allowing you to classify complex entries with multiple Categories.

New/Edit Transaction window showing the Tags field

Organizing and Managing Tags

All Tags can be viewed and modified using:

ToolsTag Manager…

Organize Tags dialog

From this window you can:

Rules and limitations for Tag names

Tag names must follow specific rules to ensure correct behavior within MMEX reports, search filters, the database, and import/export systems:

Using Tags in Reports

The Transaction Report fully supports Tag-based filtering.

ReportsTransactions

Transaction Report with Tag filter highlighted

Filter options include:

Examples and Real-life Scenarios

• Travel

Hotels, taxis, restaurants → Tag: Vacation2025

• Renovation

Materials, labor, tools → Tag: BathroomRenovation

• Shared expenses

Groceries, utilities → Tags: Marco, Angela

• Property management

Bills, maintenance, taxes → Tag: CityCenterHouse

Working with Currencies

MMEX can be used in many countries, MMEX need to consider the currency for the country of use. When creating a new database, the Base Currency is set to the currency used in the user’s country. If the user’s currency setting is not listed in the default currencies, the user can create their own currency Listing.

MMEX allows us to work with more than one currency. Each account has its own currency setting, and will default to the base currency. When we set accounts with different currencies, the transactions we create in these accounts will reflect the currency of the account.

You can manage Currencies by using the menu item: ToolsCurrency Manager….

Add a new Currency:

  1. Use the Add button in the Currency Manager dialog
  2. Provide a suitable name for your new currency.
    Note: This name is not changeable, but the currency can be deleted if not being used.
  3. Adjust the currency values in the Currency Manager.
  4. Use the Update button to save the changes before closing.

When more than one currency is being used, the Conversion to Base Rate needs to be set. This will allow the value of the currency to properly reflect the value at the base rate.

To allow Automatic Currency update, the Currency Symbol needs to be set for the particular currency being used.

Importing financial data

Importing from CSV Files

To alleviate the problem of users having to pre-format their bank transaction CSV files into the fixed format MMEX requires, MMEX also allows users to import CSV files where the order of fields is completely freeform.

To use this importer, select the account you want to import into and then select the order of fields in the CSV file by picking and choosing from the list of possible fields. MMEX will now import the CSV file using the format information specified by the user.

MMEX can import from a wide variety of formats. One of them is a fixed format CSV file. This file format exactly matches the CSV format that MMEX can export. So it can be useful to move data from one .mmb database file to another .mmb database file. To easily see the format of the CSV file, you can try exporting an account to a CSV file and then analyzing the format created.

The CSV field options are as follows:

Date
Date of the transaction (in the format specified in ToolsSettings…General)
Payee
To whom the transaction was made. In the case of a transfer transaction, this indicates the name of the account from which the transfer was made or to the account the transfer was made.
Amount (+/-)
The transaction amount. If it is a positive value it is a deposit, negative value is a withdrawal (there is an option to reverse this)
Category
The category of the transaction
SubCategory
The subcategory of the transaction
Notes
Transaction Notes
Number
Transaction number
Withdrawal
A positive amount that is considered as a withdrawal. Do not use if specifying Amount (+/-)
Deposit
A positive amount that is considered as a deposit. Do not use if specifying Amount (+/-)
Don’t Care
Ignore this field

When creating your CSV file be sure that you remove the commas from your deposits and withdrawals. This can be done easily using a spreadsheet program such as LibreOffice Calc.

After importing from CSV, all transactions will have a Follow Flag as it its status. You can mark all transactions with this flag using the bulk status setting commands using the right-click contextual menu in the account view.

When importing CSV files that contain extra columns (such as payment methods, references, project codes, or bank-specific transaction types), consider using Custom Fields to preserve this information as structured data instead of placing everything into Notes.

Importing from XML Files

Importing from XML files recognizes XML files in Excel format named XML Spreadsheet 2003 in Excel. This is the recommended import method if required to import transactions from Excel. Method of import and field selection is same as importing from CSV files.

Importing from QIF Files

Quicken Interchange Format (QIF) is an open specification for reading and writing financial data to media (i.e. files). A QIF file typically has the following structure:

!Type:type identifier string
[single character line code]Literal String Data
...
^
[single character line code]Literal String Data
...
^

Each record ends with a ^ (caret).

See example QIF transaction:

!Type:Bank Header
D6/ 1/94 Date
T-1,000.00 Amount
N1005 number
PBank Of Mortgage Payee
^ End of transaction

QIF is older than Open Financial Exchange (OFX). The inability to reconcile imported transactions against the current account information is one of the primary shortcomings of QIF. It is commonly supported by financial institutions to supply downloadable information to account holders.

MMEX can import transactions from specific types of QIF formats into an account (you can find the type of QIF by opening in a text editor)

!Type:Bank
Bank account transactions
!Type:Cash
Cash account transactions
!Type:CCard
Credit card account transactions

After importing from QIF files, all transactions will have a Follow Flag as it its status. You can mark all transactions with this flag using the bulk status setting commands using the right-click contextual menu in the account view.

Importing from WebApp

MMEX has a light WebApp that can be installed on every PHP webserver like NAS, shared hosting or other PHP local installation.

You can download all needed files from WebApp project page.

To start-up WebApp you only have to:

  1. unzip file in a folder on your webserver or upload files through FTP
  2. rename htaccess.txt in .htaccess (on Windows you need to do it from CMD and rename command)
  3. enable PDO_SQLite if needed

Then simply open your browser to the folder URL, fill first settings and insert correct URL and GUID in MMEX settings (import/export tab).

Now at every start-up MMEX will contact WebApp for new transaction that will be downloaded and imported in desktop database.

All main transaction linked settings will be automatically synced to WebApp, in this way you can have all your account and payees ready to use inserting new transaction.

Exporting data

Exporting as CSV Files

MMEX can export as a fixed format CSV file. This file format exactly matches the CSV format that MMEX can import. So it can be useful to move data from one .mmb database file to another .mmb database file. To easily see the format of the CSV file, you can try exporting an account to a CSV file and then analyzing the format created.

The general format is as follows:

Date
Date of the transaction (displayed in the format specified in ToolsSettings…General)
Payee
To whom the transaction was made. In the case of a transfer transaction, this indicates the name of the account from which the transfer was made or to the account the transfer was made.
Transaction Type
This can either be Withdrawal or Deposit
Amount
The transaction amount as a positive value
Category
The category of the transaction
SubCategory
The subcategory of the transaction if any (otherwise blank)
Notes
Transaction Notes

Exporting as XML Files

MMEX can export as an XML file. The XML format is compliant with, and can be read by, spreadsheet programs such as LibreOffice Calc. The general format is the same as CSV.

Exporting as QIF Files

MMEX can export an account to a file of the QIF format. This format can also be used by MMEX to reload into an account.

Scheduled Transactions

Scheduled Transactions are special transactions that we set up in order to have the transaction entered into the database at some future date. These transactions generally occur at regular intervals, such as the payment of a bill.

These transactions:

Scheduled Transactions can be accessed from the Navigator or from the menu item ToolsScheduled Transactions. This will display the Scheduled Transactions page.

To create a new transaction, use the New button:

  1. Set up the Scheduled Transactions Details, defining which account the transaction will go to when the transaction is entered.
    1. Select the Repeats as daily, weekly etc.
    2. Schedule transaction
      • Repeats: In (n) Days/Months
        1. Set the Start date of the activity.
        2. Set the period in days or months depending on the selection.
        3. Changes to the period will reactivate the Next button. Once the transaction has been entered, the activity becomes inactive.
        4. Use the Next button to advance the date to the occurrence Date.
      • Repeats: Every (n) Days/Months
        1. Set the date of the Next Occurrence.
        2. Enter the number of times this will occur into Payments Left. No number means: repeat indefinitely.
  2. Define if user will be prompted to confirm entering transaction on the due date.
  3. Set up the Transaction Details section, similar to creating new transactions.

To create a scheduled transaction from an existing transaction, select and right-click on the transaction to bring up the contextual menu and select Create Scheduled Transaction….

Stocks and Shares

MMEX allows you to track Stocks and Shares. The total Stocks are added to your total financial worth.

Further details refer to Stocks, Shares and Share Dividend Management in MMEX

Asset Management

MMEX allows you to track fixed assets like cars, houses, land and others. Each asset can have its value appreciate by a certain rate per year, depreciate by a certain rate per year, or not change in value.

The total assets are added to your total financial worth.

Assets are accessed via the ToolsAssets or via the Navigator.

Assets are created in the Asset Management window.

Asset transactions are added to an asset and tied to an account.

Budgeting

Budgeting in MMEX

Reports

MMEX allows a variety of reports. Select the appropriate report under the Reports node in the Navigator. Some reports require some user input, some do not.

Financial Year Reports

These reports are generally used for tax purposes which do not necessarily start at the beginning of the calendar year. These reports cover:

  1. Previous Financial Year.
  2. Current Financial Year.

The start date can be changed by the user to start on any day of any month, within a 12 month period by using the menu ToolsSettings…General.

Transaction Reports

This allows the user to generate specific reports based on user selected criteria.

A Transaction Report is generally used to locate specific transactions made within Bank or Term type accounts. This report can also be used to display specific details for a particular account.

For a Transaction Report, the resulting list of transactions can be printed or saved as a HTML file.

If your transactions use Custom Fields, these can also be leveraged in filters and reports (depending on the version), or more extensively through SQL-based reports in the General Report Manager.

Transfer transactions in Transaction Reports

Since a transfer transaction is a withdrawal from one account and a deposit to another account, a transaction report done on multiple accounts loses the reference point for determining whether the transaction is a deposit or withdrawal.

When a transaction report is used for a specific account, it will generate a report that will match the account details. The reference point for transfers in known for this report, which will reflect in the report having correct balances displayed.

Cash flow Reports

This report projects the amount of funds available, based on future commitments.

The report will use the Scheduled Transactions for the various accounts, and reflect forward 10 years on a monthly basis. This becomes a prediction of the amount of money that may be available each month based on current payments.

General Report Manager

General Report Manager

Printing reports

MMEX supports printing of all reports that can be viewed.

Once you view a report, you can print the report using the FilePrint… menu.

Settings

You can modify some runtime behavior of MMEX by changing the options in the Settings dialog.

It is accessed from the menu with ToolsSettings… or from the tool bar.

The dialog window is divided in panels, which structure the settings and can be invoked by the symbols on the left side.

General Panel

Display Heading

User Name
This field is used as a title on the Dashboard, and on Reports.
Leaving this field blank, will remove the Dashboard and Report titles.

User Interface Language

Allows the selection of the user interface language, requires a restart of the program!

Date Format

The date format setting is used to control how dates are displayed.

Currency

Base Currency
The base currency setting is used to set the currency of the database. Individual accounts will use this as the default, but can be changed if different currencies as required.

Financial Year

Sets the start Day and Month for a Financial Year period, as opposed to a calendar year. This is used in Budgets and Reports.

View Panel

These settings control the appearance of the MMEX. It is subdivided in several sections:

View

Accounts Visible
This determines which accounts depending on their states are visible in the navigator.
Category delimiter
Determines how subcategories are delimited.
Toolbar edit
Opens the toolbar configuration dialog, see Toolbar configuration for details how to customize the toolbar
Navigator and account types edit
Opens the navigator configuration dialog, see Navigator configuration and custom account types for details
Show cash ledger for portfolios
Controls if the cash ledger is displayed or not for portfolio accounts
Do not use colors for future transactions
Disables the use of transaction specific colors for transaction, which have a date in the future.
Emphasize not reconciled transactions
All transactions are emphasized, which are not in the reconciled state This allows a faster overview.
Show Tooltips
Enables tooltips in all the controls.
Show money tips
Enables randomly selected money tips in the transaction view.

User Interface

Style template
Calls the theme manager to select a theme for MMEX.
Theme
Allows to change between light and dark themes.
HTML scale factor
This will set the font scaling used in the dashboard and reports.
Font size
This will set the font size used in the dashboard and reports.
Toolbar/Navigator/Others Icon Size
Fine tuning of the icon sizes used.

Dashboard Panel

These settings control the dashboard display.

Income vs. Expenses

Date range
Sets the date range used for the income vs. expense overview.

Miscellaneous

Ignore Future Transactions
If this checkbox is enabled, the account value corresponds with the value of the current day, future transactions are not included.
If this checkbox is disabled all transactions are included in the calculation of the account value.
Important:
This checkbox only controls the handling of future transactions on the dashboard, the display of future transactions in the account overviews is controlled by the corresponding checkbox in the transaction panel under Transaction/Budget

Transactions Panel

Contains all transaction related settings.

New Transaction

Changes the default settings for the New/Edit Transactions Dialog.

Transaction

Use Original date…
Activate the related setting to use the original transaction date, when pasting or duplicating a transaction in the account view.
Use Original state when Duplicating or Pasting Transactions
Per default the state of a duplicated or pasted transaction is set to the Default Status defined in the settings panel for new transactions. If this option is active the original state is kept (e.g. Reconciled)
Transaction Sound…
Activate to play a sound when a transaction is entered.

Transaction/Budget

These settings control the transaction display and budget handling.

Transaction Colors

Allows the definition of individual colors, which can mark transactions. The Default button resets the colors to original ones.

Attachments Panel

Define the location of the attachments folder.

Network Panel

WebApp

Set URL and GUID of your WebApp installation to allow data sync. Parameters can be found in WebApp Guide page.

Other Panel

Miscelleanous settings

Stocks

Stock Quote Web Page
This URL is used by the Refresh button on the Stock Investments page. This URL is also used by the New/Edit Stock dialog, to display the web page for the listed stock. The default is yahoo finance. Alternatively other sites can be used if necessary.

Assets

TBD.

Database

Sets the way backups of the MMEX database are performed
Backup database on start up
This copies the database to a new file with today’s date, when MMEX Starts.
The file will not be over written when MMEX starts up again. When there are more than "Max Files" backup files, the oldest file is deleted.
Backup database on exit
When MMEX shuts down, the existing database will be copied to a backup database file for that day when changes to the database have been detected. When changes are made on the same day, the existing backup is over written. When there are more than "Max Files" backup files, the oldest file is deleted.
Max Files
Maximum number of backup files to retain.
Days to retain deleted transactions
The number of days deleted transactions are retained and can be restored before they are finally deleted.

CSV

Delimiter
This is used as the delimiting character when parsing CSV files. This is useful to modify from the default , when dealing with currencies that use , to denote decimal points in amounts.

Filter

Enable date range filter per account or report
If deactivated (default), all accounts and reports use the same date range. If the date range is changed in one account or report the new range is also applied to all other accounts or reports. This allows a quick comparision of time periods between accounts and reports.
If activated, the selected date range for each account or report will be stored seperately for an individual view of the accounts or reports

Other customizations

Toolbar configuration

See Toolbar configuration how to change the appearence of the toolbar

Navigator configuration and custom account types

See Navigator configuration and custom account types how to change the appearence of the navigator and to create custom account types

Frequently Asked Questions

How can I contribute?

You can contribute by:

What’s the reason for the EX in the name of the software?

MMEX was originally developed as a personal finance software called Money Manager. It was written in .NET and was more of a learning exercise than serious software development. It grew far beyond the original design. The software was frozen and work began on a new version which had a similar user interface and features, but written in C++.

Usually Microsoft names their second version of their improved software APIs with an Ex extension as in doSomething() and doSomethingEx(). This convention was followed so an ‘Ex’ was appended.

Is the MMEX database structure documented somewhere?

The database structure is documented at https://github.com/moneymanagerex/database, the diagram is up-to-date for the current MMEX database version (v19). Clicking on it leads to the interactive version.

Is the .mmb format proprietary?

No, .mmb file is not proprietary.

MMEX uses SQLite databases to store user data. That means that the .mmb file is a regular SQLite database. SQLite is one of the smallest, free relational database systems around and there are tons of tools to open and access SQLite databases. SQLiteSpy, SQLite Browser , and wxSQLitePlus are such utilities. Once you open the database using these tools, you can do anything you want with the data.

Is my data safe?

Yes. Your data is completely safe.

The data is self contained on your PC, (or USB stick if you have made it portable). To further protect your data, encryption can now be added. This applies a password to your database file, and can only be opened by MMEX or any other software if you have the correct password.

Can MMEX run from a USB Key?

Yes.

MMEX is a portable application which means ability to run without installation, for example, from USB flash drive. If MMEX finds mmexini.db3 in its folder, it assumes portable mode. Copy MMEX’s files to USB Key and copy yours mmexini.db3 to MMEX’s folder on that drive.

To make MMEX portable:

How do I know MMEX is not trying to steal my sensitive financial information?

Generally, with any closed-source program, you have to depend upon the vendor’s word regarding safety of the data. But with MMEX being open-source, you can verify this claim yourself.

Even if you are not a C++ expert, you can rest assured that anyone can access the source code at any time and verify the legitimacy of MMEX’s intentions.

MMEX does connect to the internet only to send anonymous usage statistics or when checking for an update. Here is a sample of data that MMEX will send:

Version Operating System Language Country Resolution Start Time End Time
1.3.0 Portable Windows 8 (build 9200), 64-bit edition english United States 1366x768 2014-05-01 09:00:00 2014-05-01 09:01:30

How do I print account statements using MMEX?

To print a statement with transactions from any arbitrary set of criteria, use the Transaction Filter to select the transactions you want and then do a print from the FilePrint… menu.

The Transaction Filter is accessed from ReportsCash FlowTransactions in the Navigator.