Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IMP] accounting: update the analytic budgets page #11330

Open
wants to merge 1 commit into
base: 18.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ Configuration
Enable the :guilabel:`Analytic Accounting` feature by going to :menuselection:`Accounting -->
Configuration --> Settings --> Analytics`.

.. _accounting/analytic_accounting/analytic_accounts:

Analytic accounts
=================

Expand Down
185 changes: 115 additions & 70 deletions content/applications/finance/accounting/reporting/budget.rst
Original file line number Diff line number Diff line change
@@ -1,102 +1,147 @@
================
Analytic budgets
=======
Budgets
=======

:ref:`Analytic budgets <accounting/reporting/budgets/analytic-budgets>` track and forecast
specific activities, helping businesses make informed decisions about internal operations. In
contrast, :ref:`financial budgets <accounting/reporting/budgets/financial>`, are tied to the
general ledger and focus on the company’s overall economic position.

.. _accounting/reporting/budgets/analytic-budgets:

Analytic Budgets
================

Managing budgets is an essential part of running a business. Budgets help people become more
intentional with how money is spent and direct people to organize and prioritize their work to meet
financial goals. They allow the planning of a desired financial outcome and then measure the actual
performance against the plan. Odoo manages budgets using both **general** and **analytic accounts**.
Analytic budgets allow for allocating and tracking income and expenses in detail, breaking down
costs and revenues by specific projects, departments, or activities. Analytic budgets can be applied
across various departments or projects to measure profitability and performance. Odoo manages
analytic budgets using :doc:`analytic accounting <analytic_accounting>`.

.. _accounting/reporting/budgets/analytic-configuration:

Configuration
=============
-------------

Go to :menuselection:`Accounting --> Configuration --> Settings`, and enable
:guilabel:`Budget Management` in the :guilabel:`Analytics` section.

Go to :menuselection:`Accounting --> Configuration --> Settings --> Analytics section`, and enable
:guilabel:`Budget Management`.
.. _accounting/reporting/budgets/analytic-accounting:

Budgetary positions
Analytic accounting
-------------------

Budgetary positions are lists of accounts for which you want to keep budgets (typically expense or
income accounts).
Odoo structures budgets using :ref:`accounts <analytic_accounting/analytic_plans>` and
:ref:`accounts <accounting/analytic_accounting/analytic_accounts>`, which must be configured
*before* creating a budget.

.. _accounting/reporting/budgets/analytic-budget-set:

Set an analytic budget
----------------------

To define budgetary positions, go to :menuselection:`Accounting --> Configuration --> Management:
Budgetary Positions` and :guilabel:`New`. Add a :guilabel:`Name` to your budgetary position and
select the :guilabel:`Company` it applies to. Click :guilabel:`Add a line` to add one or more
accounts.
To create a new budget, go to :menuselection:`Accounting --> Analytic Budgets` and click
:guilabel:`New`.
Make sure the following fields are appropriately completed: :guilabel:`Budget Name`,
:guilabel:`Period`, and :guilabel:`Budget Type`.

Click :guilabel:`Add a line` in the :guilabel:`Budget Lines` tab to structure the budget according
to the analytic plans and accounts previously created.
While the analytic plans correspond to the column names, select the analytic accounts to define the
budget lines and set the amounts for each in the :guilabel:`Budgeted` column. Once all the budget
lines are settled, click :guilabel:`Open`.
If changes need to be done once the budget is in the :guilabel:`Open` status, there are two options:

- :guilabel:`Reset to Draft`: To overwrite the data, then reopen the budget.
- :guilabel:`Revise`: A new budget will be created. Once it is set to the :guilabel:`Open` status,
Odoo will add a :guilabel:`Rev` reference to the :guilabel:`Budget name`. The original budget has
then the :guilabel:`Revised` status.

.. _accounting/reporting/budgets/analytic-budget-check:

Check an analytic budget
------------------------

Once the budget is in the :guilabel:`Open` status, two additional columns are available:
:guilabel:`Committed` and :guilabel:`Achieved`. Their amounts are automatically calculated based on
the vendor bills/invoices and their related analytic distribution. They evolve when a new journal
entry linked to the analytic account is created. The :guilabel:`Achieved` amount reflects the
current result according to the expenses or income for the associated analytic account. In contrast,
the :guilabel:`Committed` amount displays what has already been purchased or sold, regardless of
whether it has been billed or invoiced.

.. note::
Each budgetary position can have any number of accounts from the chart of accounts, though it
must have at least one.
For budgets in the :guilabel:`Open` status, when a purchase order created with the associated
analytic distribution exceeds the amount budgeted, the related purchase order line turns red.

Use case
========
To reveal the :guilabel:`Theoretical` amount or percentage, use the :icon:`oi-settings-adjust`
(:guilabel:`settings adjust`) icon in the far right of the budget top row. The
:guilabel:`Theoretical` represents the amount of money that could theoretically have been spent or
should have been received based on the date.
To open the reporting view, click :guilabel:`Details` and filter the budget lines and columns of
the pivot table.

Let’s illustrate this with an example.
.. image:: budget/budget.png
:alt: open budget with committed, achieved and theoretical amounts

