For the complete documentation index, see llms.txt. This page is also available as Markdown.

Overview

Pricing management lets your team instantly update and experiment on pricing, without redeploying your app.

Problem

Without pricing management:

  • Complex updates — Changing pricing requires coordinated code changes across the frontend, backend, and marketing site. Rolling back changes is even harder.

  • Engineering bottlenecks — Product and marketing depend on engineering for every pricing change.

  • Limited experimentation — It's difficult to test and iterate, leading to suboptimal pricing and lost revenue.

Solution

Define your pricing in Hypertune as flags instead of hardcoded values:

type Root {
  pricing: Pricing!
}

type Pricing {
  stripePrices(plan: Plan!): [StripePrice!]!
  planContent(plan: Plan!): PlanContent!
  planFeatures: [PlanFeature!]!
  planOrdering: [Plan!]!
}

enum Plan { free, pro, enterprise }

type StripePrice {
  id: String!
  type: StripePriceType!
}

enum StripePriceType { flatFee, perSeat }

type PlanContent {
  name: String!
  description: String!
  features: [String!]!
}

type PlanFeature {
  name: String!
  value(plan: Plan!): PlanFeatureValue!
}

type PlanFeatureValue {
  isIncluded: Boolean!
  text: String!
}

Then reference it in your code:

This empowers product and marketing to instantly update and experiment on pricing from the Hypertune dashboard without any code changes or redeploys:

Benefits

  • Instant updates — Adjust pricing across your frontend, backend, and marketing site without redeploying or coordinating code changes.

  • Empowered teams — Product and marketing can update pricing independently, without waiting on engineering.

  • Faster iteration — Tune pricing in real time to maximize revenue and growth.

ROI

These benefits help teams:

  • Ship more pricing improvements, faster, with the same headcount.

  • Improve key business metrics, e.g. revenue.

Last updated