Skip to main content

Set Up Subscription Pricing with Proration

Learning Objectives

After completing this unit, you’ll be able to:

  • Explain the use of the Proration element in subscription pricing.
  • Add the Proration and Subscription Pricing elements to a pricing procedure.
  • Simulate and test the pricing procedure.

Subscription Pricing Overview

Subscription pricing is a strategy where products and services are sold on a recurring basis, rather than as a one-time purchase. This model allows businesses to define how customers are charged over a period of time, such as monthly, quarterly, or annually. The core idea is that customers pay a regular fee to continue using a product or service for a specified duration.

This pricing model is widely used across various industries due to its many advantages for both customers and businesses.

  • For customers, subscription pricing provides continuous value through ongoing access to a product or service, eliminating the need for a large initial investment. This approach offers several benefits, including affordability, flexibility, and convenience.
  • For businesses, subscription pricing creates stable, recurring revenue streams and helps foster customer loyalty and engagement. It also enhances forecasting and revenue predictability, making it more reliable than traditional one-time sales.

Richa Mani, the pricing admin at SmartBytes, is looking to use the subscription pricing feature offered by Revenue Cloud to dynamically calculate the prices of their subscription-based products. Follow her journey as she sets up this pricing model.

Explore Proration in Revenue Cloud

The proration feature in Revenue Cloud ensures that customers are charged fairly for partial periods when they start or cancel a subscription mid-cycle. This means if a customer signs up for a monthly subscription halfway through the month, they'll only be charged for the remaining days of that month, rather than the full month's fee. Proration guarantees that customers are billed accurately for the exact portion of the time they use the service, preventing both overcharging and undercharging.

Proration is particularly critical for:

  • New Subscriptions: When a customer starts a subscription mid-month or mid-year
  • Cancellations: When a customer cancels a subscription before the end of a billing period
  • Upgrades/Downgrades: When a customer changes their subscription plan during an active billing cycle

Revenue Cloud uses proration policies and the Proration element to define how these adjustments are handled. This ensures accurate billing for subscription products, especially when the subscription period doesn't align perfectly with standard billing cycles.

Proration Policies

A proration policy is a master record where you define the specific rules and behaviors for applying proration. Think of it as a set of instructions that Salesforce Pricing follows to calculate charges for partial subscription periods.

Head back to your Developer Edition org to take a look.

  1. From the App Launcher, find and select Proration Policies.
  2. Change the list view to All Proration Policies.
  3. Click Default Proration Policy.

The Default Proration Policy.

While Salesforce Pricing provides a default proration policy, you can also define custom policies to suit your unique business needs. You can configure proration policies to add leftover amounts from pricing term calculations to either the beginning or the end of the subscription term. They also specify whether customers can start or end their subscription partway through a pricing period, and pay only for the time they’re subscribed.

The Proration Element

Pricing procedures use the Proration element to calculate pricing term counts for subscription products. This determines an accurate product price based on the subscription duration.

When the pricing procedure processes a subscription product, the Proration element:

  • Determines the exact duration of the subscription.
  • References the pre-defined proration policy to apply the business rules for handling partial periods.
  • Calculates the prorated amount based on the subscription's standard price, its pricing term, and the rules from the proration policy.

Here’s how the Proration element looks.

The Proration element.

To learn more about each variable in the Proration element, refer Subscription Pricing and Proration.

The Proration element outputs the Proration Multiplier, a value that indicates the number of pricing periods included in an order product's term. The proration multiplier is typically calculated as:

Proration Multiplier = Actual Subscription Duration / Product’s Standard Subscription Term

Revenue Cloud's proration feature only works with pricing periods defined in months or days.

The pricing application then takes the product's standard price which is often set for a full year or month and multiplies it by this proration multiplier to arrive at the accurate, adjusted price for the customer's actual service period. Let’s understand this better with an example.

Say, a SmartBytes customer signs up for ‌a Premium Cloud Storage subscription on March 15 for a 12-month term. Here are the details:

  • Standard list price of the product: $1,200 per year
  • Product's standard subscription term: 12 months
  • Subscription Term Unit: Months
  • Standard Monthly Price: $1,200 / 12 months = $100

Here's how the pricing application calculates the prorated price for the first partial month:

  • Determine Actual Duration for the First Partial Month:
    • March has 31 days.
    • The customer uses the subscription from March 15 to March 31, which is 17 days.
  • Calculate the Proration Multiplier for March:
    • Proration Multiplier = 17 days / 31 days = 0.5484
  • Calculate the Prorated Price for March:
    • The prorated price is the standard monthly price multiplied by the proration multiplier.
    • Prorated Price for March = $100 * 0.5484 = $54.84

For subsequent full months, the proration multiplier would be 1, and the customer would be charged the full $100. The proration multiplier makes sure that every amount charged accurately reflects the duration of service, which is vital for revenue recognition and customer trust.

Add the Proration and Subscription Pricing Elements

