Skip to content

How Meltano’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 Score28/100

Agent-ready 39.5 × 0.30 = 11.85

API quality 5.1 × 0.20 = 1.02

Openness 49.8 × 0.20 = 9.96

Built-in AI 15.0 × 0.15 = 2.25

Automation 19.5 × 0.15 = 2.92

(11.85 + 1.02 + 9.96 + 2.25 + 2.92) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 28.00 ÷ 1.00 = 28.0

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-ready39.5/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

  • [probe] https://docs.meltano.com/llms.txtPROBE llms.txt: HTTP 404 at https://docs.meltano.com/llms.txt
  • [probe] https://docs.meltano.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.meltano.com/openapi.json, https://docs.meltano.com/swagger.json, https://docs.meltano.com/api/openapi.json, https://docs.meltano.com/.well-known/openapi.json)

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.meltano.com/concepts/projectyou can treat it like any other software development project and benefit from DataOps best practices such as version control, code review, and continuous integration and deployment (CI/CD)
  • [claimed-docs] https://docs.meltano.com/guide/containerizationyou can easily add the appropriate Dockerfile and .dockerignore files to your project by adding the docker file bundle
  • [probe] https://docs.meltano.com/reference/command-line-interfaceofficial CLI documented at https://docs.meltano.com/reference/command-line-interface
  • [probe] https://docs.meltano.com/getting-started/installationPROBE runtime (recorded 2026-09-08): `uvx meltano init pa-probe` ran keylessly in a throwaway fixture and laid out a complete ELT project — extract/load/transform/orchestrate/analyze directories, meltano.yml, and dev/staging/prod environments initialized. The CLI itself printed 'meltano, version 4.2.2'. Self-cleaned.
  • [claimed-docs] https://docs.meltano.com/reference/command-line-interface`meltano add` lets you add or update [plugins](/concepts/plugins#project-plugins) in your Meltano project. The command is idempotent

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

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

Use an official CLIweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [probe] https://docs.meltano.com/reference/command-line-interfaceofficial CLI documented at https://docs.meltano.com/reference/command-line-interface
  • [probe] https://docs.meltano.com/getting-started/installationPROBE runtime (recorded 2026-09-08): `uvx meltano init pa-probe` ran keylessly in a throwaway fixture and laid out a complete ELT project — extract/load/transform/orchestrate/analyze directories, meltano.yml, and dev/staging/prod environments initialized. The CLI itself printed 'meltano, version 4.2.2'. Self-cleaned.
  • [claimed-docs] https://docs.meltano.com/reference/command-line-interface`meltano add` lets you add or update [plugins](/concepts/plugins#project-plugins) in your Meltano project. The command is idempotent
  • [claimed-docs] https://docs.meltano.com/getting-started/part1Initialize a new project in a directory of your choosing using meltano init
  • [probe] https://hub.meltano.comPROBE runtime (recorded 2026-09-08): MeltanoHub's plugin registry API answered keylessly — GET hub.meltano.com/meltano/api/v1/plugins/extractors/index returned the machine-readable index of Singer taps with default variants and per-variant refs (e.g. tap-sproutsocial, tap-adwords), the catalog surface an agent can query directly.

Drive the product through a documented public APIweight 3

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

  • [probe] https://docs.meltano.com/llms.txtPROBE llms.txt: HTTP 404 at https://docs.meltano.com/llms.txt
  • [probe] https://docs.meltano.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.meltano.com/openapi.json, https://docs.meltano.com/swagger.json, https://docs.meltano.com/api/openapi.json, https://docs.meltano.com/.well-known/openapi.json)
  • [probe] https://docs.meltano.com/reference/command-line-interfaceofficial CLI documented at https://docs.meltano.com/reference/command-line-interface
  • [probe] https://hub.meltano.comPROBE runtime (recorded 2026-09-08): MeltanoHub's plugin registry API answered keylessly — GET hub.meltano.com/meltano/api/v1/plugins/extractors/index returned the machine-readable index of Singer taps with default variants and per-variant refs (e.g. tap-sproutsocial, tap-adwords), the catalog surface an agent can query directly.
  • [claimed-docs] https://docs.meltano.com/reference/command-line-interface`meltano add` lets you add or update [plugins](/concepts/plugins#project-plugins) in your Meltano project. The command is idempotent

Issue scoped/least-privilege API credentials for an agentweight 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

