Budget line match priority

Applies To: Project Operations for resource/non-stocked based scenarios, Lite deployment - deal to proforma invoicing.

Budget line match priority defines the order in which an actual is matched against the different dimensions of budget lines.

As part of the solution update that includes project budgeting, the Budget line match priority table is created in the solution.

You enable the project budget feature by using a feature flag. For more information, see Enable the project cost budget feature.

Note

After the project budget feature is enabled in an organization, it can't be disabled. However, you don't have to create a budget for every project.

After the feature flag is enabled, the Budget match priorities tab should appear on the project parameters main page. This tab shows the following default rows that are applicable for the Time, Expense, and Material transaction classes in the context of a class.

Field name Applicable transaction class Context Budget match priority
msdyn_unitschedule Expense Cost 0
msdyn_task Expense Cost 10
msdyn_transactioncategory Expense Cost 20
msdyn_costtype Expense Cost 30
msdyn_accountvendor Expense Cost 40
msdyn_unitschedule Material Cost 0
msdyn_task Material Cost 10
msdyn_product Material Cost 20
msdyn_writeinproductdescription Material Cost 30
msdyn_costtype Material Cost 40
msdyn_accountvendor Material Cost 50
msdyn_unitschedule Time Cost 0
msdyn_task Time Cost 10
msdyn_resourcecategory Time Cost 20
msdyn_resourceorganizationalunitid Time Cost 30
msdyn_bookableresource Time Cost 40
msdyn_costtype Time Cost 50
msdyn_accountvendor Time Cost 60
msdyn_unitschedule Expense Sales 0
msdyn_task Expense Sales 10
msdyn_transactioncategory Expense Sales 20
msdyn_unitschedule Material Sales 0
msdyn_task Material Sales 10
msdyn_product Material Sales 20
msdyn_writeinproductdescription Material Sales 30
msdyn_unitschedule Time Sales 0
msdyn_task Time Sales 10
msdyn_resourcecategory Time Sales 20
msdyn_resourceorganizationalunitid Time Sales 30
msdyn_bookableresource Time Sales 40

Note

msydn_unitschedule with the display name Unit Group, is a match priority which cannot be updated or deleted. This match priority ensures that the unit match and conversion happens in a right way.

How does budget match priority work?

Time entry, expense entry, or material use is submitted against a project for approval. After it's approved, it's considered an approved actual that's used in project cost and sales budgeting calculations.

Actuals have dimensions that define an actual. Here are some examples:

  • The task that the actual is created against
  • The role of the resource that's submitting the time entry
  • The name of the material that's used
  • A flight expense that's billed against a project
  • A time entry from a subcontractor that's approved by a project manager

When actuals are posted against a project, they must be mapped to the correct budget lines. This mapping is done by matching the dimensions of incoming actuals with the dimensions of all budget lines in the cost budget. An actual is matched to the budget line that matches most of its dimensions.

During matching, the order that the matching algorithm works in is defined by the Budget line match priority table.

Priority 1 is the highest priority for dimensions of a transaction class. The algorithm tries to match all dimensions of an actual against all budget lines.

If no match is found and no error is encountered, the matching algorithm skips the lowest-priority dimension, according to the budget line match priority table, and attempts another match. This process is repeated until a match is found or an error occurs. If multiple budget lines match an actual, this situation is considered an error.

Example

This example shows how the process works for an expense that's posted against a project. The following table shows the priority order in which the actual is matched for an expense if the default budget match priority is used.

Field name Applicable transaction class Context Budget match priority
msdyn_transactioncategory Expense Cost 1
msdyn_task Expense Cost 2
msdyn_costtype Expense Cost 3
msdyn_accountvendor Expense Cost 4

The actual expense is matched to the budget line where the largest number of dimensions is matched.

  1. The matching algorithm tries to match a budget line where msdyn_transactioncategory, msdyn_task, msdyn_costtype, and msdyn_accountvendor are defined.
  2. If there's no match, the lowest-priority dimension, msdyn_accountvendor, is avoided in the next attempt to match against a budget line.
  3. If there still is no match, the next-lowest-priority dimension, msdyn_costtype, is avoided in the next attempt to match against a budget line.
  4. The process continues until a unique budget line is matched or an error is encountered.