Utilizing Burden Extensions WP
Utilizing Burden Extensions WP
Utilizing Burden Extensions WP
Glossary ............................................................................................ 2 Executive Overview ........................................................................... 3 Burdening Overview .......................................................................... 3 Compiled Multipliers ...................................................................... 4 Example of Burden Cost Calculations............................................ 6 Adjustments to Burden Cost .......................................................... 6 Limitations ..................................................................................... 7 Using the Burden Cost Calculation Override Extension ..................... 7 Requirements ................................................................................ 7 Solution Overview.......................................................................... 8 Examples of Burden Cost Calculations Using the Extension ......... 8 Process Flow with Burden Cost Calculations Extension .............. 10 Implementing the extension ......................................................... 12 Handling adjustments to actual burden cost calculated with the extension .................................................................................................... 13 Using the Burden Grouping Extension ............................................. 15 Using the Burden Costing Extension ............................................... 16
Glossary
Burden Cost Code - Burden cost codes represent the types of costs that you want to allocate to raw costs. Burden cost
amounts are calculated for each burden cost code, and these amounts can then be accounted and reported separately from the raw costs.
Burden Cost Base A burden cost base is a grouping of expenditure types. Transactions using any of the expenditure
types in a cost base have specific burden cost codes applied while calculating the burden costs for a the transaction.
Burden Structure - A burden structure is a definition of how burden cost codes and expenditure types map to a burden
cost base.
Burden Schedule Version - A burden schedule versions define the multipliers that will be applied for each burden cost
Burden on Same Expenditure Item: aka Same Line Burdening The method of calculating the burden cost for an
expenditure item and storing and reporting it as a single amount on the same expenditure item as the raw cost. This option is set on the project type.
Burden on Separate Expenditure Item: aka Separate Line Burdening The method of calculating the burden cost for
each burden cost code related to the burden cost base that an expenditure item belongs. With this method, expenditure items are created for each burden cost code, and therefore the burden costs are accounted and reported at a more granular level.
Summarized Burden Expenditure Item The expenditure items that account and report for the individual burden cost
codes.
Executive Overview
Oracle Fusion Project Portfolio Management provides a very robust and dynamic engine for calculating the fully loaded or burdened cost for projects. There are various ways to calculate, account for and report on the burdened amounts and the details behind the burdened amounts. However, the way that transactions are mapped to cost bases, which cost codes are applied to transactions, and how the burden cost amount is calculated is not extensible and limited to the standard setup and rate definitions. This white paper describes how you can utilize the Burden Cost Override Extension to change the standard behavior when calculating burden cost. The overview section describes the procedures for setting up and calculating burden costs. The paper then describes how the extension can change the default behavior to satisfy specific requirements that are not met with the standard solution.
Burdening Overview
Defining the burdening infrastructure begins with determining what types of burden costs you want to apply to the various types of costs that your organization will incur. For example your organization can apply burden costs such as Overhead, Fringe, or Fees. You define these types of burden cost as burden cost codes. The next step is to define the pools of costs to which specific cost codes are applied, for example Labor, Expenses, Material, etc. These pools are called cost bases. The cost codes and cost bases come together in a burden structure. Within a burden structure, expenditure types are related to a specific cost base to identify which transactions belong to a cost pool. You assign cost codes to each cost base to determine the burden costs to apply to the transactions within that cost pool. Burden structures have a type of either Additive or Precedence, which determines if the amount calculated for each burden cost code is based only on the transaction amount, or based on the running total of transaction amount plus the cost codes with a higher precedence.
Next, you assign burden structures to burden schedules. Burden schedules have date-effective versions, which in turn have a set of multipliers. You enter multipliers for each cost code by expenditure organization, enabling you to enter multipliers at a higher level of the organization hierarchy so that the multiplier automatically apply to the child organizations, unless you choose to explicitly define different multipliers for those lower-level organizations when required. This diagram illustrates a basic example of the calculation of burdened cost on three different cost bases: labor, materials and expense.
Compiled Multipliers
You enter multipliers for each burden cost code on the burden schedule version and build the version to increase the speed of the calculations. The build processing compiles the entered multipliers to increase the calculation efficiency. As a result, the multipliers that you enter are not always what the application applies to the transaction raw cost amount to calculate the burden cost for each cost code.
When you define a burden structure, you select a structure type and then create the cost bases. You can assign multiple burden cost codes to each cost base. During build processing, the application computes complied multipliers for each cost base, taking into account the entered multipliers for each burden cost code. The application later uses the cost base multipliers to calculate the burden cost for transactions because the details of the individual burden cost codes are not needed. The following examples compare entered and compiled multipliers for both Additive and Precedence type burden schedules. Notice that in the Additive type, the compiled multipliers are simply equal to the entered multipliers.
PRECEDENCE
ENTERED MULTIPLIER
COMPILED MULTIPLIER
1 2 2 3
1 2
.50 .10
PRECEDENCE
ENTERED MULTIPLIER
FORMULA
COMPILED MULTIPLIER
1 2 2 3
EXPENDITURE TYPE
RAW COST
BURDEN COST
BURDENED COST
Labor
$800
= Compiled Rate for Labor Cost Base (1.3925) * Raw Cost = $1114
$1914
EXPENDITURE TYPE
RAW COST
BURDEN COST
BURDENED COST
$800 $0 $0 $0 $0
0 = Compiled Rate for Overhead Cost Code (.50) * Raw Cost = $400 = Compiled Rate for Fringe Cost Code (.375) * Raw Cost = $300 = Compiled Rate for G&A Cost Code (.30) * Raw Cost = $240 = Compiled Rate for Fee Cost Code (.2175) * Raw Cost = $174
All of these adjustments are handled the same way with a single exception that is described in the next paragraph. When any of these adjustments are performed, two new cost distribution lines are created. The first new line mirrors the previous cost distribution line but with the inverse quantity. This line reverses out the impact of the previous line; however the accounting and project accounting dates and periods on the reversing line are not copied directly from the original line.
The application derives the dates and periods based on the current period statuses to ensure that new distributions are not created in closed periods. The second line is created with the actual quantity of the transaction and any new attributes that have been adjusted (billable, work type, etc.). The raw and burdened costs are recalculated based on the current rate definitions.
The exception to this rule is when you initiate burden cost recalculation from the Manage Burden Schedules page and the projects impacted by the adjustment use the option to create separate expenditure items for each burden cost code. In this case, reversing cost distribution lines are not created. Instead, the compiled multiplier reference (compiled_set_id) on the existing cost distribution is moved to the prev_compiled_set_id and the latest compiled_set_id is populated. When the Generate Burden Transactions process is run, the view (pjc_cdl_burden_detail_v) returns results to reverse out the existing burden amounts, using the prev_compiled_set_id, as well as results using the latest compiled_set_id. These amounts are summarized with the end result being expenditure items created for the net difference of the previous and latest compiled multipliers.
In order to use revised burden rates on existing project plans, budgets, or forecasts, you must choose to refresh the rates. For project plans, you can refresh rates for the selected resource. For budgets and forecasts, you can refresh rates for the selected resource or the entire version.
Limitations
Although the standard burdening solution is very flexible, scalable, and meets a majority of business requirements, a few limitations exist as to how and when burden costs are calculated. These limitations include: The basis for the burden cost calculations is always the raw cost of the transaction. The full list of burden cost codes for a cost base is always applied and the multipliers are static once the burden schedule has been built.
Requirements
Several use cases have been identified that the standard burdening solution does not satisfy. A fixed rate should be applied based on the quantity of the specific transaction, instead of a multiple of the raw cost. For example, you need to apply a fee based on the number of hours worked, as opposed to the salary that a particular individual receives. In this case the burden cost equation becomes Raw Cost + (Quantity * Burden Rate).
Under certain conditions, a specific cost code should not be included, or the multiplier needs to be overridden. For example, some or all cost codes must not be applied after the actual cost for a specific project reaches a certain limit. A project or task level multiplier for a specific cost code is defined in a descriptive flexfield and should be used instead of the multiplier defined on the burden schedule.
Solution Overview
The ability to manipulate the way in which burden cost is calculated is delivered as a client extension. This client extension is called when burden costs are calculated in the supported flows. A single pl/sql procedure is used to define the custom logic required to ensure that the amounts for each burden cost code are calculated appropriately. When deciding if this extension will meet your needs, it is important to consider the following: The extension is supported when calculating actual, planned, budgeted, and forecast burden and burdened costs within Oracle Fusion Projects. It is not supported when burden schedules are used to calculate revenue and invoice amounts. It is also not supported when exporting burdened cost rates through the integration gateway for Primavera P6 or to third-party project scheduling tools such as Microsoft Project. The usage of the extension is a global decision. When it is enabled, all transactions will be passed through the extension. The Budget Burdened Cost Extension is performed after the Burden Cost Calculation Override extension in the budgeting flow. Utilizing both extensions is supported, but not likely to be necessary.
PRECEDENCE
ENTERED MULTIPLIER
FORMULA
1 2 2 3
$32/hour
.23
= .23 * (Overhead + Raw Cost) = .10 *(Overhead + Fringe + G&A + Raw Cost) = Overhead + Fringe + G&A + Fee
Table 5: Example of burden cost calculations using a precedence structure and override rates instead of compiled multipliers.
Amy Marlin enters a time card for 8 hours for the ABC project and Amy has a cost rate of $100 an hour. The project is assigned the precedence burden schedule from the previous section. Amy selected the Regular Labor expenditure type and this expenditure type is assigned to the Labor cost base. In order to make these types of calculations, the compiled multipliers cannot be used. The extension needs to calculate amounts for each cost code based on the amount that it calculated for the cost codes with higher precedence.
PRECEDENCE BURDEN COST CODE ENTERED MULTIPLIER FORMULA BURDEN COST
1 2 2 3
= 8 * 32 = .25 * (800 + 256) = .23 * (800 + 256) = (800 + 256 + 264 + 242.88) * .10
Figure 3: Calculate burdened cost for each expenditure item using the extension
Figure 4: Calculate burden cost for each burden cost code using the extension
Figure 5: Calculate burdened cost for each resource assignment using the extension
This table or view contains entries for each burden cost code associated with the transactions that are being processed. The entered multiplier, compiled multiplier, and structure precedence is included for each record. The burden cost amounts based on the current compiled multipliers are also included. This increases processing efficiency if the custom logic does not impact the multipliers. The transaction attributes that would most likely be used to determine the burden cost amounts are provided as well. These attributes include but are not limited to: transaction type (plan, budget, forecast, actual, test), transaction identifier, project, task, organization, incurred by person, nonlabor resource, quantity, and transaction date.
After the application performs the custom logic and updates the burden cost amounts, it also updates the status on each record to indicate whether the processing was successful. If the application cannot find the rates, then it does not calculate burden costs and it does not update the status. The application updates the transaction with the appropriate error message.
Example
Continuing with the previous example, the following table contains the current cost distributions for the labor expenditure item and its associated summarized burden expenditure items.
TRANSACTION NUMBER DISTRIBUTION NUMBER EXPENDITURE TYPE/BURDEN COST CODE COMPILED_SET_ID PREV _COMPILED_SET_ID BURDENED COST
1 2 3 4 5
1 1 1 1 1
The fixed rate for the Overhead Cost Code has been changed to $34. The following table contains the records that would be populated for the extension when the burden cost amount on the Labor expenditure item is recalculated. The burdened cost for each record would have to be updated as described in order to represent the impact of this change correctly.
TRANSACTION NUMBER DISTRIBUTION NUMBER BURDEN COST CODE QUANTITY RAW COST FORMULA BURDENED COST
2 3 4 5 2 3 4 5
1 1 1 1 1 1 1 1
-8 -8 -8 -8 8 8 8 8
= current burdened cost * -1 = current burdened cost * -1 = current burdened cost * -1 = current burdened cost * -1 = 8 * 34 = .25 * (800 + 272) = .23 * (800 + 272) = .10 * (800 + 272 + 268 + 246.56)
The following table contains the new expenditure items and cost distributions. Transaction numbers 6,7,8,9 represent the incremental change of each burden cost code resulting from the increase of the Overhead rate from $32 to $34.
TRANSACTION NUMBER DISTRIBUTION NUMBER EXPENDITURE TYPE/BURDEN COST CODE COMPILED_SET_ID PREV _COMPILED_SET_ID BURDENED COST
1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1
Regular Labor Overhead Fringe G&A Fee Overhead Fringe G&A Fee
The standard out of the box grouping is based on the following attributes of the source cost distributions; Project, Task, Expenditure Organization, Project Accounting Period, Capitalizable Status, Billable Status, Transaction Currency, Provider Ledger Currency, Expenditure Type Class, Person Type and Purchase Order Line, and Burden Cost Code.
Utilizing the extension, you can further refine the grouping using the following attributes: Source Expenditure Type, Burden Expenditure Type, Expenditure Item Date, Job, Person, Nonlabor Resource, Nonlabor Resource Organization, Inventory Item, Exchange Rates, Rate Dates, and Rate Types, and all Descriptive Flexfield values.
This extension is called during the calculation of actual burden costs, planned burdened cost, budgeted burdened cost, forecast burdened cost, and revenue and billing amounts that are based on burden schedules. The extension accepts a transaction type, for example ACTUAL, BILLING, or BUDGET, depending on what process is calling the extension. It also accepts the specific transaction identifier (for example, expenditure_item_id or res_assignment_id), the transaction date, and the task identifier.
The extension returns a burden schedule version identifier, a fixed date (if required), as well as a status.
UtilizingBurden Extensions in Oracle Fusion Project Portfolio Management April 2011 Author: Dustin Grabowski
Copyright 2011, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 oracle.com Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark licensed through X/Open Company, Ltd. 0611