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”.

Opportunities can also be added multiple at once from the Multiple At Once page accessible from 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 number of decimal places enabled in this pop-up is controlled by the FormatInput application setting.

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


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

  • Sum = summary of  values shown on current (actuals used when present)
  • ARR = Annual Recurring Revenue summary for current page
  • Forecast Target = the forecast target as defined on the forecast
  • Sum All Pages = summary forecasted values across all pages

Amounts can pushed back to the opportunity amount if the application setting UpdateOpportunityAmountFromLine is set to “Yes”. Update Opportunity is shown for available for opportunities without products. “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
    • changes done to opportunity amount will not reflect in update of forecasted values when UpdateOpportunityAmountFromLine=Yes. Only one side can be the master.

Opportunities with products get their total amounts from the sum of all products and they are read only which is why the “Update Opportunity” menu option is not displayed for these. Changes made to opportunities with product lines are propagated into forecasted values even when UpdateOpportunityAmountFromLine=Yes.

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.

The Previous period defaults to the most recent historical snapshot and you can manually select any previous period for comparison. You can hide lines from being displayed and users with admin permission can also save a filter for what gets hidden. You can toggle between a monthly and quarterly view using the icon at top right corner of table.


  • Actual values takes precedence over forecasted values
  • Current Period displays values as of now
  • Previous Period displays values from the 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 colors are configurable as application settings.

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 and save filter for line hide/show
  • 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 forecasts as suitable for your organisation. Each forecast has its set of forecast objects linked to it (lines for each opportunity/order) as well as seasonal variation and target numbers.


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

The seasonal variation settings are used and applied when opportunities and orders are added to forecasts.

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

Forecast Objects

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


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

    • only relevant for opportunities without products
    • 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.

You configure the mappings in the SubscriptionForecastMapping application setting (Custom Metadata Type).

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 products in these families are added 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

– Product line dates are used when present. Otherwise the opportunity/order start dates are used


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 line dates and 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. Product lines are added/removed/changed on opportunity/order => forecasted values are recalculated.

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

Dashboards and Reporting

The  application includes reports and report types to be used when you create your  dashboard components. The below example is based on these.

Dashboard small

Follow the steps below to create the stacked bar chart view:

  1. Add a dashboard components to your dashboard.
    • Select the “Subscription Forecast Trend” report
  2. Define dashboard settings like screenshot below


Follow the steps below to create the Subscription Forecast Current Year donut:

  1. Add a dashboard components to your dashboard.
    • Select the “Subscription Forecast Periods” report
  2. Define dashboard settings like screenshot below


The Subiterum report types contains lookup fields from Opportunity and Order objects for use in reports. To add additional fields, including custom fields, you can “clone” a Subiterum report types into your own type and then modify it to fit your needs.

Application Settings and Setup Page

The Setup page is only available for admin users.


  • Schedule weekly trend job
    • Schedules the weekly batch job that copies forecasts into historical snapshots for trending purposes.
    • This job is also shifting the forecast into a new year when that occurs so it is important that it has been scheduled.
  • Application Settings
    • See next section
  • Product Mappings
  • Refresh reporting lines
    • Should not have to be used as the application maintains the reporting data in subsfor__SubscriptionForecastlineInfo__c automatically
      • The refresh/delete buttons are available for unforeseen situations if reporting data for some reason gets out of sync. It does the following:
        • 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”
  • ContractLimitsEnabled (Yes/No)
    • Controls if contract end date should be taken into consideration when values are created from algorithms.
  • 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.
  • FormatDisplay
    • Defines the format used for values displayed on the forecast line page.
    • Example for 0 decimals displayed: ###,##0
    • Example for 1 decimals displayed:  ###,##0.0
    • Example for 2 decimals displayed: ###,##0.00
  • FormatInput
    • Defines the format used by input fields on the forecast line page.
    • Example for 0 decimals displayed: ###,##0
    • Example for 1 decimals displayed:  ###,##0.0
    • Example for 2 decimals displayed: ###,##0.00
  • LoadAllForecastLines (Yes/No)
    • Controls if all lines visible for a user get loaded into the line and trend pages or if lines are loaded owner by owner. Set this setting to No if you have large volumes.
  • 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 (Yes/No)
    • Controls if Opportunity amount can be updated from Forecast Line UI for opportunities without product lines.
  • UpdateOpportunityAmountFromLineYears (Default=4)
    • 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.


All forecasted values are stored in the corporate currency. Amounts in other currencies are converted into corporate currency when values are created/updated on forecasts.

Error log

If the application encounters an exception that can not be surfaced without interrupting standard salesforce functionality the error is logged and displayed on the Setup page. Please send us a mail if this happens.

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 ↑