User Guide

Subscription Forecasting and Planning

Overview Video

Add Opportunities, Orders and Subscriptions to Forecast

Opportunities and orders can be added to a subscription forecast either manually or automatically if automated forecasting is enabled.

To add an opportunity to a forecast from the opportunity or order page, use the “Add To Subscription Forecast” button and select a forecast and algorithm. Your default forecast and algorithm are pre-selected.


Opportunities, orders and subscriptions can only be added to one forecast of type “Forecast”. They can be added to multiple “Budget” forecasts for revenue scenario planning (forecast type = budget). Opportunities with probability = 0% can not be added to forecast and if an opportunity is updated to probability 0% it gets removed from any forecast of type “Forecast”.

Subscriptions are added to forecasts in the same way but from the subscriptions page in the application.

Opportunities can also be mass-added by administrators from the Multiple At Once page found under the Setup menu option.


Enter Forecast Values

Forecast values can be entered and adjusted in the “Forecast Line” user interface by clicking on the edit icon at the right side of the relevant forecast line.


The capabilities provided for a specific user are controlled by user permissions. Values can be changed both individually, cell-by-cell or through the adjustment tools at the bottom section of the pop-up for updating multiple at once.

The drop down menu next to each line provide capabilities for hiding/showing lines as well as removing opportunities, orders, subscriptions from forecast.

Forecast Line Menu

If the application setting UpdateOpportunityAmountFromLine is set to “Yes” the Update Opportunity menu option is shown for opportunities without product lines. “Update Opportunity” does the following:

  1. summarises the forecasted values for the opportunity across all forecast objects into a summary amount. Actuals are used when present.
    • The number of years being summarised is configurable in the UpdateOpportunityAmountFromLine application setting. Summary starts at opportunity close date.
  2. updates the opportunity amount with the summary amount

The “Update Opportunity” approach means that the Forecast Line page becomes the place from which you drive opportunity amounts rather than the opposite. Manual changes done to the opportunity amount for opportunities without product lines will be ignored by the forecasting application.

Opportunities with product lines gets their total amount set to the sum of all lines and the total amount is then read only. The “Update Opportunity” menu option is not displayed for these as they are not updatable. Changes made to opportunities with product lines are propagated into forecasted values even when UpdateOpportunityAmountFromLine=Yes.

The summary lines on the forecast lines page have the following definitions:

  • Weighted = summary of forecasted values * opportunity probability (current page)
  • Total Revenue = summary of forecasted values (current page)
  • Forecast: Target = target values defined on forecast are shown for comparison purpose
  • Forecast: Weighted = summary of forecasted values * opportunity probability %(all pages)
  • Forecast: Total = summary of forecasted values (all pages)

Enter Actuals

Each forecast line can store “actual” values in addition to the forecasted values. All users can expand their forecast line view to show actuals by using the top left icon. Special user permissions are needed for entering actuals.

Actuals can be entered line by line in same ways as forecast values but also column wise to facilitate a more efficient entering of values for a specific period.


Forecast Trending

All forecasted values are copied into historical snapshops on a weekly basis at a day and time defined in the Setup page. Additional snapshots can be created manually by admins using the button on the Forecast Trend page.


The Forecast Trend page compares values from current month with values from previous comparison periods.

Daily and weekly previous periods are stored for one month after which they are deleted except for first snapshot from every month that is kept for monthly comparison data points.

The Previous period defaults to the latest historical snapshot and you can manually select any previous period for comparison. You can also hide sections and lines from being displayed to easily leverage the information for different audiences and purposes.


  • Actual values takes precedence over forecasted values when actuals exist.
    • note that 0 is a value. If 0 has been entered as actual it will override any forecasted value for that period.
  • Current Period displays values as present in current month
  • Previous Period displays values as of selected previous comparison date
  • All Recurring filter in the forecast objects drop down list summaries all values for “Recurring” forecast objects.
  • Annual Recurring Revenue shows the monthly recurring revenue normalised to a yearly value by multiplying it with 12.

The thresholds for red and green highlighting are configurable application settings and you can toggle between a monthly and quarterly view using the icon at top right corner of table.

The underlying data is the same as for Forecast Line page which means a user only sees values for opportunities, orders and subscriptions that are accessible.

User Permission Sets

All Salesforce users that should access the application need to have a license assigned and one or more of the below subscription forecasting permission sets.

