The neutrality commitment

Draft. This document has not been adopted and is not in force. It is published here so it can be read and reviewed before it is.

Also: Terms · Privacy

Status: DRAFT. Not adopted. Drafted 2026-09-17 for MODEL-70. Version neutrality-v1, which is the same string the machine-readable copy carries.

The rule

Charging the consumer of a recommendation is compatible with being an honest broker. Charging the subjects of one is not.

An agent paying to ask "what should I use" has no stake in which answer comes back. It wants the true one, which is exactly what it is paying for. A model provider paying to appear is buying placement, and every ranking afterwards is suspect whether or not it was actually influenced. The second is not a conflict to be managed with a disclosure line. It is a different product, and we are not in it.

The commitment

No referral fees, no paid placement, no provider-paid visibility, permanently.

Stated as the things we are not able to do rather than the things we promise not to do, because the first kind can be checked:

"Permanently" is the load-bearing word. A commitment that lasts until the offer is good enough is a price, not a commitment.

How to check it, without trusting us

The commitment is published as data, next to the ranking floors, in the same object that describes the policy an answer was computed under:

GET https://modelspec.dev/api/rank/profiles.json

No key. No account. No rate limit. It is a static file on the same export the sites and the CLI read.

.ranking_policy.neutrality
{
  "version": "neutrality-v1",
  "operator": "Sparks & Sawdust LLC",
  "rule": "Charging the consumer of a recommendation is compatible with being an honest broker. Charging the subjects of one is not.",
  "pledge": "No referral fees, no paid placement, no provider-paid visibility, permanently.",
  "permanent": true,
  "assertions": {
    "accepts_referral_fees": false,
    "accepts_paid_placement": false,
    "accepts_provider_paid_visibility": false,
    "proxies_inference_tokens": false,
    "stores_customer_prompts": false
  },
  "source_neutral_at": ["ranking", "tie_breaks", "hosting_suggestions", "route_advice"],
  "charges": "the consumer of a recommendation, never its subjects"
}

The same block appears in the policy object of every response from POST https://api.modelspec.dev/v1/rank, so an agent reads the commitment out of the very answer it acted on rather than out of a page it never fetched.

Three further things are checkable without asking us:

If we ever break this commitment, the JSON breaks first. That is the point of putting it there.