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