Licenses are assigned via Setup – Platform Tools – Apps – Installed Packages and then “Manage Licenses”. Permission sets are added from Setup –   Administration – Users – Permission Sets:

Permission Sets.png

Subscription Forecasting Admin: Full access to the application in including:

  • Define forecasts
  • Define forecast objects
  • Define algorithms
  • Can enter forecast values for opportunities and subscriptions
  • Can edit historical values
  • Can edit actuals
  • Can take trend history snapshots
  • Visible user guide links inside the application

Note that this admin permission gives users full access including deletion of forecasts  so use it with care.

Subscription Forecasting User: Cannot define forecasts, objects or algorithms. Cannot edit actuals or historical forecast values.

  • Can enter forecast values for opportunities, orders and subscriptions

Subscription Forecasting User Edit Historical Values: Same as subscription forecasting user and permission to also edit historical forecast values.

  • Same as user
  • Can edit historical forecast values for previous months in current fiscal year

Subscription Forecasting Automated Only User: Cannot define forecasts, objects or algorithms. Can not enter forecast values manually, edit actuals or historical forecast values.

  • Read only pages
  • Enables automated forecasting driven from changes made to opportunities and orders

In addition to the above user permission sets the following add-on permission sets can be added to give users additional permissions.

Subscription Forecast Edit Actuals: Added to user who should be able to edit actuals values.

  • Can enter actuals values for opportunities, orders and subscriptions

Defining Forecasts, Forecast Objects and Algorithms

The application allows you to model forecasts, forecast objects and algorithms to fit your business needs.


Define one or more subscription forecasts as suitable for your organisation. Each forecast has its set of forecast objects linked to it (lines on forecast) as well as seasonal variation and target.


Defining a forecast as “Default” means it will be used for opportunities and orders that are automatically added to forecast. Only one forecast should be set as default. See further details in automated forecasting section.

The seasonal variation settings defined on forecast level are taken into consideration by the algorithms when opportunities and orders are added to forecasts.

A forecast including all details can be copied into a budget forecast using the line level button to facilitate “what if ?” scenario plannings.

Forecast Objects

Forecast objects typically represent revenue types to be forecasted for opportunities, orders and subscriptions and can be added to one or more forecasts. Each forecast objects added to a forecast results in a line for each opportunity/order/subscription on the forecast to store monthly values.


Examples could be “Cloud Subscription Growth”, “Cloud Subscription Contracted”, Professional Services, “Service Contract”, “Maintenance”, “Application Management”, “Product Segment A”,  “Product Segment B” etc.

  • ALGORITHM ATTRIBUTION %: only relevant for opportunities without products. For those it controls the weight being applied across lines when opportunities are added to a forecast.



If the above two forecast objects are added to a forecast the forecast lines for “Cloud Subscription Growth”  will get 100% of the amount when opportunities are added to this forecast.


If both algorithm attribution% settings are 50 the two lines will get 50% of the amount each.

The forecasting engine treats the algorithm attribution values as individual weights. If three forecast objects each having algorithm attribution=50 would be used on a forecast the three corresponding forecast lines would get 1/3 of the amount each (50/150 = 33.33).

  • SEASONAL VARIATION: is used when opportunities or orders are added to forecasts. The seasonal variation pattern is defined on forecast level.
  • CODE: used when products and/or product families are mapped to forecast objects.


Algorithms define monthly revenue patterns that control how opportunity and order amounts and sub totals get distributed over time when added to forecasts.


An algorithm defines monthly percentages to be applied for each month starting from the opportunity close date or order start date.


An algorithm to implement a “linear 12 month” amount pattern would have 8.33  (100/12=8.33) as the monthly value for each of Period01-Period12.

An algorithm to implement full opportunity amount in the closing month would have 100 in Period01.

Defining an algorithm as “Default” means it will be used when opportunities without products are automatically added to forecast. It will also be used as fallback algorithm for opportunities and orders with products if a product lacks mapping to algorithm. Only one algorithm should be set to default. You need to define at least one algorithm in the system but it can have all 0 values in the event you do not want any values to be populated by your algorithm.

