Top 9 Kameleoon alternatives: Best options for 2026

Replacing Kameleoon is not a matter of finding another visual editor. You need to decide what kind of experimentation program you are building.
Kameleoon spans web experimentation, feature experimentation, personalization, feature management, and newer prompt-based test creation. That breadth is useful, but it also means teams search for alternatives for very different reasons. A conversion-rate optimization team may want a faster visual workflow. An engineering team may care more about local flag evaluation, warehouse metrics, and predictable costs. A data team may want statistics it can inspect and reproduce.
This guide compares 9 credible Kameleoon alternatives across those operating models. It evaluates how each platform handles web and product experiments, feature delivery, data architecture, statistical analysis, deployment, pricing, and implementation. The goal is not to produce a universal ranking. It is to help you eliminate products that solve the wrong problem.
Kameleoon remains a capable option. Its current platform supports prompt-based web experiments, visual and code editing, feature experiments, personalization, advanced targeting, CUPED, sequential testing, and sample ratio mismatch detection. Its published PBX Starter plan begins at $495 per month for up to 10 experiments and 50,000 tested visitors, while broader enterprise capabilities use custom pricing. Kameleoon reviews on G2 frequently praise support and flexibility, while some reviewers mention learning curve, documentation, and developer dependency for complex tests.
Those tradeoffs create the real comparison: do you want another experience-optimization suite, or a different architecture for experimentation?
Kameleoon alternatives at a glance
| Alternative | Best for | Main difference from Kameleoon | Pricing shape |
|---|---|---|---|
| GrowthBook | Warehouse-native product teams | Open source, transparent SQL and statistics, unified flags and experiments | Free Starter, per-seat Pro, custom Enterprise |
| Optimizely | Mature enterprise experimentation programs | Separate web and feature products with extensive program tooling | Custom paid contracts |
| VWO and AB Tasty | Marketing-led web optimization | Broad visual CRO, behavioral insight, personalization, and services | Modular or custom traffic-based pricing |
| Convert Experiences | Focused website CRO teams | Published tested-user tiers and a narrower experimentation product | Published Growth and Pro tiers |
| Statsig | Technical teams consolidating product tools | Experiments, flags, analytics, and replay on one event platform | Free entry, usage-based paid plans |
| PostHog | Startups that want a developer product stack | Open-source product analytics suite with granular usage pricing | Free allowances, then pay as you go |
| Amplitude | Teams already standardized on Amplitude Analytics | Analytics-led cohorts and experimentation | Free entry, volume-based paid tiers |
| LaunchDarkly | Release governance and feature delivery | Feature-management depth with flag-based experiments | Free Developer, usage-based Foundation, custom |
| Adobe Target | Adobe Experience Cloud enterprises | Enterprise testing and personalization inside Adobe's ecosystem | Custom enterprise licensing |
Independent software marketplaces produce different lists because they group the market differently. G2 emphasizes VWO, AB Tasty, Optimizely, and experience-optimization products, while TrustRadius includes Adobe Target, LaunchDarkly, Convert, and other adjacent tools. Gartner Peer Insights adds verified enterprise-review context. Treat these rankings as discovery inputs, not a substitute for testing your own data, identity, and release workflows.
What to decide before comparing tools
The fastest way to choose the wrong platform is to start with a feature checklist. Most vendors can check boxes for A/B tests, targeting, dashboards, and SDKs. The consequential differences sit underneath those labels.
Decide who builds experiments
Inventory the experiments your team ran or wanted to run during the last year:
- Visual web tests: Copy, layout, navigation, landing-page, and merchandising changes made without a normal application release.
- Redirect tests: Experiences hosted on separate URLs, often used for larger page or funnel changes.
- Feature experiments: Application changes implemented in code and assigned through SDKs.
- Backend and algorithm tests: Pricing logic, ranking, recommendations, search, prompts, or service behavior.
- Personalization campaigns: Rules that choose an experience for a segment without necessarily estimating a causal effect.
- Progressive releases: Flags, canaries, ramp schedules, and kill switches used to control deployment risk.
If most work is bounded to marketing pages, a visual CRO suite can be the right answer. If experiments change application behavior or reuse warehouse metrics, prioritize SDK quality, assignment consistency, metric governance, and statistical transparency. If both matter, require vendors to demonstrate both workflows against the same identity and measurement model.
Decide where metrics should live
Some platforms ingest events into a vendor-controlled analytics system. Others query metrics in your warehouse. A third group can support both patterns.
This choice affects more than data movement. It determines whether revenue, retention, support, latency, and other business metrics use the same definitions as the rest of your company. It affects whether analysts can inspect the generated SQL, add a metric after an experiment starts, and reconcile results with trusted reporting.
A warehouse-native model is valuable when you already use Snowflake, BigQuery, Databricks, Redshift, ClickHouse, or another central store. An integrated event platform can be faster when your instrumentation is immature and you want one vendor to collect, analyze, and visualize events. Neither architecture removes the need for clean identity, exposure logging, metric definitions, and data-quality checks.
Price the operating model, not the demo
Build a 12- to 24-month cost model using:
- Tested visitors, monthly active users, events, exposures, and flag evaluations.
- Client-side and server-side traffic.
- Production services, projects, environments, domains, and applications.
- Editor seats, developer seats, analysts, and occasional collaborators.
- Experimentation, personalization, feature management, analytics, replay, and support modules.
- Data retention, exports, regions, SSO, audit logs, and service-level agreements.
- Implementation, QA, professional services, and migration effort.
Published starting prices are useful, but they rarely describe the full enterprise bill. Ask each finalist to price the same projected workload and state which counters can create overages.
1. GrowthBook: Best overall for modern product teams
Best for
GrowthBook is the strongest Kameleoon alternative for engineering, product, and data teams that want experimentation and feature delivery on top of their existing metrics. It is especially well suited to organizations that value warehouse-native analysis, visible SQL, open-source code, self-hosting, and costs that do not rise with every tested visitor.
It is less directly comparable when the main requirement is a managed merchandising or personalization suite. GrowthBook's center of gravity is product development: use a flag, Visual Editor, or URL redirect to deliver a variant, then measure the causal effect with a reusable metric model.
Key strengths
GrowthBook Experimentation supports Bayesian and frequentist analysis, sequential testing, CUPED, post-stratification, sample ratio mismatch detection, guardrails, holdouts, and multiple experiment types. Teams can implement tests through lightweight SDKs, existing feature flag providers, a Visual Editor, or redirects.
The warehouse-native architecture is the central difference. GrowthBook queries metrics where they already live and exposes the SQL used to calculate results. That lets a data team reuse revenue, activation, retention, latency, or custom business metrics instead of reconstructing them inside a separate vendor event system. Teams without a warehouse can begin with a managed option and move later.
Feature flags and experiments share one workflow. A team can release gradually, target internal users, attach guardrails, and turn the rollout into a controlled experiment. GrowthBook Cloud and self-hosted deployments use the same core open-source platform, and the statistical engines are available for inspection in the public GrowthBook repository.
Watchouts
Warehouse-native analysis makes data logic visible; it does not fix bad instrumentation. You still need stable assignment identifiers, reliable exposure events, and agreed metric definitions. Teams adopting their first warehouse may prefer the managed warehouse initially rather than introducing a large data project.
The Visual Editor works well for bounded website changes, but complex application variants still belong in reviewed code. That is a healthy constraint for many engineering teams, though a marketing organization expecting agency-style campaign production should test the workflow carefully.
Pricing and implementation notes
GrowthBook pricing currently lists a free Cloud Starter plan for up to 3 users, 1 project, unlimited feature flags, unlimited experiments, and unlimited traffic. Pro is listed at $40 per seat per month, and Enterprise uses custom pricing. An open-source self-hosted plan is also available.
Start a proof of concept with one current Kameleoon experiment, not a synthetic button-color test. Reproduce the assignment, primary metric, guardrail, and key segments. Compare warehouse counts and result intervals. Then test a staged flag rollout and a visual change. The GrowthBook and Kameleoon comparison provides a useful starting point, but the proof should use your own data.
2. Optimizely: Best for established enterprise programs
Best for
Optimizely fits large organizations that want mature web experimentation, feature experimentation, and program-management capabilities backed by enterprise services. It is a logical shortlist candidate when Kameleoon is being evaluated as an experience-optimization platform rather than only a testing tool.
Optimizely separates Web Experimentation and Feature Experimentation. That can be useful when marketing and engineering teams have distinct workflows, budgets, and governance. It can also create more product and contract complexity than a unified platform.
Key strengths
Web Experimentation includes a visual editor, audience targeting, custom code, A/B and multivariate tests, and program tooling for teams running many website experiments. The current Optimizely experiment workflow covers page targeting, variations, events, metrics, QA, and publishing.
Feature Experimentation serves application and backend use cases through SDKs and flag-based delivery. Optimizely has a long experimentation history, a broad partner ecosystem, and the kind of services and governance that can matter in multinational organizations. The REST API also supports programmatic management and result access.
Watchouts
Buyers must define which Optimizely products they need. Web and feature testing do not automatically become one operational model just because they share a vendor. Validate identity, metrics, permissions, and results across both products.
Pricing is generally contract-based, so compare the full bundle rather than a single module. Independent Optimizely reviews can help identify usability and support questions to investigate, but older reviews may describe retired plans or workflows.
Pricing and implementation notes
Request a quote that includes web and feature experimentation, required traffic, environments, collaborators, data exports, support, SSO, and any services. Run one marketing-page test and one SDK test. Measure snippet performance, editor reliability on your frontend, SDK assignment, metric reconciliation, and the work required to share audiences or results.
Choose Optimizely when enterprise program maturity and services outweigh platform consolidation or open deployment. Choose a more focused alternative when you want one product and data model across flags, experiments, and analysis.
3. VWO and AB Tasty: Best for marketing-led optimization
Best for
VWO and AB Tasty belong on the same 2026 evaluation track because the companies announced that they had joined forces. Their current products remain recognizable, but buyers should assess roadmap, packaging, contracts, integrations, and future consolidation as one strategic vendor decision.
This combined option is best for marketing, ecommerce, and CRO teams that prioritize visual web tests, behavioral insight, personalization, and hands-on customer success. It is closer to Kameleoon's web-optimization heritage than developer-first platforms are.
Key strengths
VWO provides visual and code editing, split URL and multivariate tests, targeting, behavioral analytics, and feature experimentation. Its current plan comparison separates web testing, feature experimentation, behavioral analytics, and AI capabilities, helping buyers see which product owns each workflow.
AB Tasty combines web experimentation, personalization, feature experiments, recommendations, targeting, and services. Its pricing and packaging page lists Bayesian, frequentist, and sequential methods along with visual testing and feature rollout capabilities.
Both brands have large optimization communities and experienced service organizations. G2's Kameleoon alternatives data reports high review volume for VWO and AB Tasty and highlights ease of use and support as common comparison themes.
Watchouts
The corporate combination creates uncertainty a normal product comparison cannot resolve. Ask which contracts, data regions, SDKs, support teams, roadmaps, and product capabilities will converge. Do not assume a capability available in one product is automatically included with the other.
Both platforms can span beyond web testing, but product teams should validate server-side assignment, exposure exports, metric flexibility, and feature-flag governance. A polished visual demo is not evidence that backend experiments or warehouse reconciliation will be equally strong.
Pricing and implementation notes
VWO uses product-specific plans and request-pricing flows. AB Tasty states that pricing is customized around traffic or monthly active users, domains, modules, and implementation scope. AB Tasty offers a proof of concept rather than a self-serve free trial.
Ask the combined company to price the exact future bundle and document product ownership. Test a single-page application change, a redirect, a backend feature, and a personalization rule. Include page-speed measurement and verify how duplicate visitors, consent, bot filtering, and cross-device identity affect usage.
See how GrowthBook compares with Kameleoon
Review the differences in platform architecture, experimentation, feature flags, and product analytics before narrowing your shortlist.
Compare GrowthBook and Kameleoon4. Convert Experiences: Best focused web CRO alternative
Best for
Convert Experiences suits CRO teams and agencies that want a focused website experimentation platform with published entry pricing. It is a strong Kameleoon alternative when visual and code-based web testing matter more than a broad product-development stack.
Convert is also relevant to privacy-conscious teams that want clearer choices around tested-user volume and data handling. It does not attempt to replace a complete product analytics or feature-delivery platform.
Key strengths
Convert supports A/B, split URL, multivariate, and multipage experiments, a visual editor, code editing, targeting, integrations, and deployment-style experiences. Its developer documentation now includes full-stack SDKs for server-side and mobile experimentation, which makes it more than a browser-only testing tool.
The product publishes detailed plan limits. That makes it easier to model active projects, domains, goals, and tested users before a sales conversation. TrustRadius identifies Convert as a highly rated small-business alternative, offering a useful independent signal for buyers who find enterprise suites too heavy.
Watchouts
Convert is strongest as an experimentation product, not a unified flag, analytics, and release-governance system. Technical teams should test SDK maturity, assignment consistency, metric exports, and how server-side results fit their existing analytics stack.
Published limits create clarity, but tested-user pricing still scales with exposure. Forecast seasonal peaks and simultaneous experiments rather than multiplying an average month.
Pricing and implementation notes
Convert pricing currently lists Growth at $399 monthly or $299 per month when paid annually, and Pro at $599 monthly or $420 per month annually, with tested-user allowances and overuse pricing. Enterprise pricing is custom. Verify those figures at purchase because plan details can change.
Convert is a compelling shortlist option when your proof of concept is mostly web based. Use a real high-traffic page, test the editor against your frontend framework, measure Core Web Vitals, confirm analytics integrations, and estimate tested users under overlapping campaigns.
5. Statsig: Best integrated technical product suite
Best for
Statsig fits engineering-led product teams that want experimentation, feature flags, product analytics, session replay, and related product infrastructure on one event foundation. It is a strong Kameleoon alternative when the desired direction is deeper product development rather than visual CRO.
Teams building fast-moving applications, mobile products, or AI features may value the tight path from feature gate to experiment and analysis.
Key strengths
Statsig experiments support A/B and A/B/n tests, custom randomization units, scorecards, targeting, and statistical analysis. The platform includes layers, holdouts, variance reduction, power analysis, and warehouse-native options. Feature gates, dynamic configurations, experiments, and analytics share a platform vocabulary.
Statsig reduces tool switching for teams comfortable sending data into an integrated vendor system. It can also run against warehouse data for organizations with stronger governance requirements. The breadth makes it attractive when consolidation is a goal rather than a side effect.
Watchouts
An integrated event platform changes your data and cost model. Review event definitions, identity, retention, export, warehouse coverage, and usage counters. Confirm which capabilities are available in warehouse-native mode rather than assuming parity with the hosted event path.
Statsig is proprietary and cloud centered. Teams that require open-source inspection or fully self-hosted control should weigh that structural difference. Community discussions about feature-management vendors are useful for discovering real evaluation concerns, but validate every capability and price with current documentation.
Pricing and implementation notes
Statsig offers a free entry point and usage-based paid plans; enterprise terms are custom. Its current pricing page should be the source for event allowances, seats, replay, warehouse-native access, and support at the time of purchase.
In a proof of concept, build a gate, experiment, dashboard, and replay workflow around the same feature. Reconcile the primary metric with your warehouse and test a late-added metric. Price events, exposures, replay, analytics, and warehouse workloads together.
6. PostHog: Best for startups consolidating developer tools
Best for
PostHog is a good fit for startups and smaller engineering teams that want product analytics, feature flags, experiments, session replay, surveys, and data tools from one developer-oriented vendor. It can replace more surrounding tools than Kameleoon, not just the experiment interface.
Its open-source roots, transparent usage pricing, and broad free allowances make it easy to evaluate. The tradeoff is that breadth can require more assembly and governance than a focused experimentation platform.
Key strengths
PostHog connects feature flags to experiments and analytics in a single event system. Teams can inspect funnels, cohorts, recordings, and experiment results without moving between vendors. The PostHog experimentation documentation explains how flags assign variants and how metrics evaluate impact.
Usage-based pricing is published at the product level, so small teams can start cheaply and expand selectively. The source code and issue tracker in the PostHog GitHub organization provide additional technical transparency.
Watchouts
PostHog's experiment analysis is tied closely to PostHog events and product analytics. If your canonical metrics live in a warehouse with complex SQL definitions, test the effort required to reproduce them or use available warehouse integrations.
Broad platforms can create uneven depth. Evaluate experimentation statistics, power analysis, guardrails, multiple testing, governance, and feature-delivery requirements independently from analytics and replay. Do not choose it only because the combined demo looks convenient.
Pricing and implementation notes
PostHog pricing uses free allowances followed by product-specific usage charges. Model events, replay, flags, data warehouse, surveys, and any add-ons separately. A low initial bill can change as instrumentation and retention grow.
Use PostHog when consolidation and developer autonomy dominate. Run the proof of concept with production event volume, verify flags at the edge or server where needed, and compare experiment estimates with your existing analytics source.
7. Amplitude: Best for existing Amplitude customers
Best for
Amplitude is the natural Kameleoon alternative for organizations already standardized on Amplitude Analytics. Existing behavioral cohorts, events, governance, and user identity can reduce the work required to launch product experiments.
It works best when experimentation is an extension of an analytics program. Teams seeking a self-hostable feature-management platform or warehouse-first statistics layer may prefer another option.
Key strengths
Amplitude Experiment connects feature delivery, targeting, and analysis to Amplitude's behavioral data. Teams can use established cohorts and metrics rather than constructing a separate optimization dataset. Amplitude's experimentation documentation covers feature flags, deployments, experiments, and result workflows.
The broader analytics platform is useful for diagnosing why a result occurred, exploring segments, and identifying follow-up hypotheses. This creates a strong discovery-to-measurement loop for product managers and analysts already working in Amplitude.
Watchouts
The value depends heavily on existing Amplitude adoption. If your source of truth is a warehouse or another analytics tool, adopting Amplitude mainly for experiments can add the duplication you are trying to remove.
Confirm how experiment assignment, exposure, metric definitions, and warehouse data behave across the plans you are considering. Amplitude reviews on G2 can surface usability and administration themes, but verify current packaging directly.
Pricing and implementation notes
Amplitude offers free and paid analytics entry points, while experimentation and enterprise capabilities depend on plan and usage. Amplitude pricing should be checked for monthly tracked users, features, governance, and experimentation availability.
If you already use Amplitude, reproduce a known cohort and metric in the proof of concept. If you do not, include the cost of analytics instrumentation, governance, and migration in the comparison rather than treating Experiment as an isolated product.
8. LaunchDarkly: Best for release governance
Best for
LaunchDarkly is strongest when feature delivery, progressive rollout, approvals, targeting, and operational controls are the center of the decision. It is a Kameleoon alternative for engineering organizations that want experimentation attached to mature flag infrastructure.
It is less direct for marketing-led visual experimentation. Teams replacing both Kameleoon's web editor and feature capabilities may need another tool or a more code-centered workflow.
Key strengths
LaunchDarkly has deep feature-management concepts, broad SDK coverage, environments, segments, workflows, and release controls. LaunchDarkly Experimentation connects metrics to flag variations and supports different flag value types.
Its 2026 platform packaging includes experimentation on current plans, and its engineering focus makes it suitable for organizations where release safety is more important than visual campaign production. The platform can measure product and operational metrics linked to flags.
Watchouts
Pricing now includes service connections and client-side monthly active users, so infrastructure shape matters. A Kubernetes or microservices environment can create different costs from a simpler application even with similar end-user traffic. Recent DevOps discussion illustrates why buyers should model the new counters carefully rather than relying on older seat-based comparisons.
Warehouse-native experimentation and open-source deployment are not LaunchDarkly's primary model. Validate metric ingestion, data export, statistical methods, and the workflow for adding business metrics.
Pricing and implementation notes
LaunchDarkly pricing currently lists a free Developer plan, Foundation pricing based on service connections and client-side MAUs, and custom Enterprise and Guardian plans. Current plan details supersede older comparisons.
Instrument a representative service topology during the proof of concept. Test a flag, experiment, guarded rollout, approval, and rollback. Then calculate next-year service connections, client-side MAUs, data retention, observability, and enterprise governance.
9. Adobe Target: Best for Adobe Experience Cloud enterprises
Best for
Adobe Target fits enterprises that already rely on Adobe Analytics, Experience Platform, Journey Optimizer, or other Experience Cloud products. Its value comes from ecosystem integration, enterprise personalization, and established digital-optimization workflows.
It is usually too heavy when a team only needs product flags and controlled experiments. Procurement, implementation, and cross-product dependencies should be part of the evaluation.
Key strengths
Adobe Target supports A/B and multivariate tests, rules-based targeting, visual experience creation, automated personalization, and recommendations across digital channels. Target Standard and Target Premium package different levels of personalization and automation.
For organizations already using Adobe identity and analytics tools, Target can reuse data and audiences across a larger marketing stack. Enterprise agencies and implementation partners are widely available.
Watchouts
Adobe's ecosystem advantage can also become a dependency. Determine which capabilities require Target Premium, Adobe Analytics, Experience Platform, or professional services. Validate how results are attributed and whether the analysis matches warehouse reporting.
Independent practitioners describe a wide range of implementation experiences. Adobe Target discussions are useful for generating questions about setup and in-house alternatives, but a current technical proof is more reliable than anecdotes.
Pricing and implementation notes
Adobe Target uses custom enterprise licensing. Price Target Standard or Premium, traffic, domains, applications, Analytics integration, profile and audience needs, data feeds, regions, support, and services together.
Choose Adobe Target when Adobe ecosystem integration creates measurable operational value. If the proof requires buying several Adobe products to reproduce metrics you already trust elsewhere, compare that total cost with a warehouse-native or integrated product platform.
How to choose the right Kameleoon alternative
Use the shortlist to select 2 or 3 operating models, not 9 demos.
- Choose GrowthBook when warehouse-native metrics, feature flags plus experimentation, open-source control, and predictable pricing are the main criteria.
- Choose Optimizely when mature enterprise program tooling and services matter more than platform simplicity.
- Choose VWO and AB Tasty when visual CRO, personalization, behavioral insight, and customer success lead the decision.
- Choose Convert when you want focused web experimentation with published tested-user pricing.
- Choose Statsig when a technical product suite can replace experiments, flags, analytics, and replay.
- Choose PostHog when a startup wants an open, developer-oriented stack with granular usage pricing.
- Choose Amplitude when trusted metrics and cohorts already live in Amplitude Analytics.
- Choose LaunchDarkly when feature delivery and release governance are the primary jobs.
- Choose Adobe Target when Experience Cloud integration is strategic.
Then run the same proof of concept in every finalist.
Use a representative experiment
Avoid a low-risk button test that every platform can pass. Select a real experiment with:
- A feature or page change similar to normal work.
- A stable user or account assignment key.
- One primary metric, one guardrail, and one diagnostic metric.
- A segment required for a real decision.
- Enough traffic to exercise event, visitor, or usage counters.
- A rollback or stop condition.
If web and feature experimentation are both important, run one of each. A platform that excels at one workflow may expose integration gaps in the other.
Score evidence, not presentation
Use a decision matrix with weighted criteria:
| Criterion | What to verify in the proof |
|---|---|
| Assignment | Stable bucketing across devices, services, and environments |
| Metrics | Reconciliation with trusted warehouse or analytics totals |
| Statistics | Power planning, intervals, peeking behavior, variance reduction, SRM, and guardrails |
| Delivery | Visual-editor reliability, SDK behavior, latency, caching, and rollback |
| Governance | Roles, approvals, audit logs, naming, ownership, and cleanup |
| Data | Regions, retention, exports, privacy, identity, and deletion workflows |
| Cost | Current workload, projected growth, overages, support, and services |
| Migration | Parallel operation, historical data, flag recreation, and cutover risk |
The OpenFeature specification can help teams separate application code from a specific flag vendor during migration. It does not standardize every experimentation or analytics behavior, but it can reduce direct coupling in supported stacks.
Migrate in parallel
Do not replace every Kameleoon campaign at once. Freeze or finish short-lived web tests where practical. Move long-lived flags and critical experiments in phases:
- Inventory active experiments, flags, audiences, metrics, owners, and expiration dates.
- Remove obsolete campaigns instead of recreating them.
- Install the new SDK or delivery method alongside Kameleoon.
- Recreate a small set of assignments and validate deterministic bucketing.
- Run shadow analysis or parallel exposure for a bounded period.
- Reconcile counts, metrics, segments, and statistical results.
- Switch new experiments first, then migrate long-lived controls.
- Retire old SDKs, scripts, data exports, and credentials after verification.
Monitor page performance during any browser-script transition. Google's Core Web Vitals guidance provides a practical baseline, but measure your own pages and devices because third-party script cost depends on implementation.
GrowthBook is the strongest default for product experimentation
Kameleoon is a credible platform for organizations that want web testing, personalization, feature experimentation, and AI-assisted variation creation in one commercial suite. Replacing it only makes sense when another operating model fits better.
For modern product teams, GrowthBook is the strongest default. It unifies feature flags, code and visual experiments, product analytics, warehouse-native measurement, transparent statistics, and open deployment choices. Costs are tied to collaborators and plan needs rather than tested traffic, and teams can start without committing to an enterprise contract.
Start with GrowthBook for free and reproduce one real Kameleoon workflow. If you need to evaluate enterprise governance, migration, or a mixed web-and-product program, book a GrowthBook demo and bring the proof-of-concept rubric above.
Build a more trustworthy experimentation program
Watch Ronny Kohavi and Luke Sonnet explain the design and measurement mistakes that can make a polished testing platform produce weak decisions.
Watch the WebinarRelated Articles
CLI vs MCP: TLDR, it doesn’t matter as much as you think
Your agent should know how to do the job whichever interface it uses.
Your coding agent can already run terminal commands. Your product manager's assistant can connect to remote tools. Both need to inspect the same experiment, understand the same metric, and prepare changes to the same feature flag.
That creates a familiar question: should you give them a CLI or an MCP server?
The usual answers mix several concerns. A CLI is easy to compose with scripts. MCP gives compatible clients a standard way to discover and invoke tools. Skills can supply the instructions that make either route useful. None of those statements tells you whether the agent knows your release process or can distinguish a draft from a live change.
For GrowthBook, the choice has become smaller. We've built the agent layer around a REST API and reusable workflow skills, then made those available through different interfaces. Your choice of CLI or MCP no longer needs to determine which product workflow your agent can understand.
It still determines how the agent connects, executes requests, and handles credentials. This article explains that distinction, shows the same disabled-flag operation through both routes, and gives you a way to evaluate the integration you actually intend to use.
The debate combines three different questions
Start with a specific job: prepare a release control for a new checkout flow. The agent needs to know which project owns checkout, which environments exist, what the default behavior should be, and whether the proposed flag key already exists.
Choosing an interface answers only part of that job.
How can the agent reach the product?
A command-line interface lets an agent invoke a program in an environment where it has shell access. That program can make authenticated API requests and return data. You can also run the same commands yourself, put them in scripts, and preserve output for inspection.
The Model Context Protocol architecture connects a host application to servers through clients. An MCP server exposes capabilities that a compatible host can discover and call. The host might be a coding environment, a desktop assistant, or another agent application.
These categories overlap. A terminal-based agent can also be an MCP client. A local MCP server can be a process launched by that client. A remote MCP connection can work without the host giving the model a general-purpose shell.
So “terminal agent” doesn't automatically mean “use the CLI,” and “MCP” doesn't automatically mean “remote service.” Ask what access the runtime provides before choosing the adapter.
What procedure should the agent follow?
An API can expose a create operation without teaching an agent when to use it. A syntactically valid feature flag might still have the wrong project, an ambiguous key, or a default value that doesn't match the application.
That's the job of a skill: reusable instructions for a recognizable task. The Agent Skills format gives those instructions a portable structure, including a skill entry point and supporting references. A workflow can describe the context to inspect, the sequence to follow, and the evidence to return.
For the checkout example, useful guidance says to resolve environments, check the permanent key, choose a value type, and create the flag disabled. Merely exposing a create command leaves those decisions to the agent's general knowledge.
Skills are also useful when the right answer is to take no action yet. “Create a flag” and “design an experiment” are related requests, but they can require different objects and sequencing. An agent needs enough product guidance to make that distinction.
What context makes the procedure relevant?
Even a good playbook needs the current product state. The agent should inspect the objects in your GrowthBook organization and, when it is changing application code, the repository's SDK initialization and tests.
Those are different sources of context. GrowthBook supplies flags, experiments, metric definitions, and other authorized product resources. Your coding runtime supplies the application files it can access. An MCP connection doesn't by itself grant repository access, and a CLI doesn't by itself explain your metric definitions.
Evaluate the combination: access to the product, a maintained procedure, and enough context to apply that procedure. A comparison that changes all three at once cannot isolate the effect of CLI versus MCP.
GrowthBook puts the durable parts below the interface
We separated the agent layer into responsibilities that can be reused. The product API exposes operations. Skills explain workflows. The interface connects the agent to those two layers.
This is the architectural shift behind GrowthBook's agent experience. Instead of making every client integration carry its own interpretation of experimentation, we can share the interpretation and change how it is delivered.
The API provides the operations
GrowthBook's REST API makes product objects addressable. An agent can inspect a project, retrieve a flag, or perform an authorized operation against those objects.
The rebuilt API described in GrowthBook 4.4 uses shared schemas to support types, validation, and API documentation. The CLI is generated from the API definition. That reduces the amount of separately maintained command logic needed to expose product operations.
The OpenAPI specification explains the underlying principle: a machine-readable description can represent an HTTP API's paths, operations, inputs, and responses. Generation is useful because it derives another interface from that contract.
Generation doesn't mean any installed binary knows every future endpoint. The generated client still has a version, and your GrowthBook server still has a version. A self-hosted instance can lag behind the public documentation. Treat API compatibility as a deployment fact you verify.
Skills provide the workflow guidance
GrowthBook's feature-flags skill routes requests to more specific workflows. Creating a flag, inspecting dependencies, changing targeting, requesting review, and publishing a revision are separate procedures.
That structure lets the agent load the guidance relevant to the current job. The skill authoring guidance on progressive disclosure supports this approach: keep the entry point focused and place detail in references that are loaded as needed.
The benefit is maintainability as well as context management. A correction to a flag workflow can be made in the maintained skill rather than repeated across a series of tool descriptions and client-specific prompts.
There are two shell concepts to keep distinct. The generated growthbook CLI is a terminal interface to the product API. The skills repository also includes a small gb-call helper for making REST requests. Installing a skill doesn't make that helper a globally available command; its location depends on the installation. Both can reach the API, but their configuration and invocation are different.
MCP provides a thin bridge
The current GrowthBook MCP implementation exposes four tools: growthbook_list_skills, growthbook_read_skill, growthbook_api_read, and growthbook_api_write.
An agent discovers a domain, reads the relevant workflow, then makes API calls. It doesn't need a dedicated MCP tool for every product endpoint. Calls described as gb-call GET in a skill map to the read tool; mutating methods map to the write tool with the same path and body.
The bridge does not run the shell helper. It forwards authenticated requests. Product-side permissions and validation remain important because a small tool surface can still reach many operations.
Shared guidance also has a delivery boundary: the MCP server bundles skills when it is built, using a pinned source revision. A newly edited skill in the repository needs to be included in a subsequent server build before that server supplies it. “Shared source” is a maintainability claim, not a promise of instant synchronization.
Explore the shared flag workflows
Open the feature-flags skill to see the procedures that guide creation, targeting, reviews, and publishing. Bring the same workflow knowledge to the agent interface your team uses.
View the Flag SkillThe same disabled flag can use either route
The practical question is whether the interface changes the job. Let's create a Boolean flag called checkout-redesign, with a false default and every environment disabled.
This is an API example for a sandbox project, not an application integration tutorial. It creates a control object; your application still needs a correctly configured GrowthBook SDK to evaluate it. The feature flag documentation covers the product concepts behind that integration.
Connect and verify before preparing the write
For the terminal route, install the current GrowthBook CLI, configure a Personal Access Token through its interactive setup, and inspect the available command syntax:
Check that the active server and identity are the ones you intend to use. Prefer a tested, pinned CLI version in repeatable automation. Don't include a live token in a command you plan to share.
For an MCP route, the GrowthBook Cloud setup uses the hosted endpoint and browser OAuth. In a client using the documented mcpServers configuration shape, such as Cursor, add:
Complete the browser authorization and confirm tool discovery. Other clients can use a different configuration shape. Self-hosted GrowthBook users should follow the local stdio or self-hosted HTTP instructions rather than point a private instance at the Cloud service.
Next, let the connected agent discover the flag-creation workflow. These are tool-call parameters, shown separately in the order to invoke them:
The returned guidance should describe the prerequisites for creating the flag. If the workflow isn't present, resolve the server's bundled skill version before substituting instructions from an older integration.
Resolve real IDs and construct one payload
The flag-creation workflow checks existing keys, lists projects, and resolves environments. In the MCP client, invoke the read tool with each of these argument objects:
For the CLI route, perform that discovery with the corresponding command groups documented in the CLI command catalog:
Inspect each command's help if your installed version differs. The returned keys, project IDs, and environment IDs are the inputs to the payload below. In MCP, the equivalent read-tool arguments are:
Verify that checkout-redesign isn't taken, identify the sandbox project's ID, and enumerate every actual environment. These read responses determine the payload; don't treat example environment names as a complete inventory of your organization.
Save the following as flag.json, replacing <PROJECT_ID> and the environment keys with the discovered values. This example assumes the only environments are staging and production:
The API represents defaultValue as a string, even for a Boolean flag. Explicitly disabling each environment avoids relying on the organization's default state for newly created flags. Use a PAT for this example so the caller has a user identity for attribution.
Review the permanent key, project, value, and disabled states before submitting. If the intended job is an experiment, route to experiment design first instead of creating an unrelated flag and hoping to connect it later.
Submit once, then read the object back
With the CLI, the create command accepts a JSON body. In a Bash-compatible shell, inspect the request with dry run before submitting:
The first command previews a request; it doesn't prove the server will accept it. Run the second only after checking the preview and approving this creation. In PowerShell, use that shell's file-reading syntax rather than paste the Bash substitution unchanged.
The PowerShell equivalent, using the same reviewed file, is:
The same distinction applies: preview first, approve the specific creation, then submit. Neither command changes the application's deployed code.
Through MCP, call growthbook_api_write with the same payload serialized into its body string. Substitute the same resolved project and environment names:
Choose one creation route. Don't run both against the same key; they target the same product object, and the second creation should encounter an existing key.
Verify through the CLI get command:
Or invoke growthbook_api_read with:
Check the returned key, project, value type, default value, disabled state of every environment, and absence of unintended rules. Report those facts rather than “success.” No targeting or exposure change is included in this example.
Choose the route that fits the runtime
Once the procedure and API operation are shared, the remaining choice is operational. Where does the agent run? What can it execute? How does it authenticate? What does your team need to inspect afterward?
Shell access favors terminal composition
A shell-capable agent can run the CLI alongside repository tools, save structured output, and combine product inspection with local checks. That is useful when the job includes code changes, generated files, or a reproducible script.
For example, a flag audit can produce an inventory file while an engineer separately checks code references. The agent should preserve the association between the GrowthBook key and each repository reference. The final artifact can include both the product state and the proposed code diff.
The shell makes composition available; it doesn't make a workflow safe by default. A script can select the wrong profile or swallow an error. Decide which failures stop the workflow, where outputs are stored, and which steps need a reviewable artifact.
Remote tool access favors MCP clients
MCP is useful when the host already provides a tool connection but doesn't expose a terminal. A PM can inspect an experiment through a compatible assistant without installing a product CLI inside that assistant's runtime.
The MCP authorization specification defines an authorization framework for HTTP transports. GrowthBook Cloud uses browser OAuth, while local stdio configurations use credentials supplied to the process. Those are distinct deployment paths.
MCP also gives hosts a structured description of tools. The tool specification includes annotations such as read-only and destructive hints. Hosts can use those signals in their interaction design, but the signals are not an access-control boundary. The product must still enforce the caller's actual permissions.
Use a small decision table
| Your immediate requirement | Route to consider | What to verify |
|---|---|---|
| Combine product operations with local files and scripts | CLI plus maintained skills | Shell access, profile, installed version, structured output |
| Connect a compatible assistant without a shell | Hosted MCP | HTTP/OAuth support, identity, tools, bundled workflow |
| Keep requests inside a self-hosted deployment | CLI or self-hosted MCP | Network reachability, server version, credentials, trusted app origin |
| Reuse a procedure across different team clients | Shared skills through either route | Workflow revision, API compatibility, expected review artifact |
You can support more than one row. An engineer's CLI and a PM's MCP connection can operate on the same objects with different identities and permissions. Standardizing the workflow is often more useful than standardizing everyone's client.
Compare actual outcomes, not tool counts
Four MCP tools can address a large API. A large CLI command catalog can expose the same operations. Counting entries tells you little about whether an agent completed the intended job correctly.
Likewise, there is no universal token or speed result implied by the architecture. The client, model, instructions, response size, pagination, and number of requests all affect a real run. Measure the work you need instead of importing a result from an unrelated integration.
Keep the evaluation task constant
Use one sandbox project and one bounded task. For a read test, ask each route to find a named flag and identify its enabled environments, current revision, and relevant dependencies. For a write test, use separate temporary keys with the same reviewed disabled-flag requirements.
Give both runs the same expected output. Record whether each identified the correct objects, loaded the relevant workflow, handled missing data, and preserved the boundary between creation and exposure. Measure elapsed time and context consumption only alongside those correctness checks.
If one run gets rich workflow guidance and the other gets only a command name, you're testing the guidance as well as the interface. That can still be a useful product evaluation, but describe what changed.
Test failure behavior deliberately
Try a nonexistent object, an existing key, and a credential without the required permission. The agent should identify the failure and stop the dependent action. It should not invent an ID, silently pick another environment, or reinterpret a permission error as permission to retry with a broader credential.
The revision workflow adds another important test: multiple open drafts. When a chain of changes belongs in one revision, the agent must preserve its version rather than repeatedly ask for whichever draft is latest.
A creation receipt and a publication receipt are different artifacts. If your evaluation only checks that a request returned without error, it can miss the point where a proposed change became live or where a draft failed to include the intended edits.
Record the versions behind the result
Capture the CLI version, server version when available, client configuration, and the skill text or revision used. With MCP, inspect the guidance actually returned by the connected server. With installed skills, inspect the local instructions actually loaded.
That record makes a later regression diagnosable. A changed result may come from new guidance, a client update, a changed API, or different product state. “MCP became worse” is too broad to help you fix it.
Build workflows that survive the next client
The most useful consequence of GrowthBook's design is organizational. Engineers, PMs, and analysts can choose the agent surface that fits their work while referring to the same flags, experiments, and metrics.
An engineer can prepare a disabled flag from a terminal. A reviewer can inspect its draft in the app. An assistant connected through MCP can retrieve the same object and explain its state. The handoff should carry an ID, a revision where applicable, the proposed behavior, and the decision still required.
This is where the CLI-versus-MCP question loses much of its importance. Your release procedure doesn't need to be rewritten around each client. The product holds state; the API exposes operations; skills explain the work; the chosen interface delivers access.
Start with one inspection or sandbox creation. Require the agent to return a concrete object and its verified state. Then add the next workflow only when the current one is reliable enough for your team to review.
GrowthBook's feature flag platform gives that work a common place to live. The durable choice is how you connect release control and measurement to your team's process. CLI and MCP are ways to carry that process into the tools people already use.
Start with a common foundation
Set up GrowthBook for the flags, experiments, and metrics your agents will share. Then choose the CLI or MCP connection that fits each team member's work.
Get Started With GrowthBookStandard deviation vs variance: Key differences for A/B testers
A metric can have wide user-to-user variation and still yield a precise experiment estimate.
That is why confusing standard deviation with standard error creates bad A/B testing decisions. A dashboard may show that users differ substantially while the average effect is estimated closely enough to guide a release. Those statements can both be true.
Variance and standard deviation describe spread. Variance works on a squared scale; standard deviation takes its square root to return to the metric's original units. Neither is automatically the uncertainty around an experiment result.
For A/B testers, the useful distinction is practical: use standard deviation to communicate outcome variability, use variance in the calculations that combine uncertainty, and inspect the standard error or interval for the treatment effect. Start by making sure all three describe the correct unit of analysis.
Understand the difference in units
Variance uses squared distances
Outcomes above and below a mean have deviations with opposite signs. Simply averaging those signed deviations gives zero. Variance avoids that cancellation by squaring each deviation before combining them.
The sample variance formula is s² = Σ(xᵢ − x̄)² / (n − 1), where x̄ is the sample mean and n is the number of observations. The symbol Σ means to add the terms across observations.
If the outcome is measured in seconds, variance is measured in seconds squared. That is mathematically useful but less intuitive for explaining a product experience. “Variance is 4 seconds squared” does not mean users differ by 4 seconds.
Standard deviation returns to the original scale
Standard deviation is s = √s². A variance of 4 seconds squared corresponds to a standard deviation of 2 seconds. Both describe the same dispersion, expressed on different scales.
Do not define standard deviation as the average absolute distance from the mean. That is a different measure. Squaring deviations gives large deviations more influence, and taking the square root afterward does not undo that weighting.
| Quantity | What it describes | Units for task time |
|---|---|---|
| Variance | Squared dispersion in outcomes | Seconds squared |
| Standard deviation | Outcome dispersion on the original scale | Seconds |
| Standard error of the mean | Sampling variability of an estimated mean | Seconds |
Neither variance nor standard deviation requires a normally distributed population merely to be calculated. Normality matters for particular interpretations and inferential procedures, not for the existence of these summaries when the required moments are finite.
Calculate both from the same observations
Work through a small dataset
Use four synthetic task times: 2, 4, 4, and 6 seconds. This tiny dataset is for arithmetic, not evidence about a real product or a basis for confident inference.
The mean is (2 + 4 + 4 + 6) / 4 = 4 seconds. Deviations from the mean are −2, 0, 0, and 2 seconds. Their squares are 4, 0, 0, and 4 seconds squared, totaling 8.
Treating these observations as a sample, the usual sample variance is 8 / (4 − 1) = 8/3, or about 2.667 seconds squared. The sample standard deviation is √(8/3), or about 1.633 seconds.
This is a useful check on a report. If someone describes the same sample's variance as 1.633, they have probably substituted the standard deviation. If the units are missing, the mistake is much harder to spot.
Choose sample or population formulas deliberately
If those four observations constitute the entire finite population you want to describe, population variance divides by 4: 8/4 = 2 seconds squared. Population standard deviation is √2, or about 1.414 seconds.
The population and sample distinction depends on what you are estimating. Having every recorded event from an experiment does not necessarily make those events the full population of future users or future conditions you care about.
The n − 1 denominator makes the usual sample variance an unbiased estimator of population variance under independent, identically distributed sampling with finite variance. It does not make the square root exactly unbiased for population standard deviation. Nor does it correct biased sampling or dependence between observations.
Verify the calculation with explicit function names
Python's statistics functions distinguish sample calculations from population calculations. With Python 3 installed, this standalone example requires no external packages or data:
The first line of output is 2.667 1.633; the second is 2 1.414. The different denominators explain the difference. Before comparing statistics from two tools, check their sample/population defaults and handling of missing values.
Find the noise you can reduce
Explore practical variance reduction methods, including metric design and CUPED, and the conditions that make each approach useful.
Read the Variance Reduction GuideUse standard errors for experiment uncertainty
Distinguish users from estimated means
Standard deviation describes how users' outcomes vary. Standard error describes how an estimator would vary across repeated samples. For an independent sample, the estimated standard error of its mean is s / √n.
Suppose a user-level task-time metric has a sample standard deviation of 20 seconds among 10,000 independent users. The estimated standard error of the mean is 20/√10,000 = 0.2 seconds. Large differences between users coexist with a much smaller uncertainty around their average.
Collecting four times as many independent users would halve this standard error if the outcome variance stayed similar. It would not mechanically halve user-level standard deviation. The individual experience remains variable even as the estimated mean becomes more precise.
Combine arm variances before taking the square root
For independent treatment and control groups, a simple unadjusted difference in means has estimated variance s²ₜ/nₜ + s²꜀/n꜀. Its standard error is the square root of that sum. You do not add the two arm standard deviations and call the result the experiment's uncertainty.
Take a separate synthetic summary with 10,000 independent users in each arm and a 20-second standard deviation in both. The variance of the estimated difference is 400/10,000 + 400/10,000 = 0.08 seconds squared. Its standard error is √0.08, about 0.283 seconds.
If the observed treatment-minus-control difference is −1 second, an illustrative large-sample, unadjusted 95% normal interval is −1 ± 1.96 × 0.283, approximately −1.554 to −0.446 seconds. Negative values mean faster completion under this metric definition.
This example assumes independent groups and an appropriate large-sample approximation. It is not the exact output of GrowthBook's relative-lift, sequential, covariate-adjusted, or ratio-metric methods. GrowthBook's statistical details describe how the platform estimates effects and their uncertainty.
Avoid interpreting intervals as outcome ranges
That interval concerns the mean treatment effect. It does not say that 95% of individual users improved by between 0.446 and 1.554 seconds. An individual user's causal effect is a different quantity, and the experiment does not observe both potential outcomes for the same person.
Likewise, mean ± one standard deviation is not a universal statement about where 68% of users fall. That familiar interpretation depends on an approximately normal distribution. Skewed task times or revenue can look very different.
The frequentist confidence level describes the repeated-sampling coverage of the interval procedure under its assumptions. It is not a posterior probability assigned to a fixed realized interval.
Check what your metric actually measures
Match the variance to the randomization unit
If users are randomized and each contributes many requests, request rows are not automatically independent experimental units. Treating 100 requests from one person as 100 unrelated users can make uncertainty look smaller than it should.
Define the outcome at the intended unit or use a method that accounts for clustering. GrowthBook's aggregate data requirements are relevant when supplying precomputed summaries: the sample size, sum, and dispersion must correspond to the statistic and analysis method.
Two teams can report different standard deviations without either making an arithmetic mistake. One may summarize per-request latency while the other summarizes each user's average latency. They are describing different outcome distributions. Clarify the grain before comparing their numbers.
Paired measurements need another distinction. If the same users provide before-and-after outcomes, the measurements within each pair can be correlated. Analyze each user's difference or use an appropriate paired method; do not apply the independent-arm formula automatically. The paired-means framework treats those differences as the observations of interest. Pairing also does not remove time trends or establish causality by itself; the design still determines which comparison is defensible.
Inspect tails instead of deleting them casually
Large observations influence both variance and standard deviation. A few unusually long tasks can dominate a time metric; a few large purchasers can dominate revenue. Determine whether those values reflect valid behavior, instrumentation defects, retries, or unit errors.
A valid expensive user is not automatically an outlier to discard. Removing high values after seeing an experiment result can change the estimand and introduce selective analysis. Decide justified exclusions or transformations before interpreting the test.
Report complementary summaries when they answer useful questions: a histogram, median, or a relevant tail percentile can show what a single spread measure hides. Those summaries do not replace the mean effect if the mean remains the decision metric.
Keep units consistent across pipelines
Converting seconds to milliseconds multiplies every value by 1,000. Standard deviation also multiplies by 1,000, but variance multiplies by 1,000,000. A dramatic numerical variance increase can therefore be a unit conversion rather than a product regression.
For the four-value example, sample standard deviation becomes approximately 1,633 milliseconds and variance becomes approximately 2,666,667 milliseconds squared. The underlying task times have not changed. Store units with metric definitions and inspect them when comparing dashboards.
A lower variance caused solely by rescaling a metric does not create more statistical information. The effect size rescales too. Separate a numerical change in units from an actual improvement in the precision of your estimate.
Also avoid averaging standard deviations from daily reports and labeling the result a weekly standard deviation. The complete-period spread depends on both variation within days and differences between daily means. Keep the underlying observations or sufficient summaries that support the intended calculation. A simple average of displayed daily values generally loses information needed to reconstruct the full distribution.
Turn spread into a better testing plan
Define the outcome before planning the sample
Start with the metric definition: population, identity, aggregation, window, units, exclusions, and desired effect. Estimate variability from representative historical data at that same grain.
Historical variance is an input, not a guarantee. New traffic, a different user mix, or a changed measurement window can alter it. Explore plausible variance and effect-size assumptions rather than treating one historical number as exact.
Keep the two arm variances separate when appropriate. A treatment can change variability as well as its mean. The simple equal-standard-deviation illustration above is a teaching assumption, not a requirement that production groups have identical spread.
Reduce estimation noise without hiding behavior
CUPED and post-stratification use suitable pre-experiment information and covariates to improve effect estimation. CUPED stands for Controlled-experiment Using Pre-Experiment Data. Its value depends on useful predictive information and a valid implementation.
Adjustment can reduce uncertainty in the treatment effect without making real users' outcomes less variable. That distinction prevents a reporting error: a narrower adjusted interval is not evidence that customers now experience a more consistent product.
Also separate missing data from genuine zeros. A user with no purchase may correctly contribute zero revenue; a missing instrumentation event might represent an unknown outcome. Treating both identically can distort the mean and its variance before any statistical engine sees the data.
Report the right quantity for the decision
| Reader's question | Useful quantity |
|---|---|
| How much do individual outcomes differ? | Standard deviation, with distribution context |
| What enters this uncertainty calculation? | Variance at the correct analysis unit |
| How precisely is the effect estimated? | Standard error and an appropriate interval |
| Is the measured difference worth acting on? | Effect size, uncertainty, guardrails, and decision context |
For a clear experiment readout, show the metric's unit and analysis grain, the estimated effect, and its appropriate uncertainty interval. Add outcome spread when it helps readers understand the population or diagnose a noisy metric.
GrowthBook's experimentation platform brings defined metrics and statistical analysis together. A trustworthy interpretation still starts with your measurement choices: describe spread with standard deviation, calculate with variance where required, and judge precision using the estimator's uncertainty.
Build a clearer experiment readout
Connect your metrics to GrowthBook and evaluate effects with the analysis method and measurement definitions your team has chosen.
Get Started With ExperimentationCatching 80 defects means little until you know how many defects existed.
Suppose a detector flags 125 suspicious software changes. Engineers inspect them and confirm 80 real defects. That tells you something about alert quality, but it does not tell you how many defects the detector missed. To calculate true positive rate, you need the actual positives outside the alert queue too.
True positive rate, or TPR, measures the share of actual positive cases that a system correctly identifies. It is also called recall or sensitivity. The formula is TP / (TP + FN), where TP means true positives and FN means false negatives.
The arithmetic is simple. Choosing the right population, labels, threshold, and denominator is the difficult part. This guide works through an engineering example, distinguishes neighboring metrics, and explains what changes when the “test” is an A/B experiment rather than an item classifier.
Start with actual positives, not alerts
Define the positive class
“Positive” means the condition you want to detect. It does not necessarily mean a good outcome. In a defect detector, positive means a real defect. In a spam filter, it means spam. Write that definition before calculating anything.
A true positive is an item that is actually positive and predicted positive. A false negative is actually positive but predicted negative. Those two groups together form the denominator: all actual positives in the evaluation sample.
The recall definition is therefore conditional on actual class membership. TPR asks, “Among the real defects, what proportion did we catch?” It does not ask, “Among the alerts, what proportion were real?”
Fix the unit and observation window
Choose a consistent evaluation unit. A code change, an individual finding, and a repository are different units. If one change generates 12 duplicate alerts, counting alerts in the numerator and changes in the denominator produces a meaningless rate.
For the example, each unit is one code change, evaluated once by one fixed detector version at one fixed threshold. An independent review process eventually labels each change as defective or not defective. The observation window is long enough for those labels to mature.
This resembles the discipline needed when defining experiment metrics: the event, identity, time window, and denominator must describe the same question. A correct formula applied to incompatible counts still gives the wrong answer.
Calculate TPR from the confusion matrix
Put every evaluated item in one cell
Consider an original synthetic evaluation of 1,000 code changes. Reviewers establish that 100 contain a defect and 900 do not. The detector catches 80 defects, misses 20, and incorrectly flags 45 nondefective changes.
| Actual label | Predicted positive | Predicted negative | Total |
|---|---|---|---|
| Defective | 80 true positives | 20 false negatives | 100 |
| Not defective | 45 false positives | 855 true negatives | 900 |
| Total | 125 | 875 | 1,000 |
Read the labels rather than relying on cell position. Libraries and reports can arrange axes differently. The scikit-learn confusion matrix convention uses actual classes on rows and predicted classes on columns, with class order also affecting where each value appears.
Check the totals before calculating rates. The four cells sum to 1,000. True positives plus false negatives sum to 100 actual defects. Predicted positives total 125, which is a different denominator.
Divide detected positives by all actual positives
The calculation is:
TPR = TP / (TP + FN) = 80 / (80 + 20) = 80 / 100 = 0.80 = 80%.
Interpret it in words: the detector caught 80% of the actual defects in this evaluation sample. It missed 20%, so the false negative rate is 20%. For a binary task with complete labels, TPR and false negative rate sum to 100%.
Do not divide 80 by 1,000. That would measure true positives as a share of all evaluated changes, not recall. Do not divide 80 by 125 either. That is precision, which answers the alert-quality question.
The result describes this sample and threshold. It does not establish that every future workload will have the same recall, or that all defect categories are equally detectable. Keep the counts beside the percentage so readers can see the support behind it.
Handle zero positive support explicitly
If the sample contains no actual defects, TP + FN equals zero. Sample TPR is undefined. Returning 0% would imply the detector missed known defects; returning 100% would imply it successfully found them. Neither interpretation is supported.
Software libraries need a practical zero-division convention. That convention can return a placeholder or warning, but it does not create evidence. Report “TPR unavailable: zero actual positives” and preserve the support count. A pipeline can then distinguish an unevaluable slice from measured poor performance.
Check the experiment error risks
See how power, repeated checks, and multiple comparisons affect the reliability of experimental decisions beyond a single classifier score.
Read the False Positives GuideCompare TPR with precision and false positives
Keep the denominators visible
For the same 1,000 changes, the other common metrics tell different stories:
| Metric | Calculation | Result |
|---|---|---|
| True positive rate / recall | 80 / 100 actual positives | 80% |
| Precision | 80 / 125 predicted positives | 64% |
| False positive rate | 45 / 900 actual negatives | 5% |
| Specificity | 855 / 900 actual negatives | 95% |
| Accuracy | (80 + 855) / 1,000 changes | 93.5% |
The classification metric definitions differ because they condition on different populations. Here, 36% of alerts are false, but the false positive rate is 5%. Calling both numbers “the false positive rate” hides the operational distinction.
Accuracy can also look reassuring in an imbalanced population. A detector that labels all 1,000 changes nondefective would be 90% accurate while detecting none of the 100 defects. TPR exposes that failure, though it still needs the false-positive side of the picture.
Choose a threshold for the decision
Suppose a stricter threshold, evaluated on the same labeled changes, catches 60 defects and incorrectly flags 10 nondefective changes. Its TPR is 60%, its precision is about 85.7%, and its false positive rate is about 1.11%.
This threshold reduces the review queue from 125 changes to 70. It also misses 40 defects instead of 20. Whether that tradeoff is acceptable depends on the consequences of a missed defect, the review team's capacity, and what action follows an alert.
A ROC curve plots TPR against false positive rate across thresholds. It helps compare operating points. It does not pick the operational threshold for you, and an area-under-curve summary does not specify the queue size at the threshold you intend to deploy.
If you tune thresholds using the same labels you later report as a final evaluation, the score can be optimistic. Use separate validation and held-out evaluation data, or another defensible evaluation design, and freeze the decision rule before the final assessment.
Specify the action at each threshold too. A low-confidence finding might create a suggestion, while a high-confidence finding might block a merge. Those are different interventions with different error costs. One aggregate recall figure should not imply that every detected item received the same treatment.
Make sure the labels can support the claim
Audit predicted negatives too
If engineers review only alerts, you can estimate precision within the reviewed alert population. You cannot directly count missed defects among unreviewed negatives. Assuming those changes are clean makes FN artificially small and TPR artificially high.
An evaluation may need independent review of a representative sample of predicted negatives, delayed incident labels, or a curated benchmark with known defects. Each approach has limits. Incident labels miss undetected failures; curated examples can differ from ordinary production work.
If the evaluation oversamples suspicious changes or certain repositories, report that design. Use appropriate weighting when estimating performance for the real workload. A simple unweighted confusion matrix describes the sampled dataset, which may not represent the deployed population.
Preserve uncertainty and segment support
An 80% estimate based on 4 detected defects out of 5 is much less precise than one based on 800 out of 1,000. The important sample size for recall is the count of actual positives, not just the total number of changes evaluated.
Report positive support by important slices, such as language, defect category, or repository type. A high pooled TPR can hide weak performance on a rare but expensive failure mode. At the same time, avoid declaring tiny slices definitively better or worse from a few examples.
Counts alone do not make observations independent. Many similar changes from one repository can share a common pattern. Use uncertainty methods that fit the evaluation design rather than assuming every row is an unrelated trial.
Separate label delay from label absence
A recently deployed change might appear nondefective because nobody has had time to find the bug. Treating it as a confirmed negative gives the newest cohort a different labeling standard from older cohorts.
Define when an item becomes eligible for evaluation and track unresolved labels separately. Keep model version, threshold, label version, and observation dates with the result. That makes a later score change interpretable: you can tell whether the detector changed, the workload changed, or the labels matured.
For a warehouse-native measurement workflow, these definitions belong in the underlying data model. Joining model decisions to review outcomes still requires identity and time alignment; a queryable warehouse does not automatically resolve ambiguous ground truth.
Keep comparable populations together
When comparing detector versions, evaluate them on the same held-out cases where possible. Otherwise, an apparent recall improvement could come from an easier mix of defects. Preserve a breakdown of new, removed, and unchanged cases so reviewers can see what changed between evaluations.
When combining reports, add the underlying TP and FN counts for nonoverlapping, consistently defined populations, then calculate the pooled rate. An unweighted average of repository percentages answers a different question because it gives a tiny repository the same influence as a large one. Either summary can be useful, but label the weighting explicitly.
If the same change appears in several reports, deduplicate or model that repeated observation before pooling. Repeated scans do not create additional independent defects. Keep an audit trail from the final counts back to the evaluated item identifiers so a suspicious rate can be investigated.
Connect detection quality to product decisions
Distinguish classifier recall from statistical power
In hypothesis testing, statistical power is the probability that a testing procedure rejects the null when a specified alternative is true. It is a repeated-test detection probability, depending on assumptions such as effect size, variance, sample size, and decision rule.
That is related to the idea of detecting a real signal, but it is not the same dataset as a labeled-item confusion matrix. In an ordinary A/B program, you do not observe the true causal effect of every experiment with certainty. Dividing declared winners by all experiments does not reveal a ground-truth TPR.
Power planning asks how often your procedure would detect a particular real effect under its assumptions. A classifier evaluation asks how many labeled positives were detected in the evaluated sample. Keep those questions separate when discussing GrowthBook's statistical methods.
Evaluate the intervention as well as the detector
An improved offline detector can still create a worse product workflow. More alerts might overwhelm engineers, delay releases, or catch defects too late to matter. Conversely, a modest recall change might be valuable if it catches the failures with the highest operational cost.
When appropriate, use randomized experiments to evaluate the downstream intervention: which review experience helps teams resolve defects, with what delay and cost? Keep detector recall, review workload, and product outcomes as separate measures.
GrowthBook's experimentation platform can analyze defined outcomes from such tests. Your team supplies reliable assignment, exposure, labels, and metric definitions. Neither a high TPR nor a significant product result eliminates the need to inspect the other evidence.
Use a repeatable reporting checklist
Before sharing a TPR number, state the positive class, evaluation unit, detector version, threshold, and label process. Show TP and FN beside the rate. Include precision or false positive rate so readers can assess the workload created by detection.
Then ask whether predicted negatives were evaluated, whether labels had time to mature, and whether the sample reflects the population where you will act. Mark zero-support slices unavailable and explain material gaps in coverage.
The useful result is a statement someone can audit: “At this threshold, the detector found 80 of 100 labeled defects in these 1,000 evaluated changes, while producing 45 false alerts.” That is a clearer basis for a decision than “our model is 80% accurate.”
Measure what the change delivers
Connect your data and defined metrics to GrowthBook to evaluate how a product or workflow change affects the outcomes your team cares about.
Start Measuring With GrowthBookReady to ship faster?
No credit card required. Start with feature flags, experimentation, and product analytics—free.






