Skip to main content

Canceling scheduled downgrades

Customers can cancel their scheduled downgrades in a fully self-served manner. This gives them an opportunity to stay on their current (higher-priced) plan if they change their mind. Users with access to the Stigg app can also cancel scheduled downgrades on the customer’s behalf.

Purchasing additional seats when a downgrade is scheduled

If a customer who has a scheduled downgrade purchases additional seats before the downgrade takes effect:
  1. They are immediately charged the prorated amount for the additional seats using their current plan’s pricing.
  2. The scheduled downgrade is automatically updated to reflect the new seat quantity.

Updating the unit quantity when another quantity update is already scheduled

When scheduled downgrades are enabled and:
  • The customer has an original quantity Q0
  • They request a reduction to Q1 → a downgrade is scheduled
  • They later request another quantity change to Q2
Stigg compares Q2 to the original quantity Q0:
  1. If Q2 < Q0
    → The scheduled update is modified from Q1 to Q2.
  2. If Q2 = Q0
    → The scheduled update is canceled.
  3. If Q2 > Q0
    → This is treated as an upgrade:
    • The scheduled downgrade is canceled.
    • The quantity is updated immediately.
    • The customer is immediately charged the prorated difference.

Example code snippet

// users.length == 5

// update seat count to 4
users.remove(userA);
stiggClient.reportUsage(customerId, 'feature-seats', -1);
stiggClient.updateSubscription(subscriptionId, users.length);

// update seat count to 3
users.remove(userB);
stiggClient.reportUsage(customerId, 'feature-seats', -1);
stiggClient.updateSubscription(subscriptionId, users.length);

// usageLimit == 5, currentUsage == 3
const entitlement = await stiggClient.getMeteredEntitlement({  
  customerId: customerId,  
  featureId: 'feature-seats'  
});

// update seat count to 4
users.Add(userC);
stiggClient.updateSubscription(subscriptionId, users.length);
stiggClient.reportUsage(customerId, 'feature-seats', 1);

// end result:
// 1. the customer will be subscribed to 4 seats at the end of the current billing cycle
// 2. since they still didn't go over the original limit of the current billing cycle (= 5 seats), they will *not* pay for any new seat

Scheduled downgrades and rollout of plan and add-on changes

In order to allow companies ensure that changes to plan and add-on packaging and pricing is applied, scheduled updates in Stigg are handled in a similar manner to how subscriptions are scheduled to start in a future start date. That is, when the scheduled update takes place, customers will be downgrade to the latest plan and add-on version that exists at the time.

Visibility of scheduled updates in the Stigg Customer Portal

Stigg provides a fully customizable snap-in Customer Portal widget, that customers can use to update their subscription in a self-served manner. When a subscription has scheduled updates, this is auto-magically reflected in the Stigg Customer Portal - no additional code changes are required to communicate this to customers 💪.

Visibility of scheduled updates in the Stigg app

Subscriptions that have a scheduled update will have a proper indication under the Customer details > Subscriptions section and Subscription details screens: Details about the scheduled updates is available under the Subscription details screen: