action.skip

Setting Up Subscription-Based Reporting

← Configuring Reporting Options

Service companies (SaaS, professional services, etc.) usually generate recurring revenue based on subscriptions with their customers. JustOn Billing & Invoice Management supports subscription billing with recurring and transactional (usage-based) items. Now the companies need continuous reporting about subscription-based KPIs, too – like, for example, MRR (monthly recurring revenue) or Churn (rate of discontinued subscriptions or lost revenue), based on their current subscriptions.

To this end, JustOn Billing & Invoice Management introduces specific metric objects that can be set up to track billing-relevant changes: account metrics, subscription metrics and cash metrics.

For more explanatory information, refer to KPI Metrics.

Account Metrics

Account metrics track changes to recurring or transactional items, like creation, termination, price/quantity modifications, to display the recurring revenue or growth/churn rates aggregated over all subscriptions of an account on a monthly base, producing MRR values. Account metrics are related to the account and the subscription.

The main component is the Account Metric object, which is nearly identical to the Subscription Metric object. It holds the following information:

Account metric data model
Field Description
Account The related account (secondary master-detail); the metric record is deleted when the account is deleted.
Actual The actual amount of this metric
Previous/Initial + Change
Change The change of the MRR based on the previous MRR.
Churn Rate (Gross) The gross churn rate is the ratio between Churn and Actual.
IF(Actual=0,1,Churn/Actual)
Churn Rate (Net) The net churn rate is the ratio between Change and Actual.
IF(Actual=0,1,Change/Actual)
Churn The absolute churn if the change is negative.
IF(Change < 0,ABS(Change),null)
Date The effective date of this metric, depends on the kind of change (add/subtract) and the service period/next invoice date of the item.
Expansion The absolute expansion if the change is positive.
IF(Change > 0,Change,null)
Growth Rate The growth rate is the ratio between Change and Previous.
IF(Previous=0,null,Change/Previous)
Initial Holds the initial MRR value. Only filled if the change date equals the start date of the first subscription.
Is Latest (checkbox) Marks the latest metric record for a particular item criterion.
Item Criterion The criterion shows which items have been aggregated to this metric.
Items The names of the related items that caused the current change.
Next Metric Links to the next metric record, which supersedes the current record.
Previous Metric Links to the previous metric record, which is superseded by the current record.
Previous Holds the MRR value of the previous metric record.
Retention Rate The opposite of the gross churn rate. The sum of the two is always 100%.
1-ChurnRateGross
Smooth Change The smooth change formula allows to report two consecutive metrics (within two days) as one (like -50 and +70 is reported as +20)
Subscription The first related subscription (lookup). If the metric is aggregated from multiple subscriptions, it is not specified which subscription is linked.
Subscriptions In case of an aggregated record, a (comma-separated) list of involved subscriptions that caused the current change.

In addition, you can define summary fields on the account in order to calculate future MRR values. For details, see Creating Additional Account Fields.

Account metric generation

Generally, the account metric generation and the subscription metric generation are nearly identical. They use the same subscriptions and items as input and follow the same rules that trigger the metric creation.

The difference is:

  • Metric data for subscription metrics is aggregated on subscription basis.
  • Metric data for account metrics is aggregated on account basis, that is, for all subscriptions of an account.

The decision whether to create subscription metrics or account metrics is controlled via the global setting Subscription Metrics Scope.

If Subscription Metrics Scope is not set, JustOn creates subscription metrics by default.

Generally, the following item actions produce new or changed metric records:

  • Creating a recurring item
  • Creating a transactional item with expected revenue
  • Ending a subscription or item using an end date

    You can set the end date retroactively within one month to trigger the end metric creation.

  • Deactivating an item

  • Changing the price/quantity of an item

To actually create or update subscription metric records, you can either schedule the subscription metric builder job (which is the preferred option), create a custom flow, or enable users to update a single subscription metric manually.

Workflow details

Subscription metric records and account metric records are created on subscription or item change if the following conditions are met:

Subscription
  • Status is not set to Draft

    That is, subscriptions with the statuses Active, Inactive, Canceled or Upgraded (or any custom status) are subject to the metric generation.

Recurring item
  • Billing type is Recurring, Recurring Prorated or Recurring Prorated AVG
  • Item is created
  • Quantity or price is changed
  • Item is deactivated

    Items that are inactive already are not subject to the metrics generation.

  • End date is set

    Items whose end date had already passed are not subject to the metrics generation.

Transactional item
  • Billing type is not Recurring, Recurring Prorated, Recurring Prorated AVG or One-Time
  • Item is created
  • Expected revenue is changed
  • Item is deactivated

    Items that are inactive already are not subject to the metrics generation.

  • End date is set

    Items whose end date had already passed are not subject to the metrics generation.

Changing the start date or deleting an item does not trigger the metrics generation. To cover start date modifications, you deactivate the original item and create a new one with the new start date. To cover an item removal, you deactivate the item.

In addition, the following rules apply:

  • Each change results in a new metric record that is linked to the previous record.
  • If the change date equals the start date of the first subscription, the field Initial is set.
  • Subsequent metric records have filled the fields Previous and Change.
  • The first record is set to the start date of the item or subscription.
  • As of v2.84, the global settings option Ignore Invoices for MRR Metrics decides whether subsequent metric records are set to the item's next invoice date or start from the original start date. If activated, item price or quantity changes update MRR metrics starting from the relevant start date, irrespective of the item's next invoice date. This way, it is possible to decouple the metrics creation from existing invoices.

    With new v2.84 installations, this option is activated by default. When upgrading from previous versions, this option is not selected, which keeps the previous behavior of using the item's next invoice date for subsequent metric records.

    If you use the option Ignore Invoices for MRR Metrics, JustOn strongly recommends to deactivate the original item and create a new one with the new price or quantity instead of just modifying the values. This makes sure that the produced metrics represent the effective values throughout the covered period.

  • A final metric record for an item is created only if the end date of the item is actually reached (that is, if the end date equals the current date or a previous date), or if the subscription is canceled.

  • The final metric record is set to the day after the end date of the item.
  • Metrics are continued from upgraded subscriptions (related via the subscription field Previous Subscription).
Account metrics generation example

