Allow existing SaaS Premium customers to trial SaaS Ultimate on their primary namespace
## Summary
This epic contains all issues related to providing an automated ability for customers with a currently active Premium SaaS subscription to trial GitLab Ultimate. For a full list of issues related to this work, see [this issue list](https://gitlab.com/groups/gitlab-org/-/issues/?sort=milestone_due_desc&state=opened&label_name%5B%5D=group%3A%3Aprovision&label_name%5B%5D=Ultimate%20trials%20for%20Premium%20customers&type%5B%5D=issue&first_page_size=20)
## Background
As of July 2022, users are unable to apply an Ultimate trial to an existing GitLab.com group using a Premium plan. This is documented in the [handbook](https://about.gitlab.com/handbook/support/license-and-renewals/workflows/saas/trials_and_plan_change.html#applying-a-trial-to-a-namespace-with-an-active-subscription).
Prior to July 2022, Support would support requests made by Sales to upgrade the subscription level of a namespace for current customers who wanted to trial a higher plan. However, because this functionality was never technically supported by the product, several customers experienced unexpected reversions to the Free plan during this "trial". To avoid this risk, Support stopped supporting requests for Ultimate trials.
Current options for existing SaaS Premium customers to trial Ultimate are documented in https://gitlab.com/gitlab-org/fulfillment/meta/-/issues/1513+.
### Why is this needed?
Preventing customers from trialing Ultimate results in the following:
* GitLab missing out on customer upgrade opportunities and revenue. Customers often want to test out Ultimate features in order to determine if they would be beneficial to their organization.
* Users are confused and frustrated and have to create new groups to trial GitLab (the only current technically supported option), which is not ideal and does not fully allow for trialing the experience with their production environment.
* Increased support tickets requesting this, only to be denied.
## Proposal
We intend to introduce the ability for an existing customer to apply a `SaaS Ultimate` trial to their existing primary namespace currently running an active, `SaaS Premium` subscription. When the trial ends, we will ensure that the customer's namespace is:
* Downgraded back to Premium if their current subscription is still active (or is within the 14 day grace period).
* Downgraded to free if their current subscription has expired and the 14 day grace period has passed.
For the MVC approach, we will maintain all existing requirements/limitations of current Ultimate SaaS trials, including:
* Trial duration of 30 days
* One free trial per Namespace
# Iteration Plan
In order to move forward with this functionality, we will use a phased approach.
## [Iteration 0: Pre-Requisites](https://gitlab.com/groups/gitlab-org/-/epics/11267)
* **Summary:** Implement technical architecture that would allow for an Ultimate trial to run on a namespace with an existing Premium subscription without an unexpected downgrade to free.
* **Status:** Complete :white_check_mark:
<details>
<summary>Click to expand Iteration 0 details</summary>
1. Implement MVC for [Support Multiple Active Orders on a Namespace](https://gitlab.com/groups/gitlab-org/-/epics/9486 "Support Multiple Active Orders on a Namespace") - The namespace needs to be able to support the current premium subscription/order AND the ultimate trial/order. Specifically, this will include the following issues:
1. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/5339+
2. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/5338+
3. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/5340+
4. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/5341+
2. Resolve [some expired trials are not downgraded to free](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4390 "Some expired trials are not downgraded to free") - we want to ensure that when a trial ends, the customer reverts to either their existing paid subscription, or to free if they don't have an active subscription. This is important to resolve prior to this work to ensure customers do not have Ultimate access indefinitely. :white_check_mark:
</details>
## [Iteration 1: Support assisted Ultimate trials for Premium customers](https://gitlab.com/groups/gitlab-org/-/epics/11268)
* **Summary:** Allow Support to action an Ultimate trial request on an existing namespace.
* **Status:** ~"workflow::complete" :tada:
* **Completion Date:** Live as of `2023-12-15` :tada:
For details on this experience, see https://gitlab.com/groups/gitlab-org/-/epics/11268+.
## [Iteration 2: Self-serve Ultimate trials for Premium customers](https://gitlab.com/groups/gitlab-org/-/epics/11269)
* **Summary:** Allow existing Premium customers to self-service an Ultimate + Duo Enterprise trial from within GitLab.com.
* **Status:** ~"workflow::refinement"
* **Target Completion Date:** `November 2024`
1. Customer has an existing SaaS Premium active subscription applied to a namespace.
2. From gitlab.com, within the Group they would like to apply the trial for, the customer proceeds to Billing page.
3. From there, the customer requests an Ultimate trial.
4. Customer applies Ultimate trial to their existing namespace
5. When trial ends:
1. If customer still has time remaining on their active Premium license, they should be downgraded to Premium.
2. If customer still is in the 14 day grace period of their Premium license, they should be downgraded to Premium.
3. If customer's Premium license expired and the grace period ended during the trial, they should be downgraded to free.
---
**Support Priority Score:** 14
epic