Financial Planning based on the double-entry method

In this article

By adding the Budget table to your accounting, you can set up a comprehensive and professional financial planning.

Financial Planning based on the double-entry method

The planning system of Banana Accounting is based on the same double-entry method used for accounting.

It is planned by always indicating an account of origin (credit) and one of destination (debit). This allows for a precise vision of the capital flows and offers the possibility to have a comprehensive vision which includes:

  • Budget forecasts, therefore relating to the financial situation, liquidity, assets, third party and own means.
  • Income statement forecast: revenues, costs and operating result.

Plan Execute Control

The planning of Banana Accounting is an integral part of the Plan-Execute-Control.
This offers a constant and dynamic control of the financial situation and evolution.

General scheme planning-executing-controlling

Planning and accounting in a single file

The same file contains both accounting and planning data. You can get started with a file prepared to keep the accounting and then add the schedule later, or you can start with a file to keep the planning and then also manage the accounting.

Common elements

  • Basic accounting data
    Header, currency, accounting period, address, other parameters.
  • Accounts and Categories table
    Where to set up the Chart of Accounts with accounts and groups total.
    • Opening balances (Opening column)
      They are inserted in the Accounts table and are used as the initial situation for both accounting (current values) and forecasts.
    • Annual Budget (Quote column)
      • With the Budget table
        The Budget column of the Chart of Accounts will be protected and the program indicates the budget amounts, calculated on the basis of the contents of the Budget table, referring to the accounting period.
      • If there is no Budget table
        You enter the budget data manually.
        When forecasting, the program generates the monthly value, dividing the annual value by the number of months of the accounting period.
  • The other tables
    • VAT Codes Table
    • Exchange rate table

Accounting data (past and present)

  • The Transactions table
    Where past (historical) movements are entered.
    The Registration table is always present in the accounting file. If you don't use it, you can hide it
  • Current value (accounting, past and present)
    This is the balance or movement of the period of an account or group.
    In the reports, you can display the column of the Current value.
    These are the values ​​calculated on the basis of the accounting data, calculated taking into account the
    • Opening balances (Accounts table).
    • The movements of the Transaction table
  • Account card (historical)
    These are the movements of an account or group prepared on the basis of the initial balances plus Transactions.

The Budget data

They are those used to make forecasts, budgets and schedules.
The term "Budget" is always used in the program for future data.

  • The Budget table
    Future budgeted transactions are inserted.
    The method is the same as the one used in the Transactions table, there are the same columns, plus other specifications for planning.
    Movements related to the future, included in the Budget table
    • Static values ​​(as in the Transactions table).
    • They use calculation formulas, which the program solves when calculating the forecast.
    • Repetitive movements, which the program uses to automatically generate forecasts.
  • The Budget value (future)
    The forecasted value. In the reports you can display the column of the Estimate value, calculated taking into account
    • Opening balances (Accounts table)
    • Transactions in the Budget table (if any).
    • If the Budget table does not exist, using the value contained in the Budget column of the Accounts or Categories table.
  • Budget Account card (future)
    These are the transactions of an account or group prepared on the basis of the opening balances and budget transactions.

The Difference Budget values

Difference between the budget and current values (actual, final).
In the reports, there is a column for comparison, which displays the difference.

Mixed projection values (from a certain date)

The value at a certain future date calculated as follows:

  • On the basis of current values and up to the indicated start date .
  • Starting from the date indicated on the budget values.

Mixed projection values are only available through scripts and the web server.

Types of accounting

The accounting method chosen for accounting is used to insert budget transactions or movements.

  • Income and Expense (Cash Manager and Income and Expense accounting)
  • Doubl- entry (Double-entry and multi-currency accounting).

For budget calculations, the program internally always uses the double-entry based engine. The results and reporting that are obtained are therefore very similar.

Accounting, planning and forecasting period

Accounting or forecasting is always related to a period. The following periods are differentiated:

  • Accounting period
    Is the one defined in the file properties, with start and end date.
  • Budget period
    It is the period for which the planning data is entered..
  • Forecast period
    It is the period used by the program to calculate the forecast. It is indicated when a print is requested.

For more information, see the Forecasting period.

Breakdown by period

With the double-entry method, each operation has its own date in the planning. When printing, the user chooses whether to have a forecast by month, quarter, semester or year, and the program will calculate everything automatically. Contrary to spreadsheets, there is no need, anymore to decide at the beginning whether to make forecasts by month, quarter or year and to divide the amounts manually in the columns.

Automatic projections

Thanks to the possibility of indicating that certain operations are repeated in the future, the program has the necessary elements to automatically prepare forecasts for future years. You can thus know how revenues, costs, liquidity and other assets and liabilities will evolve in the weeks, months, quarters and years to come

Details with all the operations

With the double-entry method, the forecasts are prepared by inserting transactions. The program is able to present the account card with the detailed movements for each account. This view is very useful for investigating elements and represents another advantage of liquidity-oriented planning, which is difficult to achieve with planning prepared with spreadsheets.

The calculation journal

The basis for all accounting and budget processing is the calculation journal. To prepare Financial Statements, Income Statement, Account Cards, VAT Reports, the program creates an internal data structure which is called a calculation journal. Movements are accessible through the API accounting with Journal function

The logic for creating the calculation journal works as follows:

  • It is created starting from the data entered by the user.
  • For each financial movement, including also the opening balances, there is a row, where the main elements are:
    • Origin
      Indicates whether the transaction relates to accounting (current) or planning (budget).
    • Operation type
      Opening balance, movement, carry forward, invoice compensation.
    • Date (the relevant date)
    • Description
    • Account
    • Account Type
      Indicates whether it is a normal account or a cost or profit center.
    • Amount (accounting base currency)
      Positive values ​​indicate an increase (debit), negative values ​​indicate a decrease (credit)
    • Amount account currency
    • Other columns
      • All those that are present in the Transactions table.
      • Several others that are used for calculations.

The calculation log is emptied every time recalculation is performed and then the following are added:

  • The lines of current transactions (relating to actual accounting).
  • The lines of the budget movements.

The rows of current values ​​(actual)

The rows for current values ​​are added to the temporary journal starting from:

  • Initial balances contained in the Accounts table
    For each account with a balance, one row is created.
    • Date is the date of the start of accounting.
    • Account is the account.
    • The amount is the opening balance.
  • Accounting movements from the transactions table.
    If the movement has multiple accounts, debit account, credit account, VAT account, cost center, a row is generated for each account with the relative amount in positive or negative.

The lines of the budget values

The rows for the budget values ​​are added to the temporary journal starting from:

  • Initial balances contained in the Accounts table
    As with accounting values, a budget line is created for each account with a balance.
  • Planning movements (with the Budget table)
    As for accounting, for each movement on the account, rows are created based on the Budget table.
    • Static ones, with all the values ​​set.
    • Repeated movements
      • For the entire projection period defined, based on the repetition code, the program creates duplicates of the budget lines and sets the date.
      • The program generates repeated rows based on the contents of the Start Date, End Date and Repetition columns
      • If the projection period is the calendar year and in January there is the registration of the rent with monthly repetition, the program creates duplicates for the following 11 months.
      • If the registration is on January 31, for the months that do not have 31 days, the day will be the last of the month.
      • If the first registration is on March 28 and the repetition code is indicated as the end of the month, in the following months the day will become the last of the month.
    • As for accounting entries, if there are multiple accounts on the budget row, one row is generated for each account.
  • Movements starting from the annual Budget (if there is no Budget table)
    If there is no Budget table, the budget rows are created based on the content of the Budget column of the Accounts and Categories table:
    • The number of months It is calculated how according to the accounting period.
    • One row is created for each month.
    • The amount contained in the Budget column is divided by the number of months.
    • If there is a rounding difference, an additional row is created for the final month.