The metric data for account metrics is aggregated over all subscriptions of an account.

Assume the following subscription metric data from two subscriptions of one account:

Subscription sub1:

# Date Actual Change
1 2020-07-01 10,00 10,00 (positive) change
2 2020-08-01 110,00 100,00 (positive) change
3 2020-09-30 100,00 -10,00 (negative) change
4 2020-10-31 0,00 -100,00 (negative) change

Subscription sub2:

# Date Actual Change
1 2020-07-01 10,00 10,00 (positive) change
2 2020-09-01 11,00 1,00 (positive) change
3 2020-10-31 1,00 -10,00 (negative) change

This results in the following account metrics:

# Date Actual Change Subscriptions
1 2020-07-01 20,00 20,00 (positive) change
sub1,sub2
2 2020-08-01 120,00 100,00 (positive) change
sub1
3 2020-09-01 121,00 1,00 (positive) change
sub2
4 2020-09-30 111,00 -10,00 (negative) change
sub1
5 2020-10-31 1,00 -110,00 (negative) change
sub1,sub2

Setting up the Account Metric object and related functionality involves

Once set up, you can use Business Reports to display the resulting metrics in easy-to-understand formats, including graphs.

Configuring Account Metric Permissions

You must manually configure the access to the Account Metric object.

  1. Create a new permission set.

    For details, see Create Permission Sets in the Salesforce Help.

  2. Assign Read, Create and Edit permissions for the Account Metric object to the new permission set.

    For details, see Edit Object Permissions in Profiles in the Salesforce Help.

Info

Field access is already assigned via the permission set JustOn Read/Write and is not required to be configured specifically.

Enabling Account Metrics Creation

Account metric generation

Generally, the account metric generation and the subscription metric generation are nearly identical. They use the same subscriptions and items as input and follow the same rules that trigger the metric creation.

The difference is:

  • Metric data for subscription metrics is aggregated on subscription basis.
  • Metric data for account metrics is aggregated on account basis, that is, for all subscriptions of an account.

The decision whether to create subscription metrics or account metrics is controlled via the global setting Subscription Metrics Scope.

If Subscription Metrics Scope is not set, JustOn creates subscription metrics by default.

The global settings field Subscription Metrics Scope contains a comma-separated list of strings that controls which metrics data is produced. The possible values include:

Value Result
Subscription Create subscription metrics data
Account Create account metrics data
Subscription, Account Create both subscription metrics and account metrics data

If Subscription Metrics Scope is not set, JustOn falls back to Subscription and creates subscription metrics by default.

  1. Click to enter Setup, then open Custom Settings.

    In Salesforce Lightning, navigate to Custom Code > Custom Settings.

    In Salesforce Classic, navigate to Develop > Custom Settings.

  2. Click Manage in the row of Global Settings.

  3. Click Edit in the Default row.
  4. In the field Subscription Metrics Scope, specify the intended scope.

    The value can be one of Subscription, Account or Subscription, Account.

  5. Click Save.

Info

If you have already created subscription metrics data and now also want to create account metrics data, be aware that the creation of account metrics data does not include the subscription data for which the subscription metric data has already been generated. The same applies vice-versa: Processed subscriptions are ignored if you have already created account metrics data and now modify the configuration to additionally create subscription metrics data.

In these cases, consider to recreate subscription metrics data.

Creating Additional Account Fields

Optionally, you can set up summary fields on the account in order to report future MRR values. The summary fields are not shipped with JustOn, but you can easily create them.

Label API Name Data Type Description
Current MRR MRR_0m__c Currency Shows the current MRR (based on the MRR job execution date).
MRR in One Year MRR_12m__c Currency Shows the MRR in one year (based on the MRR job execution date), taking account of the subscription end date.
MRR in Three Years MRR_36m__c Currency Shows the MRR in three years (based on the MRR job execution date), taking account of the subscription end date.
Expected MRR in One Year MRR_12m_f__c Currency Shows the expected (future contracted) MRR in one year (based on the MRR job execution date), ignoring the subscription end date if auto-renewal is enabled.
Expected MRR in Three Years MRR_36m_f__c Currency Shows the expected (future contracted) MRR in three years (based on the MRR job execution date), ignoring the subscription end date if auto-renewal is enabled.

Info

The future contracted MRR fields show the expected revenue based on the condition that auto-renewal is enabled for the current subscription. In this case, JustOn ignores the subscription end date, providing an optimistic forecast.

If there is no auto-renewal defined, these fields act like the other MRR fields and show the same result. That is, they take account of the subscription end date, providing a realistic forecast.

JustOn supports price tier groups for future MRR values. If there are price tier groups for an item, JustOn uses the price of the price tier group that is valid for the future date. If there is no valid price tier group available for the future date, JustOn sets the future MRR value to 0.

JustOn does not consider multiple prices per price tier group but always uses the price of the first tier for future MRR values.

The MRR summary fields are refreshed when the MRR job is executed.

The summary fields must be of the data type Currency. The API name must use the pattern MRR_Zm__c or MRR_Zm_f__c, where

  • Z is a positive number that represents months, like MRR_0m__c, MRR_12m__c
  • f indicates that the field considers future contracted MRRs

To create MRR summary fields for accounts:

  1. Navigate to the fields list of the Account object.
  2. Create the MRR summary fields as required.

    For help about creating fields, see Managing Object Fields.

  3. Allow the users who execute the MRR job write access to the MRR summary fields either by adding them to their assigned profiles or permission sets.

    For details, see Set Field Permissions in Permission Sets and Profiles in the Salesforce Help.

  4. Allowlist the MRR summary fields to make them accessible for database queries.

    To this end, create new Field Whitelist records for the new fields.

Enabling Account Metric List Display

Optionally, you can enable the display of related account metrics on the account page using Salesforce's related list functionality (see Work with Related Lists on Records in the Salesforce Help).

  1. Navigate to the object management settings of the Account object.
  2. Click Page Layouts.
  3. In the Account Layout row, click Edit.
  4. Select the Related Lists palette.
  5. Drag the Account Metrics list to the Related Lists section.
  6. Click Save to save the modified page layout.

For help about modifying page layouts, see Managing Pages.

