Revenue Forecast Flow Intermediate Processing

After importing the input fields and augmenting them with the data from their lookup objects, the PS Cloud Analytics dataflow filters out non-relevant or repeated records, or performs other required actions.

You can use the dataflow editor in Analytics Studio to visualize the PS Cloud Analytics dataflow and its nodes. Alternatively, you can download the dataflow definition file which is a JSON file representing the dataflow and its logic. For more information on the dataflow editor and the dataflow definition file, see Configure the Dataflow in the Salesforce Help.

Warning:

Modifying the PS Cloud Analytics dataflow might result in the loss of functionality. Contact your administrator before using the data manager tool in Analytics Studio.

Adjustments

In your PSA data environment, adjustments made at a lower level in your RPG hierarchy are rolled up and aggregated at a higher level. For example, adjustments made at level three are rolled up and aggregated at level two. An adjustment made at a higher level overrides lower-level adjustments.

To report accurately on adjustments in PS Cloud Analytics, the Project Reporting dataset uses the Value Adjustment field. This field represents the movement in the value of your adjustments between RPG levels 0-2, and is calculated as the difference between the value of an adjustment at an RPG level, and the adjustment carried out at the RPG level above it. This is then added to your Forecast version value in the PSA Revenue Forecast dashboard, if required for reporting on adjustments.

In the table below, Global Practice represents level zero. High Tech represents level one. Prestige Worldwide represents level two. An adjustment to Prestige Worldwide is rolled up to High Tech and also to Global Practice. An adjustment then made to High Tech overrides the value of those adjustments beneath it in the RPG hierarchy. However, the existing adjustments for Prestige Worldwide at level two are not adjusted to reflect this alteration in value.

RPG Hierarchy Level

Revenue Source

Currency

Worst Case

0 Global Practice USD 2,411,588.50
1 High Tech USD 103,635.77
2 Prestige Worldwide USD 2,416.34

For every adjustment made, a new Revenue Forecast Version Adjustment record is created. As a result, overridden values, aggregate values, and override values are imported into the dataflow.

Example Scenario

In this scenario, Prestige Worldwide has an adjustment of the value $1,000. This value is then rolled up to level 1.

RPG Hierarchy Level

Revenue Source

Currency

Worst Case

1 High Tech USD 1000
2 Prestige Worldwide USD 1000 ↑

This adjustment is then overridden by an adjustment made to High Tech. Because High Tech is at a higher level than Prestige Worldwide, the value of this adjustment is not carried on down the hierarchy.

RPG Hierarchy Level

Revenue Source

Currency

Worst Case

1 High Tech USD 2000
2 Prestige Worldwide USD 1000

The difference between these values is calculated using the Value Adjustment field. This gives the correct value for the movement in the adjustment:

High Tech, $2,000 - Prestige Worldwide, $1,000 = $1,000 adjustment.

Note:

Because RPG hierarchy levels are unavailable for milestone and project adjustments, RPG hierarchy levels from the milestone and project objects associated with these adjustments are used.

Revenue Forecast Permission Controls

To ensure the Permission Control object's user permission controls are applied to the Revenue Forecast dataset, the following processing is optionally applied in the PS Cloud Analytics dataflow.

Records are matched for the following fields:

Revenue Forecast dataset fields / Permission Control object fields: Region, Practice, Group, Project, Opportunity

The following fields are created for each user in the org with access to a particular field. These fields are hidden in the Revenue Forecast dataset.

  • PermissionControl.RPG.UserId
  • PermissionControlProject.UserId
  • PermissionControlOpportunity.UserId
Note:

To apply this processing, you must have an active revenue forecast setup record with use permission controls applied to it in your org. Only user permission controls applied to the same Region, Practice, or Group from the Object for Version Grouping field on the Revenue Forecast Setup object are used.

Example Scenario

An RPG, Project, or Opportunity data row for a United Kingdom record has a multi-value list of all user IDs in the org that can access global data, all those that can access EMEA data and all those that can access United Kingdom data.

These hidden fields are used to determine if the current user is in any of those lists before displaying the data they have access to in the Revenue Forecast dataset and dashboard.

Dataflow Nodes

These are the main dataflow nodes in the Revenue Forecast flow.

Dataflow Node

Description

revenueForecastType_milestone__FILTER Filters out Revenue Forecast Type records with a non-null milestone value.
revenueForecast_milestone__FILTER Filters out Revenue Forecast records with a non-null milestone value.
revenueForecast_opportunityProject__FILTER Filters out Revenue Forecast records from opportunities that have become projects.
revenuForecastVersion_batchStatus__FILTER Filters out Revenue Forecast Version records without the value "Complete".
revenueForecastType_first__FILTER Filters out all records except the first for each group after grouping. Following this, there is only record per group to which this filter is applied.
revenueForecastType_first__RELCALC Groups records by Project, Opportunity and Time Period, before adding the IsFirst field to indicate which is the largest pending revenue recognition record in each group.
revenueForecastAdjustment_adjustmentDelta_CALC Calculates the difference between the input and aggregate values for Expected, Best Case and Worst Case scenarios.
revenueForecastAdjustment_active_FILTER Filters out non-active adjustments.
RevenueForecastVersionDetail_HasPMO_FILTER Filters out records that are not associated with a project, opportunity or milestone.
PermissionControl_IsInDate_FILTER

Filters out any of the hidden permission control fields whose end date is earlier than today's date, and whose start date is later than today's date. In this case, today's date is set as the day on which your dataflow is run.

We recommend that you update your dataflow regularly to ensure that users with outdated permissions cannot view data that you do not want them to access.

The Start Date and End Date fields for user permission controls are not mandatory fields. If a user permission control does not have these fields then it is considered valid forever.

 

Calculated Fields

These are the fields calculated by the Revenue Forecast flow.

Field Label

Field API Name

Description

N/A AdjustmentType

Depending on the type of adjustment, this is:

  • Region, Practice or Group
  • Project, Opportunity or Milestone

This field is deleted after performing the calculation.

Revenue Pending Recognition Value ValueRevenuePendingRecognition

Sums the values of the following input fields:

  • pse__Equal_Split_Milestone_Pending__c
  • pse__Equal_Split_Project_Pending__c
  • pse__Expense_Pending__c
  • pse__Milestone_Pending__c
  • pse__Misc_Adjustment_Pending__c
  • pse__Percent_Complete_Milestone_Pending__c
  • pse__Percent_Complete_Project_Pending__c
  • pse__Timecard_Pending__c
Revenue Recognized To Date Value ValueRevenueRecognizedToDate

Sums the value of the following input fields:

  • pse__Equal_Split_Milestone_Recognized__c
  • pse__Equal_Split_Project_Recognized__c
  • pse__Expense_Recognized__c
  • pse__Milestone_Recognized__c
  • pse__Misc_Adjustment_Recognized__c
  • pse__Percent_Complete_Milestone_Recognized__c
  • pse__Percent_Complete_Project_Recognized__c
  • pse__Timecard_Recognized__c
Scheduled Revenue Value ValueScheduledRevenue

Sums the value of the following input fields:

  • pse__Equal_Split_Milestone_Scheduled__c
  • pse__Equal_Split_Project_Scheduled__c
  • pse__Eva_Scheduled__c
  • pse__Milestone_Scheduled__c
  • pse__Percent_Complete_Milestone_Scheduled__c
  • pse__Percent_Complete_Project_Scheduled__c
Unscheduled Revenue Value ValueUnscheduledRevenue

Sums the value of the following input fields:

  • pse__Opportunity_Unscheduled__c
  • pse__Percent_Complete_Milestone_Unscheduled__c
  • pse__Percent_Complete_Project_Unscheduled__c
Unscheduled Revenue Best Case Value ValueUnscheduledRevenueBestCase

Sums the value of the following fields:

  • Opportunity Unscheduled Best Case Value
  • Percent Complete Milestone Unscheduled Value
  • Percent Complete Project Unscheduled Value
Unscheduled Revenue Worst Case Value ValueUnscheduledRevenueWorstCase

Sums the value of the following fields:

  • Opportunity Unscheduled Worst Case Value
  • Percent Complete Milestone Unscheduled Value
  • Percent Complete Project Unscheduled Value fields
Actual Value ValueActual

Sums the value of the following fields:

  • Revenue Pending Recognition Value

  • Revenue Recognized To Date Value

Forecast Value ValueForecast

Sums the value of the following fields:

  • Scheduled Revenue Value

  • Unscheduled Revenue Value

Forecast Best Case Value ValueForecastBestCase

Sums the value of the following fields:

  • Scheduled Revenue Value
  • Unscheduled Revenue Best Case Value
Forecast Worst Case Value ValueForecastWorstCase

Sums the value of the following fields:

  • Scheduled Revenue Value
  • Unscheduled Revenue Worst Case Value
N/A RecordKey If the value of RevenueSource is "Equal Split: Milestone" then the value of pse__Revenue_Pending_Recognition__c is used. Otherwise, this field is null. This field is deleted after performing the calculation.
N/A IsFirst This field is used after grouping records by Project, Opportunity and Time Period to identify the largest pending revenue recognition record in each group. This field is deleted after performing the calculation.
Actual Best Case Value ValueActualBestCase The value of Actual Value when a value is available for Opportunity Worst Case Threshold (%) in Forecast Settings in your PSA data environment. Otherwise, this value is zero.
Actual Worst Case Value ValueActualWorstCase The value of Actual Value when a value is available for Opportunity Worst Case Threshold (%) in Forecast Settings in your PSA data environment. Otherwise, this value is zero.
Scheduled Revenue Best Case Value ValueScheduledRevenueBestCase The value of Scheduled Revenue Value when a value is available for Opportunity Best Case Threshold (%) in Forecast Settings in your PSA data environment. Otherwise, this value is zero.
Scheduled Revenue Worst Case Value ValueScheduledRevenueWorstCase The value of Scheduled Revenue Value when a value is available for Opportunity Worst Case Threshold (%) in Forecast Settings in your PSA data environment. Otherwise, this value is zero.
Total Worst Case Value ValueTotalWorstCase Sums the value of the Actual Value and the Forecast Worst Case Value fields. (including Adjustments)