Balance Report

Balance Report produces sum of selected accounts, and total of those account sums.

Tackler’s Balance family reports produce more information than what you find in other PTA tools.

The default Balance and Balance Group calculate sums for all accounts which have postings, but also for all children (aka account tree balance). In some cases this information of children balances is not needed, and Tackler supports two different balance family reports, Flat and Tree Balance Group Reports.

Flat Balance

With flat Balance Report the balance is reported only for those accounts which have had postings. This is similar report what you will find in other PTA tools.

report.balance.type = "flat"
Balance Report
--------------
                12.00   Expenses:Food:FastFood
                 2.50   Expenses:Sweets:Candy
                 3.00   Expenses:Sweets:Ice·Cream
=====================
                17.50

This report type is selected by configuration setting report.balance.type = "flat" in tackler’s configuration file tackler.toml.

Tree Balance

With tree Balance Report the first column is postings for that account and second is cumulative sum of that account and all children.

report.balance.type = "tree"
Balance Report
--------------
                 0.00    17.50  Expenses
                 0.00    12.00  Expenses:Food
                12.00    12.00  Expenses:Food:FastFood
                 0.00     5.50  Expenses:Sweets
                 2.50     2.50  Expenses:Sweets:Candy
                 3.00     3.00  Expenses:Sweets:Ice·Cream
=====================
                17.50

This report type is selected by configuration setting report.balance.type = "tree" in tackler’s configuration file tackler.toml.

Format

First (the leftmost) sum is sum of postings which are directly debiting or crediting that account (account tree node). If there are no such transactions, then this first sum is zero.

Second sum is recursive balance for that account tree (account and all its sub-accounts).

The sum reported under line is balance delta, e.g. value difference of reported accounts.

Balance delta is based and calculated only by values reported on the first column.

Balance report configuration

See tackler.toml and report.balance.* for full information of balance report configuration options.

The flat and tree balances can be selected with report.balance.type = "flat" or report.balance.type = "tree" configuration settings.

Account selectors

By default all accounts are included into balance report, but that’s not very interesting balance report because balance over all accounts will be zero always.

Balance report accounts can be selected by Accounts Selectors. This can be done by cli option --accounts, global report.accounts configuration option or by using report specific report.balance.accounts setting

Balance delta is based and calculated only by values reported on the first column. This means that if sub-account is not listed by balance report, it will not be part of balance calculations.

If Accounts Selector is used balance report, please be make sure that all intended accounts and especially sub-accounts are listed for report.

For example: select only top-level "Assets" and all its sub-accounts: "Assets(:.*)?"

Compare following two reports:

--accounts "e1(:.*)?"
BALANCE
-------
                 1.00    6.00  e1
                 2.00    5.00  e1:e2
                 3.00    3.00  e1:e2:e3
=====================
                 6.00
--accounts "e1"
BALANCE
-------
                 1.00    6.00  e1
=====================
                 1.00

These two reports demonstrates difference between balance delta and recursive balance sum for specific account tree.

Example report

Below are links to example balance reports with full auditing metadata.

Example output of balance report

report.balance.type = "tree"
BALANCE
-------
                 1.00    333.00  a
                 0.00    332.00  a:a1
                 0.00    332.00  a:a1:a2
                27.40    327.40  a:a1:a2:b
               300.00    300.00  a:a1:a2:b:c
                 4.60      4.60  a:a1:a2:c
                 0.00   -333.00  e
              -322.00   -322.00  e:e0101
                -2.00     -2.00  e:e0102
                -9.00     -9.00  e:e0103
=====================
                 0.00

Example report with commodities

Below are example balance reports with mixed commodities in flat and tree form:

report.balance.type = "flat"
BALANCE
-------
                 3.00        ACME  Assets:Stocks
              -359.75        EUR   Assets:Cash
==========================
                 3.00 ACME
              -359.75 EUR

And same report in tree form:

report.balance.type = "tree"
BALANCE
-------
                 0.00           3.00 ACME  Assets
                 3.00           3.00 ACME  Assets:Stocks
                 0.00        -359.75 EUR   Assets
              -359.75        -359.75 EUR   Assets:Cash
==========================
                 3.00 ACME
              -359.75 EUR