Enabling Account Metric Generation

To create or update account metric records, you can

Scheduling Account Metric Generation

The preferred way to create or update both subscription metric and account metric records is to schedule the subscription metric builder job.

The subscription metric builder job does not require additional parameters. That is, you can set up the job directly for the corresponding Apex class BatchSubscriptionMetricBuilderJob. For details, see Scheduling Concepts.

To schedule the subscription metric builder job, you can use either JustOn's Scheduled Jobs page or Salesforce's Schedule Apex functionality. For details, see Scheduling a Job.

Via JustOn's Scheduled Jobs page:

  1. Open the Scheduled Jobs page.

    Use the following URL https://login.salesforce.com/apex/ONB2__JobsSetup, or, if you are already logged in, append apex/ONB2__JobsSetup to your org's domain name.

    You can access the Scheduled Jobs page via the JustOn configuration app ( > JustOn Configuration > Jobs Setup).

  2. From the Apex Job drop-down list, select Subscription Metric Builder Job.

    The Job Name field is automatically set to BatchSubscriptionMetricBuilderJob.

  3. From the Start Time drop-down list, select the preferred execution time.

  4. Optionally, edit the displayed cron expression to adjust the execution time.
  5. Click Schedule.

    This sets up the subscription metric generation to be executed at the specified time.

Info

From the Scheduled Jobs page, you can also run the job immediately.

Via Salesforce's Schedule Apex functionality:

  1. Click to enter Setup, then open Apex Classes.

    In Salesforce Lightning, navigate to Custom Code > Apex Classes.

    In Salesforce Classic, navigate to Develop > Apex Classes.

  2. Click Schedule Apex on top of the list.

  3. Specify the details as required.

    • Job Name
    • Apex Class: BatchSubscriptionMetricBuilderJob
    • Frequency: Weekly or Monthly (with an according weekday or day of month setting)
    • Start
    • End
    • Preferred Start Time
  4. Click Save.

    This sets up the subscription metric generation to be executed at the specified time.

For more details about job scheduling, see Scheduling a Job in the JustOn documentation and Schedule Apex in the Salesforce Help.

Creating Account Metric Generation Flow

It is possible to update or create the account metrics for a single account using a custom flow, which calls the Apex action BuildSingleMetricInvocable to trigger the metric generation. The Action requires the account ID as input parameter.

Note

Depending on your use cases, the flow setup and the objects to involve will vary.

Be aware, in addition, of the following specifics:

  • If all related subscriptions of the account are excluded from the metric creation or update – their checkbox CreateMRRMetrics is not selected (set false, see Enabling MRR Metrics on Account or Subscription Basis) –, the flow will not create or update account metrics.
  • If the account is excluded from the metric creation or update using CreateMRRMetrics but some of the related subscriptions are not, the flow will create or update account metrics – however, including and based on the subscriptions where CreateMRRMetrics is selected (true).
  1. Click to enter Setup, then navigate to Process Automation > Flows.
  2. Click New Flow.
  3. Select Record-Triggered Flow and click Create.
  4. Configure the Start element.

    Option Description
    Object The object whose record modifications are to update a source record, usually Subscription or Item
    Trigger The type of record change that triggers the flow, like A record is updated
    Conditions The use case-specific trigger conditions, one or more filter criteria for evaluating certain field values or a formula for evaluating records
    Optimize for Actions and Related Records
  5. Click and add the following Action element.

    Option Description
    Action The Apex class to call, must be BuildSingleMetricInvocable
    Input Values Invocable variables for the Apex class
    Account Id: specifies the reference to the ID field of the account for which to create account metrics

    Specify a label and an API name as required.

  6. Click Save.

    Specify a label and an API name as required.

  7. Click Activate.

    When the defined conditions are met, JustOn Billing & Invoice Management triggers the flow and creates or updates account metrics for the relevant account.

    For help about creating flows, see Flows in the Salesforce Help.

Note

Be aware that the Apex class BuildSingleMetricInvocable calls the subscription metric builder job, which triggers the asynchronous generation of account metrics. That is, it may take some seconds until the new metrics are built after the flow has finished.

Example use case: Update account metrics on price or quantity changes

You can, for example, trigger the account metrics creation flow when you change the price or quantity of a subscription item.

To this end, you set up the flow as follows:

Flow Element Option Value
Start Object Item
Trigger A record is updated
Conditions Any Condition Is Met (OR)
1: ONB2__Price__c Is changed {!$GlobalConstant.True}
2: ONB2__Quantity__c Is changed {!$GlobalConstant.True}
Action Action BuildSingleMetricInvocable
Input Values The ID of the subscription or account: {!$Record.ONB2__Subscription__r.ONB2__Account__r.Id}

This triggers JustOn to execute the flow when the Price or Quantity fields of a related subscription item are changed.

Enabling Account Metric Generation Button

Certain business use cases may require users to create or update account metrics for a single account manually. To support this, you can add the button Update Metrics to the Account page layout.

Note

Be aware of the following specifics:

  • If all related subscriptions of the account are excluded from the metric creation or update – their checkbox CreateMRRMetrics is not selected (set false, see Enabling MRR Metrics on Account or Subscription Basis) –, the operation will not create or update account metrics.
  • If the account is excluded from the metric creation or update using CreateMRRMetrics but some of the related subscriptions are not, the operation will create or update account metrics – however, including and based on the subscriptions where CreateMRRMetrics is selected (true).
  1. Navigate to the object management settings of the Account object.
  2. Click Page Layouts.
  3. In the Account Layout row, click to open the action menu, then select Edit.
  4. Add the Update Metrics button to the page layout.

    In Salesforce Lightning, drag the button from the Mobile & Lightning Actions palette to the Salesforce Mobile and Lightning Experience Actions section.

    In Salesforce Classic, drag the button from the Buttons palette to the Custom Buttons area.

  5. Click Save.

    For help about modifying page layouts, see Managing Pages.

Enabling Additional Account Metric Information

For reporting purposes, you may wish to copy more values from an item to the resulting account metric record, for example, the product group in order to allow a corresponding grouping in the MRR reports.

  1. On the Account Metric object, create new custom fields with the same API name and data type as the fields on the item.

    This copies the corresponding field values to the account metric upon record creation.

    For help about creating fields, see Managing Object Fields.

Subscription Metrics

Subscription metrics track changes to recurring or transactional items, like creation, termination, price/quantity modifications, to display the recurring revenue or growth/churn rates for individual subscriptions on a monthly base, producing MRR values. Subscription metrics are related to the account and the subscription.

The main component is the Subscription Metric object. It holds the following information:

Subscription metric data model
Field Description
Account The related account (secondary master-detail); the metric record is deleted when the account is deleted.
Actual The actual amount of this metric
Previous + Initial + Change
Change The change of the MRR based on the previous MRR.
Churn Rate (Gross) The gross churn rate is the ratio between Churn and Actual.
IF(Actual=0,1,Churn/Actual)
Churn Rate (Net) The net churn rate is the ratio between Change and Actual.
IF(Actual=0,1,Change/Actual)
Churn The absolute churn if the change is negative.
IF(Change < 0,ABS(Change),null)
Date The effective date of this metric, depends on the kind of change (add/subtract) and the service period/next invoice date of the item.
Expansion The absolute expansion if the change is positive.
IF(Change > 0,Change,null)
Growth Rate The growth rate is the ratio between Change and Previous.
IF(Previous=0,null,Change/Previous)
Initial Holds the initial MRR value. Only filled if the change date equals the start date of the first subscription.
Is Latest (checkbox) Marks the latest metric record for a particular item criterion.
Item Criterion The criterion shows which items have been aggregated to this metric.
Items The names of the related items that caused the current change.
Next Metric Links to the next metric record, which supersedes the current record.
Previous Metric Links to the previous metric record, which is superseded by the current record.
Previous Holds the MRR value of the previous metric record.
Retention Rate The opposite of the gross churn rate. The sum of the two is always 100%.
1-ChurnRateGross
Smooth Change The smooth change formula allows to report two consecutive metrics (within two days) as one (like -50 and +70 is reported as +20)
Subscription The related subscription (primary master-detail); the metric record is deleted when the subscription is deleted.

In addition, you can define summary fields on the subscription in order to calculate future MRR values. For details, see Creating Additional Subscription and Item Fields.

Subscription metric generation

Generally, the account metric generation and the subscription metric generation are nearly identical. They use the same subscriptions and items as input and follow the same rules that trigger the metric creation.

The difference is:

  • Metric data for subscription metrics is aggregated on subscription basis.
  • Metric data for account metrics is aggregated on account basis, that is, for all subscriptions of an account.

The decision whether to create subscription metrics or account metrics is controlled via the global setting Subscription Metrics Scope.

If Subscription Metrics Scope is not set, JustOn creates subscription metrics by default.

Generally, the following item actions produce new or changed metric records:

  • Creating a recurring item
  • Creating a transactional item with expected revenue
  • Ending a subscription or item using an end date

    You can set the end date retroactively within one month to trigger the end metric creation.

  • Deactivating an item

  • Changing the price/quantity of an item

To actually create or update subscription metric records, you can either schedule the subscription metric builder job (which is the preferred option), create a custom flow, or enable users to update a single subscription metric manually.

Workflow details

Subscription metric records and account metric records are created on subscription or item change if the following conditions are met:

Subscription
  • Status is not set to Draft

    That is, subscriptions with the statuses Active, Inactive, Canceled or Upgraded (or any custom status) are subject to the metric generation.

Recurring item
  • Billing type is Recurring, Recurring Prorated or Recurring Prorated AVG
  • Item is created
  • Quantity or price is changed
  • Item is deactivated

    Items that are inactive already are not subject to the metrics generation.

  • End date is set

    Items whose end date had already passed are not subject to the metrics generation.

Transactional item
  • Billing type is not Recurring, Recurring Prorated, Recurring Prorated AVG or One-Time
  • Item is created
  • Expected revenue is changed
  • Item is deactivated

    Items that are inactive already are not subject to the metrics generation.

  • End date is set

    Items whose end date had already passed are not subject to the metrics generation.

Changing the start date or deleting an item does not trigger the metrics generation. To cover start date modifications, you deactivate the original item and create a new one with the new start date. To cover an item removal, you deactivate the item.

In addition, the following rules apply:

  • Each change results in a new metric record that is linked to the previous record.
  • If the change date equals the start date of the first subscription, the field Initial is set.
  • Subsequent metric records have filled the fields Previous and Change.
  • The first record is set to the start date of the item or subscription.
  • As of v2.84, the global settings option Ignore Invoices for MRR Metrics decides whether subsequent metric records are set to the item's next invoice date or start from the original start date. If activated, item price or quantity changes update MRR metrics starting from the relevant start date, irrespective of the item's next invoice date. This way, it is possible to decouple the metrics creation from existing invoices.

    With new v2.84 installations, this option is activated by default. When upgrading from previous versions, this option is not selected, which keeps the previous behavior of using the item's next invoice date for subsequent metric records.

    If you use the option Ignore Invoices for MRR Metrics, JustOn strongly recommends to deactivate the original item and create a new one with the new price or quantity instead of just modifying the values. This makes sure that the produced metrics represent the effective values throughout the covered period.

  • A final metric record for an item is created only if the end date of the item is actually reached (that is, if the end date equals the current date or a previous date), or if the subscription is canceled.

  • The final metric record is set to the day after the end date of the item.
  • Metrics are continued from upgraded subscriptions (related via the subscription field Previous Subscription).
Subscription metrics generation examples
Single subscription

The following example illustrates the subscription metric generation on a basic level, that is, without applying criteria. This produces a single metric chain.

There is a subscription with the start date set to 2019-01-01 and the following items:

MRR_items
Start and end dates trigger subscription metric record creation

Based on the given subscription items, the subscription metric builder job produces these metric records:

MRR_metrics
Produced subscription metric records

# Event Modification
1 REC1 start date 50,00 initial MRR value
50,00 actual amount
2 REC2 start date 270,00 (positive) change
270,00 expansion value
320,00 actual amount
3 REC3 start date 30,00 (positive) change
30,00 expansion value
350,00 actual amount
4 REC2 end date -270,00 (negative) change
270,00 churn value
80,00 actual amount
5 REC1 end date -50,00 (negative) change
50,00 churn value
30,00 actual amount