Having learned about proration and its application in subscription pricing, Richa is now ready to put her knowledge into action. She prepares to add both the Proration and Subscription pricing elements to a pricing procedure. For this use case, Richa uses a pricing procedure named Pricing Procedure Demo_3. Follow along on your Developer Edition org.

Add the Proration Element

  1. On the Price Management application, select Pricing Procedures from the navigation pulldown menu.
  2. Change the list view to All Pricing Procedures.
  3. Click Pricing Procedure Demo_3.
  4. Under Pricing Procedure Versions, click Pricing Procedure Demo_3 V1. This opens the Pricing Procedure Builder in a new browser tab.
  5. Under the List Price element, click the + symbol.
  6. Search for and select Proration from the list.
  7. Expand the Input Variables section and map the variables to these context tags:
    • Effective From: EffectiveFrom
    • Effective To: EffectiveTo
    • Proration Period: PricingTermUnit
    • Start Proration Period: StartProrationPeriod
    • Start Proration Period Day: StartProrationPeriodDay
    • Start Proration Period Month: StartProrationPeriodMonth
    • Allow Partial Proration Periods: AllowPartialProrationPeriods
    • Selling Model Type: SellingModelType
    • Subscription Term Unit: PricingTermUnit
    • Subscription Term: ItemSubscriptionTerm
  8. Next, expand the Output Variables section and map the variable to this context tag:
    • Proration Multiplier: PricingTermCount
  9. Save your work.

Here’s how the Proration element should look.

Corresponding Proration element.

Add the Subscription Pricing Element

Next, add the Subscription Pricing element to your pricing procedure.

  1. Under the Proration element, click the + symbol.
  2. Search for and select the Subscription Pricing element.
  3. Expand the Input Variables section and map the variables to these context tags:
    • Quantity: LineItemQuantity
    • Proration Multiplier: PricingTermCount
    • Net Unit Price: ListPrice
  4. Next, expand the Output Variables section and map the variable to this context tag:
    • Total Subscription Price: ItemNetTotalPrice
    • Subscription Net Unit Price: NetUnitPrice
  1. On the left panel of the Pricing Procedure Builder, click Element Details..
  2. Select the Include in Output checkbox.
  3. Click Pricing Procedure Properties..
  4. Under Rank, ensure the value is 1.
  5. Click Save.
  6. Click Activate.

Corresponding Subscription Pricing element.

You’ve successfully added both the Proration and the Subscription Pricing elements to your pricing procedure.

Test the Pricing Procedure

You’ve added two pricing elements to your pricing procedure and mapped their variables with the right context tags. Here’s the updated procedure.

Corresponding image.

Now, it’s time to test this to ensure the subscription pricing feature is working as expected.

Locate the Record IDs

As part of testing, you’ll need to find the required record IDs from your Developer Edition org. For example, to locate the product selling model record ID of the API Access Premium product, follow these steps.

  1. From the API Access Premium product page, click the Related tab.
  2. Scroll down until you find the Product Selling Model Option section.
  3. Under Product Selling Model, click Term Based - Monthly.

Product selling model ID available in the browser URL of your org.

  1. Copy the record ID from the browser’s URL.

Simulate the Pricing Procedure

  1. Click Simulate in the top right corner of the Pricing Procedure Builder to open the simulation window.
  2. For Input Mode, select Advanced.
  3. Replace all the JSON code in the JSON Input box with the following code:
{
  "SalesTransaction": [
    {
      "SalesTransactionItem": [
        {
          "EffectiveTo": "2025-02-01T00:00:00.000Z",
          "LineItem": "API Access Premium",
          "ProductSellingModel": "0jPaj00000012pSEAQ",
          "ItemSubscriptionTerm": "",
          "Product": "01taj00000GJl8mAAD",
          "LineItemQuantity": "1",
          "StartProrationPeriodMonth": "JANUARY",
          "PricingTermUnit": "Months",
          "EffectiveFrom": "2025-01-01T00:00:00.000Z",
          "SellingModelType": "TermDefined",
          "StartProrationPeriodDay": 0,
          "AllowPartialProrationPeriods": "true",
          "StartProrationPeriod": "Anniversary"
        }
      ],
      "PriceBooks": "01saj00000Bx9QjAAJ"
    }
  ]
}
  1. Replace the values for Product, ProductSellingModel and PriceBooks for the API Access Premium product with the corresponding record IDs from your Developer Edition org.
  2. Click Simulate. The simulation results section shows the price waterfall, and it should look like this.

Corresponding image.

Here you can clearly see the proration multiplier used to calculate the subscription price of the API Access Premium product. Congratulations! Your subscription pricing is working as expected.

Next, you explore ‌another pricing element used to calculate and display rolled-up total values in a quote or an order. Onward!

Resources

Condividi il tuo feedback su Trailhead dalla Guida di Salesforce.

Conoscere la tua esperienza su Trailhead è importante per noi. Ora puoi accedere al modulo per l'invio di feedback in qualsiasi momento dal sito della Guida di Salesforce.

Scopri di più Continua a condividere il tuo feedback