Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Pricing model


Pricing affects product, marketing, and sales. Therefore, general pricing decisions are made by the CEO.

Product makes most decisions on a day-to-day basis about what feature should go in what plan based on the paid tiers.

Four tiers

We have four pricing tiers. How we make decisions on a day-to-day basis is specified on our stewardship page.

Self-managed tier Core Starter Premium Ultimate Free Bronze Silver Gold
Per user per month $0 $4 $19 $99
Likely Buyer Individual Contributors Manager Director Executive
Main competitor None Atlassian BitBucket GitHub Collabnet
Type of sell No sell Feature Benefit/solution Transformation

Buyer Based Tiering Clarification

When considering buyers as part of product tiering decisions we use the following guidance:


Understanding the distinction of our buyer-based model can be difficult. In it we focus not on the user of the feature, but on the buyer and in what cases a feature would be useful to that buyer even in cases where the buyer is not the user. When making these decisions we ask questions like:

Below we list product categories and the current and proposed features which reside in a given tier to highlight how the buyer-based model works in practice.

Feature - Kanban Boards

Feature - Merge Requests

Feature - Pipelines

For detailed use-cases per tier, visit the Per Tier Use-Cases page.

Lower tiers have more relative value

Our lower tiers have:

  1. A lower price.
  2. A lower discount we give (price after discount is closer to list price both absolute and as a percentage).
  3. The price charged for value generated is lower.
  4. More value per dollar as a percentage (in absolute numbers higher tiers generate more net value)

Our higher tiers are still the best option for our customers:

  1. Higher tiers add much more absolute value. For example our top tier can add 2000% more value than our lower tier while still adding less relative value.
  2. The Return On Investment (ROI) factor for higher tiers tends to be higher for our lower tiers than for our lower tiers due to costs outside of the subscription. For example when you switch to GitLab you will have a fixed cost in implementation and training. And if you use a higher tier you need to find workaround for features you are missing out on, increasing cost and decreasing efficiency.

There are multiple reasons why our lower tiers have more relative value:

  1. The lower tiers are older so they had more time to accumulate features.
  2. Any pricing model will have to be compatible with our open source tier. The open source tier should be the top alternative to our priced tiers. That tier has zero cost, zero discounting, a zero price charged for value generated, and infinite value per dollar. Our lowest tier should be the tier that is closest to that to make it possible from people to go from free to paid. As soon as they are paid we can help them to generate more value with GitLab, for example by using more stages. If they realize more value we can move them up in tiers.
  3. Having an open source tier isn't an alternative for a low priced tier. Many organizations need a product that includes support.
  4. The lower tiers (including open source) are a pipeline of future customers for the higher tiers.
  5. Most of our initial customers are not looking for a complete DevOps platform, they are looking for a point solution, for example for version control or CI. We need to have a paid tier that gets those organizations to pick GitLab.
  6. Having low priced tiers gets more users on the platform who are potential contributors. This increases the amount of contributions to GitLab both in absolute numbers and relative to the open source competition. An open source competitor will likely be our top competitor in 10 years.
  7. We can easily increase revenue in the next 3 years by raising prices and/or making lower tiers less attractive (of course never by moving features up). But we are optimizing the Net Present Value (NPV) of the company with a 10% a year discount rate. This means we have to look beyond 3 years.
  8. Raising prices on our lower tiers might cause more revenue in the short term, both directly and by compelling most organizations to move to higher tiers. But the minority of organizations that switch to a competition will cause them to be much harder for us to reach in the future and will allow competitors a flywheel effect of their own. This tradeoff has to be calculated explicitly when raising prices.
  9. That our lower tiers are popular is not a pricing problem but a communication problem. Higher priced tiers have less value per dollar as a percentage but generate more net value in absolute terms. It is up to us to explain that value in the product, with marketing, and in our sales interactions.
  10. Open core projects capture (ratio of value created vs. captured) less value than proprietary projects. Because the pricing tiers are low relative to the value created the difference between the tiers can be much higher than with proprietary software. If you capture 1% you can easily introduce a new tier at 5x, if you capture 50% even doubling your price will take away all benefit for the customer.
  11. We see customers on starter but not users on Core. If we focus only on the visible customers that are on starter we miss the largest opportunity. Starter is priced too if the conversion from starter to premium is lower than organizations becoming customers after using core. Currently this is not the case because it is much harder reaching out to core users since they aren't customers and we don't have a point of contact to discuss the value of of higher tiers.

Arguments in favor of raising the price of the lowest tier (which we won't necessarily do) are:

  1. Our sales effort don't change much with the plan, making lower tiers relatively much more expensive to sell.
  2. Over time we keep adding features to the lower tiers due to our Buyer Based Open Core model so you would expect prices to rise.
  3. While the absolute value of higher tiers is better and that seems the most rational measure people also do look at relative value and we should make sure that the price to go to a higher tiers is percieved well.
  4. Many successful open source companies charge a relatively high price for their most affordable plan.
  5. The future growth of GitLab is much more influenced by how many people are using the open source version than our lowest tier, so having fewer paid users is a relatively small impact.
  6. The future competition for GitLab is much more likely to come from an open source project than a proprietary only product competing only with our lowest tier.
  7. We can reduce the relative attractiveness of the lowest tier by open sourcing features, although this too makes it harder to raise the price of that tier.
  8. Our lowest tier competes mostly with Atlassian BitBucket and has been winning marketshare rapidly so it might be able to sustain a price increase.
  9. Lots of companies don't want to forgo support, espacially in their first year, and there is little price elasticity there.

Please note that all the above is not a plea to add more or fewer features to lower tiers, we should just follow our Buyer Based Open Core model.

Perfect bundle

Bundle pricing works very well. Companies like Microsoft use successfully to get people to use more of their ecosystem. Charging one price that incorporate all our stages is the perfect bundle in my mind. But I'm very open to learning more about this.

Separate names

We have separate names for .com and self-managed tiers because:

  1. Although we want feature parity some features are not available for .com or self-managed, having separate names makes it easy to indicate this in our release post and documentation.
  2. It prevents ambiguity around .com and self-managed when customers interact with us, for example support questions are handled differently based on this.
  3. It prevents ambiguity around .com and self-managed inside the company, for example when calculating margins.

That being said, we want the .com and self-managed tiers to be as similar as possible. For example if a feature is in premium it should be in silver instead of bronze or gold.

Type of sell

Hybrid sales model

There is a big price difference between the different tiers (0$, $4, $19, $99 per user per month, a price difference of infinite, 5x, 5x). For GitLab Inc., the majority of revenue comes from large enterprises buying the top two tiers.

Most companies in a similar situation would focus only on the highest tiers. There will be pressure to increase our lowest tier to $8, for example. But we want to make a our hybrid model work for the following reasons:

  1. We want to keep being a good steward of the open source project.
  2. The lower two tiers are a scalable way to create future customers.
  3. If organizations are already using Atlassian JIRA, we want to be competitive with Bitbucket on pricing. If they buy Bitbucket, it is hard for us to win them back. If they buy GitLab, they discover that it can replace JIRA, and over time they might buy a higher tier.

Raising the price of the lowest tier will prevent people from starting with GitLab. It will raise short-term revenue at the expense of our long-term market share. Instead of raising prices, we should focus on communicating the value of the higher tiers. This will get easier over time, as we introduce more features. In 2016, sales people focused on free vs. starter; in 2018, on starter vs. premium. Hopefully, in 2020, on premium vs. ultimate.

Charging $8 for the lowest tier and discounting aggressively when we're up against Bitbucket doesn't work. It is unfair to customers who are not aware of this discount, and most customers are self-serve (we never talk to them).

You can also check the viability of the different tiers by the conversion from tier to tier. For example, if 5% of users upgrade from free to starter, starter to premium, and premium to ultimate, your prices are balanced. If many more people upgrade from free to starter than from starter to premium, then starter is underpriced. Please note that when a customer chooses starter over premium, that is much more visible to us than users not buying at all, and this might cause us to focus too much on the first case.

A conversion rate of 5% for installations / organizations should not be confused for 5% of the market revenue. There are organizations of different sizes, and larger ones are more likely to pay and purchase a higher tier.

A 5x higher price doesn't mean there is 5x more value, just like the Starter tier doesn't provide infinitely more value than the gratis Core tier. When deciding between tiers, organizations should look at the ratio between how much extra value they get divided by how much extra they pay. If this ratio is comfortably above 1, it makes sense to move to a higher tier. The value is in making people more effective, saving time on integrating tools, driving faster time to value, and retiring other tools. This should more than pay for the increased price of a tier. An analogy would be Apple's iPhone: it is twice as expensive as an average Android phone, and while it doesn't deliver twice as much value, the extra value is worth the extra cost.

A low price for the lowest tier is also how we mitigate the first risk of only selling a suite.

As Stripe documented: hybrid is hard, because "The most common result of attempting both models simultaneously is that only one of the models receives any traction, and (because these models weave themselves into all operations of the company) it typically strangles the other."

This hybrid models is how we bridge the chasm between self-service and enterprise.

Combining features in plans

We tried selling one feature at a time, but this was not feasible. An improved version of that would be selling 7 main features, instead of 3 plans. Examples of main features would be: High Availability, Security, Service Desk, etc.

The advantages are:

  1. Gradual upgrading to more expensive features.
  2. Pay only for the features you use.
  3. Add-ons are a common way of selling this.

The disadvantages are:

  1. It is suboptimal for both the buyer and GitLab Inc..
  2. It is hard for the buyer to estimate how much of each feature they will need.
  3. The complexity can lengthen the sales process when buyers have to make separate tiering decisions for each group.
  4. For users, it is unclear what features they can use.
  5. It is not common in the industry, buyers don't expect it, and it isn't a boring solution (a sub-value under our efficiency value).
  6. The true-up process becomes more complex.
  7. The customer has to administer a process for how users can get more features.
  8. Features get less usage, and therefore the improvements are slower.
  9. It is hard to do with a hybrid sales model, where there is a 25x difference between the lowest and highest paid plans.

We currently think the disadvantages outweigh the advantages.

Multiple plans for one customer

We considered selling multiple plans to the same customer, allowing them to have some users on every plan.

The advantages are:

  1. Gradual upgrading to more expensive features per team; improving rollout when only portions of the organization are well suited to the higher tiers.
  2. Pay only for the features you use.
  3. Consistency with pricing where you can have different subscriptions for different groups.
  4. Consolidation of all users in a single instance rather then separate instances with separate licenses.
  5. Increased transparency on license and usage; reducing renewal risk.
  6. Less negotiation.

The disadvantages are:

  1. The current plans have a blended price, assuming 75% of users should pay for the 5x less expensive plan—so, plan prices would increase by 2.5x 1/(0.25+(0.75/5)).
  2. It is hard for buyers to estimate how much of each tier they will need.
  3. For users, it is unclear which features they can use.
  4. The true-up process becomes more complex.
  5. Some features can't be disabled on a per user basis, like High Availability (HA).
  6. The customer has to administer a process for how users can get a higher plan.

We currently think the disadvantages outweigh the advantages.

Counting different types of users, roles for users, or other modifications of a user definition tends to lead to the same problems as above.

For the GitLab sales team and for GitLab customers, we suggest handling the objection by focusing on the value and business outcomes

True-up pricing

Price difference between self-managed and SaaS

Arguments to charge more for SaaS:

  1. The costs of SaaS are higher for GitLab.
  2. It is more logical in revenue recognition.

Arguments to at least make them equal:

  1. Self-managed pricing tends to be higher, in general.
  2. There is more market demand for self-managed.
  3. No incentive for sales to sell SaaS over self-managed.
  4. We want to incentivize customers to move to SaaS with us because we have more data (better customers success outcomes) and we don't have to rewin their business when they do more from self-managed to SaaS

Not sure what is normal in the market. Adobe did a good job, but they moved from perpetual licensing to subscriptions, where it is hard to compare the two prices.

When is a dollar not a dollar?

This is the title of a great article of which we'll apply the 8 points to GitLab below:

  1. Cost vs. revenue: we can help both to reduce costs and increase revenue, make sure you align to what the priorities of the prospect are.
  2. Principle agent problem: for a VP of Engineering, you probably want to highlight our features that provide more visibility over features that save developers time.
  3. Existing expense vs. new expense: we can make use of existing budgets, be aware that multiple can apply (dev tools, security, operations, DevOps transformation).
  4. Above vs. below discretionary spending limits: one more reason to have multiple pricing tiers.
  5. Selling services vs. customized products vs. off-the-shelf products: we're selling a high-margin product and augment with services when needed to make the customer more successful.
  6. Selling to many stakeholders vs. one stakeholder: this is another reason for our multiple tiers—Starter is sold to the single stakeholder of development teams, Ultimate is sold to multiple stakeholders and will need the CIO to enforce the transformation.
  7. Monthly vs. upfront payments: that is why we prioritize yearly upfront, sometimes even multi-year upfront. Also, yearly is the standard for enterprises (Salesforce sells it like this) and helps reduce support costs that are an order of magnitude greater for .com (most likely to be monthly) vs. self-managed.
  8. Selling vs. upselling: this is why we have multiple tiers.

Annual pricing is prioritized over monthly pricing

Annual, up-front pricing is our priority and primary offering. We will enable monthly billing options for SaaS offerings, when packaged as part of a bundled monthly offering with partners.

Arguments supporting annual up-front pricing:

  1. It helps to recover the costs of acquiring, onboarding, and supporting a customer.
  2. It enables reinvestment to speed delivery of new product capabilities for customers.
  3. It aids customer self-selection and commitment to drive to successful deployment and enough time to see successful outcomes with the product.
  4. It can be offered at a discount relative to monthly pricing.
  5. We offer a wide range of product tiers, including a free tier to appeal to many customer types and free trials of any tier.
  6. Costs are lower for sales, billing, and customer support.
  7. Better customer experience due to ongoing product availability and less frequent administration and and billing contact.
  8. It is much easier to enforce license entitlement only once per year and yields lower product development cost.
  9. It enables a more predictable business and more up-front investment in customer success to ensure great outcomes from use of the product.

Arguments supporting monthly pricing

  1. Monthly billing gives customers another way to buy and thus reduces barriers to adoption of the product.
  2. Monthly pricing can align with billing of combined or dependent products/services that are already billed monthly. (ex: if bundled with another monthly service)

Why show monthly pricing on the website

Almost all SaaS products show monthly pricing on their pricing pages. GitLab shows monthly pricing on the website and notes that it is billed annually. This is also a standard practice followed by companies like Salesforce. We previously have tried showing annual pricing on the website, but repeatedly heard from customers that they were confused by it. They often thought our product was priced significantly higher than it actually was because they expected the pricing to be displayed in monthly units and read the annual price as though it were per month.

Only sell a suite

Most companies evolve in the following way:

  1. Sell one product
  2. Sell multiple products
  3. Sell multiple products and a suite of them
  4. Only sell a suite

An example is Microsoft Office, where it is costly to buy components of Office365 separately, although higher tiers include more products. At GitLab, we decided to skip the intermediate steps and immediately only offer a suite that includes all our products. Having our complete scope included in our open source version is even part of our stewardship promises.

Selling only a suite has risks, after the => is how we mitigate those at GitLab:

  1. Lose potential customers, if people want one product. => Offer a Starter tier that is priced competitively with single products from competitors.
  2. Leave money on the table, if people want all products. => Offer an Ultimate tier that is great value, if you adopt everything of GitLab.
  3. Discount because people don't want all the products. => Make a discount conditional on not using part of the product.
  4. Tiers are harder to define than if you would have separate products. => Hard to mitigate, we have to work extra hard on communicating the differences.
  5. No revenue feedback from customer about what products they value more. => The product function focuses on usage data as our best proxy for value.

Companies evolve to selling only a suite for the following reasons, after the => is how this applies to GitLab:

  1. Makes it easier for organizations to adopt the other products. => This is essential; organizations have official solutions and GitLab grows with organic adoption from developers.
  2. Show customers the benefit of a single application. => This is essential, since people are skeptical (showing beats telling).
  3. More usage of all the products. => This is essential for us, due to our breadth over depth strategy
  4. Harder to displace the suite, once it is in place. => This will help if competitors offer a service based on our open source code.

We're going even further than selling a suite by integrating everything in a single application. We do that because of the advantages mentioned on our direction page section about us being single application. A secondary effect is that the user doesn't have to make a buying, or even an adoption, decision.

Value creation

There are two factors that determine how much value GitLab creates for an organization, in order of importance:

  1. Scope: how many parts of GitLab you use, indicated by the DevOps score, how many components of GitLab are in use.
  2. Size: how many people work in an organization and use GitLab.

When an organization is larger, the benefits of GitLab are larger because:

Value capture

Since GitLab is an open core project, we'll always create much more value then we (are able to) capture. Based on the value created, the straightforward way to capture value would be to:

  1. Scope: charge a higher price per user the more of GitLab you use.
  2. Size: Charge a higher price per seat the more users you have.

These straightforward ways are not possible for the following reasons:

  1. Scope: charging more for adoption would hurt the adoption of GitLab for the whole lifecycle. In January 2018, version control is 10 times more popular than the next feature (CI). We need the features to spread organically, so people can create more value with GitLab. People are much more willing to pay when they are already using a part of the lifecycle.
  2. Size: many other software companies limit the maximum amount of users in certain tiers. For GitLab, we can't do this because the open source version can't contain artificial restrictions. We can do it in our proprietary tiers, but this doesn't seem symmetrical. It also feels unfair, if you have to pay more simply by being a bit larger then the limit.

So we're left with charging for features. We can't charge for each feature separately, since that is unwieldy for the customer. So we charge for tiers that contain a bundle of features. We select features in the (more expensive) paid tiers that:

  1. Scope: become more useful and valuable as your DevOps score increases
  2. Size: become more useful and valuable as your organizational size increases

Adding features to a (more expensive) paid tier is not the only thing stopping users from adopting them, but it is a very important factor.

To simplify the above, we base our feature groupings on champion position (see below).


The likely type of buyer determines what features go in what tier. Our plans are based on the buyer that buys GitLab, from individual contributor, to manager, to director, to executive. Every person in the company is on the same tier, even if they don't use all the features. The feature is put in the plan based on what champion is most likely to care about it. Buyers make sense, since a higher-cost plan needs a higher-placed buyer.

Alternatives that don't work:

  1. Pricing based on company size doesn't work; some small companies need the features of the most expensive plan.
  2. Scope and size don't work.
  3. Pricing based on maturity is strange, because organizations at the beginning of their journey should pay the most, since in a greenfield you benefit the most quickly and extensively from GitLab.

More detail about this in Sid's presentations about Buyer-Based-Open-Core at the Open Source Leadership Summit in 2019 and at Heavybit.

Also see fork and commoditize in the list of our biggest risks.

Example template for customer response

A customer asked why merge request approvals where not included in core:

Thanks for asking. We think that managers are more likely to care about merge requests approvals than individual contributors. That doesn't mean that individual contributors don't care about them. And it doesn't mean that in all cases managers care more, just in most cases. For more information please see our Buyer Based Open Core model:

If a feature can be moved down do it quickly

We should not hesitate to open source features. When we put a feature into too high of a tier we should move it quickly because not having it in all tiers limits who can use the feature and this hurts:

  1. Getting more users: having the product sell itself makes us much more efficient, for it to sell itself it has to get used, more open source features can increase the popularity of GitLab compared to rival offerings.
  2. Getting more stages per user: if an open source feature gets a user to adopt a new stage this increases the value one user gets from GitLab greatly since the single application benefits grow exponentially is you adopt more stages.
  3. Getting more open source contributions to improve the feature: since the number of contributions grows with the number of users.
  4. Increase demand for paid features on top of what you open source: When you move a feature down this increases the usage of the specific feature, for example our service desk functionality. When a feature is popular this creates more demand for paid features that we can add later like custom templates for service desks.

In most cases the following guidelines apply:

  1. Prioritize feature adoption in core prior to attempting to monetize it.
  2. If other paid features will be within reach of more users by using this features we should probably open source it. An example is the support for multiple Kubernetes clusters that can drive adoption of adding Kubernetes clusters which allows people to use the paid feature of browser performance testing.
  3. If no buyer cares about the feature, that means it isn't the focus of any buyer, and we should open source it.
  4. We should make sure that the basic features of a comparable offerings are open source. We should charge for the features that the comparable offerings charge extra for. We do need features to be open source to drive initial adoption.

Below is a video with the CEO discussing the philosphy of this with a Product Manager:

We'll always move features down

Besides the tier framework, we also need to keep our stewardship promises. We owe it to our users to only move features from higher-paid tiers to lower ones, never the other way.

This means that, when in doubt, we will select the higher tier and move it down quicly if data shows that this is more appropiate. It also means that all tier changes will involve moving things to lower-priced plans. If there is a knee-jerk reaction of 'why do we always move features down,' then the response will be to opt for lower tiers initially. The harder we make moving a feature down in tiers, the higher the risk of getting the initial assessment wrong.

So we should focus on building new features that buyers want and making sure that the initial assessment of new features is never too low. Please also note that the CEO is in charge of pricing and tiers; this is delegated to product for the day-to-day work. While other parts of the GitLab organization are consulted, the CEO is the directly responsible individual.

Moving a feature down

To propose bringing a feature that exists in Premium to Core, for example, follow the process outlined in the Move a Feature Down issue template.

DevOps score is not maturity

What is interesting is that GitLab creates more value as you adopt more of it. This shouldn't be confused with DevOps maturity. DevOps maturity is how advanced your practices are and how fast your DevOps lifecycle is, shown in cycle analytics. With the best practices embedded in GitLab, you will mature faster than without it. GitLab enables a 200% faster DevOps lifecycle. But DevOps maturity is mostly about organizational change. GitLab the product is just an enabler of it. Even if an organization uses everything of GitLab (high DevOps score), they can still have a slow process (slow lifecycle). We know there is a correlation between a higher DevOps score and a faster lifecycle; but especially in organizations new to DevOps, it is a trend, not an absolute. Linking our tiers to maturity would mean we don't ask any money from the large organizations that currently have a slow lifecycle but that are making it faster by adopting all of GitLab. These large organizations with a slow lifecycle benefit the most from GitLab, since they can adopt it completely, because they are not held back by an existing toolchain.

Location based pricing

As suggested by a user on Twitter. This is a good suggestion to consider given the GitLab approach to adapting to local markets throughout the business. GitLab will assess viability of the idea in our overall pricing strategy planning. It is difficult to do and our assessment of this will consider:

  1. This is a complex issue and requires that all parties are better off if a change is made to account for geography. We fully admit that this would be hard to pull off successfully.
  2. If there is a way this could be good for customers and for GitLab, we will not treat this separately. We will treat it as part of a unified pricing strategy
  3. In a global and digital marketplace it is difficult to positively identify where a customer is geographically located either because we rely on that customer to self-identify or because it is a large organization with users in several geographical locations.
  4. We may be able to solve with a simpler discounting policy
  5. Any overall reduction in cost per license must be more than made up by increased volume at the new pricing