Skip to content

How LaunchDarkly’s scores are calculated

The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.

verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10

PA Score32/100

Agent-ready 66.2 × 0.30 = 19.86

API quality 10.0 × 0.20 = 2.00

Openness 6.0 × 0.20 = 1.20

Built-in AI 22.2 × 0.15 = 3.33

Automation 37.5 × 0.15 = 5.63

(19.86 + 2.00 + 1.20 + 3.33 + 5.63) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 32.02 ÷ 1.00 = 32.0

Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.

Agent-ready66.2/100×0.30 of the PA blend

Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.

Point an agent at llms.txt or agent-oriented docsweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://launchdarkly.com/llms.txtPROBE llms.txt: HTTP 404 at https://launchdarkly.com/llms.txt
  • [probe] https://launchdarkly.com/docs.mdPROBE docs-md: HTTP 404 at https://launchdarkly.com/docs.md

Run the product headlessly / in CI for automationweight 2

2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliPROBE runtime (recorded 2026-09-05): the official LaunchDarkly CLI installed via `brew tap launchdarkly/homebrew-tap && brew install ldcli` and `ldcli --version` printed `ldcli version 3.11.0` keylessly.
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI
  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens
  • [claimed-docs] https://launchdarkly.com/docs/home/infrastructure/webhooksWebhooks
  • [claimed-docs] https://launchdarkly.com/pricing30 idiomatic SDKs

Plug MCP servers into this product so it can use their toolsweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Connect an agent via an official MCP serverweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcpLaunchDarkly MCP server
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcp-hostedSet up the LaunchDarkly hosted MCP server
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcpofficial MCP server documented at https://launchdarkly.com/docs/home/getting-started/mcp
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-hostedPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the documented hosted MCP endpoint https://mcp.launchdarkly.com/mcp/launchdarkly returned HTTP 401 — the remote MCP server is live and auth-gated exactly as documented.

Use an official CLIweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliofficial CLI documented at https://launchdarkly.com/docs/home/getting-started/ldcli
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliPROBE runtime (recorded 2026-09-05): the official LaunchDarkly CLI installed via `brew tap launchdarkly/homebrew-tap && brew install ldcli` and `ldcli --version` printed `ldcli version 3.11.0` keylessly.

Drive the product through a documented public APIweight 3

3 (weight) × 7 (quality) × 1.0 (full) = 21.0 of 30 max

  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliofficial CLI documented at https://launchdarkly.com/docs/home/getting-started/ldcli
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliPROBE runtime (recorded 2026-09-05): the official LaunchDarkly CLI installed via `brew tap launchdarkly/homebrew-tap && brew install ldcli` and `ldcli --version` printed `ldcli version 3.11.0` keylessly.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-hostedPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the documented hosted MCP endpoint https://mcp.launchdarkly.com/mcp/launchdarkly returned HTTP 401 — the remote MCP server is live and auth-gated exactly as documented.
  • [probe] https://launchdarkly.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://launchdarkly.com/openapi.json, https://launchdarkly.com/swagger.json, https://launchdarkly.com/api/openapi.json, https://launchdarkly.com/.well-known/openapi.json)

Issue scoped/least-privilege API credentials for an agentweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens
  • [claimed-docs] https://launchdarkly.com/docs/home/account/roles/manage-role-assignAssigning roles to members
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-hostedPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the documented hosted MCP endpoint https://mcp.launchdarkly.com/mcp/launchdarkly returned HTTP 401 — the remote MCP server is live and auth-gated exactly as documented.
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcpLaunchDarkly MCP server

Build against official SDKsweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/pricing30 idiomatic SDKs
  • [claimed-docs] https://launchdarkly.com/docs/sdk/openfeatureOpenFeature providers
  • [claimed-docs] https://launchdarkly.com/docs/sdk/edge/cloudflareCloudflare SDK reference
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcpLaunchDarkly MCP server
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliPROBE runtime (recorded 2026-09-05): the official LaunchDarkly CLI installed via `brew tap launchdarkly/homebrew-tap && brew install ldcli` and `ldcli --version` printed `ldcli version 3.11.0` keylessly.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.