Build against official SDKsweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://docs.meltano.comBuild your own Meltano connector to move data from any source to any destination.
  • [community] https://hn.algolia.com/api/v1/items/36151234When I had to develop a custom tap for a client, the support I received from the team, the SDK and the general experience was absolutely top class. Love the new site too!
  • [claimed-docs] https://docs.meltano.com/getting-started/part1An extractor is responsible for pulling data out of any data source.

Subscribe to events via webhooksweight 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

Agent-ready = 43.4 ÷ 110 × 100 = 39.5

API quality5.1/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://docs.meltano.com/llms.txtPROBE llms.txt: HTTP 404 at https://docs.meltano.com/llms.txt
  • [probe] https://docs.meltano.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.meltano.com/openapi.json, https://docs.meltano.com/swagger.json, https://docs.meltano.com/api/openapi.json, https://docs.meltano.com/.well-known/openapi.json)
  • [probe] https://docs.meltano.com/reference/command-line-interfaceofficial CLI documented at https://docs.meltano.com/reference/command-line-interface

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://docs.meltano.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.meltano.com/openapi.json, https://docs.meltano.com/swagger.json, https://docs.meltano.com/api/openapi.json, https://docs.meltano.com/.well-known/openapi.json)
  • [probe] https://docs.meltano.com/llms.txtPROBE llms.txt: HTTP 404 at https://docs.meltano.com/llms.txt

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 6 (quality) × 0.6 (partial) = 3.6 of 10 max

  • [probe] https://docs.meltano.com/getting-started/installationPROBE runtime (recorded 2026-09-08): `uvx meltano init pa-probe` ran keylessly in a throwaway fixture and laid out a complete ELT project — extract/load/transform/orchestrate/analyze directories, meltano.yml, and dev/staging/prod environments initialized. The CLI itself printed 'meltano, version 4.2.2'. Self-cleaned.
  • [claimed-docs] https://docs.meltano.com/guide/integrationits configuration can be tested using meltano config test <plugin>
  • [claimed-docs] https://docs.meltano.com/concepts/pluginsyour project and pipelines are composed of plugins of different types, most notably extractors, loaders, utilities

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.meltano.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.meltano.com/openapi.json, https://docs.meltano.com/swagger.json, https://docs.meltano.com/api/openapi.json, https://docs.meltano.com/.well-known/openapi.json)

API quality = 3.6 ÷ 70 × 100 = 5.1

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

  • [probe] https://docs.meltano.com/llms.txtPROBE llms.txt: HTTP 404 at https://docs.meltano.com/llms.txt
  • [probe] https://docs.meltano.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://docs.meltano.com/openapi.json, https://docs.meltano.com/swagger.json, https://docs.meltano.com/api/openapi.json, https://docs.meltano.com/.well-known/openapi.json)
  • [probe] https://docs.meltano.com/reference/command-line-interfaceofficial CLI documented at https://docs.meltano.com/reference/command-line-interface

Export all of my data in open formats and leaveweight 3

3 (weight) × 6 (quality) × 0.6 (partial) = 10.8 of 30 max

  • [claimed-docs] https://docs.meltano.comYou host and manage everything on your own servers
  • [claimed-docs] https://docs.meltano.comBuild your own Meltano connector to move data from any source to any destination.
  • [claimed-docs] https://meltano.comRun all pipelines in one place, across databases, files, SaaS tools, internal systems, and workflows like dbt.
  • [claimed-docs] https://docs.meltano.com/concepts/projectyou can treat it like any other software development project and benefit from DataOps best practices such as version control, code review, and continuous integration and deployment (CI/CD)
  • [community] https://hn.algolia.com/api/v1/items/26284253Meltano and Pipelinewise are open source projects... you can just start playing with it and change the code, but there's no support to pay for.

Read the product's source under an open licenseweight 2

2 (weight) × 6 (quality) × 1.0 (full) = 12.0 of 20 max

  • [community] https://hn.algolia.com/api/v1/items/26284253Meltano and Pipelinewise are open source projects... you can just start playing with it and change the code, but there's no support to pay for.
  • [claimed-docs] https://docs.meltano.com/concepts/projectyou can treat it like any other software development project and benefit from DataOps best practices such as version control, code review, and continuous integration and deployment (CI/CD)

Self-host the core productweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://docs.meltano.com/getting-started/installationMeltano is pip-installable and comes in a prepackaged docker container, you can have your first ELT pipeline running within minutes.
  • [claimed-docs] https://docs.meltano.comYou host and manage everything on your own servers
  • [probe] https://docs.meltano.com/getting-started/installationPROBE runtime (recorded 2026-09-08): `uvx meltano init pa-probe` ran keylessly in a throwaway fixture and laid out a complete ELT project — extract/load/transform/orchestrate/analyze directories, meltano.yml, and dev/staging/prod environments initialized. The CLI itself printed 'meltano, version 4.2.2'. Self-cleaned.
  • [community] https://hn.algolia.com/api/v1/items/26284253Meltano and Pipelinewise are open source projects... you can just start playing with it and change the code, but there's no support to pay for.
  • [community] https://hn.algolia.com/api/v1/items/26284253The GitLab Data Team is running Meltano in production. We're currently extracting Zoom data with it and have plans for several more extractors (Slack, GMail, PTO by Roots, EdCast, and a few more).

Openness = 49.8 ÷ 100 × 100 = 49.8

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

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

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.meltano.com/guide/orchestrationMeltano supports scheduled pipelines that can be orchestrated using Apache Airflow.
  • [probe] https://docs.meltano.com/getting-started/installationPROBE runtime (recorded 2026-09-08): `uvx meltano init pa-probe` ran keylessly in a throwaway fixture and laid out a complete ELT project — extract/load/transform/orchestrate/analyze directories, meltano.yml, and dev/staging/prod environments initialized. The CLI itself printed 'meltano, version 4.2.2'. Self-cleaned.
  • [claimed-docs] https://docs.meltano.com/concepts/pluginsyour project and pipelines are composed of plugins of different types, most notably extractors, loaders, utilities

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

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

Built-in AI = 6.0 ÷ 40 × 100 = 15.0

Automation19.5/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) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://docs.meltano.com/guide/integrationmakes it easy to select which streams and properties to extract
  • [claimed-docs] https://docs.meltano.com/guide/integrationMeltano can handle catalog generation for you, by letting you describe your desired modifications using stream selection
  • [claimed-docs] https://docs.meltano.com/reference/command-line-interface`meltano add` lets you add or update [plugins](/concepts/plugins#project-plugins) in your Meltano project. The command is idempotent
  • [probe] https://hub.meltano.comPROBE runtime (recorded 2026-09-08): MeltanoHub's plugin registry API answered keylessly — GET hub.meltano.com/meltano/api/v1/plugins/extractors/index returned the machine-readable index of Singer taps with default variants and per-variant refs (e.g. tap-sproutsocial, tap-adwords), the catalog surface an agent can query directly.

Define rules that trigger actions automatically on eventsweight 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

Schedule recurring jobs or workflowsweight 2

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

  • [claimed-docs] https://docs.meltano.com/guide/orchestrationMeltano supports scheduled pipelines that can be orchestrated using Apache Airflow.
  • [probe] https://docs.meltano.com/getting-started/installationPROBE runtime (recorded 2026-09-08): `uvx meltano init pa-probe` ran keylessly in a throwaway fixture and laid out a complete ELT project — extract/load/transform/orchestrate/analyze directories, meltano.yml, and dev/staging/prod environments initialized. The CLI itself printed 'meltano, version 4.2.2'. Self-cleaned.
  • [claimed-docs] https://docs.meltano.com/concepts/pluginsyour project and pipelines are composed of plugins of different types, most notably extractors, loaders, utilities

Version, review, and roll back my automationsweight 1

1 (weight) × 6 (quality) × 0.6 (partial) = 3.6 of 10 max

  • [claimed-docs] https://docs.meltano.com/concepts/projectyou can treat it like any other software development project and benefit from DataOps best practices such as version control, code review, and continuous integration and deployment (CI/CD)
  • [claimed-docs] https://docs.meltano.com/concepts/pluginsyour project and pipelines are composed of plugins of different types, most notably extractors, loaders, utilities
  • [probe] https://docs.meltano.com/getting-started/installationPROBE runtime (recorded 2026-09-08): `uvx meltano init pa-probe` ran keylessly in a throwaway fixture and laid out a complete ELT project — extract/load/transform/orchestrate/analyze directories, meltano.yml, and dev/staging/prod environments initialized. The CLI itself printed 'meltano, version 4.2.2'. Self-cleaned.

Automation = 15.6 ÷ 80 × 100 = 19.5