If there are end dates set for items, JustOn produces the corresponding end metrics.

Subscription cancellation

Now assume you cancel the subscription before an item end date is reached. This forces JustOn to generate one end metric record for the current metric chain that includes all items, irrespective of their end date settings.

MRR_metrics
Produced subscription metric records after cancelling the subscription

# Event Modification
1 REC1 start date 50,00 initial MRR value
50,00 actual amount
2 REC2 start date 270,00 (positive) change
270,00 expansion value
320,00 actual amount
3 REC3 start date 30,00 (positive) change
30,00 expansion value
350,00 actual amount
4 subscription end date -350,00 (negative) change
350,00 churn value
0,00 actual amount
Subscription upgrade

Let us consider a subscription upgrade: There is a subscription with one item of 100 Euros, then you upgrade this subscription, raising the item's price to 125 Euros. There will be two subscriptions with their metric records. But because they all originate from the same item, the metric records will be aggregated in one metric chain, which allows for tracking the MRR for the item.

MRR_metrics_subscr_upgr_1
Produced subscription metric records of one subscription after upgrading it

MRR_metrics_subscr_upgr_2
Produced subscription metric records of the second subscription

# Event Modification
1 item start on subscription 1 100,00 initial MRR value
100,00 actual amount
2 subscription 1 end -100,00 (negative) change
100,00 churn value
0,00 actual amount
3 item modification on subscription 2 125,00 (positive) change
25,00 smooth change (= combined previous -100,00 change and current 125,00 change)
125,00 expansion value
125,00 actual amount

Setting up the Subscription Metric object and related functionality involves

Once set up, you can use Business Reports to display the resulting metrics in easy-to-understand formats, including graphs.

Configuring Subscription Metric Permissions

Because of the master-detail relationship with the account, you must manually configure the access to the Subscription Metric object.

  1. Create a new permission set.

    For details, see Create Permission Sets in the Salesforce Help.

  2. Assign Read, Create and Edit permissions for the Subscription Metric object to the new permission set.

    For details, see Edit Object Permissions in Profiles in the Salesforce Help.

Info

Field access is already assigned via the permission set JustOn Read/Write and is not required to be configured specifically.

Enabling Subscription Metrics Creation

The global settings field Subscription Metrics Scope contains a comma-separated list of strings that controls which metrics data is produced. The possible values include:

Value Result
Subscription Create subscription metrics data
Account Create account metrics data
Subscription, Account Create both subscription metrics and account metrics data

If Subscription Metrics Scope is not set, JustOn falls back to Subscription and creates subscription metrics by default.

  1. Click to enter Setup, then open Custom Settings.

    In Salesforce Lightning, navigate to Custom Code > Custom Settings.

    In Salesforce Classic, navigate to Develop > Custom Settings.

  2. Click Manage in the row of Global Settings.

  3. Click Edit in the Default row.
  4. In the field Subscription Metrics Scope, specify the intended scope.

    The value can be one of Subscription, Account or Subscription, Account.

  5. Click Save.

Recreating Subscription Metrics

Some business uses cases require to create new subscription metrics from scratch. To do so, proceed as follows:

  1. Delete all existing subscription and account metrics records.

    The individual subscription metric records are accessible via the corresponding related list on the subscription detail page if set up accordingly.

  2. Clear the following fields on all items and – when using price tier groups – on all tiers (Price__c):

    • Previous Start Metric
    • Previous End Metric
    • Previous End Date
  3. Execute the subscription metric builder job.

    For details, see Scheduling Subscription Metric Generation.

This forces JustOn to create new subscription metrics based on the current subscriptions and items.

Creating Additional Subscription and Item Fields

Subscription

Optionally, you can set up summary fields on the subscription in order to report future MRR values. The summary fields are not shipped with JustOn, but you can easily create them.

Label API Name Data Type Description
Current MRR MRR_0m__c Currency Shows the current MRR (based on the MRR job execution date).
MRR in One Year MRR_12m__c Currency Shows the MRR in one year (based on the MRR job execution date), taking account of the subscription end date.
MRR in Three Years MRR_36m__c Currency Shows the MRR in three years (based on the MRR job execution date), taking account of the subscription end date.
Expected MRR in One Year MRR_12m_f__c Currency Shows the expected (future contracted) MRR in one year (based on the MRR job execution date), ignoring the subscription end date if auto-renewal is enabled.
Expected MRR in Three Years MRR_36m_f__c Currency Shows the expected (future contracted) MRR in three years (based on the MRR job execution date), ignoring the subscription end date if auto-renewal is enabled.

Info

The future contracted MRR fields show the expected revenue based on the condition that auto-renewal is enabled for the current subscription. In this case, JustOn ignores the subscription end date, providing an optimistic forecast.

If there is no auto-renewal defined, these fields act like the other MRR fields and show the same result. That is, they take account of the subscription end date, providing a realistic forecast.

JustOn supports price tier groups for future MRR values. If there are price tier groups for an item, JustOn uses the price of the price tier group that is valid for the future date. If there is no valid price tier group available for the future date, JustOn sets the future MRR value to 0.

JustOn does not consider multiple prices per price tier group but always uses the price of the first tier for future MRR values.

The MRR summary fields are refreshed when the MRR job is executed.

The summary fields must be of the data type Currency. The API name must use the pattern MRR_Zm__c or MRR_Zm_f__c, where

  • Z is a positive number that represents months, like MRR_0m__c, MRR_12m__c
  • f indicates that the field considers future contracted MRRs

The subscription field Last MRR Update holds the date on which the MRR fields were last calculated.

  1. Navigate to the fields list of the Subscription object.
  2. Create the MRR summary fields as required.

    For help about creating fields, see Managing Object Fields.

  3. Allow the users who execute the MRR job write access to the MRR summary fields either by adding them to their assigned profiles or permission sets.

    For details, see Set Field Permissions in Permission Sets and Profiles in the Salesforce Help.

Item

By default, JustOn aggregates all items of a subscription to one metric chain. In order to separate items based on a criterion (for example, product group), you create an additional criterion field on the item. Depending on your requirements, the field can be a formula or a writable field to be filled on subscription building. The API name of the field must be MRRCriterion__c.