Subscribe to events via webhooksweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/infrastructure/webhooksWebhooks

Agent-ready = 119.2 ÷ 180 × 100 = 66.2

API quality10.0/100×0.20 of the PA blend

The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.

Explore an interactive API reference with runnable examplesweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://launchdarkly.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://launchdarkly.com/openapi.json, https://launchdarkly.com/swagger.json, https://launchdarkly.com/api/openapi.json, https://launchdarkly.com/.well-known/openapi.json)
  • [probe] https://launchdarkly.com/llms.txtPROBE llms.txt: HTTP 404 at https://launchdarkly.com/llms.txt
  • [probe] https://launchdarkly.com/docs.mdPROBE docs-md: HTTP 404 at https://launchdarkly.com/docs.md

Download a machine-readable API spec (OpenAPI or equivalent)weight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://launchdarkly.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://launchdarkly.com/openapi.json, https://launchdarkly.com/swagger.json, https://launchdarkly.com/api/openapi.json, https://launchdarkly.com/.well-known/openapi.json)
  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 7 (quality) × 1.0 (full) = 7.0 of 10 max

  • [claimed-docs] https://launchdarkly.com/docs/home/account/environmentEnvironments
  • [claimed-docs] https://launchdarkly.com/docs/home/flags/targetTesting changes to flag targeting
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/approvalsApprovals
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/change-historyChange history

Rely on versioned APIs with a documented deprecation policyweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens
  • [probe] https://launchdarkly.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://launchdarkly.com/openapi.json, https://launchdarkly.com/swagger.json, https://launchdarkly.com/api/openapi.json, https://launchdarkly.com/.well-known/openapi.json)

API quality = 7.0 ÷ 70 × 100 = 10.0

Openness6.0/100×0.20 of the PA blend

Can you leave, inspect, or self-host — data export, open source, portability.

Do everything through the API that I can do in the UIweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcpofficial MCP server documented at https://launchdarkly.com/docs/home/getting-started/mcp
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliofficial CLI documented at https://launchdarkly.com/docs/home/getting-started/ldcli
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliPROBE runtime (recorded 2026-09-05): the official LaunchDarkly CLI installed via `brew tap launchdarkly/homebrew-tap && brew install ldcli` and `ldcli --version` printed `ldcli version 3.11.0` keylessly.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-hostedPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the documented hosted MCP endpoint https://mcp.launchdarkly.com/mcp/launchdarkly returned HTTP 401 — the remote MCP server is live and auth-gated exactly as documented.
  • [probe] https://launchdarkly.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://launchdarkly.com/openapi.json, https://launchdarkly.com/swagger.json, https://launchdarkly.com/api/openapi.json, https://launchdarkly.com/.well-known/openapi.json)

Export all of my data in open formats and leaveweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI

Read the product's source under an open licenseweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [community] https://hn.algolia.com/api/v1/items/37611136LaunchDarkly clients download all flags in the project on connection, then stream changes. ... LaunchDarkly has an open source 'Relay' you can run in your own environment for extra resiliency.

Self-host the core productweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

  • [claimed-docs] https://launchdarkly.com/docs/sdk/relay-proxyThe LaunchDarkly Relay Proxy is a small Go application that runs on your own infrastructure.
  • [claimed-docs] https://launchdarkly.com/docs/sdk/relay-proxyThe Relay Proxy
  • [community] https://hn.algolia.com/api/v1/items/37611136LaunchDarkly clients download all flags in the project on connection, then stream changes. ... LaunchDarkly has an open source 'Relay' you can run in your own environment for extra resiliency.
  • [community] https://hn.algolia.com/api/v1/items/12464229It's a pretty question[able] architecture that outsources feature flags to a third party. You're creating a critical path hard dependency and for most apps this is going to be hit multiple times on every request.

Openness = 6.0 ÷ 100 × 100 = 6.0

Built-in AI22.2/100×0.15 of the PA blend

Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.

