Assessment Methodology

How Vannus establishes who legally controls an AI vendor, and records it

What Vannus records

For each vendor we establish, from that vendor’s own published documents, three things: the legal entity a customer contracts with, that entity’s country, and the governing law of its terms. Where the vendor publishes what model it runs, we record that too, quoted the same way.

Each determination travels with the sentence it came from, the URL it was read at, and the date it was read. Where a vendor publishes nothing on a question, the record says not disclosed — which is never a negative finding about the vendor, and is not the same as an answer.

Where no document we have read names a vendor’s contracting entity, because we cannot reach its own terms and nothing else we read names one, the record says its contracting entity is not established: it names no entity and no country, and it does not say the vendor names none, because that would be a finding about documents we have not read. Any finding about who controls such a vendor rests on a separate document, cited to whoever said it.

What counts as a quote

A quote is the vendor’s words, not our summary of them. Two strictnesses apply, and conflating them is how a paraphrase once shipped inside quotation marks:

Re-verification, and what a date means

The checker re-reads rows only when we run it by hand; nothing runs it on a schedule. Only a match on the words we currently quote advances the date a reader is shown. A page we could not read is recorded as unreadable, never as confirmation. When one HTTP client is refused, a second client asks in its own name before the row is recorded as unreadable, because a refusal to one client is not a fact about the document. The checker fetches only from hosts that our terms table clears, and from some of those only their legal and terms pages. It refuses a host whose own terms forbid a scripted read, and it holds a host that the table does not list, or whose terms are unread or unclear, until we rule on it. When it reaches a row on a host it refuses or holds, it fetches nothing, and the record then says the document is not re-checked.

The date beside a determination is the date the quote was last confirmed present, not the date we first captured it.

When the vendor says its own terms are superseded

A page sometimes carries the vendor’s own notice that its terms have been replaced — a successor announced, its date already passed, above text dated earlier. The record reports that as a finding, above the clause, saying that what the vendor served may not be what governs.

It is named for the vendor’s admission rather than for our doubt. It is rare by design: three conditions must hold, and a leftover banner sitting above current terms does not qualify.

When there is more than one contracting entity

A vendor may contract through several entities, selected by where a customer is incorporated, where they are located, or how they bought. 31 of the 160 vendors whose contracting entity we have established contract through more than one. Those rows carry a flag telling the reader not to treat one entity as the answer, and the clause quoted beneath it states the split.

That count is over our own record. It was not drawn as a representative sample, so it is a fact about what we have read closely rather than a claim about the market.

What we do not publish

Vannus does not publish a composite score, a letter grade, or a tier name, and does not rank vendors against one another. Those were removed in September 2026. A single character could not carry a finding like a four-branch contracting clause, and a letter grade derived from dimension weights we did not publish was an adjudication of a named company that no reader could check.

What replaced it is the thing a buyer can act on: the document, the sentence, the date, and an honest statement of what we could not establish.

The Caution Flag, withdrawn in October 2026

The Caution Flag was the one adverse marker this methodology let Vannus place against a vendor. It was withdrawn in October 2026, with the nine trust badges it was published beside, and from August 2026 until then it was raised on no vendor. Because it was a claim about a named company, its criteria were published here, and it could be raised on nothing else:

From 12 March to 2 August 2026 a red “Elimination Flag”, a name this page never defined, was shown on sixteen named companies on criteria this page did not list.

A fourth criterion, “predatory pricing patterns”, was published here until 9 September 2026 and was withdrawn then. The three above each rested on a document — a disclosure, a sanctions listing, a regulator’s order. Predatory is an adjudication this house would be making about a lawful commercial practice, and no document says a price is predatory. It was never raised against any company. Both withdrawals are named here rather than quietly deleted, because a published criterion is a claim this house made about how it judges vendors, and withdrawing it silently would leave a reader of the earlier page with no way to know.

The determination, field by field

Every vendor we have assessed has one determination, and it is the unit of the record. The tool page leads with it, the catalog and the $299 report are built from it, and it is served as data, one vendor per request — for example /determination/github-copilot, with the vendor’s name or its tool-page slug at the end. It is served for each vendor in the catalog that the record covers; a record filed under two catalog names, as ChatGPT and OpenAI are, serves the same object under each. It holds these fields. A field the record does not establish is left empty and named in not_established; it is never filled in.

object
always "determination"
schema_version
the version of this field list
vendor
the catalog name the record is filed under
state
determined, conditional, partly_evidenced, not_established or not_assessed
sentence
the card sentence, rendered from the fields below
qualifier
what the sentence needs beside it: the document's scope, a parent's citation, an untracked limb
contracting_entity
the legal person the vendor's own document names, or null
jurisdiction
the country of that entity, or null
governing_law
the law the agreement names, or null
conditions
what the answer depends on: region or order form, customer type, which terms apply
us_control
what the record establishes about US corporate control: us_contracting_entity, sourced_us_parent, region_dependent (more than one contracting entity is on record and none is established on every track) or not_established; the control finding; the parent and its source; a sentence on whether US law may have legal reach; a caveat where the words tying the vendor to the US are not yet quoted; and the published rule
evidence
the source document's URL and title, the date we read it, and the last re-check: what it found, its date, and whether a script may re-check the document now (readable, refused: its host's terms forbid a scripted read, or held); the clause itself is quoted in the $299 report, and quote_carried_by is null for a record whose clause that report does not quote
not_established
which of contracting_entity, jurisdiction, governing_law and us_control the record does not establish