Consider the following use case: You want to separate metrics by the product group as set for the item. To this end, configure the MRR criterion field as a formula and set the following content: ONB2__ProductGroup__c. As a result, each product group has its own metric chain, and the metric field Item Criterion specifies the product group.

  1. Navigate to the fields list of the Item object.
  2. Create the MRR criterion field as required.

    Label API Name Data Type
    MRR Criterion MRRCriterion__c Formula (Text)
    Text

    For help about creating fields, see Managing Object Fields.

  3. Allow the users who execute the MRR job read access to the Item Criterion field either by adding it to their assigned profiles or permission sets.

    For details, see Set Field Permissions in Permission Sets and Profiles in the Salesforce Help.

Info

Make sure that the user who executes the MRR job has read access to the Item Criterion field.

Enabling Subscription Metric List Display

Optionally, you can enable the display of related subscription metrics on the subscription page using Salesforce's related list functionality (see Work with Related Lists on Records in the Salesforce Help).

  1. Navigate to the object management settings of the Subscription object.
  2. Click Page Layouts.
  3. In the Subscription Layout row, click Edit.
  4. Select the Related Lists palette.
  5. Drag the Subscription Metrics list to the Related Lists section.
  6. Click Save to save the modified page layout.

For help about modifying page layouts, see Managing Pages.

Enabling Subscription Metric Generation

To create or update subscription metric records, you can

Scheduling Subscription Metric Generation

The preferred way to create or update subscription metric records is to schedule the subscription metric builder job.

Note

The subscription metric builder job is available as of JustOn 2.55. Up to JustOn 2.54, subscription metrics were created by two processes that ran on subscriptions and items.

If you have updated JustOn from an earlier version, you must remove the processes and the created records, and use the job to generate new subscription metric records.

The subscription metric builder job does not require additional parameters. That is, you can set up the job directly for the corresponding Apex class BatchSubscriptionMetricBuilderJob. For details, see Scheduling Concepts.

To schedule the subscription metric builder job, you can use either JustOn's Scheduled Jobs page or Salesforce's Schedule Apex functionality. For details, see Scheduling a Job.

Via JustOn's Scheduled Jobs page:

  1. Open the Scheduled Jobs page.

    Use the following URL https://login.salesforce.com/apex/ONB2__JobsSetup, or, if you are already logged in, append apex/ONB2__JobsSetup to your org's domain name.

    You can access the Scheduled Jobs page via the JustOn configuration app ( > JustOn Configuration > Jobs Setup).

  2. From the Apex Job drop-down list, select Subscription Metric Builder Job.

    The Job Name field is automatically set to BatchSubscriptionMetricBuilderJob.

  3. From the Start Time drop-down list, select the preferred execution time.

  4. Optionally, edit the displayed cron expression to adjust the execution time.
  5. Click Schedule.

    This sets up the subscription metric generation to be executed at the specified time.

Info

From the Scheduled Jobs page, you can also run the job immediately.

Via Salesforce's Schedule Apex functionality:

  1. Click to enter Setup, then open Apex Classes.

    In Salesforce Lightning, navigate to Custom Code > Apex Classes.

    In Salesforce Classic, navigate to Develop > Apex Classes.

  2. Click Schedule Apex on top of the list.

  3. Specify the details as required.

    • Job Name
    • Apex Class: BatchSubscriptionMetricBuilderJob
    • Frequency: Weekly or Monthly (with an according weekday or day of month setting)
    • Start
    • End
    • Preferred Start Time
  4. Click Save.

    This sets up the subscription metric generation to be executed at the specified time.

For more details about job scheduling, see Scheduling a Job in the JustOn documentation and Schedule Apex in the Salesforce Help.

Creating Subscription Metric Generation Flow

It is possible to update or create the subscription metrics for a single subscription using a custom flow, which calls the Apex action BuildSingleMetricInvocable to trigger the metric generation. The Action requires the subscription ID as input parameter.

Note

Depending on your use cases, the flow setup and the objects to involve will vary.

Be aware, in addition, of the following specifics:

  • For the flow to create or update subscription metrics for a single subscription, the global settings field Subscription Metrics Scope must not include Account (see Enabling Subscription Metrics Creation). Otherwise, the flow will not create or update subscription metrics but show an exception.
  • If the related account is excluded from the metric creation or update – the checkbox CreateMRRMetrics is not selected (set false, see Enabling MRR Metrics on Account or Subscription Basis) –, the flow will not create or update subscription metrics. If, however, the subscription is excluded from the metric creation or update using CreateMRRMetrics but the account is not, the flow will create or update subscription metrics.
  1. Click to enter Setup, then navigate to Process Automation > Flows.
  2. Click New Flow.
  3. Select Record-Triggered Flow and click Create.
  4. Configure the Start element.

    Option Description
    Object The object whose record modifications are to update a source record, usually Subscription or Item
    Trigger The type of record change that triggers the flow, like A record is updated
    Conditions The use case-specific trigger conditions, one or more filter criteria for evaluating certain field values or a formula for evaluating records
    Optimize for Actions and Related Records
  5. Click and add the following Action element.

    Option Description
    Action The Apex class to call, must be BuildSingleMetricInvocable
    Input Values Invocable variables for the Apex class
    Subscription Id: specifies the reference to the ID field of the subscription for which to create subscription metrics

    Specify a label and an API name as required.

  6. Click Save.

    Specify a label and an API name as required.

  7. Click Activate.

    When the defined conditions are met, JustOn Billing & Invoice Management triggers the flow and creates or updates subscription metrics for the relevant subscription.

    For help about creating flows, see Flows in the Salesforce Help.

Note

Be aware that the Apex class BuildSingleMetricInvocable calls the subscription metric builder job, which triggers the asynchronous generation of subscription metrics. That is, it may take some seconds until the new metrics are built after the flow has finished.

Example use case: Update subscription metrics on price or quantity changes

You can, for example, trigger the subscription metrics creation flow when you change the price or quantity of a subscription item.

To this end, you set up the flow as follows:

Flow Element Option Value
Start Object Item
Trigger A record is updated
Conditions Any Condition Is Met (OR)
1: ONB2__Price__c Is changed {!$GlobalConstant.True}
2: ONB2__Quantity__c Is changed {!$GlobalConstant.True}
Action Action BuildSingleMetricInvocable
Input Values The ID of the subscription or account: {!$Record.ONB2__Subscription__r.Id}

This triggers JustOn to execute the flow when the Price or Quantity fields of a related subscription item are changed.

Enabling Subscription Metric Generation Button

Certain business use cases may require users to create or update subscription metrics for a single subscription manually. To support this, you can add the button Update Metrics to the Subscription page layout.

Note

Be aware of the following specifics:

  • For users to create or update subscription metrics for a single subscription, the global settings field Subscription Metrics Scope must not include Account (see Enabling Subscription Metrics Creation). Otherwise, the operation will not create or update subscription metrics but show an exception.
  • If the related account is excluded from the metric creation or update – the checkbox CreateMRRMetrics is not selected (set false, see Enabling MRR Metrics on Account or Subscription Basis) –, the operation will not create or update subscription metrics. If, however, the subscription is excluded from the metric creation or update using CreateMRRMetrics but the account is not, the operation will create or update subscription metrics.
  1. Navigate to the object management settings of the Subscription object.
  2. Click Page Layouts.
  3. In the Subscription Layout row, click to open the action menu, then select Edit.
  4. Add the Update Metrics button to the page layout.

    In Salesforce Lightning, drag the button from the Mobile & Lightning Actions palette to the Salesforce Mobile and Lightning Experience Actions section.

    In Salesforce Classic, drag the button from the Buttons palette to the Custom Buttons area.

  5. Click Save.

    For help about modifying page layouts, see Managing Pages.

Enabling Additional Subscription Metric Information

For reporting purposes, you may wish to copy more values from an item to the resulting subscription metric record, for example, the product group in order to allow a corresponding grouping in the MRR reports.

  1. On the Subscription Metric object, create new custom fields with the same API name and data type as the fields on the item.

    This copies the corresponding field values to the subscription metric upon record creation.

    For help about creating fields, see Managing Object Fields.

Enabling MRR Metrics on Account or Subscription Basis

By default, JustOn creates account metrics and subscription metrics for all accounts and all subscriptions. Certain circumstances may require, however, to exclude specific subscriptions or accounts, for example, archived accounts. To support this scenario, you can create a custom checkbox on the account or on the subscription that controls whether to include or exclude it on metric creation or update.

  1. Navigate to the fields list of the Account or, respectively, Subscription object.
  2. Create the following new field.

    API Name Data Type Description
    CreateMRRMetrics__c Checkbox
    Formula(Checkbox)
    Controls whether to include (true) or exclude (false) the account or subscription on metric creation or update. Using a formula, you can apply custom logic to have the checkbox selected automatically when certain conditions are met.

    For help about creating fields, see Managing Object Fields.

  3. Allow the users who execute the MRR job read access to the CreateMRRMetrics checkbox field by adding it to their assigned profiles or permission sets.

    For details, see Set Field Permissions in Permission Sets and Profiles in the Salesforce Help.

Once created, this checkbox controls whether to include or exclude the current subscription or account on metric creation or update.

Info

If the CreateMRRMetrics checkbox is not available, JustOn creates account metrics and subscription metrics for all accounts and all subscriptions.

Configuring MRR Metrics Synchronization with Invoices

The global settings option Ignore Invoices for MRR Metrics decides whether subsequent metric records are set to the item's next invoice date or start from the original start date. If activated, item price or quantity changes update MRR metrics starting from the relevant start date, irrespective of the item's next invoice date. This way, it is possible to decouple the metrics creation from existing invoices.

  1. Click to enter Setup, then open Custom Settings.

    In Salesforce Lightning, navigate to Custom Code > Custom Settings.

    In Salesforce Classic, navigate to Develop > Custom Settings.

  2. Click Manage in the row of Global Settings.

  3. Click Edit in the Default row.
  4. Select or, respectively, deselect the checkbox field Ignore Invoices for MRR Metrics.

    With new installations as of v2.84, this option is activated by default. When upgrading from previous versions, this option is not selected, which keeps the previous behavior of using the item's next invoice date for subsequent metric records.

  5. Click Save.

Note

If you use the option Ignore Invoices for MRR Metrics, JustOn strongly recommends to deactivate the original item and create a new one with the new price or quantity instead of just modifying the values. This makes sure that the produced metrics represent the effective values throughout the covered period.

Cash Metrics

Cash metrics display a business's expected cash flow. They track current changes to the amount of one-time, recurring and transactional items of active subscriptions. That is, they produce a cash flow forecast based on current data, but do not show the actual cash flow history.

One cash metric record corresponds to a monthly invoice run for a subscription. That is, JustOn "simulates" an invoice run per month and aggregates the amount of the resulting invoice line items for each subscription in the Amount field of the cash metric record.

Cash metrics are related to the account and the subscription.

Cash metric data model
Field Description
Subscription The related subscription (primary master-detail); the metric record is deleted when the subscription is deleted.
Account The related account (secondary master-detail); the metric record is deleted when the account is deleted.
Date The effective date of this metric (month and year, always first day of a month)
Amount The sum over all items of this month for the subscription
Month The month of the effective date
Year The year of the effective date
Workflow details

If set up accordingly, JustOn creates and updates cash metric records when relevant fields of existing subscriptions or items change.

The following conditions apply:

General

One cash metric record corresponds to a monthly invoice run for a subscription. That is, JustOn "simulates" an invoice run per month and aggregates the amount of the resulting invoice line items for each subscription in the Amount field of the cash metric record.

Cash metrics reflect current values and do not look back. That is, a recent cash metric record cannot reproduce previous changes to a subscription or item.

Consequently, JustOn cannot restore deleted cash metric records.

Relevant period

Since a cash metric record represents a (simulated) monthly invoice run, JustOn applies the same logic for determining the relevant period. That is, an item is subject to the cash metrics generation if its period corresponds – at least partially – to the subscription period and the invoice run period (see Start Date and End Date).