Get AI-generated insights and suggestions from my data inside the productweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/pricingConfigure, evaluate, roll out, and observe your AI end to end
  • [claimed-docs] https://launchdarkly.com/pricingAn AI Run is generated when you track an LLM request or run an online eval (LLM-as-a-judge).
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/guarded-rolloutsGuarded rollouts
  • [claimed-docs] https://launchdarkly.com/docs/home/experimentation/bayesianDecision making with Bayesian statistics

Set up automations that run autonomously in the backgroundweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/releases/scheduled-changesScheduled flag changes
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/guarded-rolloutsGuarded rollouts
  • [claimed-docs] https://launchdarkly.com/docs/home/infrastructure/webhooksWebhooks
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcpLaunchDarkly MCP server
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.

Delegate tasks to a built-in AI assistant inside the productweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

  • [claimed-docs] https://launchdarkly.com/pricingConfigure, evaluate, roll out, and observe your AI end to end
  • [claimed-docs] https://launchdarkly.com/pricingAn AI Run is generated when you track an LLM request or run an online eval (LLM-as-a-judge).
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcpLaunchDarkly MCP server
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcp-hostedSet up the LaunchDarkly hosted MCP server

Operate the product with natural-language commandsweight 2

2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcpLaunchDarkly MCP server
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcp-hostedSet up the LaunchDarkly hosted MCP server
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcpofficial MCP server documented at https://launchdarkly.com/docs/home/getting-started/mcp
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-hostedPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the documented hosted MCP endpoint https://mcp.launchdarkly.com/mcp/launchdarkly returned HTTP 401 — the remote MCP server is live and auth-gated exactly as documented.

Built-in AI = 20.0 ÷ 90 × 100 = 22.2

Automation37.5/100×0.15 of the PA blend

Depth of automation primitives — rules, scheduling, bulk operations, webhooks.

Perform bulk operations across many items at onceweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI
  • [claimed-docs] https://launchdarkly.com/docs/home/account/apiAPI access tokens
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcpofficial MCP server documented at https://launchdarkly.com/docs/home/getting-started/mcp
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliofficial CLI documented at https://launchdarkly.com/docs/home/getting-started/ldcli
  • [probe] https://launchdarkly.com/docs/home/getting-started/ldcliPROBE runtime (recorded 2026-09-05): the official LaunchDarkly CLI installed via `brew tap launchdarkly/homebrew-tap && brew install ldcli` and `ldcli --version` printed `ldcli version 3.11.0` keylessly.
  • [probe] https://launchdarkly.com/docs/home/getting-started/mcp-localPROBE runtime (recorded 2026-09-05): the official npm MCP server (`npx -y @launchdarkly/mcp-server start --transport stdio`) completed a FULL keyless stdio initialize handshake, answering serverInfo {"name":"LaunchDarkly","version":"0.6.2"} — tool calls authenticate later with an API key.

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 7 (quality) × 1.0 (full) = 21.0 of 30 max

  • [claimed-docs] https://launchdarkly.com/docs/home/flags/targetAdaptive triggers
  • [claimed-docs] https://launchdarkly.com/docs/home/flags/target-rulesCustom rules
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/scheduled-changesScheduled flag changes
  • [claimed-docs] https://launchdarkly.com/docs/home/infrastructure/webhooksWebhooks
  • [claimed-docs] https://launchdarkly.com/docs/home/flags/target-rulesTargeting rules

Schedule recurring jobs or workflowsweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://launchdarkly.com/docs/home/releases/scheduled-changesScheduled flag changes
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/ldcliLaunchDarkly CLI
  • [claimed-docs] https://launchdarkly.com/docs/home/getting-started/mcpLaunchDarkly MCP server

Version, review, and roll back my automationsweight 1

1 (weight) × 5 (quality) × 0.6 (partial) = 3.0 of 10 max

  • [claimed-docs] https://launchdarkly.com/docs/home/releases/approvalsApprovals
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/change-historyChange history
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/scheduled-changesScheduled flag changes
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/create-progressive-rolloutsCreating and managing progressive rollouts
  • [claimed-docs] https://launchdarkly.com/docs/home/releases/guarded-rolloutsGuarded rollouts

Automation = 30.0 ÷ 80 × 100 = 37.5