The neutrality commitment

Also: Terms · Privacy · Copyright · Tester terms

Version 1.3, effective 2026-09-30. Adopted by Sparks & Sawdust LLC. MODEL-70. Version 1.0 was adopted on 2026-09-19; what changed in 1.1 is listed under Changes. The commitment itself is 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, and it stays keyless so that anyone can check the commitment. The public model cards lag the service by about nine months; the commitment and the ranking policy do not lag.

.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,
    "conceals_purchases_from_catalogued_vendors": false,
    "lets_supplier_models_write_supplier_cards": false
  },
  "source_neutral_at": ["ranking", "tie_breaks", "hosting_suggestions", "route_advice"],
  "charges": "the consumer of a recommendation, never its subjects",
  "vendor_purchases": "We may be a paying customer of a vendor whose models we catalogue. When we are, the card says so, and no field on that vendor's card is ever set by that vendor's own model."
}

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.

Changes

A change to this commitment gets a new version and date here; the version above is the one in force.

Feedback