Tested on: ProjOps version 4.0.0.726 (public preview)
Dynamics 365 Project Operations introduces certain enhancements to Quotes and Project Contracts. All enhancements are described in the 2020 release wave 1, and one of them is split billing. With this new feature, it’s possible to add multiple accounts to a Quote or a Project Contract (Order) and define a billing split percent for each added account. Split billing for Project Contracts can be defined by creating either Project Contract Customers on a Project Contract or Project Contract Line Customers on an Order Line. This blog post explains both approaches and focuses on the Order entity. The feature works in a similar manner on the Quote entity.
Project Contract Customer entity
The split billing feature introduces a new entity named Project Contract Customer to the data model many are familiar with from Dynamics 365 Project Service Automation. Looking at relationships with other entities, there’s also an entity named Project Contract Line Customer. We’ll look at it in more detail later on this post. Before we look at setting up split billing on a Project Contract, the table below can be used to reference some of the relevant fields on the entity before the Dynamics 365 Entity Reference is updated to include Project Operations entities.
Display Name | Schema Name | Primary Field | Primary Key |
---|---|---|---|
Project Contract Customer | msdyn_projectcontractsplitbillingrule | msdyn_name | msdyn_projectcontractsplitbillingruleid |
Setting up split billing on a Project Contract
Project Contract Customers are added on a Project Contract level when the intent is for new Order Lines to pick up the defined PCCs and the related billing split percent. This makes creating Order Lines a bit faster as new Order Lines inherit PCCs as Project Contract Line Customers.
Navigating to Order, we can find a tab named Customers on the Project Information form. By default, the Account set in the Customer lookup on an Order is added in the Project Contract Customer subgrid with a billing split percent of 100 %. Adding additional Project Contract Customers is very straightforward and it’s done from the quick create that opens up when clicking on New Project Contract Customer on the subgrid.
The following fields are of specific interest when setting up split billing:
- Account: Project Contract Customer being added for split billing.
- Billing Split Percent: The percentage of the contracted value that will be invoiced.
- Is Rounding: Indicates if the account in question will bear rounding costs or not.
- Not-to-exceed Limit: Currency field for NTE.
As I’m writing this blog post, I’ve not yet looked at the impact of the Payment Terms msdyn_paymenttermsid field. I will update this post as I learn more about it. The exact impact of the NTE field is also still abstract until I dissect the concept of NTE. Be on the lookout for a post on NTE in the near future.
As the original Account on the Project Contract has a defined billing split percent of 100 % and the split for the new Project Contract Customer was set to 20 %, an error of a split exceeding 100 % is displayed. The billing split percent for both records can be changed by opening the records. If the desired outcome is an even split, the subgrid has a button named Evenly Distribute.
Project Contract Line Customer entity
Project Contract Line Customer is another new entity to the data model. PCLCs are created on an Order Line level and are thus Order Line specific. When PCLCs are created, the records roll to Project Contract level as Project Contract Customers. The table below can be used to reference some of the relevant fields on the entity before the Dynamics 365 Entity Reference is updated to include Project Operations entities.
Display Name | Schema Name | Primary Field | Primary Key |
---|---|---|---|
Project Contract Line Customer | msdyn_projectcontractlinesplitbillingrule | msdyn_name | msdyn_projectcontractlinesplitbillingruleid |
Setting up split billing on an Order Line
Adding Project Contract Line customers works exactly like adding Project Contract Customers. The Project Information form on the Order Line entity has a tab named Customers, just like on the Order entity. If Project Contract Customers exist and a new Order Line is created, the Order Line will inherit the PCCs as Project Contract Line Customers.
Billing split percent on a PCLC works just like it does on Project Contract Customers. A split can be defined manually and it can be distributed evenly across all PCLCs.
Split billing examples on a T&M project
Let’s look at what split billing looks like in action. The first example is as follows:
- Account in Customer lookup: A Lorem Ipsum
- Project Contract Line Account 1: A Lorem Ipsum
- Project Contract Line Account 2: Excavators Inc
- Billing Split Percent: 50/50
- Billing Method: T&M
Let’s investigate what the Actuals looks like when a Time Entry for 8 hours is created for the project associated with the T&M Order Line. As we can see both Cost and Unbilled Sales Actuals are split according to the billing split percent that was set on the Order Line.
The second example is a bit different. Let’s see what happens when the Time Entry from the previous example is corrected to another project. The T&M Order Line the other project is associated with has different Project Contract Line Customers than what we had on the Order Line in example 1.
- Account in Customer lookup: Ro-botics Bros Inc
- Project Contract Line Account 1: Ro-botics Bros Inc
- Project Contract Line Account 2: Weld and Wield Inc
- Billing Split Percent: 50/50
- Billing Method: T&M
Navigating to Sales/Transactions/Approved Time, we can see both Actuals from the previous example. Whichever Actual we choose to correct, the Time Entry that is added to the correction journal will be the original Time Entry of 8 h. I.e the original Time Entry is corrected as a whole, even though split billing was used to split the resulting Actuals 50/50 for two different customers. The original Time Entry remains as it is as the origin for the transactions.
When the correction journal is confirmed, new Actuals are created. We can see that the correction honors the split defined on the Order Line the new project is associated with. Actuals for the original Time Entry will be split 50/50 between Ro-botics Bros Inc and Weld and Wield Inc. Both Cost and Unbilled Sales Actuals for A Lorem Ipsum and Excavators Inc from the first example are reversed. The original Time Entry record remains as is. I.e it points to the original project from the first example.
Frequently Asked Questions
Terminology:
PCC = Project Contract Customer
PCLC = Project Contract Line Customer
Q: What happens when Distribute Evenly is used when there are 3 Project Contract Customers?
A: The PCC set as Is Rounding gets the rounded-up value.
Q: What happens when new Order Lines are created after Project Contract Customers with billing split percent have been defined?
A: New Order Lines will inherit PCCs as Project Contract Line Customers with a matching billing split percent.
Q: What happens when Project Contract Customers and billing split percent are defined when Order Lines with Project Contract Line Customers already exist?
A: Nothing. Order Lines do not inherit PCCs as PCLCs.
Q: What happens when Project Contract Line Customers and billing split percent are defined when no additional Project Contract Customers beyond the Order’s original PCC exist?
A: The Order inherits the PCLCs as Project Contract Customers. The billing split percent from Order Lines are not rolled down. All PCCs that are rolled down will have a billing split percent of 0 %.
Q: If Project Contract Customers on a Project Contract are A and B, can Project Contract Line Customers on the Project Contract’s Order Line be C and D?
A: Yes. The Project Contract will inherit C and D as PCCs with a billing split percent of 0%.
Q: If Project Contract Customers have billing split percent of 50/50, can the same accounts be Project Contract Line Customers with a different split (for example 80/20)?
A: Yes.
Hi Antti – nice post! Thanks!
Regarding NTE, in PMA land we’ve had it for a while, where it’s called the Funding Limit. Essentially these are primarily for Time and Materials projects that have a capped limit. The project is billed t&m up until the point of the limit, you can continue to post costs but the system will automatically switch the transactions to non-billable. Assuming NTE is same/similar concept perhaps ? Will give it a go when I finally get around to playing with the preview 🙂
Hi Maz,
Thanks for the feedback. I’ve played around with NTE now and it’s pretty much like you described. I’m publishing a blog post on NTE in the very near future.