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.
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
The table Level Two Adjustment details a level two adjustment to the value of $1,000 being rolled up to level one.
RPG Hierarchy Level |
Revenue Source |
Currency |
Worst Case |
---|---|---|---|
1 | High Tech | USD | 1000 |
2 | Prestige Worldwide | USD | 1000 ↑ |
The table Level One Adjustment details the level two adjustment being overridden by an adjustment made to High Tech at level one. 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.
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
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:
This field is deleted after performing the calculation. |
Revenue Pending Recognition Value | ValueRevenuePendingRecognition |
Sums the values of the following input fields:
|
Revenue Recognized To Date Value | ValueRevenueRecognizedToDate |
Sums the value of the following input fields:
|
Scheduled Revenue Value | ValueScheduledRevenue |
Sums the value of the following input fields:
|
Unscheduled Revenue Value | ValueUnscheduledRevenue |
Sums the value of the following input fields:
|
Unscheduled Revenue Best Case Value | ValueUnscheduledRevenueBestCase |
Sums the value of the following fields:
|
Unscheduled Revenue Worst Case Value | ValueUnscheduledRevenueWorstCase |
Sums the value of the following fields:
|
Actual Value | ValueActual |
Sums the value of the following fields:
|
Forecast Value | ValueForecast |
Sums the value of the following fields:
|
Forecast Best Case Value | ValueForecastBestCase |
Sums the value of the following fields:
|
Forecast Worst Case Value | ValueForecastWorstCase |
Sums the value of the following fields:
|
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) |