How Billing Forecasting Calculations Work

A billing forecast calculation has two main objects:

It requires the backlog process to be run in order to generate the information that it needs. When a billing forecast calculation is run, it first initiates the backlog process automatically.

The calculated values are achieved as follows:

Field

Type

From

Process

Multiplier Factor from Forecast Setup

Billings_Timecards__c plus
Billings_Milestones__c plus
Billings_Misc_Adjustments__c
Actuals Billing Forecast Detail object Forecast Billings
Billings_Expenses__c Actuals Billing Forecast object Forecast Expenses
Scheduled_Assignments__c Backlog Billing Forecast object Backlog Scheduled Assignments
Scheduled_Held_Resource_Requests__c Backlog Billing Forecast Detail object Backlog Held Resource Requests
Scheduled_Unheld_Resource_Requests__c Backlog Billing Forecast Detail object Backlog Unheld Resource Requests
Scheduled_Milestones__c Backlog Billing Forecast Detail object Backlog Scheduled Milestones
Unscheduled_Revenue__c minus
Held_Resource_Request_Revenue__c minus
Unheld_Resource_Request_Revenue__c
Backlog Billing Forecast Detail record Backlog Unscheduled Backlog1
Opportunities Backlog Billing Forecast Detail object Forecast Opportunities2

Billing Forecast Summary

Contains the summary of projects and opportunities for each RPGClosed Abbreviation of region, practice, group. level they relate to.

Billing Forecast Detail

The records in here are calculated by the following processes:

Backlog

Scheduled_Assignments__c

Where:

Scheduled Hours are calculated with a start date using the latest of:

Scheduled Hours are calculated with an end date using the earliest of:

Revenue is calculated based on scheduled hours or days, using the assignment bill rate to get the value for the Scheduled Assignments (Hours/Days * Bill Rate = Scheduled Assignment Revenue).

Scheduled_Held_Resource_Requests__c

Where:

Scheduled Hours are calculated with a start date using the latest of:

Scheduled Hours are calculated with an end date using the earliest of:

Bill rate is obtained from a defined bill rate field from the backlog calculation, suggested bill rate from resource request, requested bill rate from resource request or 0, whichever has a value evaluated in that order.

Revenue is calculated based on scheduled hours or days, using bill rate to get the value for the Scheduled Held Resource Requests (Hours/Days * Bill Rate = Scheduled Held Resource Request).

Scheduled_Unheld_Resource_Requests__c

Where:

Scheduled Hours are calculated with a start date using the latest of:

Scheduled Hours are calculated with an end date using the earliest of:

Bill rate is obtained from a defined bill rate field from the backlog calculation, suggested bill rate from resource request, requested bill rate from resource request or 0, whichever has a value evaluated in that order.

Revenue is calculated based on scheduled hours or days, using bill rate to get the value for the Scheduled Unheld Resource Requests (Hours/Days * Bill Rate = Scheduled Unheld Resource Request).

Scheduled_Milestones__c

Where:

Unscheduled Backlog

Backlog Detail records are created for projects for the forecast time period and also the perpetual time period. The perpetual time periods are used to generate the Unscheduled Backlog amounts.

This is equal to Unscheduled_Revenue__c minus Held_Resource_Request_Revenue__c minus Unheld_Resource_Request_Revenue__c.

Before being passed into the multipliers, the billing forecast curve is applied. For an example of how billing forecast curves work, see Applying a Billing Forecast Curve to a Project.

Unscheduled_Revenue__c

Where:

The Backlog detail is populated as follows:

Detail Field

Populated From

Bookings__c Project_Actuals__r.Bookings__c
Billings__c Project_Actuals__r.Billings__c
Inactive_Project_Backlog__c Project__c.Inactive_Project_Backlog__c
Unscheduled_Revenue__c detail.Bookings__c minus
detail.Billings__c minus
detail.TimeRevenue__c minus
detail.Milestone_Revenue__c minus
detail.Inactive_Project_Backlog__c

Held_Resource_Request_Revenue__c

As calculated in Scheduled_Held_Resource_Requests__c.

Unheld_Resource_Request_Revenue__c

As calculated in Scheduled_Unheld_Resource_Requests__c.

