How ChatGPT’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 Score38/100
Agent-ready 48.8 × 0.30 = 14.64
API quality 3.4 × 0.20 = 0.68
Openness 7.2 × 0.20 = 1.44
Built-in AI 85.6 × 0.15 = 12.84
Automation 58.3 × 0.15 = 8.74
(14.64 + 0.68 + 1.44 + 12.84 + 8.74) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 38.34 ÷ 1.00 = 38.3
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-ready48.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) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [probe] https://learn.chatgpt.com/llms.txt“PROBE llms.txt: HTTP 200 at https://learn.chatgpt.com/llms.txt # Codex > Build with the Codex CLI, IDE extension, and cloud automation to speed up development. Use this as a compact”
- [claimed-docs] https://learn.chatgpt.com/docs/browser.md“Browser lets ChatGPT open websites, gather current information, and take action while you stay in control.”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Use it to give ChatGPT or Codex access to third-party documentation, or to let it interact with developer tools like your browser or Figma.”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Model Context Protocol (MCP) connects models to tools and context. Use it to give ChatGPT or Codex access to third-party documentation”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“to add Context7 (a free MCP server for developer documentation)”
Run the product headlessly / in CI for automationweight 2
2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max
- [claimed-docs] https://chatgpt.com“Use the Codex SDK to automate coding tasks, including jobs in CI.”
- [claimed-docs] https://chatgpt.com“Inspect code, make changes, run commands, and automate repeatable work without leaving your terminal.”
- [claimed-docs] https://chatgpt.com“Use its command-line interface (CLI) to scan repositories you own or have permission to assess, review findings over time”
- [claimed-docs] https://chatgpt.com“Use `npx @openai/codex-security bulk-scan` to review repositories in one campaign.”
- [claimed-docs] https://chatgpt.com“Use `/fast on`, `/fast off`, or `/fast status` in the CLI to change or inspect the current setting.”
- [claimed-docs] https://learn.chatgpt.com/docs/web-search.md“In the CLI, pass `--search` to fetch live results for one run”
Plug MCP servers into this product so it can use their toolsweight 3
3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“let it interact with developer tools like your browser or Figma”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Once you configure your MCP servers, you can switch among those clients without redoing setup.”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Use it to give ChatGPT or Codex access to third-party documentation, or to let it interact with developer tools like your browser or Figma.”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“to add Context7 (a free MCP server for developer documentation)”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“you can also scope MCP servers to a project with `.codex/config.toml` (trusted projects only)”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Codex stores MCP configuration in `config.toml`”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Model Context Protocol (MCP) connects models to tools and context. Use it to give ChatGPT or Codex access to third-party documentation”
Connect an agent via an official MCP serverweight 3
3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“let it interact with developer tools like your browser or Figma”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Once you configure your MCP servers, you can switch among those clients without redoing setup.”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Use it to give ChatGPT or Codex access to third-party documentation, or to let it interact with developer tools like your browser or Figma.”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“to add Context7 (a free MCP server for developer documentation)”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“you can also scope MCP servers to a project with `.codex/config.toml` (trusted projects only)”
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“Codex stores MCP configuration in `config.toml`”
Use an official CLIweight 2
2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max
- [claimed-docs] https://learn.chatgpt.com/docs/customization/memories.md“In Codex CLI, use /memories in an interactive session to control whether the current chat can use existing local memories or become an input for future memories.”
- [claimed-docs] https://learn.chatgpt.com/docs/projects.md“Run codex from the directory you want Codex to work in, or pass --cd (-C) to set it explicitly.”
- [claimed-docs] https://learn.chatgpt.com/docs/web-search.md“In the CLI, pass `--search` to fetch live results for one run”
- [claimed-docs] https://learn.chatgpt.com/docs/web-search.md“pass `--search` to fetch live results for one run”
- [claimed-docs] https://chatgpt.com“Use the Codex SDK to automate coding tasks, including jobs in CI.”
- [claimed-docs] https://chatgpt.com“Inspect code, make changes, run commands, and automate repeatable work without leaving your terminal.”
- [claimed-docs] https://chatgpt.com“Codex reads AGENTS.md files before doing any work.”
- [claimed-docs] https://chatgpt.com“Use rules to control which commands Codex can run outside the sandbox.”
- [claimed-docs] https://chatgpt.com“Use `/fast on`, `/fast off`, or `/fast status` in the CLI to change or inspect the current setting.”
- [claimed-docs] https://chatgpt.com“Use its command-line interface (CLI) to scan repositories you own or have permission to assess, review findings over time”
- [claimed-docs] https://chatgpt.com“Use `npx @openai/codex-security bulk-scan` to review repositories in one campaign.”
- [probe] https://learn.chatgpt.com/llms.txt“PROBE llms.txt: HTTP 200 at https://learn.chatgpt.com/llms.txt # Codex > Build with the Codex CLI, IDE extension, and cloud automation to speed up development. Use this as a compact”
Drive the product through a documented public APIweight 3
3 (weight) × 4 (quality) × 0.6 (partial) = 7.2 of 30 max
- [claimed-docs] https://chatgpt.com“Use the Codex SDK to automate coding tasks, including jobs in CI.”
- [claimed-docs] https://chatgpt.com“Inspect code, make changes, run commands, and automate repeatable work without leaving your terminal.”
- [claimed-docs] https://chatgpt.com“Use its command-line interface (CLI) to scan repositories you own or have permission to assess, review findings over time”
- [claimed-docs] https://chatgpt.com“Use `npx @openai/codex-security bulk-scan` to review repositories in one campaign.”
- [probe] https://learn.chatgpt.com/openapi.json“PROBE openapi: all candidate paths 404 (https://learn.chatgpt.com/openapi.json, https://learn.chatgpt.com/swagger.json, https://learn.chatgpt.com/api/openapi.json, https://learn.chatgpt.com/.well-known/openapi.json)”
Issue scoped/least-privilege API credentials for an agentweight 2
2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max
- [claimed-docs] https://learn.chatgpt.com/docs/extend/mcp.md“you can also scope MCP servers to a project with `.codex/config.toml` (trusted projects only)”
- [claimed-docs] https://chatgpt.com“Use rules to control which commands Codex can run outside the sandbox.”
- [claimed-docs] https://learn.chatgpt.com/docs/use-chatgpt.md“Your workspace administrator can control access to ChatGPT Work, plugins, browser use, and network access.”
- [claimed-docs] https://learn.chatgpt.com/docs/enterprise/gpts-and-sharing.md“Allow GPT builders to use approved workspace apps or configure actions that interact with permitted third-party APIs.”
- [claimed-docs] https://learn.chatgpt.com/docs/enterprise/gpts-and-sharing.md“configure actions that interact with permitted third-party APIs”
Build against official SDKsweight 2
2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max
- [claimed-docs] https://chatgpt.com“Use the Codex SDK to automate coding tasks, including jobs in CI.”
- [probe] https://learn.chatgpt.com/openapi.json“PROBE openapi: all candidate paths 404 (https://learn.chatgpt.com/openapi.json, https://learn.chatgpt.com/swagger.json, https://learn.chatgpt.com/api/openapi.json, https://learn.chatgpt.com/.well-known/openapi.json)”
Subscribe to events via webhooksweight 2
2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Scheduled tasks can now start when a supported event occurs in Gmail, Slack, or GitHub.”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Use an event trigger to triage new email, summarize channel activity, or act on pull request feedback without polling on a fixed cadence.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“scheduled tasks can run when a supported Gmail, Slack, or GitHub event occurs”
Agent-ready = 102.4 ÷ 210 × 100 = 48.8
API quality3.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
- [probe] https://learn.chatgpt.com/openapi.json“PROBE openapi: all candidate paths 404 (https://learn.chatgpt.com/openapi.json, https://learn.chatgpt.com/swagger.json, https://learn.chatgpt.com/api/openapi.json, https://learn.chatgpt.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://learn.chatgpt.com/openapi.json“PROBE openapi: all candidate paths 404 (https://learn.chatgpt.com/openapi.json, https://learn.chatgpt.com/swagger.json, https://learn.chatgpt.com/api/openapi.json, https://learn.chatgpt.com/.well-known/openapi.json)”
Test against a sandbox environment without touching production dataweight 1
1 (weight) × 4 (quality) × 0.6 (partial) = 2.4 of 10 max
- [claimed-docs] https://chatgpt.com“Use rules to control which commands Codex can run outside the sandbox.”
- [claimed-docs] https://chatgpt.com“Use its command-line interface (CLI) to scan repositories you own or have permission to assess, review findings over time”
- [claimed-docs] https://chatgpt.com“Use `npx @openai/codex-security bulk-scan` to review repositories in one campaign.”
Rely on versioned APIs with a documented deprecation policyweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [probe] https://learn.chatgpt.com/openapi.json“PROBE openapi: all candidate paths 404 (https://learn.chatgpt.com/openapi.json, https://learn.chatgpt.com/swagger.json, https://learn.chatgpt.com/api/openapi.json, https://learn.chatgpt.com/.well-known/openapi.json)”
API quality = 2.4 ÷ 70 × 100 = 3.4
Openness7.2/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) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max
- [claimed-docs] https://chatgpt.com“Use the Codex SDK to automate coding tasks, including jobs in CI.”
- [claimed-docs] https://chatgpt.com“Inspect code, make changes, run commands, and automate repeatable work without leaving your terminal.”
- [claimed-docs] https://chatgpt.com“Use its command-line interface (CLI) to scan repositories you own or have permission to assess, review findings over time”
- [probe] https://learn.chatgpt.com/openapi.json“PROBE openapi: all candidate paths 404 (https://learn.chatgpt.com/openapi.json, https://learn.chatgpt.com/swagger.json, https://learn.chatgpt.com/api/openapi.json, https://learn.chatgpt.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
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
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 = 3.6 ÷ 50 × 100 = 7.2
Built-in AI85.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) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://learn.chatgpt.com/docs/use-chatgpt.md“Search the web, browse websites, compare sources, read files, analyze data, and summarize findings.”
- [claimed-docs] https://learn.chatgpt.com/docs/use-chatgpt.md“Create a deck, analyze files, draft a report, build a project plan”
- [claimed-docs] https://learn.chatgpt.com/docs/projects.md“Use a project to organize related chats and give ChatGPT the context it needs.”
- [claimed-docs] https://learn.chatgpt.com/docs/projects.md“A local project gives chats access to one or more folders on your computer, such as a collection of source files or a codebase.”
- [claimed-docs] https://learn.chatgpt.com/docs/use-chatgpt.md“Plugins can connect ChatGPT to the tools and information you use for work, such as Google Drive, SharePoint, Salesforce, or Gong.”
- [claimed-docs] https://learn.chatgpt.com/docs/web.md“Turn research and analysis into documents, presentations, spreadsheets, and other finished work.”
Set up automations that run autonomously in the backgroundweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background.”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Scheduled tasks can now start when a supported event occurs in Gmail, Slack, or GitHub.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background... Review active, paused, and completed tasks and recent runs in Scheduled.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“scheduled tasks can run when a supported Gmail, Slack, or GitHub event occurs”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Use an event trigger to triage new email, summarize channel activity, or act on pull request feedback without polling on a fixed cadence.”
Delegate tasks to a built-in AI assistant inside the productweight 3
3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background.”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Scheduled tasks can now start when a supported event occurs in Gmail, Slack, or GitHub.”
- [claimed-docs] https://learn.chatgpt.com/docs/use-chatgpt.md“Turn on Work in the switcher when you want ChatGPT to carry a larger task through to a reviewable result.”
- [claimed-docs] https://learn.chatgpt.com/docs/app.md“Run projects in parallel, work with files, use your computer, and keep long-running work moving from one desktop workspace.”
- [claimed-docs] https://learn.chatgpt.com/docs/enterprise/chatgpt-work-overview.md“Unlike Work on the Web, local Work can operate on resources that remain on your computer without requiring you to upload files to a cloud conversation.”
- [claimed-docs] https://chatgpt.com“In ChatGPT Work, ask ChatGPT to delegate independent work to subagents.”
- [claimed-docs] https://learn.chatgpt.com/docs/features/voice.md“ChatGPT Voice can start separate tasks for longer work, check existing tasks, and send follow-up instructions.”
- [claimed-docs] https://learn.chatgpt.com/docs/browser.md“Browser lets ChatGPT open websites, gather current information, and take action while you stay in control.”
- [claimed-docs] https://learn.chatgpt.com/docs/computer-use.md“With Computer Use, ChatGPT can see and operate graphical user interfaces on macOS or Windows.”
- [claimed-docs] https://learn.chatgpt.com/docs/long-running-work.md“enter `/goal` to start Goal mode”
Operate the product with natural-language commandsweight 2
2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max
- [claimed-docs] https://learn.chatgpt.com/docs/browser.md“Browser lets ChatGPT open websites, gather current information, and take action while you stay in control.”
- [claimed-docs] https://learn.chatgpt.com/docs/computer-use.md“With Computer Use, ChatGPT can see and operate graphical user interfaces on macOS or Windows.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background.”
- [claimed-docs] https://learn.chatgpt.com/docs/features/voice.md“ChatGPT Voice lets you talk through ideas and coordinate tasks in Chat, Work, and Codex in the ChatGPT desktop app. Start work, check progress, or change direction without switching back to typing.”
- [claimed-docs] https://learn.chatgpt.com/docs/long-running-work.md“In the ChatGPT desktop app, enter `/goal` to start Goal mode.”
- [claimed-docs] https://chatgpt.com“In ChatGPT Work, ask ChatGPT to delegate independent work to subagents.”
- [community] https://news.ycombinator.com/item?id=33847479“I am beyond astounded. I was able to run a Docker image, utilize the fs inside of the container, and exit the container. Docker system commands work as expected... Wild. This is unbelievable.”
- [community] https://news.ycombinator.com/item?id=35277677“This is huge, essentially adding what people have been building with LangChain Tools into the core product. The browser and file-upload/interpretation plugins are great, but I think the real game changer is retrieval over arbitrary documents/filesystem.”
Built-in AI = 77.0 ÷ 90 × 100 = 85.6
Automation58.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) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://chatgpt.com“Use `npx @openai/codex-security bulk-scan` to review repositories in one campaign.”
- [claimed-docs] https://chatgpt.com“Use its command-line interface (CLI) to scan repositories you own or have permission to assess, review findings over time”
- [claimed-docs] https://learn.chatgpt.com/docs/app.md“Run projects in parallel, work with files, use your computer, and keep long-running work moving from one desktop workspace.”
- [claimed-docs] https://chatgpt.com“In ChatGPT Work, ask ChatGPT to delegate independent work to subagents.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background... Review active, paused, and completed tasks and recent runs in Scheduled.”
Define rules that trigger actions automatically on eventsweight 3
3 (weight) × 7 (quality) × 1.0 (full) = 21.0 of 30 max
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background.”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Scheduled tasks can now start when a supported event occurs in Gmail, Slack, or GitHub.”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Use an event trigger to triage new email, summarize channel activity, or act on pull request feedback without polling on a fixed cadence.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background... Review active, paused, and completed tasks and recent runs in Scheduled.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“scheduled tasks can run when a supported Gmail, Slack, or GitHub event occurs”
Schedule recurring jobs or workflowsweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background... Review active, paused, and completed tasks and recent runs in Scheduled.”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Scheduled tasks can now start when a supported event occurs in Gmail, Slack, or GitHub.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“scheduled tasks can run when a supported Gmail, Slack, or GitHub event occurs”
- [claimed-docs] https://learn.chatgpt.com/docs/whats-new.md“Use an event trigger to triage new email, summarize channel activity, or act on pull request feedback without polling on a fixed cadence.”
Version, review, and roll back my automationsweight 1
1 (weight) × 4 (quality) × 0.6 (partial) = 2.4 of 10 max
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“Schedule recurring tasks to run in the background... Review active, paused, and completed tasks and recent runs in Scheduled.”
- [claimed-docs] https://learn.chatgpt.com/docs/automations.md“scheduled tasks can run when a supported Gmail, Slack, or GitHub event occurs”
Automation = 46.6 ÷ 80 × 100 = 58.3