Skip to content

How Plaid’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 Score18/100

Agent-ready 33.8 × 0.30 = 10.14

API quality 11.4 × 0.20 = 2.28

Openness 8.6 × 0.20 = 1.72

Built-in AI 14.0 × 0.15 = 2.10

Automation 10.3 × 0.15 = 1.55

(10.14 + 2.28 + 1.72 + 2.10 + 1.55) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 17.79 ÷ 1.00 = 17.8

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-ready33.8/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) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [probe] https://plaid.com/llms.txtPROBE llms.txt: HTTP 200 at https://plaid.com/llms.txt # Plaid > Plaid helps all companies build fintech solutions by making it easy, safe and reliable for people to connect
  • [probe] https://plaid.com/docs/.mdPROBE docs-md: HTTP 404 at https://plaid.com/docs/.md
  • [probe] https://plaid.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://plaid.com/openapi.json, https://plaid.com/swagger.json, https://plaid.com/api/openapi.json, https://plaid.com/.well-known/openapi.json)

Run the product headlessly / in CI for automationweight 2

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

  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdyou can also create Items in Sandbox via the API, using a special Sandbox-only endpoint, /sandbox/public_token/create. This endpoint allows you to generate a public_token for an arbitrary institution ID, initial products, and test credentials.
  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdThe Plaid Sandbox is a free and fully-featured environment for application development and testing. All Plaid functionality of both the Plaid API and Plaid Link is supported in the Sandbox environment.
  • [github] https://github.com/plaid/plaid-nodetry { await plaidClient.transactionsSync(request); } catch (error) { const err = error.response.data; }
  • [github] https://github.com/plaid/plaid-nodeAll errors can now be caught using try/catch with async/await or through promise chaining.
  • [claimed-docs] https://plaid.com/docs/quickstart/index.html.mdLet's test out running Plaid locally by cloning the Quickstart app. You'll need API keys, which you can receive by signing up in the Dashboard.

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

  • [claimed-docs] https://plaid.com/docs/resources/mcp/index.html.mdThe Dashboard MCP server is a remote MCP server hosted by Plaid. It provides Production diagnostics and analytics tools, including tools for debugging Items, reviewing Link conversion data, and checking usage metrics.
  • [probe] https://plaid.com/docs/resources/mcp/official MCP server documented at https://plaid.com/docs/resources/mcp/

Connect an agent via an official MCP serverweight 3

3 (weight) × 7 (quality) × 0.6 (partial) = 12.6 of 30 max

  • [claimed-docs] https://plaid.com/docs/resources/mcp/index.html.mdThe Dashboard MCP server is a remote MCP server hosted by Plaid. It provides Production diagnostics and analytics tools, including tools for debugging Items, reviewing Link conversion data, and checking usage metrics.
  • [probe] https://plaid.com/docs/resources/mcp/official MCP server documented at https://plaid.com/docs/resources/mcp/

Use an official CLIweight 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

Drive the product through a documented public APIweight 3

