This chapter provides an overview of variance pricing and discusses how to:
Define variance rates.
Run variance pricing.
This section discusses:
Variance rates.
Variance pricing.
Variance pricing statuses.
When a contract is awarded, a contractor can bill and recognize revenue for direct costs, indirect costs, and possibly fees associated with the performance of the contract. To calculate the indirect (overhead) costs associated with a government contract, a contractor utilizes provisional and forward pricing rates. Provisional and forward pricing rates are estimates of actual costs that are incurred throughout the life of the contract. Provisional and forward pricing rates are regulated and approved by the government, but may be subject to change throughout the life of a contract as a more accurate accounting of costs becomes known. Rate changes may be initiated by the government or the contractor. To manage these possible rate changes, Contracts uses Project Costing's variance pricing functionality.
Through its integration with Project Costing, Contracts enables you to capture and process any rate changes for indirect costs associated with the contract. Such rate changes generally impact a certain period of time within the contract. For a transaction to be eligible for variance pricing, at least one of its source or target rows must have been sent to the billing worksheet , passed to Billing for invoicing, passed to General Ledger for revenue recognition or have been used for fee calculations are eligible for variance pricing.
When rate changes occur, the system first verifies if the transaction rows are eligible for repricing. If they are, then variance pricing is ineligible for those transaction rows.
The variance pricing process runs the Repricing, then Price Unpriced, then Variance Pricing, and then the Pricing process for the rows created from the Variance pricing process using the rate set and rate plan (if applicable) for the new rate. New indirect cost rows are generated by the system for the difference in the old and new rates, and the new rates are used to calculate indirect costs against any current or future transactions going forward. When a rate change is made to an eligible costing rate set that is associated with a rate plan, after the new transaction row is created, the system prices the new row using any applicable remaining rate sets contained in the rate plan.
Contracts maintains a history of these rate changes for audit and reporting purposes.
When managing government contracts, you may need to define costing, billing, and revenue rates to calculate transaction costs, overhead, and revenue for your contract's rate-based contract lines. Contracts uses rate sets and rate plans to perform this function. Rate sets enable you to define how specified contract-related transactions are priced for costing, billing, and revenue recognition. Rate plans enable you to combine multiple rate sets together to perform more complex pricing scenarios.
Revenue rates are only defined if you have selected the Separate Billing and Revenue check box on the Installation Options – Contracts page.
For government contracts, in addition to setting up rate sets for billing and revenue recognition, you also set up rate sets for costing transactions and calculating overhead amounts. These rate sets are identified by a rate definition type of Cost, and can contain provisional and forward pricing rates. Provisional rates are approved by the government and are used to calculate costs and overhead that is billed to the government. Forward pricing rates are determined by the contractor and submitted to the government for approval. Forward pricing rates are used to forecast costs and calculate overhead costs for revenue recognition.
To manage and track any changes to your provisional or forward pricing rates over the life of the contract, Contracts uses variance pricing functionality. To enable the system to calculate and produce transaction rows for rate changes you must complete the following tasks:
Define a rate set with a rate definition type of Cost.
Your costing rate sets contain your provisional and forward pricing rates, and enable you to calculate indirect costs. Variance pricing is only applicable to active costing rates where associated transactions have been billed, recognized as revenue or used for fee calculations for cost-plus contract line. Any rate changes that occur are tracked and managed using the costing rate sets that you define for the contract.
When rate changes are processed by Variance Pricing (PC_VAR_PRICING), the system generates transactions rows for the difference between the old indirect cost row and the new indirect cost row, prices the new row, assigns a system source of PRV (Variance Pricing) and the analysis type that was defined for the original target costing row.
Associate the rate set or a rate plan that contains a costing rate set, to the contract lines.
To calculate, bill, and recognize revenue for rate changes that occur throughout the life of the contract, you must define a rate plan that contains costing, billing, and revenue (optional) rate sets and assign the rate set to your rate-based contract lines.
When a rate change has occurred, enable the variance pricing option on the costing rate set and enter the new target rate amount.
See Pricing Rate-Based Contract Lines.
See Also
When rate changes occur, you may need to adjust rates and pricing retroactively for transactions that have already been billed or have had revenue recognized, and apply the new rates to any transactions that have yet to be priced or billed. Variance pricing enables you to capture rate changes for your active contracts that impact indirect costs, and then apply those rate changes to your transactions retroactively for active contract lines. The system calculates the difference between the old and new rate and then applies the difference in rates against historical costs within a specified date range. New transactions are created for the difference in rates.
Rate changes may occur throughout the life of the contract, under the following circumstances:
Rate reviews: Provisional rates are reviewed and adjusted as needed.
Forward pricing rate adjustments: Forward pricing rates are adjusted as more accurate cost estimates become known.
Final audits: Cost estimates are compared to actual costs and indirect costs and adjustments are made to reconcile any cost differences.
Assume that a project has a provisional indirect cost rate of 30 percent. One month the project accumulates an actual direct labor cost of 100 USD and an actual indirect cost of 150 USD. Payroll sends direct and actual indirect costs to General Ledger, which results in these accounting entries:
Account |
Amount |
Direct labor cost |
100 USD |
Actual indirect labor cost |
150 USD |
Cash |
<250 USD> |
Payroll sends direct costs to Project Costing. Project Costing calculates the indirect burden cost to the project as follows:
(Actual direct labor + (Actual direct labor × Provisional indirect cost rate)) =130 USD
Project Costing sends the indirect burden cost to General Ledger, which results in these accounting entries:
Account |
Amount |
Applied indirect burden cost (labor overhead) |
130 USD |
Applied over/under asset |
<130 USD> |
In this example, the actual indirect labor cost is booked to an asset account at the end of the accounting period. The resulting accounting entries are:
Account |
Amount |
Applied over/under asset |
150 USD |
Contra expense |
<150 USD> |
At the end of the year, an evaluation is made to determine if the applied indirect burden cost, based on the provisional indirect cost rate, is in line with the actual indirect cost. In this example, the applied indirect burden cost is 130 USD and the actual indirect cost is 150 USD, which leaves an applied over/under asset account balance of 20 USD.
Based on the account balance, auditors determine that the indirect burden cost should be variance priced. Variance pricing is used to create a retroactive rate adjustment to align the provisional indirect cost with the actual indirect cost. The system calculates a variance pricing rate of 50 percent, calculates the difference between the original provisional indirect rate and the variance pricing rate, and applies it to the original direct cost. The new indirect cost is 20 USD, as follows:
((50 percent − 30 percent) × 100 USD) = 20 USD
The final accounting entry from Project Costing to General Ledger at year-end posts the result from the variance pricing process, and brings the balance of the applied over/under asset account to zero. The accounting entries are:
Account |
Amount |
Applied indirect cost (labor overhead) |
20 USD |
Applied over/under asset |
<20 USD> |
Variance Pricing Setup Requirements
Before entering retroactive rate changes for your contract lines, you must first complete the following steps required by the variance pricing process:
Create a contract with a contract classification of Government.
Assign rate-based contract lines to the contract.
Create a costing standard or contract-specific rate set or rate plan, and assign the rate set or rate plan to the applicable rate-based contract lines.
Variance pricing is only applicable to rate sets with a Rate Definition Type of Cost that have the Enable Variance check box selected. However, to bill and recognize revenue for your contract-related direct and indirect costs, you must also create a billing rate set and revenue rate set (if you have selected the Separate Billing and Revenue check box on the Installation Options - Contracts page).
Because you can assign only one rate set or rate plan to a rate-based contract line at one time, you will most likely combine your costing, billing, and revenue rate sets onto a rate plan in a manner that meets your pricing needs, and assign the rate plan to your rate-based contract lines.
Note. Rate sets that are eligible for variance pricing cannot have the same field values for Analysis Type, Source Type, Category or Subcategory for both the source and target definition criteria. At least one value must be different between the source and target row. Using a wildcard character for any of these fields is considered to be the same field value for definition purposes, and would cause the rate set to be ineligible for variance pricing.
Assign active projects and activities to your rate-based contract lines.
Transactions for rate-based contract lines are tracked using projects and activities associated with the contract line, and stored in the Project Costing Project Transaction (PROJ_RESOURCE) tables.
Set the contract to an active processing status and process transactions.
Transactions that are eligible for variance pricing are project-related transaction associated with rate-based contract lines that are processed through Project Costing. To process transactions for your contract and rate-based contract lines you must also define as-incurred billing and revenue plans and assign them to the applicable rate-based contract lines for billing and revenue processing for your transactions.
After the contract has been activated and transactions have been processed, any rate changes that occur over the life of the contract can be applied using the variance pricing feature. The variance pricing feature enables you to apply your rate changes as needed by performing the steps described in this process flow diagram:
Variance pricing process flow
These steps illustrate a high level example of using variance pricing to distribute transactions at a new rate that you previously distributed at a different rate:
Access the active costing rate set to enter the new rates for the target definition.
Variance rates are generally applied retroactively, over a specified period of time. When accessing the costing rate set, you must use Correction mode to open the page as of the appropriate effective date. To access the Rate Variance History page, navigate to the Target page and enter the new rates for the target definition. Variance rates are tracked and processed using the Rate Variance History page.
Define the variance pricing run control parameters.
The Variance Pricing process selects the data to process based on the criteria that you specify on the Variance Pricing run control page and applies the following logic:
Selects rate plans that are associated with the costing rate set specified on the Variance Pricing run control page.
Selects active contracts and projects associated with the rate plan containing the costing rate set specified in the Variance Pricing run control page.
Projects associated with the costing rate set must be active, and contracts associated with the costing rate set cannot have a closed processing status.
Ensures that the target rate sequence is in Pending status.
Applies standard pricing.
After a rate change is made, the variance pricing process calls the Pricing Engine (PC_PRICING) to apply the new rate to any transaction rows that have been priced, but not yet billed or booked to the general ledger, or that have not yet been priced. It also prices any transactions that have not been priced, but are eligible for pricing.
Performs variance pricing.
The variance pricing process performs the following steps:
Selects the eligible transactions that match the effective date and source criteria for the costing rate set.
Eligible transactions include transaction rows that are not eligible for repricing and have a general ledger distribution status (GL_DISTRIB_STATUS) of G (Generated) or D (distributed), a billing distribution status (BI_DISTRIB_STATUS) of W (worksheet) or D (distributed), and do not have a system source of PRR (priced for revenue) or PRP (priced for billing). Transactions with a contracts fee status (CA_FEE_STATUS) of 1 (one), where the transaction has been used for billing or revenue fee calculations for cost-plus contract lines, are also eligible for variance pricing, whether or not the actual transaction has been billed or posted to the general ledger for revenue recognition.
Calculates the difference between the old rate and the new rate using the following equation:
(Original source) x (old rate) – (Original source) x (new rate). This amount may be positive or negative.
Creates the new transaction rows for the difference and posts them to the Project Transaction table (PROJ_RESOURCE) in Project Costing.
The new transaction rows are assigned the analysis type assigned to the original target row, stamped with a system source of PRV (Variance Pricing), assigned a cost, revenue, and billing distribution status of N to enable cost stacking, billing, and revenue recognition to occur for the new transactions, and assigned a general ledger distribution status of C. The accounting date is specified on the run control page and the transaction date is stamped with the source transaction date.
Applies standard pricing to the newly created variance output row.
Also, after the first target rate change is processed through variance pricing, the system runs the next target rate change for the rate set until all new rate target changes are complete. Rate stacking can also occur on the variance pricing row.
After the variance pricing process is complete, the system posts the new transaction rows to the Project Transaction table (PROJ_RESOURCE) where they are eligible for limit processing, withholding, fee processing, billing, and revenue recognition processing.
Note. When you run the variance pricing process, the system automatically excludes contracts with a processing status of Closed Additionally, rows created as part of the variance pricing process are no longer eligible for repricing.
Variance Pricing Rate Stacking Example
When you make a rate change to a cost rate set that is associated with the a rate plan, after variance pricing generates the variance row, the system prices the new transaction row according to the rate plan associated with the costing rate set that is modified.
Step 1: In this example, assume that you have defined a rate plan as follows:
Rate Set |
Basis |
Analysis Type |
Source Type |
Category |
Sub Category |
Rate Amount |
Target Analysis Type |
Target Sub Category |
PROV1 |
Original |
PAY |
LABOR |
ENG |
DIR |
.50 |
PRV |
FRING |
1.20 |
PRV |
OVH |
||||||
PROV2 |
Target |
PRV |
LABOR |
% |
OVH |
.30 |
PRV |
G&A |
FRDP1 |
Original |
PAY |
LABOR |
ENG |
DIR |
.60 |
FRD |
FRING |
1.30 |
FRD |
OVH |
||||||
FRDP2 |
Target |
FRD |
LABOR |
% |
OVH |
.40 |
FRD |
G&A |
BIL1 |
All |
PAY |
LABOR |
ENG |
DIR |
1.0 |
BIL |
|
PRV |
% |
% |
% |
1.0 |
BIL |
|||
REV1 |
All |
PAY |
LABOR |
ENG |
DIR |
1.0 |
REV |
|
FRD |
% |
% |
% |
1.0 |
REV |
Step 2: A 1,000 USD payroll transaction is entered with the following criteria:
Analysis Type |
Source Type |
Category |
Sub Category |
Amount |
PAY |
LABOR |
ENG |
DIR |
1,000 USD |
Step 3: The system prices the transaction row using the rate plan defined in Step 1. The results of the process are as follows:
Analysis Type |
Resource Type |
Resource Category |
Resource Sub Category |
Foreign Amount |
Resource ID |
Resource ID From |
Factor from Rate Set |
PAY |
LABOR |
ENG |
DIR |
1000 USD |
10001884 |
10001884 |
|
PRV |
LABOR |
ENG |
FRING |
500 USD |
10001885 |
10001884 |
.50 |
PRV |
LABOR |
ENG |
OVH |
1200 USD |
10001886 |
10001884 |
1.20 |
PRV |
LABOR |
ENG |
G&A |
360 USD |
10001887 |
10001884 |
.30 |
FRD |
LABOR |
ENG |
FRING |
600 USD |
10001888 |
10001884 |
.60 |
FRD |
LABOR |
ENG |
OVH |
1300 USD |
10001889 |
10001884 |
1.30 |
FRD |
LABOR |
ENG |
G&A |
520 USD |
10001889 |
10001884 |
.40 |
BIL |
LABOR |
ENG |
DIR |
1000 USD |
10001890 |
10001884 |
1.0 |
BIL |
LABOR |
ENG |
FRING |
500 USD |
10001891 |
10001884 |
1.0 |
BIL |
LABOR |
ENG |
OVH |
1200 USD |
10001892 |
10001884 |
1.0 |
BIL |
LABOR |
ENG |
G&A |
360 |
10001893 |
10001884 |
1.0 |
REV |
LABOR |
ENG |
DIR |
1000 USD |
10001894 |
10001884 |
1.0 |
REV |
LABOR |
ENG |
FRING |
600 USD |
10001895 |
10001884 |
1.0 |
REV |
LABOR |
ENG |
OVH |
1300 USD |
10001896 |
10001884 |
1.0 |
REV |
LABOR |
ENG |
G&A |
520 USD |
10001897 |
10001884 |
1.0 |
Step 4: After the transaction has been priced and processed through to Billing and General Ledger, a rate change occurs in the second provisional rate set (PROV2) which changes the rate from .30 to a new rate of .50. To perform variance pricing, you must access the rate set PROV2, and enter the new rate of .50 on the Rate Variance History page. When you run variance pricing the system creates a new variance row for the difference between the old rate and the new rate. The newly created row is as follows:
Analysis Type |
Resource Type |
Resource Category |
Resource Sub Category |
Foreign Amount |
Resource ID |
Resource ID From |
Factor from Rate Set |
PRV |
LABOR |
ENG |
G&A |
240 USD |
10001900 |
10001884 |
.50 |
The system then continues pricing the new row according to the rate plan defined in Step 1 above. This results in the following new billing row:
Analysis Type |
Resource Type |
Resource Category |
Resource Sub Category |
Foreign Amount |
Resource ID |
Resource ID From |
Factor from Rate Set |
BIL |
LABOR |
ENG |
G&A |
240 USD |
10001907 |
10001884 |
1.0 |
Whenever you make a change to a cost rate using the variance pricing functionality, and the rate set is part of a rate plan where rate stacking is defined, the system prices the new variance price row from the point where the change was made on down.
When entering variance pricing rate changes, each row is assigned a status. The statuses are set and controlled by the system and control the type of action or processing that can occur against the variance rate row. The following rate target sequence statuses are delivered by the system:
Pending: Appears by default when a new variance rate row is added.
Only one pending rate row may be entered at a time for a target definition. When a variance pricing rate row is in pending status:
The rate field is editable.
The rate cannot be selected and used for pricing.
The rate displays only on the Rate Variance History page and does not appear on the Target page for the rate set.
Active: After the new variance pricing rate is entered, and the Variance Pricing (PC_VAR_PRICING) process is run for the rate set, the system updates the status of the new rate to Active.
Only one active rate row may exist at a time for a target definition. When a variance pricing rate row is in active status:
The rate field is display only and can no longer be edited.
The new rate is selected and used for pricing both by the Variance Pricing process (PC_VAR_PRICING), and the Pricing process (PC_PRICING).
The new rate is displayed on the Target page for the rate set and is associated with a sequence number.
Inactive: After the new variance pricing rate is active, the previous rate row is set to an inactive status by the Variance Pricing process (PC_VAR_PRICING).
Old rate rows are used in calculating the difference between the old and new rates. Multiple inactive rate rows can exist for a target definition. When a variance pricing rate row is in an inactive status:
The rate field for the inactive row is display only and can no longer be edited.
The old rate cannot be selected and used for pricing.
Inactive rates are displayed only on the Rate Variance History page.
This section discusses how to:
Define variance rate sets.
Define variance rates.
Page Name |
Object Name |
Navigation |
Usage |
|
Define source criteria to identify cost transactions from feeder systems used to calculate costs and overhead for contract-related transactions and enable users to enter rate variances on the Rate Sets - Target page. |
||
|
Define target data for rate set source rows, and access the Rate Variance History page to define variance rates for costing rate sets. |
||
Select the Enable Variable check box on the Rate Sets page. Click the Target link on the source row. Click the History link on the Rate Sets - Target page. |
View and enter variance price rates. |
Access the Rate Sets page.
See Defining Rate Sets and Plans.
Access the Rate Variance History page.
See Creating Pricing Variances.
This section provides an overview of running variance pricing, and discusses how to run variance pricing.
After you have defined your rate changes using the Rate Variance History page, the next step is to perform variance pricing. The Variance Pricing process calls the Pricing Engine (PC_PRICING) to price any unpriced rows or reprice any rows that have not yet been processed and applies the new rates that you defined.
Next, the Variance Pricing engine (PC_VAR_PRICING) calculates the difference between the old rate and the new rate for any transactions meeting the criteria of the rate set that have already been processed. This includes transactions with a general ledger distribution status (GL_DISTRIB_STATUS) of Generated or Distributed (G or D) or a Billing distribution status (BI_DISTRIB_STATUS of Worksheet (W) or Distributed (D) or any transactions that have been used in the fee calculation process for cost-plus contract lines (fee status of one (1.)
Finally, the system applies the new delta rate amount to the transactions that meet the rate set criteria that have already been processed, and creates new transaction rows with the analysis type assigned to the Target definition for the original costing source, applies standard pricing to the newly created row, and posts the transaction to the Project Transaction (PROJ_RESOURCE) table in Project Costing. The new rows are eligible for limit processing, withholding processing, fee processing, billing and revenue recognition.
Note. When running the variance pricing process (PC_VAR_PRICE), you must select a rate set Id on the run control page to ensure that the variance is accurately captured for all applicable project transactions within a given rate set. After a newly created variance pricing row is priced, you cannot reprice that row.
Page Name |
Object Name |
Navigation |
Usage |
Project Costing, Utilities, Variance Pricing |
Run the variance pricing process on selected rate sets. |
Access the Variance Pricing page.
See Applying Pricing Variances.