How Billing Forecasting Calculations Work

A billing forecast calculation has two main objects:

  • Billing Forecast Summary
  • Billing Forecast Detail

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:

  • End date is after the end of last week
  • Falls within the range of the time period being run, or the perpetual time period (the calculation will ignore any assignments that fall outside the forecast time period if the end date is before the start date of the forecast period, or if the start date of the assignment is after the end date of the forecast period)
  • It is billable
  • Related project is active
  • Related project is not marked as exclude from backlog
  • Related project is linked to RPG or sublevel

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

  • Billing forecast calculation start date (end of last week according to common settings in PSA)
  • Time period start date
  • Assignment start date

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

  • Billing forecast calculation end date
  • Time period end date
  • Assignment end date

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:

  • End date is after end of last week
  • Falls within the range of the time period being run or perpetual time period (the calculation will ignore any assignments that fall outside the forecast time period if the end date is before the start date of the forecast period, or if the start date of the assignment is after the end date of the forecast period)
  • Related project is active
  • Related project is not marked as exclude from backlog
  • Related project is linked to RPG or sublevel
  • No related assignment
  • It is a held request

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

  • Billing forecast calculation start date (end of last week according to common settings in PSA)
  • Time period start date
  • Resource request start date

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

  • Calculation end date
  • Time period end date
  • Resource request end date

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:

  • End date is after end of last week
  • Falls within the range of the time period being run or perpetual time period (the calculation will ignore any assignments that fall outside the forecast time period if the end date is before the start date of the forecast period or if the start date of the assignment is after the end date of the forecast period)
  • Related project is active
  • Related project is not marked as exclude from backlog
  • Related project is linked to RPG or sublevel
  • No related assignment
  • It is not a held resource

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

  • Billing forecast calculation start date (end of last week according to common settings in PSA)
  • Time period start date
  • Resource request start date

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

  • Calculation end date
  • Time period end date
  • Resource request end date

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:

  • Uses the Milestone amount (from Milestone__c)
  • For a milestone which has a status of ‘Open' or ‘Planned', or will use the backlog custom setting field ‘Milestone Statuses' if set
  • Target date is after the end of last week and within the range of the time period
  • Include in Financials flag is set to false
  • Related project is active
  • Linked to the RPG or a sublevel
  • Exclude from Backlog flag is set to false

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:

  • Project Actuals are linked to the Perpetual Time Period
  • Project Actuals are not deleted
  • Project is active
  • Project is not marked as Exclude from Backlog
  • Project is linked to RPG or sublevel

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:

  • Opportunities
  • Projects: for the unscheduled backlog calculation

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 number of days of the curve that fit into the forecast time period (the Overlap).
  • The percentage amount to spread the value over.

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:

  • Include In Forecasting checkbox is selected
  • Must be Active or have started and ended in the time period for the forecast

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

Billings_Timecards__c

Timecards total billing amount where:

  • End date is within the time period for the forecast and is before the end of last week
  • Related to a project we are interested in
  • Billable and Include in Financials checkboxes selected

Billings_Milestones__c

Milestones amount (from Milestones__c) where:

  • Actual date is within the time period for the forecast.
  • Related to a project we are interested in
  • Include in Financials checkbox selected

Billings_Misc_Adjustments__c

Where:

  • Transaction Category is equal to ‘Pass-Through Ready-to-Bill Revenue' or ‘Ready-to-Bill Revenue' (can override this value by setting the config ‘asm-billing'/'miscellaneousAdjustmentCategories')
  • Effective date is within the time period for the forecast
  • Related to a project we are interested in, and have the Include in Financials checkbox selected

Billings_Expenses__c

Expenses billable amount where:

  • Expense date is within the time period for the forecast
  • Must also be related to a project we are interested in, and have the Include in Financials checkbox selected
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:

  • Effective date is within the time period for the forecast
  • Related to a project we are interested in, and have the Include in Financials checkbox selected
  • The forecast adds the budget's pre billed amount to Billings_Budgets_c

Opportunities

Where:

  • Related to RPG or sublevel
  • Probability > 0
  • No related projects set to Include In Forecasting
  • Close date after time period start date - Max_Forecast_Period__c from Billing Forecast Curve related to the opportunity (Max_Forecast_Period__c = Lag days + Sum(ForecastDetails.Period__c))
  • Close date on or before time period end date - Lag days from forecast curve related to the opportunity
  • The lines included if Billing Forecast Setup Use_Is_Services_Product_On_Opp_Product__c is set to Opportunity Product and line is a services line
  • The lines included if Billing Forecast Setup Use_Is_Services_Product_On_Opp_Product__c is set to Product and line has a product or the related product is a services product

The opportunity value is determined by the following:

  • The options selected on the Billing Forecast Setup page
  • Whether or not the opportunity has Opportunity Products with associated line items

The opportunity value can be calculated in the following ways:

  • If an opportunity has Opportunity Products and Opportunity Product is selected on the Billing Forecast Setup page, then the opportunity value is the sum of all Opportunity Product line items where the Is Services Product Line checkbox is selected.
  • If an opportunity has Opportunity Products and Product is selected on the Forecast Setup page, then the opportunity value is the sum of all Opportunity Product line items where the associated Product record has the Is Services Product checkbox selected.
  • If an opportunity has no associated Opportunity Products and the Is Services Opportunity checkbox is selected, then the opportunity value is taken from the Amount field on the opportunity record.

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 calculated forecast value is taken from the sum of the Opportunity Product line items, and there is a billing forecast curve specified on the product record, then the curve specified on the Product record is used. If no billing forecast curve exists on the product record, then the Default Opportunity Curve from the Billing Forecast Setup page is used.
  • If the calculated billing forecast value is taken from the Amount field on the opportunity, and there is a billing forecast curve specified on the opportunity record, then the curve specified on the opportunity record is used. If no billing forecast curve exists on the opportunity record, then the Default Opportunity Curve from the Billing Forecast Setup page is used.

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 checkboxes selected.
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 checkbox selected.
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 checkbox selected.

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 checkbox selected.
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 checkbox selected.
Note: The expense billable amount will be converted if its currency is different to the project currency.