3 (weight) × 7 (quality) × 0.6 (partial) = 12.6 of 30 max

  • [claimed-docs] https://plaid.com/docs/auth/index.html.mdAuth allows you to request a user's checking, savings, or cash management account and routing number, making it easy for you to initiate credits or debits via ACH, wire transfer, or equivalent international networks.
  • [claimed-docs] https://plaid.com/docs/balance/index.html.mdBalance is Plaid's product for receiving real-time balance information. This data is commonly used to tell if an account has sufficient funds before using it as a funding source for a payment transaction
  • [claimed-docs] https://plaid.com/docs/identity/index.html.mdPlaid's Identity product helps you verify users' identities by accessing information on file with their financial institution.
  • [claimed-docs] https://plaid.com/docs/transactions/index.html.mdRetrieve up to 24 months of transaction data and stay up-to-date with webhooks
  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdThe Plaid Sandbox is a free and fully-featured environment for application development and testing... you can create an unlimited number of test Items.
  • [claimed-docs] https://plaid.com/docs/api/webhooks/index.html.mdPlaid sends webhooks to programmatically inform you about changes to Plaid Items or the status of asynchronous processes.
  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdyou can also create Items in Sandbox via the API, using a special Sandbox-only endpoint, /sandbox/public_token/create. This endpoint allows you to generate a public_token for an arbitrary institution ID, initial products, and test credentials.
  • [github] https://github.com/plaid/plaid-nodetry { await plaidClient.transactionsSync(request); } catch (error) { const err = error.response.data; }
  • [github] https://github.com/plaid/plaid-nodeAll errors can now be caught using try/catch with async/await or through promise chaining.
  • [probe] https://plaid.com/docs/.mdPROBE docs-md: HTTP 404 at https://plaid.com/docs/.md
  • [probe] https://plaid.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://plaid.com/openapi.json, https://plaid.com/swagger.json, https://plaid.com/api/openapi.json, https://plaid.com/.well-known/openapi.json)

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

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

  • [claimed-docs] https://plaid.com/docs/resources/mcp/index.html.mdThe Dashboard MCP server is a remote MCP server hosted by Plaid. It provides Production diagnostics and analytics tools, including tools for debugging Items, reviewing Link conversion data, and checking usage metrics.
  • [claimed-docs] https://plaid.com/docs/quickstart/index.html.mdLet's test out running Plaid locally by cloning the Quickstart app. You'll need API keys, which you can receive by signing up in the Dashboard.
  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdThe Plaid Sandbox is a free and fully-featured environment for application development and testing... you can create an unlimited number of test Items.

Build against official SDKsweight 2

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

  • [github] https://github.com/plaid/plaid-nodetry { await plaidClient.transactionsSync(request); } catch (error) { const err = error.response.data; }
  • [github] https://github.com/plaid/plaid-nodeAll errors can now be caught using try/catch with async/await or through promise chaining.
  • [claimed-docs] https://plaid.com/docs/quickstart/index.html.mdLet's test out running Plaid locally by cloning the Quickstart app. You'll need API keys, which you can receive by signing up in the Dashboard.

Subscribe to events via webhooksweight 2

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

  • [claimed-docs] https://plaid.com/docs/api/webhooks/index.html.mdPlaid sends webhooks to programmatically inform you about changes to Plaid Items or the status of asynchronous processes.
  • [claimed-docs] https://plaid.com/docs/transactions/index.html.mdRetrieve up to 24 months of transaction data and stay up-to-date with webhooks

Agent-ready = 60.8 ÷ 180 × 100 = 33.8

API quality11.4/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

  • [claimed-docs] https://plaid.com/docs/quickstart/index.html.mdLet's test out running Plaid locally by cloning the Quickstart app. You'll need API keys, which you can receive by signing up in the Dashboard.
  • [probe] https://plaid.com/docs/.mdPROBE docs-md: HTTP 404 at https://plaid.com/docs/.md
  • [probe] https://plaid.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://plaid.com/openapi.json, https://plaid.com/swagger.json, https://plaid.com/api/openapi.json, https://plaid.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://plaid.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://plaid.com/openapi.json, https://plaid.com/swagger.json, https://plaid.com/api/openapi.json, https://plaid.com/.well-known/openapi.json)
  • [probe] https://plaid.com/docs/.mdPROBE docs-md: HTTP 404 at https://plaid.com/docs/.md
  • [probe] https://plaid.com/llms.txtPROBE llms.txt: HTTP 200 at https://plaid.com/llms.txt # Plaid > Plaid helps all companies build fintech solutions by making it easy, safe and reliable for people to connect

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 8 (quality) × 1.0 (full) = 8.0 of 10 max

  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdThe Plaid Sandbox is a free and fully-featured environment for application development and testing... you can create an unlimited number of test Items.
  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdThe Plaid Sandbox is a free and fully-featured environment for application development and testing. All Plaid functionality of both the Plaid API and Plaid Link is supported in the Sandbox environment.
  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdyou can also create Items in Sandbox via the API, using a special Sandbox-only endpoint, /sandbox/public_token/create. This endpoint allows you to generate a public_token for an arbitrary institution ID, initial products, and test credentials.
  • [claimed-docs] https://plaid.com/docs/quickstart/index.html.mdLet's test out running Plaid locally by cloning the Quickstart app. You'll need API keys, which you can receive by signing up in the Dashboard.

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 = 8.0 ÷ 70 × 100 = 11.4

