Skip to content

How Stripe Radar’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 Score22/100

Agent-ready 49.5 × 0.30 = 14.85

API quality 6.0 × 0.20 = 1.20

Openness 3.4 × 0.20 = 0.68

Built-in AI 8.0 × 0.15 = 1.20

Automation 28.0 × 0.15 = 4.20

(14.85 + 1.20 + 0.68 + 1.20 + 4.20) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 22.13 ÷ 1.00 = 22.1

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-ready49.5/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) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [probe] https://docs.stripe.com/llms.txtPROBE llms.txt: HTTP 200 at https://docs.stripe.com/llms.txt # Stripe Documentation When installing Stripe packages, always check the npm registry for the latest version rather tha
  • [probe] https://docs.stripe.com/radar.mdPROBE docs-md: HTTP 200 at https://docs.stripe.com/radar.md # Radar Use Stripe Radar to protect your business against fraud. ## Get started Use Radar to evaluate transactions, a

Run the product headlessly / in CI for automationweight 2

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

  • [claimed-docs] https://docs.stripe.com/api/radar/reviews.mdPOST /v1/reviews/:id/approve
  • [claimed-docs] https://docs.stripe.com/radar/testing.md4000000000004954 | Results in a charge with a risk level of `highest`
  • [probe] https://docs.stripe.com/stripe-cliofficial CLI documented at https://docs.stripe.com/stripe-cli
  • [community] https://hn.algolia.com/api/v1/items/13939674We are seeing an opposite side: customers using Stripe that had very low fraud rates previously are now getting more false positives causing grief because their customers' cards are getting declined. The lack of easy programmatic control is an issue for us.

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

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

  • [probe] https://docs.stripe.com/mcpofficial MCP server documented at https://docs.stripe.com/mcp

Connect an agent via an official MCP serverweight 3

3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max

  • [probe] https://docs.stripe.com/mcpofficial MCP server documented at https://docs.stripe.com/mcp

Use an official CLIweight 2

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

  • [probe] https://docs.stripe.com/stripe-cliofficial CLI documented at https://docs.stripe.com/stripe-cli

Drive the product through a documented public APIweight 3

3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max

  • [claimed-docs] https://docs.stripe.com/api/radar/reviews.mdPOST /v1/reviews/:id/approve
  • [claimed-docs] https://docs.stripe.com/api/radar/early_fraud_warnings.mdAn early fraud warning indicates that the card issuer has notified us that a charge may be fraudulent.
  • [claimed-docs] https://docs.stripe.com/api/radar/value_lists.mdValue lists allow you to group values together which can then be referenced in rules.
  • [probe] https://docs.stripe.com/radar.mdPROBE docs-md: HTTP 200 at https://docs.stripe.com/radar.md # Radar Use Stripe Radar to protect your business against fraud. ## Get started Use Radar to evaluate transactions, a
  • [probe] https://docs.stripe.com/mcpofficial MCP server documented at https://docs.stripe.com/mcp
  • [probe] https://docs.stripe.com/stripe-cliofficial CLI documented at https://docs.stripe.com/stripe-cli
  • [probe] https://docs.stripe.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.stripe.com/openapi.json, https://docs.stripe.com/swagger.json, https://docs.stripe.com/api/openapi.json, https://docs.stripe.com/.well-known/openapi.json)

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

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

Build against official SDKsweight 2

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

  • [claimed-docs] https://docs.stripe.com/api/radar/reviews.mdPOST /v1/reviews/:id/approve
  • [claimed-docs] https://docs.stripe.com/api/radar/early_fraud_warnings.mdAn early fraud warning indicates that the card issuer has notified us that a charge may be fraudulent.
  • [probe] https://docs.stripe.com/stripe-cliofficial CLI documented at https://docs.stripe.com/stripe-cli
  • [probe] https://docs.stripe.com/radar.mdPROBE docs-md: HTTP 200 at https://docs.stripe.com/radar.md # Radar Use Stripe Radar to protect your business against fraud. ## Get started Use Radar to evaluate transactions, a

Subscribe to events via webhooksweight 2

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

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

Agent-ready = 94.0 ÷ 190 × 100 = 49.5

API quality6.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://docs.stripe.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.stripe.com/openapi.json, https://docs.stripe.com/swagger.json, https://docs.stripe.com/api/openapi.json, https://docs.stripe.com/.well-known/openapi.json)

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://docs.stripe.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.stripe.com/openapi.json, https://docs.stripe.com/swagger.json, https://docs.stripe.com/api/openapi.json, https://docs.stripe.com/.well-known/openapi.json)

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 7 (quality) × 0.6 (partial) = 4.2 of 10 max

  • [claimed-docs] https://docs.stripe.com/radar/testing.md4000000000004954 | Results in a charge with a risk level of `highest`
  • [probe] https://docs.stripe.com/radar.mdPROBE docs-md: HTTP 200 at https://docs.stripe.com/radar.md # Radar Use Stripe Radar to protect your business against fraud. ## Get started Use Radar to evaluate transactions, a

Rely on versioned APIs with a documented deprecation policyweight 2

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

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

API quality = 4.2 ÷ 70 × 100 = 6.0

Openness3.4/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) × 4 (quality) × 0.3 (disputed) = 2.4 of 20 max

  • [claimed-docs] https://docs.stripe.com/radar/rules/reference.mdyou can also set up rules that are unique to your business using the supported attributes
  • [claimed-docs] https://docs.stripe.com/radar/risk-settings.mdRisk settings let you balance authorization and fraud on your account by using risk controls.
  • [claimed-docs] https://docs.stripe.com/api/radar/reviews.mdPOST /v1/reviews/:id/approve
  • [claimed-docs] https://docs.stripe.com/api/radar/early_fraud_warnings.mdAn early fraud warning indicates that the card issuer has notified us that a charge may be fraudulent.
  • [claimed-docs] https://docs.stripe.com/api/radar/value_lists.mdValue lists allow you to group values together which can then be referenced in rules.
  • [community] https://hn.algolia.com/api/v1/items/13939674We are seeing an opposite side: customers using Stripe that had very low fraud rates previously are now getting more false positives causing grief because their customers' cards are getting declined. The lack of easy programmatic control is an issue for us.
  • [community] https://news.ycombinator.com/item?id=32320364Allow Rules, if not implemented properly, could open a vector for fraud. That's why it's not enabled for newer businesses on Stripe—we ask businesses to contact support to turn it on manually.

Export all of my data in open formats and leaveweight 3

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

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

Read the product's source under an open licenseweight 2

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

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

Self-host the core productweight 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

Openness = 2.4 ÷ 70 × 100 = 3.4

Built-in AI8.0/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

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

Set up automations that run autonomously in the backgroundweight 2

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

  • [claimed-docs] https://docs.stripe.com/radar/rules.mdRequest 3D Secure (3DS) for all payments that support it and are made by a new customer
  • [claimed-docs] https://docs.stripe.com/radar/rules.mdReview and automatically pause payouts on accounts that have a high dispute rate
  • [claimed-docs] https://docs.stripe.com/radar/rules/reference.mdyou can also set up rules that are unique to your business using the supported attributes
  • [claimed-docs] https://docs.stripe.com/radar/risk-settings.mdRisk settings let you balance authorization and fraud on your account by using risk controls.
  • [claimed-docs] https://docs.stripe.com/radar/lists.mdCustomer IDs for trusted customers: Use this list to automatically allow payments by these customers.
  • [community] https://hn.algolia.com/api/v1/items/13939674We are seeing an opposite side: customers using Stripe that had very low fraud rates previously are now getting more false positives causing grief because their customers' cards are getting declined. The lack of easy programmatic control is an issue for us.
  • [community] https://hn.algolia.com/api/v1/items/13939674We got a couple cases of false positives ourselves, and the Stripe UI wasn't very clear that we couldn't override the 'block' (the button was there but didn't do anything). A quick email to Stripe support got the transactions whitelisted within hours.

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

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

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

Operate the product with natural-language commandsweight 2

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

  • [claimed-docs] https://docs.stripe.com/radar/rules/reference.mdyou can also set up rules that are unique to your business using the supported attributes
  • [claimed-docs] https://docs.stripe.com/api/radar/value_lists.mdValue lists allow you to group values together which can then be referenced in rules.
  • [probe] https://docs.stripe.com/mcpofficial MCP server documented at https://docs.stripe.com/mcp

Built-in AI = 7.2 ÷ 90 × 100 = 8.0

Automation28.0/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://docs.stripe.com/radar/rules.mdRequest 3D Secure (3DS) for all payments that support it and are made by a new customer
  • [claimed-docs] https://docs.stripe.com/radar/rules/reference.mdyou can also set up rules that are unique to your business using the supported attributes
  • [claimed-docs] https://docs.stripe.com/api/radar/value_lists.mdValue lists allow you to group values together which can then be referenced in rules.
  • [claimed-docs] https://docs.stripe.com/radar/transaction-reviews.mdYou can create a targeted list of payments to review with criteria that you specify, and review them in the Dashboard.
  • [claimed-docs] https://docs.stripe.com/radar/lists.mdCustomer IDs for trusted customers: Use this list to automatically allow payments by these customers.
  • [claimed-docs] https://docs.stripe.com/api/radar/reviews.mdPOST /v1/reviews/:id/approve

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 6 (quality) × 0.6 (partial) = 10.8 of 30 max

  • [claimed-docs] https://docs.stripe.com/radar/rules.mdRequest 3D Secure (3DS) for all payments that support it and are made by a new customer
  • [claimed-docs] https://docs.stripe.com/radar/rules.mdReview and automatically pause payouts on accounts that have a high dispute rate
  • [claimed-docs] https://docs.stripe.com/radar/rules/reference.mdyou can also set up rules that are unique to your business using the supported attributes
  • [claimed-docs] https://docs.stripe.com/api/radar/value_lists.mdValue lists allow you to group values together which can then be referenced in rules.
  • [claimed-docs] https://docs.stripe.com/radar/risk-settings.mdRisk settings let you balance authorization and fraud on your account by using risk controls.
  • [claimed-docs] https://docs.stripe.com/radar/lists.mdCustomer IDs for trusted customers: Use this list to automatically allow payments by these customers.
  • [community] https://hn.algolia.com/api/v1/items/13939674We are seeing an opposite side: customers using Stripe that had very low fraud rates previously are now getting more false positives causing grief because their customers' cards are getting declined. The lack of easy programmatic control is an issue for us.
  • [community] https://news.ycombinator.com/item?id=32320364Allow Rules, if not implemented properly, could open a vector for fraud. That's why it's not enabled for newer businesses on Stripe—we ask businesses to contact support to turn it on manually.

Schedule recurring jobs or workflowsweight 2

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

Version, review, and roll back my automationsweight 1

1 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 10 max

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

Automation = 16.8 ÷ 60 × 100 = 28.0