How Canny’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 36.6 × 0.30 = 10.98
API quality 0.0 × 0.20 = 0.00
Openness 4.8 × 0.20 = 0.96
Built-in AI 39.6 × 0.15 = 5.94
Automation 0.0 × 0.15 = 0.00
(10.98 + 0.00 + 0.96 + 5.94 + 0.00) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 17.88 ÷ 1.00 = 17.9
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-ready36.6/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://developers.canny.io/llms.txt“PROBE llms.txt: HTTP 200 at https://developers.canny.io/llms.txt # Canny Developer Documentation > Developer resources for integrating with Canny, including SDK installation, widget cu”
- [claimed-docs] https://developers.canny.io“Install Docs | Canny”
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
- [probe] https://canny.io/features/mcp“official MCP server documented at https://canny.io/features/mcp”
Run the product headlessly / in CI for automationweight 2
2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
- [claimed-docs] https://canny.io/features/mcp“Add Canny's MCP server to ChatGPT, Claude, or Cursor with a secure sign-in. No API keys, no engineering.”
- [probe] https://developers.canny.io/openapi.json“PROBE openapi: all candidate paths 404 (https://developers.canny.io/openapi.json, https://developers.canny.io/swagger.json, https://developers.canny.io/api/openapi.json, https://developers.canny.io/.well-known/openapi.json)”
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
- [claimed-docs] https://canny.io/features/mcp“Add Canny's MCP server to ChatGPT, Claude, or Cursor with a secure sign-in. No API keys, no engineering.”
- [claimed-docs] https://canny.io/features/mcp“Connect Canny to ChatGPT, Claude, and Cursor. Ask questions about customer feedback, take action on it, and ground your AI workflows in real customer data.”
- [claimed-docs] https://canny.io/features/mcp“Canny MCP Server: Customer Feedback in Your AI Tools”
- [probe] https://canny.io/features/mcp“official MCP server documented at https://canny.io/features/mcp”
Connect an agent via an official MCP serverweight 3
3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://canny.io/features/mcp“Add Canny's MCP server to ChatGPT, Claude, or Cursor with a secure sign-in. No API keys, no engineering.”
- [claimed-docs] https://canny.io/features/mcp“Ask your LLM what customers asked for and understand the context behind each request. Dig into top themes, ARR impact across ideas, and query your team's roadmap.”
- [claimed-docs] https://canny.io/features/mcp“Move ideas through your workflow without leaving your LLM. Update statuses, link deals, organize requests, and reply to customers.”
- [claimed-docs] https://canny.io/features/mcp“Connect Canny to ChatGPT, Claude, and Cursor. Ask questions about customer feedback, take action on it, and ground your AI workflows in real customer data.”
- [claimed-docs] https://canny.io/features/mcp“Use Canny as the data layer for your AI workflows. Draft PRDs from real requests and build the features with Claude, generate reports for leadership, or run agents that act on feedback.”
- [probe] https://canny.io/features/mcp“official MCP server documented at https://canny.io/features/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) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
- [claimed-docs] https://developers.canny.io“Install Docs | Canny”
- [probe] https://developers.canny.io/llms.txt“PROBE llms.txt: HTTP 200 at https://developers.canny.io/llms.txt # Canny Developer Documentation > Developer resources for integrating with Canny, including SDK installation, widget cu”
- [claimed-docs] https://canny.io/features/mcp“Add Canny's MCP server to ChatGPT, Claude, or Cursor with a secure sign-in. No API keys, no engineering.”
- [claimed-docs] https://canny.io/features/mcp“Connect Canny to ChatGPT, Claude, and Cursor. Ask questions about customer feedback, take action on it, and ground your AI workflows in real customer data.”
- [probe] https://canny.io/features/mcp“official MCP server documented at https://canny.io/features/mcp”
- [probe] https://developers.canny.io/openapi.json“PROBE openapi: all candidate paths 404 (https://developers.canny.io/openapi.json, https://developers.canny.io/swagger.json, https://developers.canny.io/api/openapi.json, https://developers.canny.io/.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://canny.io/features/mcp“Add Canny's MCP server to ChatGPT, Claude, or Cursor with a secure sign-in. No API keys, no engineering.”
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
Build against official SDKsweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://developers.canny.io“Install our JavaScript SDK to identify your users. This way, when they leave feedback on Canny, it'll be tied to their existing user account in your application.”
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
- [probe] https://developers.canny.io/llms.txt“PROBE llms.txt: HTTP 200 at https://developers.canny.io/llms.txt # Canny Developer Documentation > Developer resources for integrating with Canny, including SDK installation, widget cu”
- [probe] https://developers.canny.io/openapi.json“PROBE openapi: all candidate paths 404 (https://developers.canny.io/openapi.json, https://developers.canny.io/swagger.json, https://developers.canny.io/api/openapi.json, https://developers.canny.io/.well-known/openapi.json)”
- [claimed-docs] https://developers.canny.io“Install Docs | Canny”
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 = 76.8 ÷ 210 × 100 = 36.6
API quality0.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
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
- [probe] https://developers.canny.io/openapi.json“PROBE openapi: all candidate paths 404 (https://developers.canny.io/openapi.json, https://developers.canny.io/swagger.json, https://developers.canny.io/api/openapi.json, https://developers.canny.io/.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
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
- [probe] https://developers.canny.io/openapi.json“PROBE openapi: all candidate paths 404 (https://developers.canny.io/openapi.json, https://developers.canny.io/swagger.json, https://developers.canny.io/api/openapi.json, https://developers.canny.io/.well-known/openapi.json)”
Test against a sandbox environment without touching production dataweight 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
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://developers.canny.io/api-reference“Canny API Reference”
- [probe] https://developers.canny.io/openapi.json“PROBE openapi: all candidate paths 404 (https://developers.canny.io/openapi.json, https://developers.canny.io/swagger.json, https://developers.canny.io/api/openapi.json, https://developers.canny.io/.well-known/openapi.json)”
API quality = 0.0 ÷ 70 × 100 = 0.0
Openness4.8/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.6 (partial) = 4.8 of 20 max
- [claimed-docs] https://developers.canny.io/api-reference“Canny API Reference”
- [claimed-docs] https://canny.io/features/mcp“Connect Canny to ChatGPT, Claude, and Cursor. Ask questions about customer feedback, take action on it, and ground your AI workflows in real customer data.”
- [claimed-docs] https://canny.io/features/mcp“Move ideas through your workflow without leaving your LLM. Update statuses, link deals, organize requests, and reply to customers.”
- [probe] https://developers.canny.io/openapi.json“PROBE openapi: all candidate paths 404 (https://developers.canny.io/openapi.json, https://developers.canny.io/swagger.json, https://developers.canny.io/api/openapi.json, https://developers.canny.io/.well-known/openapi.json)”
- [probe] https://canny.io/features/mcp“official MCP server documented at https://canny.io/features/mcp”
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
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
Openness = 4.8 ÷ 100 × 100 = 4.8
Built-in AI39.6/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) × 7 (quality) × 1.0 (full) = 14.0 of 20 max
- [claimed-docs] https://canny.io/features/mcp“Ask your LLM what customers asked for and understand the context behind each request. Dig into top themes, ARR impact across ideas, and query your team's roadmap.”
- [claimed-docs] https://canny.io/features/mcp“Move ideas through your workflow without leaving your LLM. Update statuses, link deals, organize requests, and reply to customers.”
- [claimed-docs] https://canny.io/features/mcp“Connect Canny to ChatGPT, Claude, and Cursor. Ask questions about customer feedback, take action on it, and ground your AI workflows in real customer data.”
- [claimed-docs] https://canny.io/features/mcp“Use Canny as the data layer for your AI workflows. Draft PRDs from real requests and build the features with Claude, generate reports for leadership, or run agents that act on feedback.”
- [probe] https://canny.io/features/mcp“official MCP server documented at https://canny.io/features/mcp”
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://canny.io/features/mcp“Send new conversations to Autopilot to capture feedback you haven't tracked yet.”
- [claimed-docs] https://canny.io“Automatically capture feedback from Gong, Intercom, Slack, and dozens of other sources, or directly from customers on your Portal.”
- [claimed-docs] https://canny.io/integrations“Autopilot captures feedback from support, sales, and review platforms automatically. Native integrations keep the rest of your stack in sync.”
- [claimed-docs] https://canny.io/integrations“Autopilot pulls feature requests out of your Fathom call transcripts automatically.”
- [claimed-docs] https://canny.io/integrations“Capture product feedback from your Fireflies sales call transcripts.”
- [claimed-docs] https://canny.io/integrations“Send feedback to Jira, link it to existing issues, and sync statuses. Only for Jira Cloud.”
- [claimed-docs] https://canny.io/integrations“Send feedback to Linear, link it to existing issues, and sync statuses.”
- [claimed-docs] https://canny.io/integrations“Send feedback to GitHub, link it to existing issues, and sync statuses.”
Delegate tasks to a built-in AI assistant inside the productweight 3
3 (weight) × 4 (quality) × 0.6 (partial) = 7.2 of 30 max
- [claimed-docs] https://canny.io/features/mcp“Send new conversations to Autopilot to capture feedback you haven't tracked yet.”
- [claimed-docs] https://canny.io“Automatically capture feedback from Gong, Intercom, Slack, and dozens of other sources, or directly from customers on your Portal.”
- [claimed-docs] https://canny.io/integrations“Autopilot captures feedback from support, sales, and review platforms automatically. Native integrations keep the rest of your stack in sync.”
- [claimed-docs] https://canny.io/integrations“Autopilot pulls feature requests out of your Fathom call transcripts automatically.”
- [claimed-docs] https://canny.io/integrations“Capture product feedback from your Fireflies sales call transcripts.”
Operate the product with natural-language commandsweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://canny.io/features/mcp“Add Canny's MCP server to ChatGPT, Claude, or Cursor with a secure sign-in. No API keys, no engineering.”
- [claimed-docs] https://canny.io/features/mcp“Ask your LLM what customers asked for and understand the context behind each request. Dig into top themes, ARR impact across ideas, and query your team's roadmap.”
- [claimed-docs] https://canny.io/features/mcp“Move ideas through your workflow without leaving your LLM. Update statuses, link deals, organize requests, and reply to customers.”
- [claimed-docs] https://canny.io/features/mcp“Connect Canny to ChatGPT, Claude, and Cursor. Ask questions about customer feedback, take action on it, and ground your AI workflows in real customer data.”
- [claimed-docs] https://canny.io/features/mcp“Use Canny as the data layer for your AI workflows. Draft PRDs from real requests and build the features with Claude, generate reports for leadership, or run agents that act on feedback.”
- [probe] https://canny.io/features/mcp“official MCP server documented at https://canny.io/features/mcp”
Built-in AI = 35.6 ÷ 90 × 100 = 39.6
Automation0.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) × 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) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
- [claimed-docs] https://canny.io“Automatically capture feedback from Gong, Intercom, Slack, and dozens of other sources, or directly from customers on your Portal.”
- [claimed-docs] https://canny.io/integrations“Autopilot captures feedback from support, sales, and review platforms automatically. Native integrations keep the rest of your stack in sync.”
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 = 0.0 ÷ 70 × 100 = 0.0