Openness8.6/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://plaid.com/docs/link/index.html.mdYou can customize parts of Link's flow straight from the Dashboard. You can preview your changes in real time and then publish them instantly once you're ready to go live.
  • [claimed-docs] https://plaid.com/docs/sandbox/index.html.mdyou can also create Items in Sandbox via the API, using a special Sandbox-only endpoint, /sandbox/public_token/create. This endpoint allows you to generate a public_token for an arbitrary institution ID, initial products, and test credentials.
  • [claimed-docs] https://plaid.com/docs/quickstart/index.html.mdLet's test out running Plaid locally by cloning the Quickstart app. You'll need API keys, which you can receive by signing up in the Dashboard.
  • [probe] https://plaid.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://plaid.com/openapi.json, https://plaid.com/swagger.json, https://plaid.com/api/openapi.json, https://plaid.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

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 = 6.0 ÷ 70 × 100 = 8.6

Built-in AI14.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

  • [claimed-docs] https://plaid.com/docs/resources/mcp/index.html.mdThe Dashboard MCP server is a remote MCP server hosted by Plaid. It provides Production diagnostics and analytics tools, including tools for debugging Items, reviewing Link conversion data, and checking usage metrics.

Set up automations that run autonomously in the backgroundweight 2

2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max

  • [claimed-docs] https://plaid.com/docs/api/webhooks/index.html.mdPlaid sends webhooks to programmatically inform you about changes to Plaid Items or the status of asynchronous processes.
  • [github] https://github.com/plaid/plaid-nodetry { await plaidClient.transactionsSync(request); } catch (error) { const err = error.response.data; }
  • [claimed-docs] https://plaid.com/docs/resources/mcp/index.html.mdThe Dashboard MCP server is a remote MCP server hosted by Plaid. It provides Production diagnostics and analytics tools, including tools for debugging Items, reviewing Link conversion data, and checking usage metrics.

Delegate tasks to a built-in AI assistant inside the 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

Operate the product with natural-language commandsweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://plaid.com/docs/resources/mcp/index.html.mdThe Dashboard MCP server is a remote MCP server hosted by Plaid. It provides Production diagnostics and analytics tools, including tools for debugging Items, reviewing Link conversion data, and checking usage metrics.
  • [probe] https://plaid.com/docs/resources/mcp/official MCP server documented at https://plaid.com/docs/resources/mcp/

Built-in AI = 8.4 ÷ 60 × 100 = 14.0

Automation10.3/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) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

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

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 4 (quality) × 0.6 (partial) = 7.2 of 30 max

  • [claimed-docs] https://plaid.com/docs/api/webhooks/index.html.mdPlaid sends webhooks to programmatically inform you about changes to Plaid Items or the status of asynchronous processes.
  • [claimed-docs] https://plaid.com/docs/transactions/index.html.mdRetrieve up to 24 months of transaction data and stay up-to-date with webhooks
  • [github] https://github.com/plaid/plaid-nodetry { await plaidClient.transactionsSync(request); } catch (error) { const err = error.response.data; }

Schedule recurring jobs or workflowsweight 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

Version, review, and roll back my automationsweight 1

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

Automation = 7.2 ÷ 70 × 100 = 10.3