After creation, the rows are sorted by ascending order.

Amount column calculation

Once the calculation journal has been created, the contents of the amount column of all the budget rows which contain a formula or a quantity or unit price are recalculated.

Resolution of formulas in Javascript:

  • Javascript interpreter creation
    Every time the calculation journal is created, an instance of a Javascript interpreter, specific for the resolution of the Budget formulas, is also created
  • Javascript interpreter initialization
    The Javascript interpreter is initialized by running scripts.
    • The default Banana Accounting scripts.
    • The content of the _budget.js file possibly present in the Documents table.
      This way the user can initialize variables or create his own calculation functions.
  • Resolution of formulas
    • The formulas contained in the rows of the temporary journal are solved one after the other in the progressive sequence of date.
    • The state of the Javascript interpreter is maintained after each operation, therefore the formula can refer to variables defined in a row with a previous date.
    • The formulas contained in the repetition lines are also executed by order of date, so the result varies according to when it is performed.

The calculation sequence is as follows

  • The budget lines are processed by order of date (if they have the same date in the order of entry).
  • The transaction amount is calculated, with this priority:
    • If there is a formula by solving it
    • If the quantity and the price are present, by multiplying them
    • Otherwise the value contained in the amount column is kept.
  • For multi-currency accounting, the currency amount formula is first performed and then the base currency amount formula.
    If there is no formula for amount in base currency, the program reverts to the historical exchange rate and calculates the equivalent value in base currency.
  • For VAT accounting, VAT is recalculated based on the transaction amount.
    • Previously processed rows are for calculations of subsequent rows.
    • If you use a formula for calculating the balance for the whole year in a February transaction, you will only have the balance until February.

Calculation column Total Budget table

The Total column is calculated automatically and contains the total amount of the budget for the accounting period indicated in the file properties (start and end date of accounting).

  • If it is a single transaction, the Total is equal to the amount.
  • If it is a recurring operation, the Total is the sum of the amounts of all repetitions that fall within the accounting period.
  • The Total column is empty if the date is preceding or goes beyond the accounting period.

Calculation of the current value, forecast and comparison

Once the calculation journal is generated, it is used to calculate the Balance Sheet and all the other processing necessary for accounting.

For the periods defined in the report, the program calculates:

  • The current value (based on Transactions).
  • The Budget values.

The following values ​​are calculated for current and budget data:

  • Balance at the beginning of the period.
  • Debit movement
  • Credit movement
  • Movement (Total)
  • Balance at the end of the period (Start + Movements)

The comparisons between Current and Budget are also calculated:

  • Absolute Difference (Budget - Current).
  • Percentage change

Automatic and manual recalculation

The budget values ​​are automatically recalculated:

  • If there is a change in the Budget table.
  • If the accounting start or end date is changed.
  • If the Accounts table is modified.
  • When requesting a report and the Transactions table has been changed.

After each recalculation the program automatically updates:

  • The Budget column in the Accounts and Categories table.
  • The Total column in the Budget table.

If you modify the VAT table or the _budget.js file or other Javascript files that are used in the calculation of the formulas, you must perform a recalculation manually (Command check and control accounting).

The calculation speed depends on:

  • Number of accounts and groups in the Accounts and Categories table
  • Number of rows inserted in the Budget table.
  • Number of rows with repetition.
  • Presence of formulas.
  • Schedule period set. The longer the period, the greater the number of repeat lines.

Manual recalculation

If the calculation takes a long time, it may prove difficult to enter data in the Budget table. You can switch to manual recalculation by checking the Recalculate totals manually option in the File Properties (from the File menu) Options tab.

To have the updated values, you must therefore use the Recalculate Totals command.


This documentation is outdated

The most complete and up-to-date documentation is the one of Banana Accounting Plus: Try it now

Share this article: Twitter | Facebook | LinkedIn | Email