Skip to content

How Crossplane’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 Score23/100

Agent-ready 22.3 × 0.30 = 6.69

API quality 3.4 × 0.20 = 0.68

Openness 50.0 × 0.20 = 10.00

Built-in AI 10.0 × 0.15 = 1.50

Automation 24.0 × 0.15 = 3.60

(6.69 + 0.68 + 10.00 + 1.50 + 3.60) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 22.47 ÷ 1.00 = 22.5

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

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

Run the product headlessly / in CI for automationweight 2

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

  • [probe] https://docs.crossplane.io/cli/latest/PROBE cli-version (local run, macOS): `crossplane version --client` printed "Client Version: v2.5.0" and exited 0 after `brew install crossplane`; the CLI is keyless, but unlike the other tools probed here every real plan/apply operation requires a running Kubernetes cluster with the Crossplane control plane installed — no local plan/preview loop exists.
  • [probe] https://docs.crossplane.io/cli/latest/official CLI documented at https://docs.crossplane.io/cli/latest/
  • [claimed-docs] https://docs.crossplane.io/cli/latest/testing and rendering standalone Composition Functions without the need to access a Kubernetes cluster running Crossplane
  • [community] https://news.ycombinator.com/item?id=26334268Many folks are using GitOps with Flux/ArgoCD to deploy their k8s apps but they can't use Terraform in the same workflow. How does Crossplane help get to a single GitOps workflow so app teams can self-service the infra from within the app cluster.
  • [community] https://news.ycombinator.com/item?id=26334268Terraform offers small teams a common language for controlling their infrastructure...Crossplane appears to have a clear yaml syntax (easy enough to commit to source control) and runs a control plane for enforcement (easier than setting up Atlantis, I imagine).
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/If your software ever drifts from your desired state, the control plane automatically corrects the drift.

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://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on

Connect an agent via an official MCP serverweight 3

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

  • [claimed-docs] https://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on

Use an official CLIweight 2

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

  • [claimed-docs] https://docs.crossplane.io/cli/latest/testing and rendering standalone Composition Functions without the need to access a Kubernetes cluster running Crossplane
  • [claimed-docs] https://docs.crossplane.io/cli/latest/troubleshooting Crossplane Compositions, Composite Resources and Managed Resources
  • [claimed-docs] https://docs.crossplane.io/cli/latest/building, installing, updating and pushing Crossplane Packages
  • [probe] https://docs.crossplane.io/cli/latest/official CLI documented at https://docs.crossplane.io/cli/latest/
  • [probe] https://docs.crossplane.io/cli/latest/PROBE cli-version (local run, macOS): `crossplane version --client` printed "Client Version: v2.5.0" and exited 0 after `brew install crossplane`; the CLI is keyless, but unlike the other tools probed here every real plan/apply operation requires a running Kubernetes cluster with the Crossplane control plane installed — no local plan/preview loop exists.

Drive the product through a documented public APIweight 3

3 (weight) × 7 (quality) × 1.0 (full) = 21.0 of 30 max

  • [claimed-docs] https://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/It lets you design the APIs and abstractions that your users use to interact with your control planes.
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/there’s an RDS instance MR that extends Kubernetes with the ability to manage AWS RDS instances.
  • [claimed-docs] https://docs.crossplane.io/latest/composition/Composite Resource Definitions - Define schemas for composite resources
  • [probe] https://docs.crossplane.io/cli/latest/official CLI documented at https://docs.crossplane.io/cli/latest/
  • [probe] https://docs.crossplane.io/cli/latest/PROBE cli-version (local run, macOS): `crossplane version --client` printed "Client Version: v2.5.0" and exited 0 after `brew install crossplane`; the CLI is keyless, but unlike the other tools probed here every real plan/apply operation requires a running Kubernetes cluster with the Crossplane control plane installed — no local plan/preview loop exists.

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://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on
  • [claimed-docs] https://www.crossplane.ioextending its battle hardened reliability and security features like Role Based Access Control (RBAC) to orchestrate everything - not just containers.

Build against official SDKsweight 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

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 = 40.2 ÷ 180 × 100 = 22.3

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

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

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://docs.crossplane.io/latest/composition/Composite Resource Definitions - Define schemas for composite resources

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://docs.crossplane.io/cli/latest/testing and rendering standalone Composition Functions without the need to access a Kubernetes cluster running Crossplane
  • [probe] https://docs.crossplane.io/cli/latest/PROBE cli-version (local run, macOS): `crossplane version --client` printed "Client Version: v2.5.0" and exited 0 after `brew install crossplane`; the CLI is keyless, but unlike the other tools probed here every real plan/apply operation requires a running Kubernetes cluster with the Crossplane control plane installed — no local plan/preview loop exists.

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 = 2.4 ÷ 70 × 100 = 3.4