We just started a project with *Smith & Co*, and we would like to budget the income and expenses of
that project. We plan on having a revenue of 1000, and we don’t want to spend more than 700.
.. note::
Deletion of a budget is only allowed in the :guilabel:`Draft` and :guilabel:`Cancelled` stages.

First, we need to define what accounts relate to our project’s expenses. Go to
:menuselection:`Accounting --> Configuration --> Management: Budgetary positions`, and click
:guilabel:`New` to add a position. Add the accounts wherein expenses will be booked.
To view all the different budget lines directly from the :guilabel:`Budgets` view, select the
:guilabel:`Budget Name` and click :guilabel:`Budget Lines`.

.. image:: budget/smith-and-co-expenses.png
:align: center
:alt: display the Smith and Co expenses
.. _accounting/reporting/budgets/analytic-budget-generate:

Let's repeat the steps to create a budgetary position that reflects the revenue.
Generate periodical budgets
~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. image:: budget/smith-and-co-revenue.png
:align: center
:alt: display the Smith and Co revenue
The :guilabel:`Generate` option allows the creation of multiple budget periods. To do so, select the
budget and click :guilabel:`Generate` to open the :guilabel:`Generate Budget` window. Set the dates,
select the :guilabel:`Period` and the :guilabel:`Analytic Plans`, then click :guilabel:`Split`.

Analytical accounts
-------------------
.. image:: budget/generate-budgets.png
:alt: all the options to generate periodical budgets

Odoo needs to know which costs or expenses are relevant to a specified budget, as the above general
accounts may be used for different projects. Go to :menuselection:`Accounting --> Configuration -->
Analytic Accounting: Analytic Accounts` and click :guilabel:`New` to add a new **Analytic Account**
called *Smith & Co*.
.. _accounting/reporting/budgets/analytic-budget-reporting:

The :guilabel:`Plan` field has to be completed. Plans group multiple analytic accounts; they
distribute costs and benefits to analyze business performance. **Analytic Plans** can be created or
configured by going to :menuselection:`Accounting --> Configuration --> Analytic Accounting:
Analytic Plans`.
Reporting
---------

When creating a new customer invoice and/or vendor bill, you have to refer to this analytic account.
To perform various reporting actions, go to :menuselection:`Accounting --> Reporting -->
Budget Report`, then:

.. image:: budget/analytic-accounts.png
:align: center
:alt: add analytic accounts in a new invoice or bill.
- Track, analyze, and compare budget data.
- Filter and group Data using the :icon:`fa-plus-square` (:guilabel:`plus-square`) or
:icon:`fa-minus-square` :guilabel:`(minus-square)` icon.
- Drill down into the report to see more detail on the actual amounts and transactions.
- Export for further analysis or reporting needs.

Define the budget
-----------------
.. _accounting/reporting/budgets/financial:

Let’s set our targets. We specified that we expect to gain 1000 with this project, and we would like
not to spend more than 700. Go to :menuselection:`Accounting --> Management: Budgets` and click
:guilabel:`New` to create a new budget for *Smith & Co* project.
Financial budgets
=================

First, fill in your :guilabel:`Budget Name`. Then, select the :guilabel:`Period` wherein the budget
is applicable. Next, add the :guilabel:`Budgetary Position` you want to track, define the related
:guilabel:`Analytic Account`, and add the :guilabel:`Planned Amount`.
Financial budgets, available in the :guilabel:`Profit and Loss` report, are structured around
specific accounts and transactions for official financial reporting and compliance purposes.

.. image:: budget/define-the-budget.png
:align: center
:alt: budget lines display
.. _accounting/reporting/budgets/financial-budget-set:

.. Note::
When recording a planned amount related to expenses, the amount must be negative.
Set a financial budget
----------------------

Check your budget
-----------------
To create a new financial budget, follow these steps:

Go to :menuselection:`Accounting --> Management: Budgets` and find the *Smith & Co* Project to see
how it evolves according to the expenses or income for the related analytic account.
#. Go to :menuselection:`Accounting --> Reporting --> Profit and Loss`, and open the
:ref:`Profit and Loss <accounting/reporting/profit-and-loss>` report.
#. Use the :icon:`fa-calendar` :guilabel:`(calendar)` icon to use the date selector and choose a
period.
#. Click the :icon:`fa-bar-chart` :guilabel:`Budget` icon and name the budget. A new column labeled
with the budget name appears next to the :guilabel:`Balance` column.
#. Assign amounts to each account that needs analysis.
#. A new :guilabel:`%` column appears to the right of the new budget column, indicating the current
status.

The :guilabel:`Practical Amount` evolves when a new journal entry related to your analytic account
and an account from your budgetary position is created.
Different budgets can be created using these steps for comparison purposes.

The :guilabel:`Theoretical Amount` represents the amount of money you theoretically could have spent
or should have received based on the date. For example, suppose your budget is 1200 for 12 months
(January to December), and today is 31 of January. In that case, the theoretical amount will be 100
since this is the actual amount that could have been made.
.. note::
The date selector enables the division of periods and navigation between periods, automatically
updating the amounts accordingly.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.