Cost accounting

Management of cost accounting.

Updated at April 30th, 2026

Management of cost accounting.

Module Description

This app allows you to manage cost accounting (C/A) in Business Central: starting from the postings made in the general ledger (and possibly simulated), the module allows you to reallocate costs and revenues through the use of drivers and reversals performed with the C/A allocation tool.
As you will see below, the app allows you to reallocate movements both by accounting account and by assigning a new dimension.
 

Setup

C/A Setup

Open the “C/A Setup” page and fill in the following fields:

General Ledger Balance Recovery Account : Since the General Ledger chart of accounts consists only of income statements, this account is used as a counterpart when transactions are transferred from the general ledger.
Create a temporary account in the A/C chart of accounts and enter it in the field.
Motion Compression: The choice is between:

  • Nobody
  • Day
  • Month

Select “None” if you want the general ledger (and possibly simulated) movements to be transferred in detail, i.e. not grouped by time period.
In the other two cases, the transactions transferred to the current account are grouped by time period, always maintaining a minimum level of detail by accounting account and dimensions associated with the recordings.
Cumulate by: if you choose to compress the transactions transferred to the A/C by day or month, in this field you can specify whether to group them by balance or by sign (debit/credit).
Align G/L Account: You can select:

  • No Alignment: the general ledger and simulated movements are transferred only with a specific action present in the C/A chart of accounts (described below),
  • Automatic: general ledger and simulated movements are automatically transferred to analytical accounting when they are posted,
  • Confirmation required: General ledger and simulated ledger entries are transferred to the A/C only if the user confirms the action.

C/A Allow Posting From: specifies the date from which analytical accounting transactions can be made.
C/A Allow Posting to: specifies the date up to which cost accounting entries can be made.
Priority Dimension: indicates which dimension is chosen as “prevalent” in the analytical accounting (e.g. CDC). When assigning allocations, a suggestion of the dimensional values of the dimension defined as priority can be used (which usually coincides with one of the two global dimensions).
Deleting simulated items transferred to C/A: to avoid mismatches between simulated accounting and analytical accounting, this field allows you to manage a warning or error (depending on the option chosen) to be returned to the user when attempting to delete a posting made in simulated accounting if it has already been transferred to the C/A environment.
Start date for G/L transfer: specifies the date from which transactions are transferred from the general ledger (and simulated ledger, if included) to the analytical ledger.
Include Simulated Transactions: if checked, the transfer to analytics also includes simulated transactions in addition to those in general accounting.
Wait Time: expressed in ms, determines the waiting time that passes between one allocation and the next (hint: leave it 0).
Synchronized G/L Accounts:

  • Income Statement Accounts: Only Income Statement type G/L accounts and related transactions are included.
  • All: Both the economic and financial G/L accounts are included

Template Batch Simulate: journal used for transferring simulations to analytical accounting, as well as being the default journal used for recording analytical entries (verify that the "Type" is set as C/A):

Simulate Batch Name: specify the C/A journal batch that is proposed by default for recording entries posted directly in the analytics.

The fields in the "Origins" tab are used to mark the various analytical accounting records according to their origin and type of movement. This is an example of how to fill them in:

Filling in the “C/IND” tab is only required when you decide to implement Origins industrial accounting.

Chart of Accounts C/A

The analytical chart of accounts is managed in this table.
Initially empty, to easily populate this page there is an action that allows you to mass transfer the Income Statement accounts from the general ledger chart of accounts.

If the “Align G/L Account” field is set to “No Alignment” in the A/C setup, it will be useful to transfer the accounts from the G/L chart of accounts before transferring the transactions so that the A/C chart is always complete.
For each analytical account, the reference to the account (or group of accounts) that make up the balance of that current account is shown; the reference field is the following:

In addition to synchronizing the starting chart of accounts from the general ledger chart, it is also possible to add accounts manually (as for the balance recovery account) to be able to manage a more or less detailed grouping of accounts compared to the general ledger one (for details, refer to the paragraph dedicated to allocations).

To proceed with the transfer of general ledger movements (and possibly simulate them, depending on the flag set in setup), this action must be selected:

Business Central asks for confirmation to proceed:

and, as per the message above, transfers to the C/A all the ledger and simulated movements with respect to the previous transfer.
NB It is important to underline that the synchronization of transactions between the two environments always occurs by movement number (and not by registration date).
On the “Log C/A” page, all analytical movements carried out are saved and logged, reporting the initial and final movement number for both the general ledger and the simulated one as a reference:

Allocation list

