How Reducto’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 Score39/100
Agent-ready 69.0 × 0.30 = 20.70
API quality 34.3 × 0.20 = 6.86
Openness 26.4 × 0.20 = 5.28
Built-in AI 22.0 × 0.15 = 3.30
Automation 20.6 × 0.15 = 3.09
(20.70 + 6.86 + 5.28 + 3.30 + 3.09) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 39.23 ÷ 1.00 = 39.2
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-ready69.0/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.reducto.ai/llms.txt“PROBE llms.txt: HTTP 200 at https://docs.reducto.ai/llms.txt # Reducto - [Overview](https://docs.reducto.ai/overview.md): The agentic document platform for leading AI teams - [API”
- [claimed-docs] https://docs.reducto.ai/parse/overview.md“Parse is Reducto's foundational endpoint. It converts documents into structured JSON with text, tables, figures, layout, and formatting”
- [claimed-docs] https://docs.reducto.ai/mcp-server.md“agents in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, or any other Model Context Protocol client can classify, parse, extract, split, and edit documents as part of their reasoning loop, without custom integration code.”
- [probe] https://docs.reducto.ai/mcp-server“official MCP server documented at https://docs.reducto.ai/mcp-server”
Run the product headlessly / in CI for automationweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://docs.reducto.ai/cli“The Reducto CLI gives you direct terminal access to Reducto’s document capabilities: parse, extract, split, classify, and edit.”
- [claimed-docs] https://docs.reducto.ai/cli.md“The Reducto CLI gives you direct terminal access to Reducto's document capabilities: parse, extract, split, classify, and edit.”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` | Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“client.parse.run_job() ... POST /parse_async ... Job ID (returns immediately)”
- [claimed-docs] https://docs.reducto.ai/quickstart“result = client.parse.run(input="https://cdn.reducto.ai/samples/fidelity-example.pdf")”
- [probe] https://docs.reducto.ai/openapi.json“PROBE openapi: HTTP 200 at https://docs.reducto.ai/openapi.json — contains "openapi" key”
- [probe] https://docs.reducto.ai/cli“official CLI documented at https://docs.reducto.ai/cli”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging. Use Svix for production applications.”
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) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://docs.reducto.ai/mcp-server“Once installed, agents in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, or any other Model Context Protocol client can classify, parse, extract, split, and edit documents”
- [claimed-docs] https://docs.reducto.ai/mcp-server“agents in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, or any other Model Context Protocol client can classify, parse, extract, split, and edit documents as part of their reasoning loop”
- [claimed-docs] https://docs.reducto.ai/mcp-server.md“agents in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, or any other Model Context Protocol client can classify, parse, extract, split, and edit documents as part of their reasoning loop, without custom integration code.”
- [probe] https://docs.reducto.ai/mcp-server“official MCP server documented at https://docs.reducto.ai/mcp-server”
Use an official CLIweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://docs.reducto.ai/cli“The Reducto CLI gives you direct terminal access to Reducto’s document capabilities: parse, extract, split, classify, and edit.”
- [claimed-docs] https://docs.reducto.ai/cli.md“The Reducto CLI gives you direct terminal access to Reducto's document capabilities: parse, extract, split, classify, and edit.”
- [probe] https://docs.reducto.ai/cli“official CLI documented at https://docs.reducto.ai/cli”
Drive the product through a documented public APIweight 3
3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max
- [probe] https://docs.reducto.ai/openapi.json“PROBE openapi: HTTP 200 at https://docs.reducto.ai/openapi.json — contains "openapi" key”
- [claimed-docs] https://docs.reducto.ai/quickstart“result = client.parse.run(input="https://cdn.reducto.ai/samples/fidelity-example.pdf")”
- [claimed-docs] https://docs.reducto.ai/configs/parse/chunking-methods“result = client.parse.run( input=upload.file_id, retrieval={ "chunking": { "chunk_mode": "variable", "chunk_size": 1000 } } )”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging.”
- [claimed-docs] https://docs.reducto.ai/cli“The Reducto CLI gives you direct terminal access to Reducto’s document capabilities: parse, extract, split, classify, and edit.”
- [probe] https://docs.reducto.ai/mcp-server“official MCP server documented at https://docs.reducto.ai/mcp-server”
- [claimed-docs] https://docs.reducto.ai“Multi-step workflows that chain classification, parsing, extraction, and editing into single API calls”
Issue scoped/least-privilege API credentials for an agentweight 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
Build against official SDKsweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://docs.reducto.ai/quickstart“result = client.parse.run(input="https://cdn.reducto.ai/samples/fidelity-example.pdf")”
- [claimed-docs] https://docs.reducto.ai/configs/parse/chunking-methods“result = client.parse.run( input=upload.file_id, retrieval={ "chunking": { "chunk_mode": "variable", "chunk_size": 1000 } } )”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` | Calls async endpoint, returns job ID”
- [probe] https://docs.reducto.ai/openapi.json“PROBE openapi: HTTP 200 at https://docs.reducto.ai/openapi.json — contains "openapi" key”
- [probe] https://docs.reducto.ai/cli“official CLI documented at https://docs.reducto.ai/cli”
Subscribe to events via webhooksweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging.”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“In Reducto Studio, go to Webhooks in the sidebar. This opens your Svix dashboard directly.”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging. Use Svix for production applications.”
Agent-ready = 124.2 ÷ 180 × 100 = 69.0
API quality34.3/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) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [claimed-docs] https://docs.reducto.ai/quickstart“result = client.parse.run(input="https://cdn.reducto.ai/samples/fidelity-example.pdf")”
- [claimed-docs] https://docs.reducto.ai/configs/parse/chunking-methods“result = client.parse.run( input=upload.file_id, retrieval={ "chunking": { "chunk_mode": "variable", "chunk_size": 1000 } } )”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` | Calls async endpoint, returns job ID”
- [probe] https://docs.reducto.ai/openapi.json“PROBE openapi: HTTP 200 at https://docs.reducto.ai/openapi.json — contains "openapi" key”
- [probe] https://docs.reducto.ai/llms.txt“PROBE llms.txt: HTTP 200 at https://docs.reducto.ai/llms.txt # Reducto - [Overview](https://docs.reducto.ai/overview.md): The agentic document platform for leading AI teams - [API”
Download a machine-readable API spec (OpenAPI or equivalent)weight 2
2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max
- [probe] https://docs.reducto.ai/openapi.json“PROBE openapi: HTTP 200 at https://docs.reducto.ai/openapi.json — contains "openapi" key”
Test against a sandbox environment without touching production dataweight 1
1 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 10 max
- [claimed-docs] https://docs.reducto.ai/studio-quickstart.md“Build document workflows by configuring classification, parsing, extraction, and editing steps, test on real documents with the citation viewer, then deploy as a Pipeline ID callable from code.”
- [claimed-docs] https://docs.reducto.ai/quickstart“result = client.parse.run(input="https://cdn.reducto.ai/samples/fidelity-example.pdf")”
Rely on versioned APIs with a documented deprecation policyweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [probe] https://docs.reducto.ai/openapi.json“PROBE openapi: HTTP 200 at https://docs.reducto.ai/openapi.json — contains "openapi" key”
API quality = 24.0 ÷ 70 × 100 = 34.3
Openness26.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) × 7 (quality) × 0.6 (partial) = 8.4 of 20 max
- [claimed-docs] https://docs.reducto.ai/studio-quickstart.md“Build document workflows by configuring classification, parsing, extraction, and editing steps, test on real documents with the citation viewer, then deploy as a Pipeline ID callable from code.”
- [claimed-docs] https://docs.reducto.ai/cli“The Reducto CLI gives you direct terminal access to Reducto’s document capabilities: parse, extract, split, classify, and edit.”
- [claimed-docs] https://docs.reducto.ai/mcp-server“Once installed, agents in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, or any other Model Context Protocol client can classify, parse, extract, split, and edit documents”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“In Reducto Studio, go to Webhooks in the sidebar. This opens your Svix dashboard directly.”
- [probe] https://docs.reducto.ai/openapi.json“PROBE openapi: HTTP 200 at https://docs.reducto.ai/openapi.json — contains "openapi" key”
- [probe] https://docs.reducto.ai/cli“official CLI documented at https://docs.reducto.ai/cli”
Export all of my data in open formats and leaveweight 3
3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max
- [claimed-docs] https://docs.reducto.ai/parse/overview“Parse is Reducto’s foundational endpoint. It converts documents into structured JSON with text, tables, figures, layout, and formatting”
- [claimed-docs] https://docs.reducto.ai/extract/overview“Extract pulls specific fields from documents as structured JSON. You define a schema describing the data you need, and Reducto returns values matching that schema”
- [claimed-docs] https://docs.reducto.ai/split“Split identifies which pages contain which sections of a document. You describe sections in natural language, and Reducto returns the page numbers where each section lives.”
- [claimed-docs] https://docs.reducto.ai/onprem/enterprise_deployment_options“All data and storage reside in the customer’s VPC, while ephemeral processing is handled by Reducto’s dedicated GPU infrastructure.”
- [claimed-docs] https://docs.reducto.ai/security/policies“We have a Zero Data Retention policy (ZDR) for users on our “Growth” tier and above, meaning all data submitted via API is set to expire within 24 hours”
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) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max
- [claimed-docs] https://docs.reducto.ai/onprem/enterprise_deployment_options“All data and storage reside in the customer’s VPC, while ephemeral processing is handled by Reducto’s dedicated GPU infrastructure.”
- [claimed-docs] https://docs.reducto.ai/onprem/enterprise_deployment_options“Customers can choose between a dedicated VPC deployment, a hybrid VPC model, and a fully hosted SaaS model, balancing control, cost, and compute performance.”
Openness = 26.4 ÷ 100 × 100 = 26.4
Built-in AI22.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) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` | Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“client.parse.run_job() ... POST /parse_async ... Job ID (returns immediately)”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging.”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“In Reducto Studio, go to Webhooks in the sidebar. This opens your Svix dashboard directly.”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging. Use Svix for production applications.”
- [claimed-docs] https://docs.reducto.ai“Multi-step workflows that chain classification, parsing, extraction, and editing into single API calls”
- [claimed-docs] https://docs.reducto.ai/studio-quickstart.md“Build document workflows by configuring classification, parsing, extraction, and editing steps, test on real documents with the citation viewer, then deploy as a Pipeline ID callable from code.”
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) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://docs.reducto.ai/extract/overview“Extract pulls specific fields from documents as structured JSON. You define a schema describing the data you need, and Reducto returns values matching that schema”
- [claimed-docs] https://docs.reducto.ai/split“Split identifies which pages contain which sections of a document. You describe sections in natural language, and Reducto returns the page numbers where each section lives.”
- [claimed-docs] https://docs.reducto.ai“Route documents by type before processing. Define categories in natural language.”
- [claimed-docs] https://docs.reducto.ai“Fill PDF forms and modify DOCX files programmatically with natural language instructions.”
- [claimed-docs] https://docs.reducto.ai/mcp-server“Once installed, agents in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, or any other Model Context Protocol client can classify, parse, extract, split, and edit documents”
- [claimed-docs] https://docs.reducto.ai/mcp-server“agents in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, or any other Model Context Protocol client can classify, parse, extract, split, and edit documents as part of their reasoning loop”
- [claimed-docs] https://docs.reducto.ai/classify/overview.md“Classify determines what kind of document you are looking at before any downstream processing begins. You specify categories with natural language criteria, and Reducto returns the best match.”
- [probe] https://docs.reducto.ai/mcp-server“official MCP server documented at https://docs.reducto.ai/mcp-server”
Built-in AI = 13.2 ÷ 60 × 100 = 22.0
Automation20.6/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) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://docs.reducto.ai/reference/credit-usage“Parse and Extract jobs submitted through the batch queue receive a 20% usage discount.”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/workflows/async-overview“`run_job()` | Calls async endpoint, returns job ID”
- [claimed-docs] https://docs.reducto.ai/cli“The Reducto CLI gives you direct terminal access to Reducto’s document capabilities: parse, extract, split, classify, and edit.”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging.”
- [community] https://news.ycombinator.com/item?id=47662833“We used Reducto and it did struggle with long documents. As we process financial documents going over 300+ pages using Gemini 3 Flash is producing high accuracy extracts super fast.”
Define rules that trigger actions automatically on eventsweight 3
3 (weight) × 4 (quality) × 0.6 (partial) = 7.2 of 30 max
- [claimed-docs] https://docs.reducto.ai“Route documents by type before processing. Define categories in natural language.”
- [claimed-docs] https://docs.reducto.ai“Multi-step workflows that chain classification, parsing, extraction, and editing into single API calls”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging.”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“Svix webhooks provide cryptographic request signing, automatic retries with exponential backoff, and a delivery dashboard for debugging. Use Svix for production applications.”
- [claimed-docs] https://docs.reducto.ai/studio-quickstart.md“Build document workflows by configuring classification, parsing, extraction, and editing steps, test on real documents with the citation viewer, then deploy as a Pipeline ID callable from code.”
- [claimed-docs] https://docs.reducto.ai/workflows/svix-webhooks“In Reducto Studio, go to Webhooks in the sidebar. This opens your Svix dashboard directly.”
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 = 14.4 ÷ 70 × 100 = 20.6