Billing Forecast Curves

Billing forecast curves are applied to the following items only:

For opportunities, the relevant billing forecast curve is applied before being passed into the multipliers.

For projects, the unscheduled backlog value is retrieved from the backlog detail record for the project and the perpetual time period. The relevant billing forecast curve is applied before being passed into the multipliers.

The way a billing forecast is applied is by looking at the details on the curve (either the one assigned to an individual project or opportunity, or the ones set as defaults on the Billing Forecast Setup page) to ascertain the following:

The calculation is the Amount multiplied by Percentage on the Billing Forecast Curve Detail multiplied by Overlap.

For examples of how billing forecast curves work on projects and opportunities, see About Billing Forecast Curves.

Project Values

For a billing forecast calculation, projects are included with the following rules:

These project values are used to calculate the following factors on a forecast:

Billings_Timecards__c

Timecards total billing amount where:

Billings_Milestones__c

Milestones amount (from Milestones__c) where:

Billings_Misc_Adjustments__c

Where:

Billings_Expenses__c

Expenses billable amount where:

Note:

The expense billable amount will be converted to the project currency if its currency is different to this.

Billings Budgets

This is calculated by the Billing Forecast process but isn’t actually used by the calculation. For every budget, the related project’s detail record is updated to add the budget’s pre billed amount to Perpetual_Billings_Budgets_c and the budget’s amount to Perpetual_Backlog_Budgets_c. (see Perpetual Fields).

Pre-billed amount on a budget where:

Opportunities

Where:

The opportunity value is determined by the following:

The opportunity value can be calculated in the following ways:

This flowchart shows how the opportunity value is calculated.

Flowchart for Calculating Opportunity Value

The calculated billing forecast value is the opportunity value multiplied by the opportunity probability, and then the billing forecast curve applied.

When applying the billing forecast curve:

If the opportunity value with the billing forecast curve applied is greater than zero, it is multiplied by the category Opportunity multipliers and stored in the appropriate category values.

Example

Opportunity value = $62,500 with 100% probability, close date of May 31 , with a forecast period of June 1 to 30 with no lag and a max forecast period = 30, therefore in the forecast it should be 29/30

62,500 * 29/30 * weighting amount:

Expected (1.00) = $60,416.67

Best Case (1.20) = $72,500

Worst Case (0.75) = $45,312.50

Opportunity value = $62,500 with 50% probability, close date of May 25, with a forecast period of June 1 to 30 with no lag and a max forecast period = 30, therefore in the forecast it should be 24/30 (6 days being outside the forecast period)

31,250 * 24/30 * weighting amount:

Expected (1.00) = $25,000

Perpetual Fields

The following fields are created on the Billing Forecast Detail record, however, they are not used in a billing forecast or billing forecast forecast calculation and are created by the Forecast process:

Perpetual Fields

Field

Description

Further Information

Perpetual_Billings_Timecards__c Timecards total billing amount Where the end date is before the end date of the forecast period and the end date is before the end of last week. Must also be related to a project we are interested in, and have the Billable and Include in Financials flags set to true.
Perpetual_Billings_Milestones__c Milestones amount For a milestone whose actual date is before the end date of the time period for the billing forecast. Must also be related to a project we are interested in, and have the Include in Financials flag set to true.
Perpetual_Billings_Misc_Adjustments__c Miscellaneous adjustment amount For a miscellaneous adjustment whose effective date is before the end date of the time period for the billing forecast. Must also be related to a project we are interested in, and have the Include in Financials flag set to true.

Transaction Category must be equal to Pass-Through Ready-to-Bill Revenue or Ready-to-Bill Revenue. You can override this value by setting the config ‘asm-billing’/’miscellaneousAdjustmentCategories’.
Perpetual_Billings_Budgets__c Budgets prebilled amount For a budget whose effective date is before the end date of the time period for the billing forecast. Must also be related to a project we are interested in, and have the Include in Financials flag set to true.
Perpetual_Billings_Expenses__c Expenses billable amount For an expense whose expense date is before the end date of the time period for the billing forecast. Must also be related to a project we are interested in, and have the Include in Financials flag set to true.
Note: The expense billable amount will be converted if its currency is different to the project currency.