Analytic cost control¶
Analytic Cost Control (account_analytic_cost_control) adds plan-versus-actual cost control on top
of analytic accounts: a cost plan per analytic account, the committed
and actual costs, the revenue, and the margin. A typical use is the follow-up of work numbers
(job numbers), but it works with any analytic plan: projects, cost centers, etc.
The module adds no field to the documents. Customer invoices, vendor bills, purchase and sales order lines, timesheets, expenses, and stock valuation are booked to an analytic account through the standard analytic distribution of their lines. The module then compares these booked items with the cost plan.
Note
The module depends only on Accounting. The Contract Value of the summary is only available if Sales is installed, and the Committed column only if Purchase is installed.
Activate the feature¶
Go to , and, in the Analytic Cost Control section, enable Analytic Cost Control. Then, click Save.
The menus, the summary, and the cost plan are only displayed if analytic accounting is enabled. Go to , and, in the Analytics section, enable Analytic Accounting. Then, click Save.
Configure an analytic plan¶
The module does not create any analytic plan when it is installed. Choose the plans to follow up: either enable the cost control on an existing plan (e.g., Projects), or create a new plan.
Go to , open a plan, and set:
Cost Control: the analytic accounts of this plan get the cost plan, the summary, and the plan / actual report.
Code Sequence (optional, independent of Cost Control): select a sequence. The new analytic accounts of this plan that have no Reference get their reference from this sequence. For example, with the prefix
WN/%(year)s/, the first work number of 2026 isWN/2026/00001.
Important
Both options can only be set on a root analytic plan, not on a sub-plan. Otherwise, the error Cost control and the code sequence can only be set on a root analytic plan. is displayed.
Tip
To follow up work numbers, create an analytic plan named Work Numbers, tick
Cost Control, and create a sequence with the prefix WN/%(year)s/ and a padding of
5 in Code Sequence. Projects carry the analytic accounts of all the plans, so the
timesheets of a project that is linked to a work number are booked to it automatically.
How the analytic items are classified¶
Every analytic item is classified when it is booked. The classification is stored and is used in the summary, the lists, and the report.
Revenue or cost
An item is revenue if its financial account is an income account. An item without a financial account is revenue if its amount is positive and it is not a timesheet. Any other item is a cost.
Cost category
A cost is either Labour, Material, or Other Costs. The category is the first one that applies in this order:
the Cost Category of the financial account (, in the account form; the field is not displayed for income and balance sheet accounts);
the Cost Category of the product category (, or the same menu of Invoicing, in the Cost Control group); sub-categories inherit it;
the product type: a service is Labour, a goods product is Material;
a timesheet line is Labour;
anything else is Other Costs.
Own or external
A cost is External if it comes from a vendor bill (including receipts), and Own for everything else: timesheets, stock valuation, payroll, and miscellaneous entries.
Note
If the Cost Category of a parent product category is changed, the items that are already booked are not recomputed. Changing it on the financial account or on the product’s own category does recompute them.
The analytic account form¶
The following elements are only displayed on the analytic accounts of a plan with Cost Control, and only to the users of the Analytic Accounting group. To open an account, go to , or .
The form has the new fields Responsible Users and Original Plan Saved On (read-only), and its chatter also supports activities.
Cost plan¶
The Cost Plan tab contains editable lines with the following columns, and the totals at the bottom:
Cost Category: Labour, Material, or Other Costs.
Own / External.
Description.
Original Plan: read-only, set by the Save as Original Plan button.
Current Plan: the amount that is currently planned.
The Notes tab contains free rich-text notes.
When the quotation is accepted, click Save as Original Plan and confirm the message The current cost plan overwrites the original plan. Continue? The Current Plan of every cost plan line is copied to its Original Plan, the date is recorded in Original Plan Saved On, and a message is posted in the chatter. From then on, the Current Plan can be adjusted while the Original Plan keeps the figures of the quotation. If the account has no cost plan lines, an error is displayed.
The Plan / Actual smart button opens the plan / actual analysis filtered on the account and grouped by cost category and by own / external.
Summary¶
The summary at the top of the form shows these indicators:
Indicator |
Meaning |
|---|---|
Contract Value |
The untaxed amount of the confirmed sales order lines distributed to this account, in proportion to the distribution percentage. Only displayed if Sales is installed. |
Invoiced Revenue |
The revenue items booked to the account. |
Actual Cost |
The cost items booked to the account. |
Margin |
The invoiced revenue minus the actual cost, with the margin as a percentage of the revenue. |
Planned Margin |
The contract value minus the current plan. Only displayed if there is a contract value. |
Below the indicators, a table has one row per Labour, Material, and Other Costs, and a Total row. Its columns are:
Column |
Content |
|---|---|
Original Plan |
The plan At quotation, with the date on which it was saved. |
Current Plan |
The total, and its own / external split. |
Committed |
The Open purchase orders: the part not yet billed of the confirmed purchase order lines distributed to this account, in proportion to the distribution percentage. The category comes from the product. Only displayed if Purchase is installed. |
Actual Cost |
The total, and its own / external split. |
Completion |
The actual cost divided by the plan, as a total and as an own / external split. It is green up to 90%, orange from 90% to 100%, and red above 100%. A dash is displayed if there is no plan. |
Click an amount to see the records behind it: the actual amounts open the analytic items (filtered by category and by own / external), Invoiced Revenue opens the revenue items, Committed opens the purchase orders, and Contract Value opens the sales orders.
Note
The amounts are displayed in the currency of the company of the analytic account. Amounts in other currencies are converted at today’s rate.
Cost control list¶
Go to to list the analytic accounts of the plans with Cost Control, with the columns Reference, Name, Plan, Customer, Responsible Users, Activities, Cost, Revenue, and Margin. The I’m Responsible filter keeps the accounts of which you are a responsible user. Clicking New creates an account in the first plan with Cost Control.
Plan / actual analysis¶
Go to . The report is available as a pivot table, a graph, and a list. It has one row per cost plan line and one row per analytic item booked to an account of a plan with Cost Control.
Measures: Original Plan, Current Plan, Actual Cost, Remaining Plan (the current plan minus the actual cost), Revenue, and Margin (the revenue minus the actual cost).
Dimensions: Analytic Account, Analytic Plan, Customer, Cost Category (including Revenue), Own / External, Source (Cost Plan or Booked), Financial Account, Product, and Date.
Filters: Costs, Revenue, Own, External, and Date.
Note
The cost plan lines have no date. When a Date filter is applied, only the booked figures are displayed.
Analytic items¶
When the analytic items are opened from the summary, the list shows the additional columns Cost Category and Own / External. In the search view, the items can be grouped by Cost Control Account, Cost Category, and Own / External.