Title: Multi-company or Intercompany Billing
This process may be used to handle billing between two different departments, organizations, or companies within the same instance of Unanet.
What’s covered in this document:
Example and Overview
An example will be used throughout this page where Legal Entity 1 is subcontracting to Legal Entity 2.
Employee 1 (employed by Legal Entity 1) is working on the subcontract.
(Note that Employee 2, an employee of Legal Entity 2, would typically not be working on the subcontract, but would be working on the actual contract with the customer. If Employee 2 was actually working on the intercompany subcontract for some reason - very unlikely, but possible - there would need to be another intercompany project from A to B set up in addition to the main subcontract from B to A.)
Assuming both companies are in the same Unanet instance:
- Legal Entity 1 will be set up as a Financial Organization and Legal Entity, and also designated as a Vendor of Legal Entity 2.
- Legal Entity 2 will also be set up as a Financial Organization and Legal Entity, and designated as a Customer of Legal Entity 1.
Two projects will be set up to represent the actual client contract and the intercompany subcontract.
A vendor invoice will be created via export/import to create the intercompany subcontract expense in Legal Entity 2.
Legal Entity 1: designs Trucks
Legal Entity 2: designs Rockets
- Client has three extremely active Legal Entities.
- People in each entity work on many projects for the other entities.
- Need to track that work, bill the other Legal Entity, and use an automated method.
- Note: in this example work done in one Legal Entity for a project in another Legal Entity is billed as an ODC.
Create the legal entities needed, add both customer and vendor profiles for each Legal Entity. Be sure to add Org addresses, since you will be billing.
Ensure that you have created an Organization which represents the Subcontracting company, and that it is designated as a Financial Org and Legal Entity.
Ensure that this subcontracting Organization is set up to be a Vendor of the main organization (Organization Vendor Profiles). In this example, subcontracting Legal Entity 1 is a Vendor of Legal Entity 2. During regular processing, this will allow you to designate Legal Entity 1 on the Vendor Invoice as the Vendor (see Export/Import section below).
Now set up the primary organization (Legal Entity 2) as a Customer of the subcontracting organization (Organization Customer Profiles) as below. This will allow you to designate Legal Entity 2 as the Customer Project Org on the subcontract project owned by Legal Entity 1. (See Project Setup below.)
Admin > Setup > Project Types
Set up a Project Type for Intercompany, and make sure the billable flag is checked, as one company is billing the other. See the example below of "INTERCO_B." Note that if you also have intercompany billings that pertain to indirect work you may also need to create Project Types of "INTERCO_OH" or "INTERCO_GA."
Admin > Setup > Accounts
Create accounts to be utilized for our intercompany transactions.
Admin > Setup > Expense Types
Set up Expense Types to and from all Legal Entities. In the example below there are three Legal Entities, and each has a To and From Expense Type.
Admin > Setup > Mapping of Project Types and Cost Accounts to Expense Types
Now that your Expense Types are created, map to them from Project Types and Cost Accounts.
Admin > Setup > User-Defined Fields
Project User-Defined Fields: You may need to store various intercompany posting values in UDFs depending on how you need to determine the accounts/orgs/projects, etc., to be posted by the intercompany invoice export (see Export/Import section below).
For example, you may want user-defined fields on the Sub project to reference the primary project:
- Primary Customer (Org Code)
- Primary Project Code
Note that if you have a consistent naming convention for your Project Codes, you may be able to eliminate the need for UDF #8 in the example above.
Admin > Setup > Invoice Number Formats
Create an invoice number format to be used specifically for intercompany transactions.
Admin > Setup > Posting Group Configuration
The Posting Group should be set up to pull the following accounts from the Project level as outlined in the table and screenshot of Posting Groups below.
- Note the org source for the various items.
- Note fixed accounts for Billed, Deferred Revenue, and Unbilled.
- Variable accounts on Labor Cost and Recognized Revenue.
- Make sure to set up underlying accounts where needed.
- We haven’t set up projects yet; we need to remember to select accounts on our projects and/or tasks if needed.
|Account Category set to pull Account from Project in Posting Group (see first screenshot below)||Account designated in Project Profile (see screenshot below under "Project Profile Accounts")|
|Deferred Revenue||Intercompany Deferred Revenue|
|Fixed Fee Adjustment||Intercompany Fee Adjustment|
|Funding Cap Adjustment||Intercompany Funding Cap|
|Revenue Write-off||Intercompany Revenue Write-off|
Admin > Setup > Cost Elements and Structures
Set up new ODC cost elements to correlate to the new intercompany Expense Types.
In the Cost Structure example below we are showing one Cost Structure. In real life you likely would have one Cost Structure for each Legal Entity.
Be sure to map new Expense Types to new Cost Elements for all Legal Entities.
Do not include in the formulas in the GA section on the Indirect Costs as you don’t want to burden twice.
Admin > Setup > Cost Report Updates
Be sure to edit your Cost Report definitions to factor in the Cost Elements you created.
Admin > Setup > Bank Accounts
Create bank account to reconcile intercompany transactions.
Admin > Export > Upload Export Template and Configure as appropriate
This export template should be uploaded via Admin > Export > Import: Export Billable Interco AR in form of AP (29).csv
It is an AR export (export of the Invoice) that is formatted as a Vendor Invoice.
Edit the template as appropriate for your instance of Unanet and for how you want the resulting Vendor Invoice to function.
Examples of edits to the template you will want to consider are:
- Calls to Project user-defined fields to determine posting values.
- Hard-coded accounts or logic for accounts.
- The actual customer for
dtl_proj_org_codeand the Primary project (see Project Other above).
- Logic for "invoice amount" and "detl amount." Logic will need to be coded and tested.
- Any logic that uses Org naming conventions to point to the appropriate Legal Entity.
Two projects will be set up as follows: One project which represents the actual client contract, and a second project which represents the subcontract work.
Project Code Naming Convention
Regarding the naming convention for the two Project Codes, you may want to name them similarly for ease of reporting and searching. For example, if the contract is called 1234-ABCD, then the 2 projects could be:
Setup of the two project profiles for Owning Org and Project Org
Actual/Primary Contract Project LEGAL ENTITY 2
Intercompany Subcontract Project LEGAL ENTITY 1
Financial Org of Legal Entity 2
(Legal Entity 1 is set up as a Vendor Profile in Legal Entity 2)
Financial Org of Legal Entity 1
Project Org (Customer Org)
Actual Customer eq CUSTOMER-1
Legal Entity 2
(need to set up a Customer Profile in Legal Entity 1 Org)
1234-ABCD with smart project naming convention for easy export template mapping
(or in screenshot below "ROCKET_MANNED")
|1234-ABCD-INTERCOMPANY-SUB with smart project naming convention for easy export template mapping|
(or in screenshot below "INTERCO_ROCKET_MANNED")
|Charges are from||Employees of Legal Entity 2||Employees of Legal Entity 1|
|Billing Type||As appropriate (CP, TM, FP)||Typically CP (cost plus burdens) or possibly TM, as your finance team decides. Unlikely that it would be FP.|
|Project Type||As appropriate (G&A, Billable)||The intercompany version of the Project Type that you set up.|
In this example, LE-1 is doing work for LE-2 for the ROCKET_MANNED project. This is the project that the LE-1 people will charge to:
On the mirror project, be sure to change Posting Group on the Accounting tab to the intercompany Posting Group, and add the UDF values.
Project Profile Accounts
In the Subcontract Project, select Accounts in the Project's left menu, the three accounts outlined in Admin > Setup above (screenshot of Project Profile Account Setup below).
Project Profile > Accounting tab > Billing Type
The Billing Type of the intercompany subcontracting project is based on the intercompany subcontract arrangement, which may, or may not, be consistent with the Billing Type of the Customer contract.
The subcontract Vendor Invoice will be treated the same as any other Vendor Invoice when charged to the Customer contract.
You may or may not need to bill the Vendor Invoice to the actual customer based on the billing type of the actual contract. The only thing you definitely need to do is to get the subcontract cost on the project.
Project Profile Other
Populate any user-defined fields if you initially configured an Export to pull data out of Unanet (as described in the Admin > Setup section above).
The project should otherwise be set up like a normal project based on what the sub company will be billing the company that has the actual project with the end customer.
If you are using Tasks, then you will also want to copy the Tasks from the original project and add them to the intercompany project. You can do this by exporting Tasks from the original project and importing onto the intercompany project.
Export Tasks from Main Project (LE-2).
Update Project Org Code and Project Code values to reflect mirror project. Import tasks into Mirror Project (LE-1).
And lastly, don’t forget to:
- Update the accounts on the left menu of the project profile of the intercompany, or mirror project.
- Set up billing info, being sure to check generate Unanet invoice, use new invoice format, etc.
Time and Expense Charging
Employees in Legal Entity 1 working on the subcontract will typically charge to the Subcontract project.
Employees in Legal Entity 2 working on the contract will typically charge to the Primary Contract Project.
Assignments should be made accordingly.
Billing and Revenue Post
Filter to correct Legal Entity and only the intercompany Project Type.
Below are the results of the billing & revenue post. Note the debit to "Interco Unbilled" and credit to "Interco Cost Transfer (to)."
Invoice the Subcontract Project
When the Subcontract project is invoiced, it will create the intercompany AR balance in the subcontracting company.
Be sure to complete the Invoice in order to make its data available in the Export step below.
Once the invoices are completed, you can see in the GL Details report that it has debited intercompany due from, and credited unbilled intercompany.
Export/Import to Create Vendor Invoice
Once you have set the Subcontract project invoice to the Completed status, you will perform an export/import to generate a Vendor Invoice. The Vendor Invoice file will specify the subcontracting company (Legal Entity 1) as the Vendor in order to book the intercompany subcontract expense in Legal Entity 2.
Export the invoice using an Intercompany Billing export template. This is an AR export that creates a Vendor Invoice import document that will be imported into the related company. The values used in the export will be determined based on client requirements.
- The resultant file will look something like this sample: Export Billable Interco AR in form of AP (29).csv
Import the intercompany vendor invoice into the company for which the intercompany Sub work was performed. This will create the intercompany payable and intercompany subcontract expense in the project with the customer. This would be treated the same as any other expense going into the project.
Exporting the customer invoice(s) from LE-1. The export template has been written in a format to import as a vendor invoice, which will be imported into LE-2. Make sure that the AP liability account is pointing to our intercompany payable.
For export - filter invoice field for %interco, and fill out fields for Voucher date.
Save the file, as we will need to import it.
Retrieve the file just saved, and import as a vendor invoice.
The result of the import may depend on your vendor invoice approval settings - requires and conditionally requires will flip to Inuse status, because the system is looking for an approval group to be selected.
Optional and disabled approvals will update the status to Approved automatically when you select Submitted for the import, so that the vendor invoice is in a status ready to post.
Results of Vendor Invoice import:
You can see the accounts on the vendor invoice within LE-2 (Rockets), that LE-2 has a liability to vendor LE-1 (Trucks), and the expense is the intercompany direct cost transfer in.
Running the JSR should look like this:
Invoice the Primary Project
When you go to invoice the Primary Project, the expense and labor from the imported Vendor invoice will be included.
Mirror project - ensure Task names are in sync with the main project.
Caveat on reporting needs if you want to show the JSR (Project Job Summary Report) rolled up for the project across all Legal Entities:
- While you may categorize the “contra” account in the Legal Entity where the work is done as an offset to direct costs, in the JSR, Unanet thinks of the offset as Revenue (based on the Billing & Revenue Post). This would result in a double count of the “revenue” from LE-1 as it was an ODC in LE-2.
- One possible resolution here is a special JSR for rolling up across multiple LE’s that reverses out the ODC’s that have been transferred.