PostHog Handbook Library / Engineering

1,217 words. Estimated reading time: 6 min.

Pricing principles

Auto TL;DR

At a Glance

This long page covers these main areas. The list is generated from the article headings, so it updates with every handbook rebuild.

  1. In an ideal world, Posthog’s pricing enables users and organizations to:
  2. Our goals with these principles are to:
  3. In the real world
  4. We should roughly match the cheapest competitor
  5. Every product should be priced separately
  6. Features that increase our stickiness should be free (with a reasonable limit)
  7. Products should work independently but shine together
  8. Other guidelines

In an ideal world, Posthog’s pricing enables users and organizations to:

  1. Use PostHog for free if they are hobbyists or pre-PMF.
  2. Experience the product before paying for it.
  3. Start paying when they are ready, on their own, with few hurdles.
  4. Transparently pay for the value they receive.
  1. Make it a no-brainer to pick PostHog over other competitors.

Our goals with these principles are to:

It's important we evaluate all new features, and shifts in our pricing plans, to ensure they align with our pricing values.

In the real world

Sometimes these principles still leave room for questions – what, if anything, should be available in the free tier? What about enterprise customers?

For these types of questions, we've defined a runbook for deciding which plans, and at what limits, features should be assigned to.

We should roughly match the cheapest competitor

In general, we should roughly match the pricing of the cheapest big competitor for that product, so long as the unit economics make sense, to make it a no-brainer to use PostHog. To qualify for this, a competitor must be _making actual revenue_ at significant scale - we won't match the pricing random startups or new products at existing competitors offer, since these products and GTMs aren't mature yet.

We can do this because we can upsell customers multiple of our other products. The total ACV is higher even if the per-product ACV is lower.

It's better for customers because they get all these tools that are well integrated for the cheapest possible price.

While we don't have loss leaders, we accept that we might not fully understand our cost base and make money on every product on day one. We welcome this pressure to do things more efficiently and get the costs down over time.

Every product should be priced separately

Whenever we build a product, like feature flags, or product experimentation, we should have a specific price for that product by itself. Being consistent here is less confusing than randomly combining products for example, even though it will sometimes mean more items to explain to a customer.

It means that customers who want just one product can compare each of our products to our competitors', seeing that we are cheaper everywhere, improving our self-serve top-of-funnel.

This also makes the value of each product more tangible. Usage and value are not the same thing - willigness to pay is the best indicator of the value our customers are getting from each product.

However, when one of our products has a fundamental dependency on another of our products, we should aim to bundle the cost of the dependencies in with the product's pricing so customers only pay once for using a given product.

For example, when someone calls a feature flag, we send a $feature_flag_called event so we can have stats. In this case, we don't charge for those events, as the events are solely related to feature flags.

Features that increase our stickiness should be free (with a reasonable limit)

A good question to ask yourself here is, "If I were to switch away from PostHog, would I feel like I am losing anything by switching?"

For example, if someone were to consider moving from PostHog to some other provider, cohorts would need to be manually recreated in the other provider, which would be tedious. However, something like Web Performance just happens and doesn't require any user involvement, so isn't sticky.

Products should work independently but shine together

Each product should be usable on its own. For example, session replay can be enabled independently of other products. But to get the most value out of it, it's best to use it together with our other products. This enables users to have rich filters using the data from the other parts of PostHog. Similarly, you can use error tracking on its own, but it's a lot more powerful if you also use session replay, enabling you to easily click through to the recording of a session where the error occurred.

Other guidelines

Deciding on a free volume, and making changes to it

Canonical URL: https://posthog.com/handbook/engineering/feature-pricing

GitHub source: contents/handbook/engineering/feature-pricing.md

Content hash: daf11bba695e3136