The allocation setup is the core of cost accounting because it contains the rules according to which cost and revenue reversals are carried out between accounting accounts and between dimensions (e.g. cost centers).
There are no constraints on creating allocations: their number and content are extremely variable depending on the desired result.
To create a new allocation, choose “New” from the allocations list.

The fields on the form are described below:
Header

Code : Assign a code to the allocation (alphanumeric field).
Name : Description of the allocation contents.
Level : Specifies the order in which the costs/revenues of the accounts and dimensions specified here are allocated (e.g., is it a primary allocation, secondary allocation, etc.); this order can also be changed later.
A level 1 allocation will turn over sooner (and therefore “empty” some accounts sooner) than a level 2 allocation: in the event of “cascading” reversals, it is a good idea to take this setup into consideration.
Locked : Flag if you want to lock an allocation.
Status : Specifies whether the allocation is in progress (Open) or configured and complete (Released).
Please note that only allocations in released status can be selected and used in rollover procedures.

Filter Account No. C/A : In this field, you can select an account or a range of accounts that should be considered in the reallocation procedure.
Filter Size Up: In this field you can choose one of the following values:

  • Empty
  • Global Dimensions: When releasing the allocation, BC checks that at least one of the two global dimensions is filled in (in the example above these are the “Department” and “Customer Group” fields).
  • All Dimensions: when releasing the allocation BC checks that at least one dimension is indicated in the “Source Dimensions” table (which can be opened in the allocation tab).

Global Dimension 1: as for the filter on accounting accounts, also for BC global dimension 1 you can choose whether to filter the movements to be considered in the allocation by one or more values.
Global Dimension 2: as for the filter on accounting accounts, also for BC global dimension 2 you can choose whether to filter the movements to be considered in the allocation by one or more values.
Fixed/Variable: In this field you can choose one of the following values:

  • Empty
  • Fixed
  • Variable

This is an additional filter that is applied based on what is set on the C/A account in the “Fixed/Variable” field. If this field is empty, no filters are applied.

Driver Size Update: Enter the driver set in the row if you want the driver detection object values to be updated.
Auto Update Size: If you want to automatically update the allocation assignment rows with the new values entered as objects without having to add them manually.


Lines
On the allocation lines, it is essential to define how costs and/or revenues should be distributed and reallocated.
The following fields are essential for correct operation:

Description : Enter a description/explanation of the allocation.
Type : the values that this field can assume are:

  • Percentage
  • Driver

% Allocation : The percentage refers to the total to be allocated, when an allocation is released BC checks to ensure that the total percentage allocated is 100%.
Quantity to Allocate : to be filled in if the allocation is of the “Driver” type, where 1 corresponds to the total.
Driver Allocation: to be filled in only if the allocation is of the “Driver” type with the chosen driver.
Dimensions: the values this field can assume are:

  • Maintain Transaction Dimensions: the dimensional values of the general ledger and simulated transactions that are allocated remain unchanged on the C/A transactions (useful, for example, if you only want to move the balance of an account to other accounts while leaving the associated dimensions unchanged).
  • Modify Mov. Dimensions: in this case only the dimensional values specified in the allocation assignments are modified, the other values are left unchanged (most used mode).
  • Replace Mov. Dim.: all dimensional values are completely replaced with those specified on the “Assignments” page. If a new value is not defined for the same dimension, it will be emptied.

Assignments

To open the allocation criteria, position yourself on the rows and choose this action:

The page that opens looks like this:

In this table you need to define the criteria according to which the new dimensional values or new accounting accounts should be assigned.
The “filter” fields are inherited from the allocation row to which the assignment refers, while the logic for assigning the new values must be specified in the following fields:

  • % Allocation: Percentage of the total amount that should be allocated to the target account/dimension combination specified on the line.
  • Quantity to Allocate: if the allocation is made with drivers and not as a percentage, when BC carries out the cost/revenue distribution the quantity to be allocated is calculated automatically, the field does not need to be filled in.
  • Account No.: Specifies the account to which the selected costs/revenues will be allocated based on the original account filter. If the account does not need to be changed, this field should be left blank.
  • Global Dimension 1 Code: specifies the new dimensional value to be associated with C/A movements based on the percentage or driver.
    If this value should not change, the field should be left blank.
  • Global Dimension 2 Code: specifies the new dimensional value to be associated with C/A movements based on the percentage or driver.
    If this value should not change, the field should be left blank.
     

Driver List

Allocations can be made as a percentage or based on drivers set according to cost allocation criteria (e.g. square meters per department, hours worked per work center, etc.).

In the driver tab, enter the following information:

Code : alphanumeric code identifying the driver;
Description : Driver name;
Type : Driver calculation can be:

  • Manual: Performance movements associated with the driver and then used to make allocations must be entered manually;
  • Formula: based on what is specified in the “Formula” field, the performance movements on the basis of which the C/A allocations are made are calculated;
  • Union: based on what is specified in the “Formula” field, the performance movements on the basis of which the C/A allocations are made are calculated. In this case, a driver can be the result of the combination of other drivers.
    Formula: This field must be filled in if the driver type is set to “Formula” or “Union”.
    This last typology implies the use of a certain syntax for the drivers to be considered, namely:

Sequence : As with allocations, it can be compiled to establish the reading order of the drivers.
Custom Codeunit: If you want to develop dedicated, custom driver calculation logic, you can have an ad hoc calculation developed.
Period Type : together with the driver calculation type, it establishes the comparison period:

  • Fixed
  • Progressive
  • Progressive by period

Source type: establishes whether it is an analytics driver (the field must be left blank) or an industrial driver and can be filtered accordingly on the allocation rows.

Log C/A

On this page we highlight two features:

  • Cancel C/A Entries
  • Delete C/A Registrations

Once C/A allocation entries have been made, they can be reversed or cancelled in their entirety and then redone.

Functionality

Chart of Accounts C/A

There are a number of calculated fields in the analytical chart of accounts:

  • Period balance: balance transferred from general ledger + simulated not yet allocated
  • Analysis Period Balance C/A: balance resulting from analytical allocations
  • Budget period balance: balance resulting from the pre-allocation C/A budget
  • Budget analysis period balance: balance following the analytics allocations

As with the chart of accounts, in the “filter totals by” section you can set a filter by time period or by specific C/A analysis to limit the analysis to a specific date range.
 

C/A analysis list

On this page you can set up C/A analyses for each period to be analyzed.

Allocations can be calculated for a single month or from the beginning of the year.
In the form for each C/A analysis it is necessary to fill in the following information 
 

Analysis Code: fill in the analysis code (e.g. year and month);
Description : Fill in the description of the C/A analysis;
Start Date: enter the date from which you want to make the analytics allocations;
End Date: enter the date until which you want to make the analytics allocations;
Include movements: you can establish whether the allocations should include both the C/A actual and C/A budget movements. You can select:

  • C/A
  • Budget C/A
  • Both

Budget C/A: in case you want to
Locked : flag if you want to freeze the calculation made via a C/A analysis so that it can no longer be recalculated.

To proceed with the calculation of the reversals, it is necessary to associate the allocations that must be considered with the C/A analysis:

On the page that opens, a suggestion function is available among those available and in “Certified” status:

In the “Level” column, you can adjust the order in which the allocations are to be considered and iterated with respect to what was initially established in the header of the various allocations.

To perform the procedure, you can then click on the "Update C/A Analysis" action which performs the cost/revenue reversals and allocations:

Once the process is complete, you can consult the allocations either directly from the C/A analysis sheet by opening the already filtered "C/A Chart of Accounts" or by opening the chart of accounts page and inserting the filter manually:

 

Record inventory cost in C/A

Inventory valuation movements can be recorded in analytical accounting on predefined current account accounts for the type of inventory movement (e.g. cost of goods sold, inventory decrease, etc.).

The accounts to be moved in response to warehouse movements must be defined at the item and location code level.
More precisely, it is necessary to prepare the setup of the “Item/Service Registration Category” and the “Warehouse Registration Category” to be associated with each warehouse item and their cross-referencing with the “Business Registration Categories” and with the Locations table.

It is therefore possible to diversify the accounts to be moved for:

  • combination of customer/supplier type and items (when the inventory movement is originated by a customer and supplier document e.g. cost of goods sold)
  • item type in case of inventory adjustment and production payment
  • location code (warehouse) and item type combination for defining inventory accounts and production variance accounts.

The accounts must be entered in the COGE Posting Setup and Warehouse Posting Setup tables.

From the menu you can call up the Record warehouse cost in C/A report:

The report always generates a C/A movement for each valuation movement.
If the “Record” flag is not activated, the C/A entries are not generated but only the following printout is generated:

If the “Record” flag is activated the system generates:

  • C/A Movements:
  • C/A Logs: the logs generated by the Record Warehouse Cost in C/A report are marked with the “Warehouse Cost” flag:

If the log is cleared, the transactions will be deleted and can be regenerated via the report.
 

Reclassified and financial reports

It is possible to carry out analytical accounting reclassifications directly in the C/A chart of accounts by preparing a series of purely "managerial" accounts that are filled by the allocation cycle by emptying the general ledger accounts, for example:

Alternatively, you can create analytical accounting financial reports by activating the appropriate flag on the row definitions so that they read the analytical transactions: