Intercompany project invoicing in practice: Setup
The most comprehensive guidance on the Intercompany Project Management in Dynamics 365 for Finance used to be the blog of Brian Welcker, the historical product manager of the feature. The original source must have disappeared from the Microsoft sites, but a copy remains in the community archive:
intercompany-project-invoicing-in-ax-2012-r3-part-1
intercompany-project-invoicing-in-ax-2012-r3-part-2
However inspiring this source used to be, consultants face a challenge setting this up: in which company which configuration needs to be placed? I will try to fill this knowledge gap.
Prerequisite setup
First of all, you need to go to the General ledger > Posting setup > Intercompany accounting form, pick some accounts and journals and establish a connection between the borrowing legal entity (the one leveraging resources of a subsidiary and issuing invoices to the end customer) and the lending entity (the one providing the workforce and absorbing the cost). Use the button Create reciprocal relationship to make the connection bi-directional.
The reason for this setup is the most profane: without it you cannot choose the lending / borrowing entities in any of the following configuration forms.
In the borrowing company, create a supplier (en-us: vendor) representing the lending company. Pick the known name from the global address book to reuse the legal entity addresses, phones etc. in the supplier card. You can also create a supplier right from the GAB.
In the lending entity, create a customer record representing the borrowing company in a similar manner. With the button General / Intercompany, establish a trading relationship between the two by connecting the supplier with the customer or vice versa. No other Intercompany settings are relevant, because the project intercompany recharge works through the free text invoices and pending supplier invoices with procurement categories (and not through the sales orders and purchase orders with items).
Core Lending company configuration
The lending legal entity barely requires any project management and accounting configuration at all! The project groups, projects, the billing project categories, the “line properties” (billable vs. non-billable) remain in the borrowing entity.
Still, you better replicate the relevant project categories in the lending company, because without it the system is going to fail deriving the Item VAT groups (en-us: Sales tax item groups) when making an intercompany invoice to the borrowing entity, and it is a reason weighty enough. Since you need the project categories, you will create the project Category group(s) too.
The project category does not really require any project-specific GL integration. However, a notorious ‘feature’ of the timesheet posting demands a ledger account for the Project cost and the Payroll allocation, even if the project group stipulates Never ledger i.e. do not post the hours into the General ledger. Moreover, a setting per Category group will not work for a reason unknown; it must be an All-All line in Project management and accounting > Setup > Posting > Ledger posting setup:
On the Revenue accounts tab, select the Intercompany revenue account(s). Again, only the All-All seems to work.
Should the same subsidiary provide multiple fellow companies with the services, the revenue accounts may vary (e. g. between domestic IC partners and export partners). In Dynamics, they may be differentiated by the Borrowing legal entity (this column did not exist in Dynamics Ax2012, an improvement indeed):
The most crucial setup is actually the [weekly] timesheet period template (Project management and accounting > Setup > Timesheets > Timesheet period types):
Use the Generate periods button to pre-populate the weeks one year ahead, then navigate to Human resources > Workers > Employees and assign this TSWeek Period type under the Project / Project setup button to all the employees who must record time, then come back, click the obscure Update timesheets periods and Update worker periods. No, these manipulations do not make much sense, but they are absolutely necessary.
Next, open Project management and accounting > Setup > Project management and accounting parameters and make sure that the Timesheet and the Timesheet voucher number sequences are set, but most importantly, flip the Enable intercompany resource… slider and choose the Borrowing legal entity below.
The Timesheet review workflows are [sadly] local to every legal entity: Project management and accounting > Setup > Project management and accounting workflows. The timesheet approvers may (and should) be people from different companies, an access to the lending company and the Project supervisor role provided. The workflow setup may be easily exported from one company and imported into another.
Finally, set the Project management and accounting > Setup > Prices > Transfer price: this is what the headquarters will be charged for the services provided.
Most of the time, there will be a fixed internal price per hour, and a setting to recharge [travel] expenses and – possibly – subcontracted services with no or little uplift (that’s the rationale behind the Contribution ratio = 0 on the above screenshot).
And no, the fixed transfer price can hardly be further differentiated by departments but only the [customer-facing, billing] project categories. This can be a nuisance; still, the different internal cost rates by department/maturity/roles may be accounted for by a [tedious] list of prices by single persons (see the Resource column) or by Role IDs (however, the latter option puts a burden of picking the proper roles in every timesheet line).
Core Borrowing company configuration
The borrowing company holds most of the Project management and accounting machinery, including the projects themselves, the billing settings and the [higher] sales prices for hours and expenses, should the project be billable on a time and material basis:
Check the Project management and accounting parameters: do NOT set the flag Set the cost price as the sales price by default on the General tab: this will erase the hours sales price from the posted IC invoice and the billing of the services to the end customer is going to fail.
Most importantly, the Default category must be selected on the Intercompany tab:
This single procurement category is used as a stub in all incoming pending IC invoice lines; in fact, it must not be integrated with the project categories or posting at all! It doesn’t even need to be integrated with the GL in the Inventory management module either, as the special Intercompany cost account is used at all times:
When looking for the cost account, the pending supplier (en-us: AP) invoice accounting distribution respects the original hour categories chosen in the timesheet, not the expense procurement category used as a placeholder in the invoice line. In conjunction with the Lending legal entity column (fun fact: the Lending legal entity may not be selected from the drop-down list, but only manually typed in) this helps assign different cost account by different ICO parties and/or kind of services delivered.
This concludes the specific configuration of the borrowing LE.
Process
Let’s dive into the business process demonstration: Intercompany project invoicing in practice: Process!
Project Management and Accounting blog series
Further reading:
Advance payment invoices in Fixed fee projects in D365, D-A-CH style
What Item requirements can’t do
Revenue recognition with project budget shadow forecasts
Intercompany project invoicing in practice: Process
Intercompany project invoicing in practice: Setup