Proration can be enabled on algorithms to get partial amounts forecasted in the starting month for recurring forecast objects. Proration has the following characteristics:

  • Only Recurring forecast objects (forecast lines) are prorated
  • Proration only applies for opportunities/orders with product lines
  • The opportunity close date/order start date is included in prorated amount i.e. if close date is first day of a month, the full month will be forecasted.

If the application setting ContractLimitsEnabled has been set to “Yes” proration is also being applied based on contract end date.

  • The contract end date is included in the prorated amount i.e. if the contract end date is last day of month, the full month will be forecasted.

Product Based Forecasting

Products and/or Product Families can be mapped both to algorithms (distributing revenue over time) and forecast objects (lines on forecast) to automatically get revenue distributed as appropriate on your forecasts.

You configure the mappings from product and product families to algorithms and forecast objects in the SubscriptionForecastMapping application setting.

opportunities with lines



1. Define a product family for your hardware products and map it to a forecast object for hardware and an algorithm placing full amount in first month.

2. Define a product family for your 12 month subscriptions and map it to a 12 months algorithm and a forecast object for subscriptions.

Result: When you then add products in these families to opportunities or orders the respective product line sub totals will automatically show up on different forecasting lines with revenue distributed correctly over time driven from the product family mappings.

The product based mappings have the following characteristics:

Algorithm Mappings

– If a product level mapping is found it takes precedence

– If no product level mapping is found then product family mappings are explored

– If no product or product family mappings are found for algorithm then the “Default” algorithm is used

– If no “Default” algorithm has been defined, the values default to 0

Forecast Object mappings

– If a product level mapping is found it takes precedence

– If no product level mapping is found then product family mappings are explored

– If no product or product family mapping is found for a product it will be ignored


Note: Product Code is the basis for the mapping logic. Products must have a product code defined for mapping to work.

Note: The Product Family API name is the basis for mapping. Make sure to use the the API Name in your mappings.


Automated Forecasting

The automated forecasting engine controls how and when forecast values are created, updated and deleted driven from the salesforce opportunity and order entities. The behaviour is controlled by configuration on application, forecast, forecast object and algorithm levels.

Automated Forecasting

Automated add/remove from forecast can be enabled/disabled by the AutoAddOpportunitesToForecast and AutoAddOrdersToForecast application settings.

When opportunities or orders are added to a forecast their respective close date/start date  becomes the initial month from which the algoritm starts applying values. For opportunities without lines, the opportunity amount is the base line for the algorithms. Opportunities and orders with product lines base the logic on the individual lines sub totals.

The seasonal variation pattern defined on forecast level gets applied on the values derived by an algorithm.

When an opportunity or order is updated, changes to opportunity close date, order start date, opportunity/order amount are automatically reflected into the forecasted values.


A. Opportunity close date moved to one month later => forecasted values are moved by one month

B. Opportunity amount decreased by 25% => forecasted values reduced by 25%. This percentage based adjustment means any manual adjustments to values remains but adjusted with same percentage as original opportunity amount.

C. Products are added or removed to/from opportunity/order => forecasted values are recalculated.

D. Order start date is updated => forecasted values are recalculated

Dashboards and Reporting

Our application includes a dashboard that can be serve as an example when defining your own dashboard components.

Dashboard small

The underlying two Subscription Forecast Report Types can also prove useful as a baseline when your implement your own reports.

Professional Edition users are not able to view the above included dashboard due to restrictions  preventing dynamic dashboards. Follow these simple steps to create your own dashboard component:

  1. Add a dashboard components to your dashboard.
    • Select the “Subscription Forecast Trend” report when doing this
  2. Define dashboard settings like screenshot below to get the stacked bar chart view


We strive to produce as meaningful descriptions as possible for all objects and fields to make it easy for you to define reports and dashboard components for your needs. Don’t hesitate to reach out to us in case you have questions around information stored.

Application Settings and Setup Page

The Setup page is available for admin users.

  • Schedule weekly trend job
    • Schedules the weekly batch job that copies forecasts into historical snapshots for trending purposes
  • Application settings
    • Application wide settings, see details below.
  • Product Mappings
  • Refresh reporting lines
    • Should not have to be used as the application shall maintain the reporting data in subsfor__SubscriptionForecastlineInfo__c object in a consistent manner.
      • The refresh button is available for use in unforeseen situations if reporting data gets out of sync.
        • Refresh reporting lines from your forecasts
          1. deletes reporting lines
            • you forecast lines are not impacted by this, only the lines used by reports and dashboards
          2. populates reporting lines
        • Delete reporting lines
          • deletes reporting lines
            • you forecast lines are not impacted by this, only the lines used by reports and dashboards
  • Populate demo data
    • Can be used to populate the application with demo data as a fast way of getting started. Demo data can then be modified to fit your needs.