The object does not carry the clause a finding rests on: where quote_carried_by is set, the $299 AI Subprocessor Jurisdiction Report quotes it. Where the record states a field in the vendor’s own words, as it does Slack’s contracting entity, the field carries those words, as the tool page does. The source link and the date we read the document are there, so any finding can be checked at the source, and so is the last re-check and what it found, including a document it could not read or a clause it could not find again.

US corporate control is the fact on the record, and the object names it that way. What it means is a sentence beside it: US law may have legal reach over the vendor and the data it controls. The card sentence keeps one wording from the rule above: a contracting entity the record places in the United States is “within reach of US legal process”, because the rule states that as a fact about US jurisdiction. Through a parent, or on any track the record does not settle, it says only what may follow.

Why the determination replaced a letter grade, and every place the grade lingered after it was withdrawn on 8 September 2026: We used to grade AI vendors. Here is why we stopped.

The rule behind “within reach of US legal process”

Every vendor card states a determination: the contracting entity, quoted from the vendor’s own published terms with a source and a date, and — where it follows — one consequence. The consequence is derived from the fact by this rule, and the rule is published here so that anyone can reproduce it:

A provider subject to US jurisdiction can be required by valid US legal process to produce data in its possession, custody or control wherever it is located (CLOUD Act, 18 U.S.C. § 2713). A US-incorporated contracting entity is subject to US jurisdiction. A non-US contracting entity under US corporate control may be within reach through that control, depending on whether the parent controls the data and on the circumstances; where that control has not been established, the entity is not thereby beyond reach.

That reproducibility is the whole difference between this and the letter grade it replaced. A letter grade came from dimension weights we did not publish, so a reader could not check it and an auditor could not use it. A determination is a quoted fact plus a stated rule: both halves are in front of you, and if you think the rule is wrong you can say so with something specific.

The test is control, not incorporation, and that is why the record carries two facts and not one. Who you contract with, and who controls that entity. A US parent that can instruct its Irish subsidiary to produce data has control of that data even though the data never leaves the EU — so knowing the contracting entity does not, on its own, settle whether US law may have legal reach over it and the data it controls.

Where the contracting entity is US-incorporated, it is itself subject to US jurisdiction, and the card says so. Where it is not, the card states the entity, its governing law, and what we have established about the parent: either that the entity is under US corporate control — through which US law may have legal reach over it and the data it controls, depending on that control and the circumstances — or that we have not established whether a US parent controls it, in which case US reach is not established either way.

The rule still runs one way. We never publish that a vendor is beyond US reach. Absence of an established parent is absence of a finding, not a finding of absence.

The sentence ends at what you can cite, not at what you should do. The same determination is unremarkable to a US buyer and a problem for an EU one; which it is for you depends on your obligations, and that is yours to decide. Vannus is not your lawyer and this is not legal advice.

Where the entity depends on your region, your order form or how you buy — 31 of the 164 vendors determined so far — the card says so and points at the clause, because there is no single answer to give you.

Each of the withdrawn Caution Flag’s three criteria was an event with a source. A flag is never raised from a country of incorporation, a company’s size, or an inference about its architecture. An earlier version of this framework did exactly that — a badge reading “High-Risk Supply Chain Detected” was reached from a country code alone, on vendors where nothing had been detected — and the rule above exists so it cannot recur.

Vendors who believe an entry is wrong can use the right of reply: we correct the entry within five business days where you are right, and publish your response beside the record where we disagree.

Our Principles

Commercial Independence

Affiliate partnerships live in a separate layer. A build test fails if any module on the published neutrality list imports it, and no vendor can pay for what its entry says.

Auditable Findings

This page says what counts as a quote and what a date means, and the rule that states what a finding means for US legal reach is published here, so anyone can reproduce it. No weighting goes into a determination, so there is none to reverse-engineer.

How we read vendor pages

Our fetcher has honored robots.txt since 7 September 2026. Before that date it did not check one, so on 8 September we audited every source path we hold: none of the 338 we could resolve was disallowed to us. On ten, the site’s own robots.txt could not be read (403 or server error) and the path is therefore undetermined rather than permitted — those pages are now recorded unreadable and are not fetched until the file answers. We read with two HTTP clients under their own default user-agents and do not present ourselves as a browser.

Vendor-Neutral

We record open-source and proprietary tools to the same evidence standard.

Dated, Not Timeless

The date beside a determination is the date its quote was last confirmed present, not the date we first captured it.

Self-Assessment

We run our own entry through the same pipeline as every vendor’s and publish what comes out.

Why curation, not enumeration

A catalog that competes on raw count answers the wrong question. The question this record exists for is narrower and checkable: for a vendor you already run, which legal entity do you contract with, and which jurisdictions may have legal reach over it and the data it controls?

Vannus is built around that question. The catalog is curated — not encyclopedic — because curation requires editorial judgment that a longer list cannot provide. The methodology is published, because readers checking our work is part of how trust gets earned.

Independence is structural, not aspirational. There is no paid placement on a record, in the catalog or in search, and Vannus publishes no ranking. We charge for reports and audits, whoever buys them, and never for placement. What a Vannus entry says rests on the documents it cites — not on what a vendor paid.

Commercial Independence

Vannus maintains affiliate partnerships with some tools in our database. These partnerships are kept apart from the modules on the published neutrality list by a test, not by a policy.

The wall: The affiliate registry and the monetization layer sit in praxis.affiliates and praxis.monetise. A test in the build follows the imports of every module on the neutrality list, directly and through the modules they import in turn, and fails if any of them reaches either one, including through a package’s __init__ file. The list, and the live result, are published on that page.

Verification: Vannus publishes no score, so there is no weighting to recompute. If you question whether a partner vendor received favorable treatment, check its entry against the documents it cites.

Full disclosure: See our Partners & Transparency page for the commercial relationships Vannus discloses.