Plan budgets are envelopes
With account_budget_analytic_plan, a budget line can target an
analytic plan instead of an analytic account, for instance when the
revenue expected from a business line is known before its projects are.
Such a budget line is an envelope: the budget lines on the analytic
accounts and on the subplans below it, in the same budget and budgetary
position, identify part of it instead of adding up. The rest of the
envelope shows as a Pending to identify item of the plan.
So the budget of a plan is its envelope (or the sum of its content when
it has none) and nothing is counted twice. As projects get sold and
budgeted, their budget moves from the pending item to their account and
the total of the plan does not change. When the identified budget
exceeds the envelope, the pending item becomes negative.
Budget and actual amounts
- The budget lines are spread over the months of their period in
proportion to their days, as their theoretical amount.
- The actual amounts are the analytic lines counted by the analytic
reports (see the personnel cost source of
account_analytic_dashboard), classified by the budgetary positions
of each budget: an analytic line belongs to the position holding its
financial account, or to no position.
- Revenue and expenses follow the sign of the budget lines and of the
analytic lines.
Within a budget, the budgetary positions cannot share financial
accounts, or the actual amounts would be counted twice. Different
budgets can use different positions.
Reports
- Accounting > Reporting > Budget vs Actual: a pivot with the plan
hierarchy down to the budget items in rows, and the budget, actual and
deviation of each budget in columns.
- Dashboards > Budget: key figures against the budget, budget and
actual by month, by line (first level of the project plan, with the
revenue pending to identify) and by budgetary position. Filter it by
budget: the figures of several budgets add up, and the dashboard warns
about it.
Important
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
More details on development status
Table of contents
- Define the budgetary positions, for instance one for the sales
accounts and one for every group of expense accounts.
- Create a budget and add its lines: on an analytic plan for the
envelopes of the business lines, and on analytic accounts for the
projects already known. Revenue is positive and expenses are
negative.
- As new projects are known, add budget lines on their analytic
accounts: they are taken from the envelope of their plan.
- Review Accounting > Reporting > Budget vs Actual or the
Budget dashboard, filtered by budget.
The dashboard is generated by tools/build_dashboard.py: to change
its layout, edit the script and run it again to update
data/files/budget_dashboard.json.
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
feedback.
Do not contact contributors directly about support or help with technical issues.
Maintainers
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
Current maintainer:

This module is part of the OCA/account-budgeting project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.