JustOn creates cash metrics up to the specified end date of the subscription or item. If the automatic subscription renewal is enabled, cash metric records are produced for the defined extension period as well.

If there is no end date set, JustOn creates cash metric records for the next 12 months.

With a monthly invoice run on recurring items without end date, you can create new cash metrics on a monthly base. Using the Item field Next Service Period Start as a flow trigger, JustOn will produce cash metric records for the next 12 months with every invoice run.

Amount

With respect to transactional items, the monthly amount of transactional items is derived from the Expected Revenue field of the item record (ONB2__ExpectedRevenue__c).

If this field is empty, the relevant record will be ignored on metrics creation.

Setting up the Cash Metric object and related functionality involves

Once set up, you can use Business Reports to display the resulting metrics in easy-to-understand formats, including graphs.

Configuring Cash Metric Permissions

Because of the master-detail relationship with the account, you must manually configure the access to the Cash Metric object.

  1. Create a new permission set.

    For details, see Create Permission Sets in the Salesforce Help.

  2. Assign Read, Create, Edit and Delete permissions for the Cash Metric object to the new permission set.

    For details, see Edit Object Permissions in Profiles in the Salesforce Help.

Info

Field access is already assigned via the permission set JustOn Read/Write and must not be configured specifically.

Enabling Cash Metric List Display

Optionally, you can enable the display of related cash metrics on the subscription page using Salesforce's related list functionality (see Work with Related Lists on Records in the Salesforce Help).

  1. Navigate to the object management settings of the Subscription object.
  2. Click Page Layouts.
  3. In the Subscription Layout row, click Edit.
  4. Select the Related Lists palette.
  5. Drag the Cash Metrics list to the Related Lists section.
  6. Click Save to save the modified page layout.

For help about modifying page layouts, see Managing Pages.

Creating Cash Metric Flows

Typically, you want JustOn to run the cash metric algorithm when the subscription or a related item changes. To this end, you create dedicated flows that run on subscriptions and items.

Note

Depending on your use cases, the flow setup and the objects to involve will vary.

  1. Click to enter Setup, then navigate to Process Automation > Flows.
  2. Click New Flow.
  3. Select Record-Triggered Flow and click Create.
  4. Configure the Start element.

    Option Description
    Object The object whose record modifications are to trigger the cash metrics creation, must be Subscription or Item
    Trigger The type of record change that triggers the flow, usually A record is created or updated
    Conditions The use case-specific trigger conditions, one or more filter criteria for evaluating certain field values or a formula for evaluating records
    Optimize for Actions and Related Records
  5. Click and add the following Action element.

    Option Description
    Action The Apex class to call, must be Create cash metric record on change
    Input Values Invocable variables for the Apex class
    The id of the added/changed item/subscription: specifies the reference to the ID field of the subscription or item whose modifications are to trigger the cash metrics creation

    Specify a label and an API name as required.

  6. Click Save.

    Specify a label and an API name as required.

  7. Click Activate.

    When the defined conditions are met, JustOn triggers the flow, creating the cash metrics.

    For help about creating flows, see Flows in the Salesforce Help.

Flow configuration examples

Assume you bill recurring items without end date on a monthly base. Now you want JustOn to create cash metrics every month for the next 12 months, that is, when the Item field Next Service Period Start changes. To this end, create the following flow:

Flow Element Option Value
Start Object Item (ONB2__Item__c)
Trigger A record is created or updated
Conditions All Conditions Are Met (AND)
1: ONB2__Subscription__c Does Not Equal {!$GlobalConstant.EmptyString}
2: ONB2__NextInvoice__c Is changed {!$GlobalConstant.True}
Action Action Create cash metric record on change
Input Values The id of the added/changed item/subscription: {!$Record.Id}

You want JustOn to create cash metrics when the start date or the end date of an active subscription have changed. To this end, create the following flow:

Flow Element Option Value
Start Object Subscription (ONB2__Subscription__c)
Trigger A record is created or updated
Conditions Formula Evaluates to True
Formula {!$Record.ONB2__Account__c} <> null && NOT(ISPICKVAL({!$Record.ONB2__Status__c}, 'Draft')) && (ISCHANGED({!$Record.ONB2__StartDate__c}) || ISCHANGED({!$Record.ONB2__EndDate__c}))
Action Action Create cash metric record on change
Input Values The id of the added/changed item/subscription: {!$Record.Id}

You want JustOn to create cash metrics when billing-relevant data of an associated item have changed, including start date, end date, billing period, status, price, quantity, expected revenue, commission, discount. To this end, create the following flow:

Flow Element Option Value
Start Object Item (ONB2__Item__c)
Trigger A record is created or updated
Conditions Formula Evaluates to True
Formula {!$Record.ONB2__Subscription__c} <> null && ( ISCHANGED({!$Record.ONB2__StartDate__c}) || ISCHANGED({!$Record.ONB2__EndDate__c}) || ISCHANGED({!$Record.ONB2__BillingPeriod__c}) || ISCHANGED({!$Record.ONB2__Active__c}) || ISCHANGED({!$Record.ONB2__Price__c}) || ISCHANGED({!$Record.ONB2__Quantity__c}) || ISCHANGED({!$Record.ONB2__ExpectedRevenue__c}) || ISCHANGED({!$Record.ONB2__Commission__c}) || ISCHANGED({!$Record.ONB2__Discount__c}) )
Action Action Create cash metric record on change
Input Values The id of the added/changed item/subscription: {!$Record.Id}

Depending on your business requirements, the criteria for executing the flows will vary. For example, you may add a condition that narrows down the set of subscriptions that are subject to the cash metrics generation.

Enabling Additional Cash Metric Information

For your individual reporting purposes, you may wish to add more information to cash metrics. Assume, for example, you want the cash metrics list view or a report to show the date of the expected cash flow. To this end, you add a custom formula field that evaluates the payment due of the subscription.

  1. Navigate to the fields list of the Cash Metric object.
  2. Create the following new field.

    Label API Name Data Type Value
    Due Date DueDate Formula(Date) ONB2__Date__c + ONB2__Subscription__r.ONB2__PaymentDue__c

    For help about creating fields, see Managing Object Fields.

    You can now proceed to include this field in the list view or a custom report in order to show the expected cash flow date.