[go: up one dir, main page]

Skip to content

[Spike] Accounting for Guests & Fewer Seats when Converting License from Premium to Ultimate

Summary

(As of October 2023, see &11759 for continuation)

Customers will sometimes upgrade from Premium to ultimate. This can cause problems with user calculations, overage calculations, and validations in applying the new license key.

One specific issues is that guest users in Ultimate tier do not count as using a billable seat, whereas they are counted to be billable in Premium. This is a selling point of GitLab Ultimate on the pricing page.

Separately, since Ultimate is more expensive, sometimes customers will reduce their seat count when they move from Premium > Ultimate. This can cause the customer to run into seat count validations.

Problem

Existing customers on Premium looking to uptier to Ultimate have considerable difficulty in taking advantage of the free guest feature on existing GitLab installations. The guest users are not considered "free" until after the Ultimate license is applied, but if you've renewed for a seat total accounting for X guests, you can't apply the license while the Premium guests are still taking a seat. Or, if you can apply it, it will almost always results in day-1 overages on the license.

Scenario 1 (renewal):

  • You have a Premium license for 10 users, coming up for renewal
  • You set 5 of them to guest with the intention of renewing on Ultimate for 5 seats
  • All 10 users remain billable until after you install the license
    • This may prevent the Ultimate license from installing at all, since billable is 10 but your license is for 5
    • Alternatively, if the license does install, you begin your Ultimate license period immediately with 5 overages (counted as Ultimate overages) because the most recent "daily billable" count (23:50 server time, written to HistoricalData 12 hours later) occurred when those users were not considered free, even though it writes to HistoricalData the same day you apply the Ultimate license

Scenario 2 (mid-term uptier)

  • Note: This scenario is not possible via web store, but is technically possible through sales assistance
  • You have a Premium license for 10 users
  • You set 5 of them to guest with the intention of upgrading to Ultimate to take advantage of free guests
  • All 10 users remain billable until after you install the license
  • The Ultimate license is refused because you have 10 seats but the license is for 5

Workarounds

The only viable workaround from a customer perspective is to first set the users to guests, and then block the users, then install the Ultimate, then unblock them.

It's also possible to trigger a manual refresh of daily billable, but again, this is only useful after the Ultimate is installed

Reported examples

  1. https://gitlab.zendesk.com/agent/tickets/313573 (renewal, immediate overages)

Proposal

  1. The license activation model, when validating an Ultimate license, should pre-compute the number of users that will become free guests, using that number as the current "active users count" for validation purposes, and additionally triggering an immediate refresh of daily billable and writing to HistoricalData for accurate reporting.
  2. Remove the seat check validation. If a user is applying an Ultimate license on top of an existing Premium subscription, it should be allowed to apply. If the customer retains extra users over their seat count (that are not guest users), these can be addressed as a reconciliation later on.

See also


Support Priority Score: (-, -, -, -, -, -, -, -, -, -, -) => 16

Availability & Testing

Based on the proposal ...

We should test all items listed in the proposal.

  1. Test precomputation of number of users that will become free guests (how do we find this number?)
  2. What side-effects will we have if we remove the seat check validation? Validate the permutations between Free -> Ultimate, Premium -> Ultimate and how the seats should behave.
Edited by Keven Hughes