Liquidity management with the Cash Flow report

Starting from Banana+ Dev Channel 10.1.25, a new command Report > Cash Flow Report has been introduced, offering a detailed analysis of liquidity changes recorded in accounting.

This tool allows you to monitor receipts and payments, including future ones, providing valuable insights into your company's financial strength and operational efficiency.

  • The logic behind this function is based on comparing the balances of liquidity accounts and the movements of counterpart accounts, which usually represent revenues or expenses.
  • By understanding how the movements in liquidity accounts correspond to net cash flows for each period, you can gain an accurate view of your financial situation at any time. This comparison provides valuable information for effective financial planning and informed decision-making, helping you maintain balanced cash flow and achieve your financial goals.
  • Thanks to the forecast functionality, you can analyze the evolution of liquidity over the year, using data from existing entries and budget items.

Prerequisites and important notes

Currently the Cash Flow report functionality 

  • Is available in the Dev-Channel version, so please install the latest version of Banana Accounting+ Dev Channel.
  • This extension works only with the Advanced Plan, you can request a 1 month promo code from our support service.
  • The extension is currently in Beta Test, please check everything and report any problem.

 

Setting up the report

The Cash Flow Report dialog window allows you to customize your liquidity reports by selecting specific liquidity accounts, periods, breakdowns, and other settings to tailor the report to your needs. With the ability to save different configurations, you can create and store multiple customized reports.

In the Banana menu, select Report > Cash Flow Report

Cash report dialog

Basic tab

  • Liquidity account or group
    • Selection: type the name or ID of the liquidity account or group for which you want to generate the report, then click the Add button.
    • When selecting a group (indicated by Gr=), all accounts belonging to that group will be included in the report as liquidity accounts. This is useful for analyzing multiple accounts simultaneously without adding them individually.
    • To remove selected accounts or groups, click the "X" button next to the account name.
  • Forecast checkbox
    • Available only for accounting files that contain the Budget table.
    • Select this checkbox to include forecasts in the cash flow report, allowing you to project future liquidity changes based on budget entries.
    • Enter the start date from which forecast data should be calculated. This date is inclusive, meaning that from the specified day onward, the report will consider budget data (from the budget table). Data before this date will instead use actual data (from the Transactions table). This feature allows for seamless integration of historical actual data with future projections in the Cash Flow analysis.

Other sections of the dialog

Explanations for the other sections are available on the following pages:

  • Period
    Defines the reporting period.
  • Subdivision
    Allows you to generate a report divided into multiple periods.
    Segmentation by segment is currently not implemented.
  • Customization
    Allows you to save report settings. For example, you can create and save separate configurations for:
    • Cash Flow Report: including liquidity accounts.
    • Working Capital Report: including working capital accounts.

Report results

After setting up the accounts and other options in the Cash Flow Report dialog and confirming your selection, a new table showing the calculated results is created.

Cash report output

Rows

Vertical structure of the report

  • Each liquidity account
    • Total of all liquidity accounts (cash accounts)
  • Counterpart accounts
    • Total of counterpart accounts (cash flow total changes)
  • Difference (displayed only if the total of liquidity accounts differs from the total of counterpart accounts)

Some commands to filter the rows displayed in the table

  • To display only the rows with an amount in the Current view
    |!Movement_?_C:xml!<> |!Balance_?_C:xml!<>
  • To display only the rows with an amount in the Budget view
    |!Movement_?_B:xml!<> |!Balance_?_B:xml!<> 

Columns

The columns with amounts

  • Opening balance (only for liquidity accounts)
    The initial amount of the liquidity account for the period.
  • Closing balance (only for liquidity accounts)
    The final amount of the liquidity account at the end of the period.
  • Movements for the period
    • Inflows (hidden column)
      Indicates incoming money
    • Outflows (hidden column)
      Indicates outgoing money
    • Net Cash Flow
      • Liquidity accounts
        Calculated as Inflows minus Outflows.
        Represents the total of all revenues (positive amounts) and expenses (negative amounts) within the account for the considered period.
      • Counterpart accounts
        The origin (positive amounts) and the destination (negative amounts).

Views

The report has three views

  • Current
    Uses the opening balances and the actual transaction data.
  • Budget
    Uses the opening balances and the data from the Budget table.
  • Forecast
    • Uses the opening balance and the data from the transactions up to the day before the forecast start date.
    • Uses the budget entries starting from the forecast start date (inclusive).

Forecast

The forecast combines current accounting data (Transactions table) with budget data (Budget table).

Example:

  • In the Transactions table, movements are recorded up to the end of September.
  • In the Budget table, the budget for the months of the year is recorded.
  • If you set the forecast start date to October 1st, the program will calculate the forecast including:
    • Actual opening balance.
    • Transactions from January through the end of September.
    • Budget data starting from October 1st.
  • The liquidity forecast will therefore use the actual liquidity account balances and calculate the forecast through the end of the year based on the budget data.
  • The forecast can be particularly useful when combined with a monthly breakdown.
    If you use a monthly breakdown, you can view the projected cash flow for October, November, and December, starting from the actual data up to September.