Openness50.0/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) × 1.0 (full) = 14.0 of 20 max

  • [claimed-docs] https://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/It lets you design the APIs and abstractions that your users use to interact with your control planes.
  • [claimed-docs] https://www.crossplane.ioExtend Kubernetes to manage any resource anywhere
  • [claimed-docs] https://docs.crossplane.io/latest/composition/Composite Resource Definitions - Define schemas for composite resources
  • [claimed-docs] https://docs.crossplane.io/latest/packages/Providers - Providers connect Crossplane to external APIs

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.crossplane.io/latest/whats-crossplane/Functions allow you to write your configuration in multiple languages, including YAML, KCL, Python, and Go.
  • [claimed-docs] https://docs.crossplane.io/latest/packages/Configurations - Portable packages of Crossplane resources
  • [claimed-docs] https://docs.crossplane.io/latest/composition/Composite Resource Definitions - Define schemas for composite resources
  • [claimed-docs] https://docs.crossplane.io/latest/composition/Composition Revisions - Manage changes to Compositions with revisions

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) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://docs.crossplane.io/latest/get-started/install/Install Crossplane using the Helm chart.
  • [claimed-docs] https://docs.crossplane.io/latest/get-started/install/Enable support for real time compositions.
  • [claimed-docs] https://docs.crossplane.io/latest/get-started/install/Enable automatic protection of Providers from deletion when they have active managed resources.
  • [claimed-docs] https://docs.crossplane.io/latest/get-started/install/Crossplane introduces new features behind feature flags. By default alpha features are off.
  • [claimed-docs] https://docs.crossplane.io/latest/get-started/install/Installing Crossplane enables the installation of Crossplane Provider, Function, and Configuration resources.
  • [claimed-docs] https://docs.crossplane.io/latest/get-started/install/Install pre-release versions of Crossplane from the master Crossplane Helm channel.
  • [probe] https://docs.crossplane.io/cli/latest/PROBE cli-version (local run, macOS): `crossplane version --client` printed "Client Version: v2.5.0" and exited 0 after `brew install crossplane`; the CLI is keyless, but unlike the other tools probed here every real plan/apply operation requires a running Kubernetes cluster with the Crossplane control plane installed — no local plan/preview loop exists.

Openness = 50.0 ÷ 100 × 100 = 50.0

Built-in AI10.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://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on

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.crossplane.io/latest/whats-crossplane/If your software ever drifts from your desired state, the control plane automatically corrects the drift.
  • [claimed-docs] https://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on
  • [claimed-docs] https://www.crossplane.ioextending its battle hardened reliability and security features like Role Based Access Control (RBAC) to orchestrate everything - not just containers.

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

n/a — not applicable to this product: excluded from numerator and denominator

  • [claimed-docs] https://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on

Operate the product with natural-language commandsweight 2

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

  • [claimed-docs] https://www.crossplane.ioExpose declarative APIs that humans, automation, and AI systems can safely act on
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/With Crossplane you don’t have to write a controller. Instead you configure a pipeline of functions.
  • [probe] https://docs.crossplane.io/cli/latest/official CLI documented at https://docs.crossplane.io/cli/latest/
  • [probe] https://docs.crossplane.io/cli/latest/PROBE cli-version (local run, macOS): `crossplane version --client` printed "Client Version: v2.5.0" and exited 0 after `brew install crossplane`; the CLI is keyless, but unlike the other tools probed here every real plan/apply operation requires a running Kubernetes cluster with the Crossplane control plane installed — no local plan/preview loop exists.

Built-in AI = 6.0 ÷ 60 × 100 = 10.0

Automation24.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) × 6 (quality) × 0.6 (partial) = 10.8 of 30 max

  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/If your software ever drifts from your desired state, the control plane automatically corrects the drift.
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/With Crossplane you don’t have to write a controller. Instead you configure a pipeline of functions.
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/There’s already a Crossplane managed resource for that.
  • [claimed-docs] https://docs.crossplane.io/latest/packages/Functions - Functions extend Crossplane with new ways to configure composition

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) × 6 (quality) × 0.6 (partial) = 3.6 of 10 max

  • [claimed-docs] https://docs.crossplane.io/latest/composition/Composition Revisions - Manage changes to Compositions with revisions
  • [claimed-docs] https://docs.crossplane.io/latest/whats-crossplane/If your software ever drifts from your desired state, the control plane automatically corrects the drift.
  • [community] https://news.ycombinator.com/item?id=26334268Terraform offers small teams a common language for controlling their infrastructure...Crossplane appears to have a clear yaml syntax (easy enough to commit to source control) and runs a control plane for enforcement (easier than setting up Atlantis, I imagine).
  • [community] https://news.ycombinator.com/item?id=26334268Many folks are using GitOps with Flux/ArgoCD to deploy their k8s apps but they can't use Terraform in the same workflow. How does Crossplane help get to a single GitOps workflow so app teams can self-service the infra from within the app cluster.

Automation = 14.4 ÷ 60 × 100 = 24.0