Application Settings


  • AutoAddOpportunitesToForecast (Yes/No)
    • Controls if Opportunities should be automatically added/removed  to forecasts when Opportunity. Probability crosses the AutoAddOpportunitiesThreshold.
  • AutoAddOpportunitiesThreshold (Default=60)
    • When an Opportunity is created or updated making its Probability % go above this threshold the Opportunity is added to the Default Forecast using the Default Algorithm.
  • AutoRemoveOpportunitiesThreshold (Default=40)
    • When an Opportunity is deleted or updated making its Probability % pass below this threshold the Opportunity is removed from Forecast.
  • AutoAddOrdersToForecast (Yes/No)
    • Controls if orders should be automatically added to forecasts when their status gets updated to “Activated”
  • DisplayActuals (Yes/No)
    • Controls if all users should be able to expand to show Actuals in Forecast Line UI


  • EnableSubscriptions (Yes/No)
    • Controls if the Subscriptions menu option should be visible in the application.
  • NumberOfVisibleFiscalYears (Default=2)
    • Controls how many fiscal years that are visible in UIs. Valid values are 1-4.
  • OrderLabel (Default=Order)
    • Controls the label displayed for orders added to a forecast
      • Order: the order number is displayed
      • Account: the account name is displayed
      • Both: both account name and order number is displayed
  • PaginationForecastLine (Default=10)
    • Controls number of lines shown per page on the Forecast Line page
  • PaginationSubscription (Default=10)
    • Controls number of lines shown per page on the Subscriptions page
  • TrendThresholdGreen (Default=10)
    • Forecast Trend UI:  Green highlighting threshold. 10 means that all current period summaries with >10% increase than previous period summaries gets highlighted in green.
  • TrendThresholdRed (Default=10)
    • Forecast Trend UI:  Red highlighting threshold. 10 means that all current period summaries with <10% decrease from previous period gets highlighted in red.
  • UpdateOpportunityAmountFromLine (Default=No)
    • Controls if Opportunity amount can be updated from Forecast Line UI for opportunities without product lines.
  • UpdateOpportunityAmountFromLineYears (Default=1)
    • Number of years included when forecasted values are summarised to update Opportunity Amounts.
      • 1 year means 12 months from Opportunity Close Date.
      • For opportunities with a close date earlier than current fiscal year the start date of current fiscal year is used.


  • Controls which confidence levels that are enabled for selection in the update forecast line popup, their label and display order.
  • Enable/Disable the four selections to fit your needs



  • Controls the values available in the tools section of the update forecast line popup. Add, remove, change records to implement the values suitable for your business.



  • Controls the values available in the tools section of the update forecast line popup. Add, remove, change records to implement the values suitable for your business.



Mappings from products and product families to algorithms and forecast objects. See product based forecasting.

Note: Mappings are case sensitive.




Fiscal Years

The application leverage the fiscal year settings of your organisation. Your fiscal year start month becomes the first subscription forecast period. If you update you fiscal year settings the subscription forecasting data will not automatically follow that update. The period headers (JAN, FEB…) will change based on your fiscal year settings but the data in the respective column will not move or change.

This means no data gets lost if you change your fiscal year ut also that you need to adjust your data accordingly in the subsfor__SubscriptionForecastLine__c and subsfor__SubscriptionForecastHistoryLine__c objects.


The application assumes that same currency is used for all opportunity and order amounts.

Current Limitations

Let us know if any of our current limitations are problematic for your needs so we can look into possibilities to address that.

  • All revenues on forecasts assumes same currency
  • Max 49 999 forecast lines
    • Let us know if you have a need for more

Un-Install Application

  1. Remove any permission set assigned to your users (in post-installation step 1)
    • Navigate: ADMINISTRATION => Users => Permission Sets and click on the permission sets (Subscription Forecasting Admin)
    • Click on “Manage Assignments” and then “Remove Assignment”
  2. Navigate Setup => Apps => Installed Packages and then click “Uninstall”

Create a website or blog at

Up ↑