Timesheets & missing working time


, ,

Before invoicing project customers and/or preparing the month-end close, it is a common practice to verify that all employees have recorded their working time. Dynamics AX supports this verification process through the missing timesheet report shown in the next screen-print.


Note: The manager that can be identified in the last column of the missing timesheet report is the one that is specified in the ‘reports to’ field of the employee’s position assignment and can be found in the Human Resource (HR) module.

An alternative to generating the missing timesheet report is using the periodic missing timesheet email notification functionality. This periodic process sends automatic email reminders to those employees – not their superiors/managers (!) – that have not recorded their working time through timesheets. The content of the email is thereby defined in an email template, which needs to be linked to the Email Id field in the project parameters form shown in the next figure.


A major problem with the missing timesheet report (and the email notification process) is that it only verifies that some working time has been recorded. It does, however, not check whether and how much time is missing. The following screen-prints demonstrate the aforementioned by showing the content of the missing timesheet report for an employee (‘Julia’) that creates and saves her timesheet in a first step, submits it later on and finally gets it posted.

Step 1: Create & save timesheet


Step 2: Submit timesheet


Step 3: Post timesheet


As one can identify from the previous screen-prints, the missing timesheet report does not include the employee (‘Julia’) anymore once the timesheet has been posted. This outcome is quite astonishing because only a single hour of working time has been recorded, which is by far less than what has been contractually agreed upon with the employee (40 hours/week).

Against the background of this result, it can be summarized that the missing timesheet functionality and the periodic email notification process are per se not sufficient to ensure that employees recorded all of their working time.

If the missing timesheet functionalities are not sufficient to verify whether or not employees recorded all of their working time, the question arises what other additional instruments are available that can help ensuring that employees record at least their contractually determined working time.

The main instrument available for that purpose is the timesheet policy feature. Provided that the contractual working time of employees is setup in a calendar and given that the timesheet policy prevents employees from submitting their timesheets if less than the contractually determined working time has been recorded, one can ensure that employees record their complete working time. The following example demonstrates how this can be achieved based on the timesheet policy configuration shown in the next screen-print.


The timesheet policy illustrated in the screen-print above prevents users from submitting and posting timesheets with less than 40 hours working time recorded. Timesheets that include less hours – such as the one shown below – cannot be submitted and will consequently be picked up in the missing timesheet report. The following screen-prints exemplify this system behavior.

en_140_0035 en_140_0040

Please note that what has been said for timesheets that include less time than the one specified in the timesheet policy also applies for employees that have not even created a timesheet. It is thus the combined application of the timesheet policy and the missing timesheet report which help ensuring that employees recorded all of their working time.

Note: The illustrated timesheet policy and application of the missing timesheet report assume (a) that employees submit their working times only once a week in a single timesheet and (b) that employees record their full working time including absence times for holiday, illness, etc. Through a slightly different setup, the same result can also be achieved if employees are supposed to record their working time on a daily basis.

Project related intercompany cost allocations (3)


, , ,

Example 3: Revenues realized at the subsidiary level are allocated back to the corporate headquarters level

Part A: Scenario
The underlying scenario for the subsequent illustrations and explanations is the development of a software product by the corporate headquarter company that requires regular updates and maintenance e.g. in order to comply with changes in legal regulations.
The initial development of the software product was completed by a team of developers from the corporate headquarters company (USSI) several years ago. All costs related to this product development were recorded on an internal development project U1 that was closed after the initial product development ended. Thereafter, all costs related to product updates and changes are tracked in a separate project U2.
In order to run & treat the internal product development team as a profit center and not a cost center, the corporate management decided that the subsidiaries that make use of and sell the software product need to pay a fraction of their sales revenue to the corporate headquarters as a license fee. All respective intercompany contracts have been signed and need to be applied in the ERP system. How this application can be realized in standard Dynamics AX will be subject of this post.

Before digging into details, let’s have a quick look at the following illustration that shows the different companies and projects involved in this scenario.


Part B: System setup

Setup B.1: Intercompany dummy vendor account company FRSI & GBSI
Similar what has been shown in the prior post on intercompany costs allocations, the first thing that needs to be setup are intercompany dummy vendor accounts. The only difference to what has been described in the previous post is that two rather than a single dummy vendor account need to be setup.

Setup B.2: IC customer & vendor accounts
The second setup step is also identical to the one shown in the prior post. However, slightly different from before, intercompany customer accounts need to be setup in the subsidiaries FRSI & GBSI and two separate intercompany vendor accounts in the corporate headquarters company USSI.

Setup B.3: Project category setup
The third setup step relates to the project category setup, which is required for the intercompany invoicing and transaction recording. Different from before, this time, two separate project categories – one for each subsidiary – need to be established because the project ledger posting setup in the project module does not allow a separation based on the company account.
Please note both categories are linked to the transaction type “expense”.

Setup B.4: Procurement category setup company FRSI/GBSI
Also the setup of the procurement categories is mainly identical to the setup that has been shown in the previous post except that two rather than a single procurement category need to be setup – one for each subsidiary.

Setup B.5: Project setup companies
The project setup in the different companies involved in the intercompany scenario follows the structure shown in the graphic of the initial scenario section above. The next screen-prints exemplify how the corresponding projects are setup in the headquarters (USSI) and subsidiaries companies (FRSI & GBSI).
As mentioned in the prior post on intercompany cost allocations, there is nothing that requires special attention when setting up the different projects except that each of those projects should be linked to a default intercompany financial dimension value – at a minimum.

Setup B.6: Project posting setup
In regards to the project posting setup, reference can be made to what has been mentioned in the prior post except that the direction of the setup is flipped. That is, while intercompany revenue accounts need to be setup in the subsidiary companies (FRSI & GBSI), intercompany cost accounts need to be setup in the headquarters company. The same holds for the setup of the ledger posting integration for the procurement categories.


Part C: Process steps

Step C.1: Record transactions & invoice the external customer in FRSI/GBSI
Against the background of those setups, the first process step consists of recording costs and revenues on the external customer projects that are run in the subsidiary companies. For reasons of simplicity and brevity only hour transactions are recorded and subsequently invoiced for a single project in each of the subsidiary companies. The next screen-print shows the vouchers created in company FRSI for the time recorded and invoiced.
As the vouchers created in company GBSI are basically identical to the one created in company FRSI, they are not explicitly illustrated here to conserve space. They are, however, included in the next accounting overview.
(IC = Intercompany financial dimension, PRO = Project financial dimension)
The prior accounting overview shows ordinary project accounting transactions that debit a project cost account for the hours recorded and credit the payroll allocation account for the cost of those hours recorded. The second vouchers record the receivable against the external customer and credit a project revenue account (highlighted in yellow color).

Step C.2.: Record internal vendor invoice in FRSI/GBSI
Whereas most of you have seen and are familiar with the first process step, you might not have seen the following second one that posts an internal transaction on a dummy vendor account.
Slightly different from the prior post where only a single line was used to create a transaction on the internal dummy vendor account, this time two lines are recorded and posted. The first line is used to record an expense on the external customer project – in the screen-print below – in company FRSI. This expense transaction represents the license costs charged by the corporate headquarters to the subsidiary for using the developed software product.
The second line is used for the subsequent creation of the intercompany credit note and consequently entered with a negative quantity & amount. Please note that this second line links to the support & maintenance project in company USSI.
Note: Whereas recoding such internal transactions is feasible in situations where a limited number of external customer projects exist, it becomes infeasible in companies that run many external customer projects. What might help in those cases is the standard Excel-Addin for Dynamics AX that allows importing transactions into the invoice workbench form shown above.

The voucher resulting from posting the internal transaction can be identified in the next screen-print and is summarized in the next accounting overview.
The first notable outcome that can be identified from above is that no open vendor position is created on the internal dummy vendor account, as the two lines recorded offset each other.
In addition, the debit account transaction on the ledger accounts 707451 (FRSI) and 402451 (GBSI) – that represent the license costs for the use of the software product developed by the corporate headquarters (USSI) – lower the profit for those projects and allow project managers taking a look at the full costs of their projects. The next screen-print, which shows the project statement for the external customer project in company FRSI shows this in more detail.

Step C.3.: Create intercompany credit note in FRSI/GBSI
The third process steps consists of creating the intercompany project invoices (credit notes) in company FRSI and GBSI. As this step mirrors the one shown in the previous post, reference can be made to what has been said there.
The voucher that results from posting the intercompany project invoice (credit note) can be identified in the next screen-print.
As before, the next accounting overview summaries the postings recorded thus far.
Please note that the accounts highlighted in light-grey color offset each other and do thus not exert an influence on the project and corporate profitability in the subsidiary companies.

Step C.4.: Post pending credit notes in USSI
The last process step described in this post consists of posting the pending vendor invoices (credit notes) in the corporate headquarters company USSI shown in the next screen-print.
Posting those credit notes results in vouchers that debit – and therefore reduce – an intercompany liability account and credit an intercompany P&L account. For that reason, the profit in the corporate headquarters company increases correspondingly.
The next accounting overview summarizes all transactions recorded within the four process steps shown above.
The yellow-highlighted arrows and fields illustrate that a part of the revenue from the external customer projects in the subsidiaries (FRSI & GBSI) is shifted to the corporate headquarters company that developed the overall software product sold to the customer.
With this revenue shifted to the support & maintenance project in the headquarters company, a comparison of the initial development cost and the ongoing maintenance costs of the developed software product with the resulting license revenues can be made. This is a major prerequisite for treating the internal development team / project as a profit center.


Within this and the previous posts I illustrated how indirect costs can be allocated to projects – either within a single company or between companies – by using standard Dynamics AX functionalities. The major outcome of those posts is that the standard Dynamics AX tools do in general support all kinds of those project allocation scenarios require, however, the one or the other system modification in order to get the allocations fully automated.

Project related intercompany cost allocations (2)


, , ,

Example 2: Allocating the costs of corporate directors working in corporate headquarters to the projects setup in other companies

Part A: Scenario
The prior post introduced the standard project intercompany functionality for time sheet transactions. Within this post I would like to modify and extend this scenario by analyzing how the costs of corporate directors can be allocated to projects in other legal entities that they – at least from time to time – supervise.

An underlying assumption of this scenario is that the directors do not record their time in Dynamics AX but rather that only their salary expense is recorded in the corporate headquarters company (USSI).

The next graph illustrates the corporate structure used for the following illustrations and shows that the director’s salary expense shall (partly) be allocated to the projects setup in subsidiary FRSI and subsidiary GBSI.
Note: What is important when it comes to the allocation of indirect costs across different legal entities is that regulators / tax authorities regularly require tax invoices and the adherence to international transfer pricing regulations to prevent companies from shifting their profits to low tax countries. This is an aspect that will also be taken into consideration subsequently.


Part B: System setup
For the following illustrations I will use an approach similar to the one introduced in an earlier post. That is, the cost of the corporate directors will first be invoiced and recorded on company-specific summary projects (F0 and G0) from where they will be allocated to the different projects in a second process-step. The next graph illustrates this procedure from a high-level perspective.
In order to implement this scenario, a couple of setups are necessary that I will illustrate next before having a look at the different process steps involved.

Setup B.1: Intercompany dummy vendor account company USSI
The first thing that needs to be setup for the illustration of this scenario is a dummy vendor account in the corporate headquarters company USSI that will be used as an intercompany invoice “vehicle”. Three things require special attention when setting up this dummy vendor account.
First, the use of a Profit & Loss (P&L) summary account No. 602101 that is used as the offset account for the cost allocations recorded.
Second, the (optional) setup of a separate method of payment for this dummy account to avoid an unlimited increase of the dummy vendor account balance and third the (optional) linkage of the summary account to fixed financial dimension values that offset those financial dimensions that will be used when recording the directors salary expenses in Dynamics AX.