Example of a report for the period 01.01.2025 - 30.06.2025

  • Forecast start date: 01.04.2025
  • 1st quarter amounts are based on actual transactions.
  • 2nd quarter amounts are based on forecasts:
    • The opening balance of liquidity accounts is based on actual data.
    • The net cash flow is calculated based on budget entries.
    • The final balance (projection) is the sum of current and forecast data (transactions + budget).

Cash report output

Report logic

The report will show:

  • For liquidity accounts:
    the total of all inflows and outflows for the period.
  • For other accounts:
    the total of the entries that affected the liquidity accounts.

How the report works

  • The user defines which accounts are liquidity accounts.
  • The opening balance of the liquidity accounts is used as the starting value.
  • For all entries in the Transactions and Budget tables:
    • The program only considers entries involving a liquidity account.
    • The amount recorded in the liquidity accounts is analyzed individually for each account.
    • The amount recorded in the counterpart accounts is also analyzed separately for each account.

Definition of counterpart account

A counterpart account is an account that does not belong to the list of liquidity accounts.

  • For single-entry (debit/credit) records:
    the counterpart account is the one used in opposition to the liquidity account.
  • For entries with multiple rows and different accounts:
    The position of the row including the liquidity account does not affect the decision to include or not the entry in the report.
    • The first liquidity account (whether debit or credit) is considered the main liquidity account.
    • All other accounts used are considered counterpart accounts.

Logic for grouping entries

In the Transactions table, accounting movements are listed sequentially, without the possibility to manually define a start and end for each entry. Therefore, the program automatically determines when an entry starts and ends, as well as which accounts are part of it. This logic directly impacts the correct assignment of the counterpart to liquidity accounts.

Understanding the grouping mechanism of entries in Banana is essential for achieving an accurate interpretation and reducing any discrepancies reported in the cash flow report.

Managing differences

When the program cannot determine the counterpart in an entry with multiple rows, a difference is reported. This warning does not necessarily imply an accounting error but rather indicates the inability to identify the exact counterpart.

In these cases, you can help the program by specifying the liquidity account in square brackets on the affected row. This intervention:

  • Acts only as a comment for the cash flow calculation.
  • Does not modify the accounting result.

Errors and differences in entries

The inflows and outflows in liquidity accounts must always be associated with:

  • a source account (for inflows, from where the money comes)
  • a destination account (for outflows, where the money was transferred to).

For each entry (whether single or spread over multiple rows), the system reports an error when the total amounts recorded in the liquidity accounts do not match the total amounts assigned to the counterpart accounts.

Differences and errors can therefore arise from:

  • Partial or missing counterpart assignments.
  • Amount errors between liquidity movements and their counterparts.

Practical examples

Below are some examples of accounting entries split over multiple rows, involving the liquidity accounts 1020 Bank and 1000 Cash.
Although these entries are accounting-wise correct, they can generate ambiguities in cash flow calculation, highlighting a possible discrepancy between the liquidity balance and the total of the counterpart movements.

  • Date change

    • Example: entry over multiple rows with different dates. Report of a 360.00 CHF difference at row 1.
    DateDocInvoiceDescriptionDebitCreditAmountBalance
    13.01.2025  Various purchases 1020360.00-360.00
    14.01.2025  Purchase on 14.014000 30.00-330.00
    15.01.2025  Purchase on 15.014000 330.00 
    • Correction: indicate the liquidity account in square brackets in the second and third rows.

      DateDocInvoiceDescriptionDebitCreditAmountBalance
      13.01.2025  Various purchases 1020360.00-360.00
      14.01.2025  Purchase on 14.014000[1020]30.00-330.00
      15.01.2025  Purchase on 15.014000[1020]330.00 
  • Change in invoice number (Invoice column)

    • Example: entry over multiple rows with different invoice numbers and an empty Doc column. Report of an 8,000.00 CHF difference at row 1.
    DateDocInvoiceDescriptionDebitCreditAmountBalance
    18.01.2025  Customer invoice collection1020 8,000.008,000.00
    18.01.2025 4545Customer invoice collection 30003,000.005,000.00
    18.01.2025 4546Customer invoice collection 30005,000.00 
    • Correction: indicate the liquidity account in square brackets in the second and third rows.

      DateDocInvoiceDescriptionDebitCreditAmountBalance
      18.01.2025  Customer invoice collection1020 8,000.008,000.00
      18.01.2025 4545Customer invoice collection[1020]30003,000.005,000.00
      18.01.2025 4546Customer invoice collection[1020]30005,000.00