Setup B.2: IC customer & vendor accounts
Once the dummy vendor account is setup in the headquarters company, intercompany customer and vendor accounts need to be setup in all companies participating in the intercompany scenario.
When setting up those intercompany customer and vendor accounts it is important that an intercompany financial dimension value is setup as default value, as exemplified in the next screen-print. Otherwise, the financial consolidation process of the corporate ledger accounts might get difficult later on.

Setup B.3: Project category setup
The third setup is related to the project category that will be used for the intercompany invoicing and allocation of the director’s costs. There is nothing special to look out for when setting up this category except that it is setup in all companies.
Please note that I linked the IC Director category to the transaction type “expense”.

Setup B.4: Procurement category setup company USSI
After the project category setup is finished, procurement categories need to be defined that will be used for creating the intercompany postings later on. When I setup those procurement categories, I noticed that Dynamics AX summarized my transactions irrespective of the financial dimension values used. For that reason, two – rather than a single – procurement categories will be used in the following.
Please note that both procurement categories are linked to the same project category that has been setup previously. To record project transactions later on based on those categories, corresponding ledger accounts need to be setup in the inventory posting matrix. In the example illustrated above, the ledger accounts 602310 and 602320 represent intercompany P&L salary allocation accounts. Details for their usage can be investigated further below.

Setup B.5: Project setup companies FRSI & GBSI
No specific setup is required for the internal (allocation) and external customer projects in the subsidiaries except that one should ensure that they are all linked to a default intercompany financial dimension value at a minimum.

Setup B.6: Project posting setup
The last setup required relates to the setup of the project ledger posting. In this respect you have to setup an intercompany revenue account in the corporate headquarters company that allocates the costs to the different subsidiaries. To get those allocated costs posted in the subsidiaries, the subsidiaries require the setup of intercompany cost accounts. The next screen-print exemplifies the ledger posting setup required in the different companies involved.
(Please note that the corporate headquarters company USSI and the subsidiary GBSI share the same Chart of Accounts (COA). The FRSI subsidiary does, on the other hand, use its own local COA).
In addition, as the allocated intercompany costs will subsequently be distributed to the different external customer projects by making use of the project adjustment functionality, one has to ensure that the intercompany cost account setup is also made in the project costing section. That is because the latter posting type will be used for the distribution of the costs to the different projects.
Note: The project ledger posting setup shown above is based on the use of time & material projects. If you use other project types, a slightly different ledger posting setup might be required.


Part C: Process steps

Step C.1.: Record the directors salary expense in USSI
With all those setups in place, the intercompany cost allocation process can start with the recording of the directors’ salary expense – for reasons of simplicity – in an ordinary General Ledger journal.
Please note that I recorded the salary expense together with a business unit and department financial dimension value.
The voucher resulting from this transaction debits a P&L account and credits the Balance Sheet (BS) account that records the salaries payable.

Step C.2.: Record internal invoice transaction on dummy vendor account in USSI
The next step involves a pure internal transaction that is required for the subsequent generation of the intercompany invoices. This internal process step involves recording an internal vendor invoice on the dummy vendor account setup and makes use of the previously setup procurement categories.
In the example used and illustrated in the next screen-print, a total of 200k USD is allocated to the other companies (125k USD to company FRSI and 75k USD to company GBSI) involved in the intercompany relationship.
Please note that the internal invoice transaction is made in reference to the intercompany project category and summary project as shown in the next screen-print.
Posting this internal invoice, results in the following voucher …
… which is summarized in the next accounting overview.
(IC = Intercompany financial dimension, PRO = Project financial dimension)

What one can identify from the illustration above is that – due to the specific ledger accounting setup made – the internal invoice transaction does not influence the overall profitability of the corporate headquarters company USSI because the ledger accounts used for the debit and credit transaction are both P&L accounts.
From an overall accounting perspective, the only thing that has changed through this internal invoice transaction is that the total corporate directors’ salary expense is broken up into different parts.

  • Part 1: 100k USD – the sum of the ledger accounts 602100 and 602101 – which represents the directors salary expense to be covered by the corporate headquarters company USSI,
  • Part 2: 125k USD – recorded on ledger account 602310 – that will subsequently be invoiced to company FRSI and
  • Part 3: 75k USD – recorded on ledger account 602320 – that will subsequently be invoiced to company GBSI.

Step C.3: Create and post intercompany invoice
Once the internal invoice transaction is recorded, the intercompany project invoices can be generated. This is realized through the standard Dynamics AX intercompany project functionality illustrated in the next screen-print.
A major advantage of using this standard functionality is that the intercompany invoice document is – as exemplified in the next screen-print – automatically created out of the box.
The voucher resulting from this intercompany invoice transaction debits an intercompany receivable (BS) account and credits a P&L account that offsets the previously recorded expense allocation accounts.
The next accounting overview illustrates the offsetting effect mentioned above in the yellow highlighted accounting sections.
Due to this offsetting effect the total directors’ salary expense remaining in the corporate headquarters company is reduced from 300k to 100k USD (sum of the ledger accounts 602100, 602310, 602320, 602101 and 603200).

Step C.4: FRSI & GBSI: Post pending vendor invoices
At the time the intercompany project invoice is recorded in the corporate headquarters company, pending Accounts Payable vendor invoices are automatically created in the subsidiary companies FRSI and GBSI. Please see the next screen-print.
Posting those invoices results in the following vouchers:
Please note that the voucher recorded in the subsidiary companies record the transaction in USD – the currency that was specified when posting the intercompany invoice – and the accounting currency of the subsidiary (EUR resp. GBP in my case). What currencies are used for the intercompany invoicing process is not only an accounting issue but also a transfer pricing and organizational issue, as it determines which legal entity has to bear the risk of foreign exchange rate changes.

As before, the next accounting overview, summarizes the intercompany invoice transactions recorded in all companies involved in the intercompany trading relationship.

Step C.5: FRSI & GBSI: Allocate transactions to the different subprojects
One of the last steps in the intercompany allocation process is the distribution of the allocated costs to the different projects in the subsidiaries. This can be achieved by making use of the project adjustment functionality that has been introduced in a prior post and which is illustrated in the next two screen-prints.
ENx_131_0110 ENx_131_0115
The resulting vouchers are once again summarized in the next accounting overview.
As one can identify, the adjustment / allocation posting in the different companies ensured that all costs are finally distributed down from the corporate headquarters level to the project level in the subsidiaries.

The remaining two process steps related to the intercompany allocation are not explicitly illustrated here, as they are not directly related to the intercompany cost allocation process.

  • The first remaining process step is the payment of the previously used internal dummy vendor account to ensure that the balance on this dummy vendor account does not grow unlimited. Please note that this process step is optional and not necessarily required but recommended in order to alleviate the reconciliation of the Accounts Payable with the General Ledger module.
  • The second remaining process step is the payment of the intercompany project invoices. Also this process is not explicitly illustrated here as it can be realized by making use of the standard Dynamics AX payment functionalities.


Within this post I illustrated how indirect costs recorded in corporate headquarters can be allocated across legal entities down to the different projects processed in the different subsidiaries. An important aspect of this process is that the required intercompany tax invoices and all required accounting transactions can be created out of the box with the standard Dynamics AX intercompany project functionalities.

The next and final post in this series on project related cost allocations will focus on a scenario where costs / revenues recorded at the project level of the different subsidiaries will be allocated back to the corporate headquarter level for cost analysis purposes.

Project related intercompany cost allocations (1)


, , ,

In my last post I illustrated a standard functionality that allows allocating indirect costs, such as licensing costs to projects. While the major focus in the earlier post was on intra-company cost allocations, I would like to extend the focus in this post by taking a look at standard functionalities that allow intercompany cost allocations for projects.

Rather than trying to illustrate those functionalities from a pure technical, rather abstract perspective, I decided to take a look at project related intercompany cost allocations based on the following three examples.


Example 1: Employees engaged in company USSI work on projects in company FRSI

Part A: Scenario
Within this first example I will take a look at the standard intercompany timesheet functionality that allows employees recording times on projects that are setup in different companies without having to change the company. You might have read some posts about this feature before. Yet, irrespective of that and risking that you have already heard / read about it, I would nevertheless like to start with this elementary example, as it establishes the basis for the following, more complex intercompany cost allocation scenarios.

In this first example I assume that an employee engaged in company USSI is doing some software installation work for a customer project that is setup in company FRSI. In order to allow the USSI employee recording her time on the FRSI project and to charge FRSI for the hours worked, the following setup is required.


Part B: System setup

Setup B.1: Intercompany customer – vendor relationship
The first thing that needs to be setup is an intercompany relationship between a customer and vendor account, which is required for recording the intercompany cost and invoice transactions later on. The next screen-print exemplifies this setup for the intercompany customer account in company USSI.
Note: When establishing the intercompany customer-vendor account relationship you need to ensure that those accounts are setup with a financial intercompany dimension as illustrated above. That is because the project posting profiles do not allow setting up ledger accounts based on a company criteria. If you decide not making this kind of setup, the consolidation of your financial results might get more complex later on. For details, please see further below.

Setup B.2: Project category
The next setup required is related to the project categories. In this respect you have to ensure that the category that you need for recording the hour transactions is setup in both companies.
Note: If the category is not setup in both companies, Dynamics AX will show the following error message and won’t let you continue processing your transaction until the error is resolved.

Setup B.3: Intercompany accounting
Once all project categories required have been setup, an intercompany accounting relationship between the companies involved in the transaction needs to be established, as illustrated in the next screen-print.
Establishing this relationship is not required for creating timesheet and/or intercompany postings but rather for allowing users selecting the different companies in the timesheet form.
Please note that if the intercompany accounting relationship between USSI and FRSI is missing, employees working in USSI cannot select and post their hours on projects that are setup in FRSI. The next screen-print illustrates this.

Setup B.4: Project setup company FRSI
When setting up the project in FRSI, it has to be ensured that the project is linked to a financial intercompany dimension. Otherwise, the separation and identification of intercompany transactions during the financial consolidation process might become difficult.
Please note that the other financial dimensions used in this example (Department 023 and Project 00000027) are not necessarily required for the time recording process. They have, nevertheless been setup here for illustrative purposes in regards to the vouchers created. For details, please see further below.

Setup B.5: Employee setup company USSI
After setting up the project in FRSI, the employee engaged in company USSI is setup. This setup does not require some special considerations except that it is advisable linking the employee to its department / cost center and intercompany financial dimension, as exemplified in the next screen-print.

Setup B.6: Intercompany sales price
Setting up intercompany transfer prices for hours recorded is something easy from a pure technical system perspective, as the only thing required is entering a price that will be charged to the other company for the hours worked.
From an accounting and taxation perspective things are, however, more complex when it comes to the setup of intercompany transfer prices in an international company environment. This complexity is mainly caused by a number of (sometimes differing) intercompany transfer pricing rules applicable in the countries involved in the intercompany trading relationship. Within the context of this post it is impossible illustrating you even the most basic intercompany transfer-pricing regulations. For that reason reference is made to the general international transfer-pricing framework – the OECD transfer pricing guidelines. Based on the OECD guidelines overarching “arm’s length” transfer pricing principle, an intercompany sales price of 300 USD is setup and used in this example for the subsequent hour transactions recorded.
Please note that Dynamics AX allows determining intercompany transfer prices based on the sales price that external customers are charged for through the selection of one of the following (yellow-highlighted) transfer pricing models.


Part C: Process steps

Step C.1.: Process intercompany time sheet
With all those setups in place, the USSI employee can record her hours in the timesheet form as usual by referring to the company and project she worked for. Please note that this selection defaults the financial dimension values of the intercompany project in the timesheet form, as illustrated in the next screen-print.
The resulting voucher records the cost and payroll allocation in USSI. Notable in regards to the voucher created are the financial dimension values that are recorded together with the cost account (540100) and the payroll allocation account (602100).

Step C.2.: Post intercompany project invoice
The next process step consists of creating the intercompany project invoice in company USSI. This can be realized by using the corresponding intercompany project invoice functionality. Example:
Once all transactions to be invoiced are selected and posted…
… the following intercompany invoice voucher results.
Please note that the intercompany receivable account (133100) is determined by the customer posting profile setup in the Accounts Receivable module. The intercompany sales revenue account (402100) on the other hand, is determined by the corresponding account setup in the project module ledger posting form.

Step C.3.: Post pending vendor invoice FRSI company
At the time the intercompany project customer invoice is posted in company USSI, a corresponding intercompany vendor invoice is created in company FRSI that can be found in the pending invoice section of the Accounts Payables module.
Posting this invoice results in the following voucher.
(Please note that the USSI and FRSI companies use different Chart of Accounts).

In order to differentiate between the different transactions posted, the following accounting overview has been created:
What can be identified from the illustration above is:

  • First, that the costs for the hours recorded in company USSI cannot be identified at the project level in company FRSI – at least as committed costs – until the intercompany project invoice and pending vendor invoice have been created.
  • Second, that the orange and yellow highlighted transactions can easily be identified in the financial consolidation process due to the financial intercompany dimension used. (Please note that the financial intercompany dimension (“FRSI”) used when creating the intercompany invoice is determined by the setup of the intercompany customer account illustrated in setup step no. 1 further above. The financial intercompany dimension that is used when recording the costs and intercompany vendor invoice is, on the other hand, determined by the project setup in company FRSI.)
  • Third, that a comparison of the cost and (inter-company) revenue – highlighted in green color in the next screen-print – allows an easy identification and comparison of the intercompany profit made in the internal transaction. This helps users checking and justifying the appropriateness of the company’s transfer pricing policy e.g. against auditors.

Note: As indicated above, the setup of financial intercompany dimension values is crucial for the whole intercompany process. That is because the project module ledger posting setup does not allow specifying intercompany cost and revenue accounts based on companies involved in the trading relationship. Please see the next screen-print for details.
What happens if the financial intercompany dimension is missing at the project level can be identified in the next illustration.
The arrows and red highlighted fields above highlight the missing financial intercompany dimensions that cause problems when it comes to the financial consolidation of the intercompany accounts – especially if several companies are involved in the inter-company trading relationship.
In addition, also a check of the appropriateness of the intercompany transfer pricing policy will get more complex if the financial intercompany dimension is missing, as the project cost and project revenue postings cannot easily brought together.


Intermediate result
I hope that this post gave you some new insights into the intercompany timesheet functionality even if you have already heard & read something about this feature before.
Against the background of this standard functionality, let’s continue then by having a look at some other, more complex, project related intercompany cost allocation scenarios in the next part.

Project cost allocations


, ,

In an earlier post I presented the indirect cost functionality available in the project module. For details, please see my earlier post.

A major outcome of this earlier post was that the standard indirect cost functionality’s usability is currently rather limited because of the constraint that indirect costs can only be defined in relation to project-hour costs respectively project-hour transactions.

Within this post I would like to take a different look at the indirect costs topic by investigating how indirect costs, such as insurance costs, licensing fees, depreciation expense and alike can be allocated to different projects in order to allow users taking a look at the full costs of a specific project.

An important consideration in this context is the question what kind of indirect project costs are allowed to be allocated to projects? Most of the major Accounting Standard setters, such as the IASB or the FASB, answer this question by defining that only those indirect costs that have a direct relationship to projects can be allocated. For details, please see e.g. IAS 11.

The aim of the following sub-chapters is illustrating how indirect costs that are directly attributable to several projects – such as e.g. insurance and licensing costs – can be assigned to them. Subsequently, I will illustrate how costs that are not directly attributable to projects can be allocated to those projects in a way that allows project managers taking an (internal) look at the full costs of a project.

Let’s start by having a look at the first example that illustrates how insurance related expenses can be allocated.


Example 1: Allocation of insurance related expenses
The first example starts with a vendor invoice for insurance expenses that is recorded in an ordinary vendor invoice journal and posted on the insurance expense account no. 606200. The expense account is posted in combination with the operations department no. 023 because the operations manager is primarily responsible for all insurance contracts in the company.
To get those costs allocated to the different customer projects no. 000009 to 000012 (illustrated in the next screen-print), an internal cost project (no. 000008) has been setup. Please note that this internal cost project was setup and linked to its own project financial dimension no. 000008 and an internal “cost allocation department” no. 099.
My next step was creating a project expense journal in order to post the amount invoiced by the vendor against a project insurance allocation category (“ALLOC INSURANCE”).

Note: The aforementioned project category is linked to ledger account 606250 that is used to track those insurance costs that have been distributed to projects.

The offset account used (account no. 679999) for my transaction defaults from the expense journal and has been setup as a fixed offset account.

Note: The offset account could also have been specified by making use of the default offset account feature available in the project module.

The financial dimensions – department 099 and project 000008 – finally default from the internal cost project that has been setup.
Posting this journal results in the following voucher that debits an insurance expense allocation account no. 606250 and thereby ensures that the insurance related costs are “shifted” to the project module and available for further processing.
Once the insurance costs have been shifted to the project module, I used the standard project adjustment functionality to allocate the costs from the internal cost project no. 000008 to the different external customer projects. Details of this allocation can be identified in the following screen-prints.
Note: From the previous illustrations and explanations you can easily identify that I used the standard project adjustment functionality as “cost allocation tool” to get the costs distributed to the other projects. A major disadvantage of doing the cost allocation this way is that you have to enter the “allocation key” manually yourself. However, as this standard functionality allows allocating costs to different projects out of the box, most of the work is already done and with a modest system modification you can easily get this cost allocation fully automated.
Alternatively, the cost allocation can be realized by using the Excel-add-in. As the Excel-add-in allows addressing the different customer projects directly through a direct upload into project expense journals, a subsequent allocation via the standard adjustment functionality is not necessary.

The outcome of the cost allocation executed through the adjustment functionality can be observed in the next screen-print which shows the resulting ledger voucher:
The next illustration summarizes all vouchers generated within this 3-step allocation procedure. An important outcome in this context is that the original insurance costs posted on ledger account no. 606200 can still be identified. In addition, the allocation account no. 606250 and allocation department no. 099 are cleared through the adjustment posting generated.
The next financial statement report presents the data in a slightly different reporting format.
What can be identified from the financial statement illustrated above is that the sum of the insurance expense recorded on the company’s different departments adds up to 0,00 EUR indicating that all costs have been allocated to the company’s projects. This can also be identified in the last report column which summarizes the costs of all (external) customer projects.


Example 2: Allocation of licensing costs
At this point you might have asked yourself why the previously illustrated 3-step allocation procedure was used and why the insurance expense hasn’t directly been posted on the internal cost project? Within this second sub-chapter I will answer this question by recording licensing expenses that shall be distributed to the different external customer projects.

The second example starts once again with recording a vendor invoice in the Accounts Payable module. This time, the invoice is recorded on the internal cost project no. 000008 directly. Please see the next screen-print.
Please note that the procurement category used is linked to the corresponding project category, which defines the ledger posting generated.

Once the invoice is recorded, the previously illustrated adjustment functionality is used once again for distributing the licensing costs to the different customer projects.
As in the previous section, the next illustration summarizes the vouchers generated in this 2-step allocation procedure:
An important difference to the previously used 3-step allocation procedure is that the vouchers debit and credit the same internal cost allocation department no. 099, which has been setup at the internal cost project level. As a result, users cannot immediately identify the licensing costs directly from an analysis of the different departments. For details, please see the next screen-print.


Example 3: Allocation of depreciation expense
Within this last chapter I want to exemplify how costs that are not directly related to projects can still be allocated and shown at the project level even though this is not allowed by the major accounting standard setters.
The procedure required to realize this is basically identical to the 3-step allocation procedure shown previously. The major difference to the procedure used before is that “statistical” ledger accounts are used for showing those costs at the project level. Let’s have a look at the individual steps involved here.
The first step consists of posting the depreciation expense for the fixed asset(s). In the example used 4000 EUR are posted on the depreciation expense account 607200 in combination with the finance department 024 that is responsible for managing the fixed asset.
The next step involves posting a project expense journal with reference to a project category that records the expense on a statistical cost account (no. 907250). The offset account used (no. 907251) is also a statistical account and setup with the project expense journal as fixed offset account.
The last process step consists of allocating the statistical depreciation costs to the different external projects.
All transactions involved in this last example are summarized in the next illustration…
… and (internal) financial statement.
As mentioned before, the major difference in this third example compared to the first one is that the lines highlighted in light blue color are not included in external financial statements and used for internal cost analysis purposes only.


Within this post I illustrated how the standard project cost adjustment feature can be used for allocating indirect costs to projects. A major advantage of the approach illustrated in this post compared to the indirect cost feature is that any kind of costs can be allocated to projects irrespective of other transactions recorded. I would like to close by summarizing that even though the cost allocation approach illustrated here is not ‘perfect’ in the sense that allocations are not fully automated; it does nevertheless provide a good basis for implementing a more advanced and automated project allocation functionality that is required in companies where indirect costs need to be allocated to a large number of projects.

Management Reporter – Unit Security


, , ,

Within this post I would like to present a feature that allows you restricting the access to data included in Management Reporter financial reports. A common business scenario where this feature can be applied are situations where business unit/cost center managers shall only have access to the data of the business unit/cost center they are responsible for.
Let’s have a look at the following Income Statement report that shows the total amounts split up by business units to see how the Management Reporter unit security feature can be applied.
Assume that we want to restrict the report data access for Phyllis, the manager of business unit BU001, in a way that she has Access to the Income Statement data of her business unit only. This restriction can be accomplished by setting up a report with a reporting tree that includes the respective users in the unit security column. Because the report includes all business units next to each other in separate columns, the reporting tree elements need additionally to be linked to the respective columns. This is linkage and the unit security setup is illustrated in the next screen-print.
With this setup in place, Phyllis will see the following report, once she opens it.


The security restriction setup does also apply to the Management Reporter drill down functionality in Dynamics AX. That is, if Phyllis wants to see the voucher transaction details that make up a specific amount shown in the report and drills down into the Dynamics AX voucher transactions, she will only see the filtered transactions for her business unit. This system behavior is illustrated in the next screen-print:
A second thing to note here is that the Management Reporter unit restriction does not control whether or not Phyllis can open and access all transaction details through the Dynamics AX client directly. In the example used Phyllis can, for example, log into the Dynamics AX client and access the complete voucher details including the amounts that were recorded for the other business units. Example:
If you have users that can circumvent the Management Reporter unit restriction this way, you have ensure that you also implement the extensible data security framework in Dynamics AX. Otherwise, the unit security feature does not make much sense. Please see the following sites 1 / 2 for additional information on the extensible data security framework.


Report modification 1
Now let’s have a look at some Management Reporter design considerations that you should be aware of when making use of the unit security feature and reporting trees in general. Let’s imagine that the Income Statement report shown previously is modified in a way that also the cost centers that make up a business unit are included in separate report columns. If you follow the same unit restriction setup shown previously also for the sub-elements of the business units …
… users won’t see all details once they open their report. In the example used Phyllis, will see the following data when opening the report:
The data for the cost centers that make up the business unit cannot immediately be identified but rather have to be opened separately by selecting one of the business units. Example:


Report modification 2
Because of the previous data illustration issue, the report is modified once again in a way that the business unit and total columns are now setup as computed columns. (Please see the yellow highlighted section in the next screen-print).
With this setup in place, Phyllis will get the following message once she opens the report.
By selecting one of the cost center elements, she will finally be able to see the data for the selected cost center but not automatically for the other ones without selecting them separately.


Report modification 3
To avoid that the Income Statement report opens with an error message for the business unit / cost center managers, the report design is further modified as follows:
The major difference to the previous setup is that cost center sub-elements that make up the business division are now intended in the reporting tree. This setup finally ensures that Phyllis is able to see all data of the business unit she is responsible for when opening the report.
If Phyllis drills down to the different sub-elements, the report will filter the selected data respectively. Example:


I hope the different examples gave you an impression what to look out for when designing Management Reporter reports that include reporting trees and make use of the unit security feature. The major take away from this post is that setting up the unit security feature in Management Reporter does not make much sense if users can circumvent those restrictions by extracting the data directly from the AX client. To avoid such scenarios you have to ensure that the extensible data security framework is applied concurrently in the AX client.

Summarize vendor payments to one line for bank reconciliation


, ,

Recently, I came across a requirement where payments were made from a specific bank account. As only one single bank account was used for making the payments, the expectation was that Dynamics AX creates only one single posting on the bank account. Dynamics AX did, however, create numerous bank postings – one for each journal line – as the invoices paid were recorded with different financial dimension combinations. This fact made the bank reconciliation process more difficult because the bank deduced all vendor payments made in one single amount, which had to be matched with the numerous transactions recorded on the Dynamics AX bank account.


The next screenshots exemplify how the payment proposal was created and the vouchers and bank transactions resulting from posting the payment journal.

Example – creation payment proposal

Example – voucher created for the first journal line

Example – bank transactions posted


A) Change journal setup
In order to get the transactions posted on the bank account summarized, a new vendor payment journal was setup with the following (modified) settings:
Note: Previously the parameter ‘new voucher’ was set to ‘in connection with balance’ and the ‘detail’ level was previously set to ‘details’.

The result of this first change in the setup was that Dynamics AX created one single voucher for all lines included in the vendor payment journal. However, there were still a number of postings created on the company’s bank account, as the next screen-print illustrates. EN_133_25


B) Change bank account setup
The underlying reason why Dynamics AX did not summarize the transactions made on the bank account were the different financial dimensions used at the invoice level that got inherited to the bank account. This can be identified from the previous screen-print, which shows that the bank account transactions were posted with the financial dimension ‘cost center’ no. 022, 023 and 024.

In order to avoid this problem, default financial dimension values were setup at the bank account level. For details, please see the following screen-print.
With this setup in place, the expectation was that only one single posting on the bank account is created when posting the vendor payment journal. However, the setup changes made had no influence on the outcome, as the next screenshot proves.
Once again the financial dimension inheritance from the vendor invoice level that was overwriting the default financial dimension setup at the bank account level was the underlying reason that prevented a summary of the bank postings.


C) Change main account setup
To get the posting summary issue resolved, the main account associated to the bank account was finally setup with fixed financial dimension values, as illustrated next.
After creating another vendor payment journal, the following summarized voucher resulted, which shows only one single transaction on the bank account used.


D) Modification 1 – different payment dates
To test  the stability and reliability of the setup made, another vendor payment journal was created. This time, different payment dates were used for the lines included in the journal.

The outcome of this modified payment run was that Dynamics AX created several summarized bank postings – one for each day. The next screen-print shows the journal lines and the resulting vouchers.
Note: The major problem with the vouchers generated in the example is that Dynamics AX uses the same voucher number for postings made on different dates. This outcome is likely to result in problems with the company’s auditors, as all accounting standards the author is familiar with, do not allow such kind of postings.


E) Modification 2 – different methods of payments
The next modification made to test the stability of the setup was posting a payment journal with different methods of payments. The result of this second test run was that Dynamics AX still summarized all payments made in one single bank posting. For details, please see the next screen-print.


Within this post the possible summary of payments made into one single bank posting was illustrated. Please note that what has been shown above does also apply to bridge-payment scenarios where all vendor payments are initially made against a bridging ledger account that is in a second step posted against a bank / cash account.

An important prerequisite of the posting summary illustrated is that the payment account used in the vendor payment journal is setup with fixed financial dimension combinations. Otherwise, the financial dimensions used at the invoice level get inherited to the bank / cash account and result in a large number of bank postings.

In addition, it has been shown that the summary does only work as intended, if one single payment date is used in the payment journal. If this cannot be ensured, Dynamics AX will create vouchers that might be questioned by tax and corporate auditors.

Automatic posting of journals



The previous post dealt primarily with the question how the selection and posting of journals can be restricted. Within this post I would like to change the perspective and take a look at a function that allows a periodic posting of a number of journals that have been created.

The “post journals” functionality I refer to here can be found in the General Ledger module in the journal entries section. (In prior Dynamics AX versions it can be found in the periodic General Ledger module section).

As the information that has been provided e.g. on TechNet for the “post journals” functionality is a bit sparse and as several questions in regards to this function have been brought forward recently, I decided summarizing the different setup and processing options in this post.

Note: Please note that the following illustrations and explanations will only refer to posting General Ledger journals. The post journals function is, however, not limited to those kind of journals but can be applied to other journals as well. Please see the following summary.


In order to explain the different setup options of the post journals feature, I started setting up some daily General Ledger journals that included either no error (“OK”), some journal lines with errors (“Partly ok”) or only erroneous lines (“Error”). The next screenshot exemplifies the setup of some of those journals used.


Option 1: Select the journals, and post them
Once all demo journals have been prepared, I opened the post journals window and selected them through the identic button.
EN_127_0010 EN_127_0015
After all journals have been selected, the posting process was initiated by hitting OK button in the post journal form.
The result of this first posting test was that all journals except the ones that contained errors were posted.
Newly created journals that did not contain any error remained, however, unposted.


Option 2: Select the journals and post them by using a batch job
To get also those journals automatically posted that have been created later on, I deleted all unposted previously generated journals, setup some new ones and selected them as before in the post journals form.
This time I changed the posting process by making use of a batch process that runs every some minutes and that does the posting for me.
As before, all journals have been posted except the ones that contained errors.
My next step was setting up a new journal (No. 188) that did not contain any error.
Because of my posting setup I expected that the batch process will pick up the newly generated journal and post it. Yet, as nothing happened, I finally checked the batch job history window and noticed that the batch job stopped because it could not process the first two journals that contained erroneous lines. Please see the next screen-print.


Option 3: As option 2 & select the transfer errors checkbox
As processing newly created journals did not work with the previous approach, I repeated the earlier setup steps and created a number of new journals. This time I tried processing them by selecting the ‘transfer errors’ checkboxes (please see below).
As expected, all journals except the ones that contained errors were posted. After setting up a new journal that contained no error I expected that this time the newly created journal will be posted.
Yet, unfortunately nothing happened to the newly created journal as the batch job stopped as before after detecting errors.
Note: The difference between the 2nd and 3rd setup option is related to the journal that was partly ok. That is, this time all journal lines that did not include an error in the original (partly correct) journal No. 189 were posted and the journal lines that contained errors were transferred to a new journal No. 191 that contains only the erroneous lines.


Option 4: As option 3 but with the late selection and transfer errors checkbox activated
Since none of the prior setup options successfully posted the journals that I created subsequently, I changed the setup in the post journals form once again. This time – after selecting the journals that I want to post – the “late selection” and “transfer error” parameters were activated as shown in the next screen-print.
This time all erroneous journals/journal lines remained unposted as before but the journal that I created later on – in my case journal No. 196 – was finally picked up by the batch process and posted automatically as the following screen-prints prove.
EN_127_0080 EN_127_0085
Note: Despite the fact that the newly generated journal was successfully posted, the batch job still continued running (and ending) with errors because of the two journals that contained lines with errors.
Even though this issue in not directly related to the journal posting process itself, it can become quite cumbersome, as it might flood your mailbox with error messages / Emails if alerts and/or Email notifications have been setup that control the processing of batch jobs.

Journal restrictions


, ,

Over the last couple of months I noticed that people often get confused about the setup of journals and posting restrictions. Within this post I aim to shed some light on the following questions that I often came across:

Question 1:
How to ensure that only specific users can select their journals? Example: Only the chief accountant shall be able to create a new General Ledger journal?
Question 2:
How can you prevent others from posting your journal?

In order to answer the first question I setup the following new General Ledger Journal. Please note that this journal is linked to the user group “DOC” that only has a single user assigned to it.
After setting up the new journal, I logged into Dynamics AX with the respective user account (“DOC”) and created a new journal.EN_AX7_122_0010
After logging into Dynamics AX with a different user account I tried to identify the journal that has been created by the chief accountant “DOC”. Yet, after opening the General Ledger journal form I could not identify (and post) the journal because it was setup for the users included in the user group “DOC” only.
Please note that I also could not create a new “DOC” journal, as the “PROF” user account was not included in the respective user group linked to the journal.

For answering the second question, I setup a new journal that I did not link to a user group. Rather than that, I specified that all of my users can only post the journal they created.
After setting up this second journal, I logged into Dynamics AX as chief accountant “DOC” and created a second journal.

After logging off and logging on again with a different user (“PROF”) I could identify the journal that was created by my chief accountant (“DOC”). Yet, once I tried posting the journal I noticed that I could not post it because of the posting restrictions setup.

To sum up, by linking a specific user group in the blocking section of the journal names setup form you can allow only specific people creating and posting specific journals.
The posting restriction feature allows identifying journals that have been created by other users but can prevent other people from posting journals that you created. However, this requires that you specify and select those users that face this restriction as Dynamics AX does by default not restrict any user from posting other people’s journals.


Hope that this post shed some light on the setup of journals and posting restrictions and look forward to seeing you in the next posts again.

Parallel accounting according to the “Cost of Sales” and “Nature of Expense” accounting method (5)


, , ,

C.6. Sale of goods
Within the last part of this series on the COS & NOE accounting method, the item that has been produced before will be sold for 1000 EUR / pcs through a standard customer sales order shown in the next screen-print.

The first sales order related voucher is created when the sales order packing slip is posted. In the example used, Dynamics AX created the following voucher:
As only Balance Sheet accounts are addressed, no influence on the company’s Income Statements can be identified and as a result, no difference between the COS and NOE method arises.

The next and final posting step in my example is related to the sales order invoice. The voucher created when posting the invoice is shown in the next screen-print.

For reasons of clarity and traceability, the vouchers created when posting the sales order packing slip and sales order invoice, have been summarized in the next illustration.

  • Similar to the previous chapters, all transactions that offset each other have been highlighted in grey color. In the example used, the packing slip voucher is reversed with the posting of the sales order invoice.
  • All accounts highlighted in green color represent Balance Sheet accounts that debit a receivable account and credit the inventory account that traces the stock reduction due to the sale of the finished item.
  • The first yellow highlighted Income Statement account no. 40500 records the sales revenue of 1000 EUR. This transaction is self-explanatory. The posting on the second Income Statement account no. 50500 on the other hand requires some explanation, as it is used and interpreted differently from a COS and NOE accounting perspective. That is, from a COS perspective the amount recorded on ledger account no. 50500 is included in the cost of sales section and directly influences (reduces) a company’s profit. The reduction in a company’s profit does also occur when the NOE method is applied. Yet, for the NOE method this account represents a stock variation account and consequently needs to be included in the stock variation section of the company’s income statement.

The following financial statements summarize the sales order related transactions resulting from the sales order invoice posting.


D. Summary
Within this series on the COS and NOE accounting method I demonstrated that Dynamics AX can be setup in a way to generate financial statements that follow both accounting methods in parallel. This also holds for situations where other inventory valuation principles, such as standard costs, moving average costs, etc. are used.

Irrespective of those valuation principles and differences thereof, the key to a successful parallel implementation of both principles is a “correct” setup of your chart of accounts and related account structures.