SourceTier

How we decide what to publish

Methodology

Every number on this page is read from the code that applies it. If the code changes, this page changes with it in the same deployment.

Verification states

StateMeaningDescribes
Verified Supported by primary documentation. the product
Corroborated Supported by two or more independent credible sources. the product
Vendor stated Claimed by the vendor and not independently verified. the product
Customer reported Reported by customers or implementation partners. the product
Estimated Derived by us. Not a vendor statement and not a measurement. our research
Not measured We looked and found no reliable evidence. This describes our research, not the product. our research
Two of these states describe us and not the product. Not measured means we searched and found nothing we could rely on. It never means the product lacks the feature. Estimated is our own calculation and always names its method.

Source tiers

TierNameWhat Base confidence
1 Primary documentation Official product, API, security and pricing documentation, technical specifications, regulatory filings. 90
2 Official communication Vendor press releases, official announcements, investor materials. 75
3 Independent reporting Established analysts, reputable industry media, research firms. 60
4 Practitioner accounts Customer references, implementation partners, public interviews. 45
5 Community signal Forums, social media, community discussion. 25

Confidence

Confidence starts at the base value of the best source behind a claim. A weak source next to a strong one never drags the strong one down.

Independent corroboration adds 6 at 2 sources, 9 at 3 sources, 10 at 4 sources. Beyond that it adds nothing: ten copies of one press release are not ten pieces of evidence.

Age subtracts 8 points per year since the observation. The result is clamped between 5 and 99. There is no 100: measured is not proven.

How we research

We fetch a source, keep a snapshot of what actually arrived, read candidate values out of it, and only then decide whether to publish. A value never goes straight from a page onto this site.

An HTTP 200 is not a page we read. A response with fewer than 800 characters of text, or one whose text says the site had an error, counts as not measured. We have seen all three: a status of 200 with a body of a few dozen characters, a rendered page reading “something went wrong”, and a 403 that locked us out. None of them is a statement about the vendor.

Four rules decide what happens to a value we read:

  • Nothing recorded yet: we publish it, including “searched and found nothing”.
  • We had nothing and now found something: we publish it.
  • We had something and now find nothing: we keep what we had. A single failed fetch is not counter-evidence, and it must never turn a documented fact back into not measured.
  • A different value from a different source: we publish it only if that source is strictly better. Otherwise we stop and record a conflict, and nothing changes on this site until a person decides. The same source saying something new is an update, not a conflict.

When one page describes several products, we only read the section that belongs to the product, and that section has to prove itself by producing a value we already know. If it cannot, we read nothing from it rather than risk giving one product another product's specifications.

An address that redirects to another host is read only if that page names the subject. When a vendor has been acquired, its old address often lands on the acquirer's site, and what the acquirer says about itself (its industries, its certifications) is not documented for the company it bought. Where an earlier statement came from such a page, it is replaced by not measured. A redirect within the same domain, or to a page that does name the subject, is read as before.

A phrase that appears identically on the pages of 3 or more different products at the same host is site navigation, not a statement about the product. Such a match is not published as a label; where an earlier label came from that navigation, it is replaced by not measured. This rule applies to labels (industries, audiences) only: a certification named in a vendor's footer holds for each of its products.

The same holds for one product and its vendor. An industry list in the header of a vendor's home page also stands on the page of each of its products, and a vendor with several products does not tell us which one that industry belongs to. Where such a phrase stands identically on the vendor's home page, is written in title case (fewer than 30 per cent of its words start lowercase, which is how a menu differs from a sentence) and appears nowhere else on the product's own page, it is not published as a label. A vendor with a single product is left alone: there its home page is the product's page.

The rule is measured, twice, and the two samples answer different questions. On 2026-09-02 we drew 30 of 113 cases where a label stood word for word on the vendor's home page (seed 0.49, daten/messungen/2026-09-02-elternnavigation.json) and judged each by hand: 22 were the vendor's navigation and 8 belonged to the product, so a rule over mere word identity would be right 73% of the time. The two extra conditions above raise that: of the 18 cases in that sample the rule as built would have caught, 16 were navigation and 2 were not (89%). That threshold was chosen on those judgements, so it was measured again on cases it had not seen: on 2026-09-02 we drew 30 of the 43 cases the rule had actually removed (61 in total, minus the ones the threshold was chosen on; seed 0.52, daten/messungen/2026-09-02-elternnavigation-2.json). 30 of 30 were the vendor's navigation and 0 belonged to the product - 100%. A judgement here describes our extraction, never a vendor.

A correction is not a failed fetch. Rule three above keeps a documented fact when a later fetch finds nothing. It does not keep it when the reason for finding nothing is that the extractor was wrong: a pattern we retired, or a match we recognised as site navigation, replaces the earlier statement with not measured at the same source, and the earlier statement stays in the history.

Integrations are never published from a name alone. A product name found on a vendor's integrations page becomes a candidate with its excerpt, and an editor approves or rejects it; only the approval writes the edge, with the page as its source. We measured the automatic way and found a login list, a third-party marketplace and an access request among eleven hits. Two helpers make the review faster without deciding anything: an excerpt without any integration wording, or one that is a list of 3 or more other product names, is marked as suspicious, never rejected by the marking. And a rule approves a candidate only where the excerpt literally says “integrates with” or “connector for” within 80 characters of the product name; the quote is stored as the reason. Everything else waits for a person, and every decision carries who made it and why.

Both helpers are measured. A sample of 100 open candidates (kanten_kandidat mit zustand offen, ORDER BY random() nach setseed, seed 0.47), drawn on 2026-09-02 and judged by hand against the excerpt (daten/messungen/2026-09-02-kanten-2.json): of 88 candidates the marking called suspicious, 59 were no integration and 29 were one, so the marking is right 67% of the time; of the 12 it left unmarked, 9 were an integration (75%). The most common non-integration in that sample was a wrong target: a vendor we recorded as a service (Microsoft, Google, Amazon) where the page names one of its products (Dynamics, Workspace, S3). Of the 54 candidates whose target is such a derived service product, 36 were no integration (67%); of the 46 others, 26 (56%). Such a target is now marked as suspicious too: “target is a derived service product (an organisation recorded as a service); the page more likely names one of its products”. The marking was measured on this sample before it was added, and it marks; a person still decides. Where the target is such a derived product and the excerpt names a product of the same vendor that the graph holds (Dynamics rather than Microsoft), the candidate carries that product as a proposed target; the approval takes the proposal only when a person chooses it. In this sample 8 candidates carried a proposal, 8 of them naming the product the page meant (100%). The literal rule has approved 2 candidates so far, 2 of them an integration; only 2 decided judgements; at least 5 are needed for a figure. A wording joins the rule only after it has been measured the same way; in this sample “integrates with” stood next to the name 1 time (1 an integration), “integration with” stood next to the name 3 times (1 an integration), “works with” stood next to the name 2 times (1 an integration), “plugin for” stood next to the name 1 time (0 an integration); none reached the 5 decided judgements a figure needs. Overall, 38 of the 100 decided candidates were an integration (38%): a name on an integrations page is a lead, not a fact, and that is why a person decides. Earlier samples: 2026-09-02, seed 0.44, 100 candidates, the marking right 62% of the time, 41% an integration (daten/messungen/2026-09-02-kanten.json).

Extractor precision

We measure how often an extractor's finding is what the source says. A sample of 100 published statements is drawn at random (claim mit stand verified oder corroborated und ersetzt_am IS NULL, ORDER BY random() nach setseed, seed 0.5), each excerpt is read against the stored snapshot, and each gets one of three judgements: correct, wrong, or not decidable. Wrong statements are replaced by not measured at the same source, never overwritten. The figures below are read from daten/messungen/2026-09-02-praezision-lauf6.json, drawn on 2026-09-02; an extractor with fewer than 5 decided judgements shows its counts and no figure, because two judgements are an anecdote.

Overall: 71 correct, 29 wrong, 0 not decidable, precision 71% over 100 decided judgements. Precision describes our extractors, never a vendor.

Earlier measurements: 2026-09-02 run 1: 74% over 100; 2026-09-02 run 2: 72% over 100; 2026-09-02 run 3: 65% over 100; 2026-09-02 run 4: 73% over 100; 2026-09-02 run 5: 71% over 100.

ExtractorAttributesSampledCorrectWrongNot decidablePrecision
muster:\bfinancial services\b(?! limited| ltd| llc| inc| uab| gmbh| ag\b| sa\b| s\.a\.| b\.v\.| pty| oy\b| ab\b| corp| corporation| company| co\.| bank| plc| holdings| group| authority| commission| act\b| regulatory) industry_financial_services 107 30 70%
muster:\bhealth\s?care\b industry_healthcare 97 20 78%
muster:\bretail\b(?! (?:price|value|prices|banking|stores?|locations?|partners?|chain)\b) industry_retail 76 10 86%
muster:\bmanufactur(?:ing|ers?)\b industry_manufacturing 65 10 83%
muster:\bsmall business(?:es)?\b use_case_small_business 64 20 67%
muster:(?<!(?:align|commit|working towards|pursu|accordance|based on|in line with|framework)[^.?!]{0,60})ISO[\s/]*(IEC[\s/]*)?27001(?![^.?!]{0,60}(?:in progress|underway|pursu|working towards|planned|road ?map|commitment|aligned|alignment|framework)) iso27001 54 10 80%
jsonld:organization.foundingDate founded_year 44 00 only 4 decided judgements; at least 5 are needed for a figure
muster:\benterprise[- ](?:grade|ready|class|scale)\b use_case_enterprise 44 00 only 4 decided judgements; at least 5 are needed for a figure
muster:\bAPI\s+(?:documentation|reference|docs)\b api_available 32 10 only 3 decided judgements; at least 5 are needed for a figure
muster:\bHIPAA\b hipaa 31 20 only 3 decided judgements; at least 5 are needed for a figure
muster:\binsurance\b(?! company) industry_financial_services 30 30 only 3 decided judgements; at least 5 are needed for a figure
muster:\bpublic sector\b industry_public_sector 33 00 only 3 decided judgements; at least 5 are needed for a figure
muster:(?<![\d.])[$€£](?<![\d.])\d{1,5}(?:\.\d{2})?(?![\d])\s*(?:/|per\s+)\s*(?:month|mo\b|user|seat|year|yr\b) public_list_price 22 00 only 2 decided judgements; at least 5 are needed for a figure
muster:(?<![\d.])\$(?<![\d.])(\d{1,5})(?![\d])\s*(?:/|per\s+)month entry_price_month_usd 20 20 only 2 decided judgements; at least 5 are needed for a figure
muster:\benergy (?:and|&) utilities\b industry_energy 22 00 only 2 decided judgements; at least 5 are needed for a figure
muster:\benterprises? (?:solutions?|plans?|edition|customers|teams|organi[sz]ations|companies|buyers|accounts|hosting|pricing|tier)\b use_case_enterprise 22 00 only 2 decided judgements; at least 5 are needed for a figure
muster:\bgam(?:ing|ers?)\b use_case_gaming 21 10 only 2 decided judgements; at least 5 are needed for a figure
muster:\bhigher education\b industry_education 21 10 only 2 decided judgements; at least 5 are needed for a figure
muster:\boil (?:and|&) gas\b industry_energy 20 20 only 2 decided judgements; at least 5 are needed for a figure
muster:SOC\s*2\s*(Type\s*)?(II|2)\b soc2_type2 22 00 only 2 decided judgements; at least 5 are needed for a figure
jsonld:organization.address.addressCountry hq_country 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:(?<![\d.])(\d{1,3})(?![\d])\s?GB\s+(?:of\s+)?(?:RAM|memory)\b ram_gb 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\b(?:for|supports?|supporting|enables?|enabling|built for|designed for|unites?|connects?|connecting|empowers?|manage|managing|keeps?) (?:\w+[ ,]){0,3}?(?:remote|hybrid|distributed)(?:,? (?:and|or|&) (?:remote|hybrid|distributed))? (?:teams?|work(?:ers|forces?)?)\b use_case_remote_teams 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\b(?:on|from|in|via) the App Store\b mobile_app 10 10 only 1 decided judgements; at least 5 are needed for a figure
muster:\b(?:public|private|K-12) schools\b industry_education 10 10 only 1 decided judgements; at least 5 are needed for a figure
muster:\b3PLs?\b industry_logistics 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\bcontent creators?\b use_case_creators 10 10 only 1 decided judgements; at least 5 are needed for a figure
muster:\bcreators (?:and|&) use_case_creators 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\bdata processing (?:agreement|addendum)\b dpa_available 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\bfintech\b industry_financial_services 10 10 only 1 decided judgements; at least 5 are needed for a figure
muster:\bfor (?:large |global )?enterprises?\b use_case_enterprise 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\bfor governments?\b industry_public_sector 10 10 only 1 decided judgements; at least 5 are needed for a figure
muster:\bfor students\b use_case_students 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\bfree (?:plan|tier)\b free_tier 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\blife sciences\b industry_healthcare 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\blogistics (?:companies|providers|industry|firms|and transportation)\b industry_logistics 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\bonline (?:retailers|stores|sellers|merchants)\b industry_retail 10 10 only 1 decided judgements; at least 5 are needed for a figure
muster:\bREST(?:ful)?\s+API\b api_available 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\bSMBs\b use_case_small_business 11 00 only 1 decided judgements; at least 5 are needed for a figure
muster:\buniversit(?:y|ies)\b industry_education 10 10 only 1 decided judgements; at least 5 are needed for a figure
muster:\buniversities\b industry_education 11 00 only 1 decided judgements; at least 5 are needed for a figure

What gets indexed

ComponentWeight
suchnachfrage 20
datenvollstaendigkeit 20
eigene daten 20
evidenzdichte 15
kommerzielle absicht 10
frische 10
einzigartigkeit 5

A page below 55 carries noindex and is absent from the sitemap. We would rather publish fewer pages that are worth reading.

A component we cannot measure drops out of both the numerator and the denominator. Counting it as zero would punish a page for a gap in our own tooling; counting it as full would be an invention. This is the same rule as Not measured above, applied to ourselves.

Substance. A page about a product, vendor or category is indexed only if at least one statement describes the subject (verified, corroborated, vendor stated or customer reported). A page that only says what we could not find is honest, but it is not a page anyone should be sent to. A pricing page needs at least one price observation.

Data completeness counts core attributes only. An attribute we searched for and did not find counts 0.5 of a found one: more than a gap, less than a finding. Labels such as “names manufacturing as a market” count neither here nor in evidence density.

Comparison pages take the minimum of both sides for every component and need substance on both. Vendor and category pages take the average over their products. Overview pages and this page are indexed by editorial decision, not by the gate: the law requires the methodology to be immediately accessible.

Change detection

Every change is a stored event: a claim replaced, a price observed, an integration documented, a product added, a source page whose text changed. Each event is classified into one of these kinds:

KindIn the alert feed
Price drop price_drop yes
Price increase price_increase yes
First price recorded new_price yes
New product new_product yes
New AI agent new_ai_agent yes
New integration new_integration yes
Documented alternative new_alternative no, timeline only
Security certification security_certification yes
Product change product_change yes
First documented documented yes
Research update research_update no, timeline only
Funding funding yes
Acquisition acquisition yes
Source page changed source_changed no, timeline only

A finding is not a change. When we first document a certification that was not measured before, the event says so: it is a finding of ours, not necessarily a new certification. A change to a state that describes our research (not measured, estimated) is a research update and never a change to the product. A changed page hash carries no judgement; it only says the text differs from our last read.

Badges and paid relationships

Verified does not mean recommended. Badges are computed from documented evidence and cannot be bought.

BadgeCondition
Verified vendor profileA vendor account has proven control of the vendor domain.
Verified product dataAt least three core attributes of a product are verified or corroborated.
Verified integrationAt least one integration is documented from a tier 1 source.
AI autonomy levelAn AI agent of the vendor has an assessed autonomy level; the badge names the level and the agent.
Price verifiedA price was observed at an official pricing page within the last 30 days.

The data badge needs 3 verified or corroborated core attributes; the price badge needs an observation at an official pricing page within 30 days.

A paying vendor may see more; it never stands higher. A vendor subscription decides which analytics a vendor sees (basic: 3 figures, premium: 6 figures, intelligence: 7 figures). No ranking, no page score and no badge reads it. Vendor submissions name a page on the vendor's own domain; we read it with the same rules as any source, and a value is published only if the page documents it. Corrections are welcome and go the same way.

Page views and search terms are counted as daily sums without any visitor identity: no IP address, no user agent, no referrer, no per-visit timestamp.

What can be paid for: advertising (marked “Sponsored”, never inside a ranked list or a comparison row), sponsored research with disclosure, premium profile features, lead generation with the buyer's explicit consent, intelligence products, data licences (Open: 1000 requests a day, Licensed: 50000 requests a day, Bulk licence: 200000 requests a day). What can never be paid for: rankings, scores, reviews, badges, the removal of accurate information. Affiliate links are disclosed on the page that carries them and on no other page; the disclosure says whose commission it is. Aggregated buyer intent is shown only from 5 consenting accounts per cell upwards.

Accounts and roles

RoleRights
visitorlesen
consumer_userlesen watchlist
buyerlesen watchlist workspace rfp
buyer_adminlesen watchlist workspace workspace_verwalten rfp
vendor_userlesen watchlist vendor_profil
vendor_adminlesen watchlist vendor_profil vendor_verwalten
analystlesen watchlist workspace rfp pruefschlange
editorlesen watchlist workspace rfp pruefschlange redaktion
moderatorlesen watchlist pruefschlange pruefschlange_entscheiden moderation
internal_adminlesen watchlist workspace workspace_verwalten rfp vendor_profil vendor_verwalten pruefschlange pruefschlange_entscheiden redaktion moderation admin

Rights are explicit: a right not in this table exists for nobody.

Vendor Momentum Index

The index orders vendors, so it is a ranking. It counts documented change events in the last 90 days with these weights, read from the same file the index uses; a vendor needs at least 2 events to be listed. It measures how much we documented changing, not business performance.

Event kindWeight
new_product5
new_ai_agent5
new_integration3
security_certification3
product_change1
new_price1
price_drop1
price_increase1
funding4
acquisition4

Review standards

A review says whether the product was in our hands: who, when and with what. Without that record it carries the sentence “Not hands-on tested. This piece rests on documented specifications and sources named below.” and rests on documented specifications. Phrases that claim experience (“we tested”, “in our testing”, “in our tests”, “hands-on”, “hands on”, “we measured”, “our benchmark”, “in our lab”, “we used it”, “after using”, “we tried”, “our review unit”, “we ran”, “in daily use”, “our experience” ) are refused by the editor unless that record exists. Change notes in the news section are generated from stored events and say so.

The advisor

“Ask” is deterministic. It maps the words of a question to a category, a budget, an audience, an industry and required attributes, shows that mapping, names what it could not map, and answers with the same documented data as the search. A product with an unmeasured filter is listed under “cannot say”, never dropped. No language model writes the answer.

Workspace scores

In a workspace, the fit score against your own requirements uses exactly the finder rules above. The decision matrix weights each stakeholder's zero-to-ten score by the vote weight the workspace set; a missing vote is left out of numerator and denominator, never counted as zero, and a product is ranked only when every stakeholder has voted. Both are shown with their contributions, never as a bare number.

Implementation complexity

An estimate from documented signals only. Each signal adds or removes a point; the sum maps to a level. An unmeasured signal is left out and never counted as effort; without any measured signal there is no level. The ROI calculator next to it holds no benchmark: every figure is the user's own assumption run through a stated formula.

SignalIf documented trueIf documented falseWhy
Public API -1 +1an API lowers integration effort
Single sign-on -1 +1SSO lowers user provisioning effort
Documented integrations by count: 5 or more lowers, none raises documented integrations lower custom work

Levels: Low (sum up to -1), Medium (sum up to 0), High (sum up to 1), Very high (sum up to any).

Self-assessments

The maturity and readiness assessments are the user's own account of their organisation, weighted per question as shown. Each answer maps to a step on the scale; unanswered questions leave numerator and denominator. The result is labelled as an estimate and measures nothing about any vendor.

Procurement maturity self-assessment

QuestionWeightScale
How do requests reach procurement?20Ad hoc · Defined · Managed · Optimised
How are sourcing events run?20Ad hoc · Defined · Managed · Optimised
Where does supplier master data live?15Ad hoc · Defined · Managed · Optimised
How are contracts stored and tracked?15Ad hoc · Defined · Managed · Optimised
How well do you know your spend?15Ad hoc · Defined · Managed · Optimised
How is policy compliance enforced?15Ad hoc · Defined · Managed · Optimised

AI readiness self-assessment

QuestionWeightScale
How clean and accessible is the data an agent would act on?25Exploring · Piloting · Governed · Scaled
Is there a policy for what AI may do without a human?20Exploring · Piloting · Governed · Scaled
How are approval thresholds defined?15Exploring · Piloting · Governed · Scaled
Who can evaluate an AI vendor's claims?15Exploring · Piloting · Governed · Scaled
How is data shared with an AI vendor controlled?15Exploring · Piloting · Governed · Scaled
How would you know whether an agent helped?10Exploring · Piloting · Governed · Scaled

AI Autonomy Index

Agents are rated individually and per workflow, never as a blanket score for a vendor. A vendor page shows the range over its assessed agents and says that it is a range.

LevelNameCondition
L0 Traditional software No meaningful AI documented.
L1 AI assistance Search, summarisation, classification or drafting.
L2 Copilot Recommendations and decision support, no actions.
L3 Action agent Executes individual actions in a system.
L4 Workflow agent Runs multi-step workflows across actions.
L5 Autonomous Runs a whole process within defined rules, without a human approval step.

The level is derived from documented capabilities (executes_actions, multi_step_workflows, human_approval_required) and is always the lowest level consistent with the evidence. An unmeasured capability never raises the level. An agent about which we know nothing gets no level, not L0: L0 would be a statement about the agent where one about us is due. A level stated by a documented source takes precedence over our derivation. The level is our estimate and is labelled as such; nobody can buy it.

Prices and deals

A price is an observation on a day, not a fact that gets replaced. Older observations stay, because they are the history that any statement about a deal rests on.

Prices come from one pattern per vendor page, written by a person after reading that page, never from a rule that runs on every page. Each observation carries currency, period, plan name and the condition the page states (“billed annually”, “first year”, “2-year plan”); a monthly figure billed annually and the same plan billed monthly are two lines, not a fluctuation. A price without a period is not a price, and a page whose amounts are rendered by JavaScript after the HTML we fetch gives us none. Of the 153 official pricing pages we have read so far (daten/preismuster.json, read 2026-09-02), 70 carry a pattern with 224 price lines, 167 of them with a stated condition; 83 gave no usable price: 30 quote or sales contact only, 24 page prices a different product, 11 fee or usage table instead of a plan price, 8 amount without a readable plan name or condition, 6 amount without a period, 4 no amount in the page text (rendered by JavaScript). Those pages stay listed with their reason so that nobody reads the absence of a price as a statement about the vendor.

We state an average only when there are at least 4 observations and they span at least 30% of the window. Ten readings over three days say something about three days, not about ninety, and that is what we write instead of a number.

Where a deal can be assessed, the baseline is the first of these windows with enough history: 90, 30, 365 days. The wording is always the measurement and its grounding, for example “23% below the 90-day average of USD 1,579, from 137 observations” — the number, what it is measured against, and how much it rests on. The 137 here is only an illustration; a figure that matched one of our parameters would drift into looking like one.

LevelFrom
Well below the usual price 20% below
Below the usual price 10% below
Slightly below the usual price 3% below

Two things we never do. We never state a discount against a starting price — a “from” figure is not a price anyone pays, so a saving against it is a saving against nothing. And we never invent urgency: no countdowns, no “ends soon”, no “only a few left”. A deadline appears here only when the vendor states one and we have recorded it. That is not a promise, it is a word list the code checks itself against before it publishes a sentence.

How the finder ranks

The finder orders products, so it is a ranking. The weights below are the ones it actually uses: this page reads the same file, and a test forbids writing any of these numbers into the page by hand.

Three rules decide what a criterion does to a product:

  • A criterion we could not measure is removed from both the numerator and the denominator. It never counts against a product. Instead the coverage figure drops, and that figure is shown next to every score.
  • A value that is our own estimate counts at 0.5 of its weight, and the share resting on estimates is published with the result.
  • A product is ranked only when at least 50% of the weighted criteria could be measured and every mandatory criterion could be checked. Otherwise it is listed separately with what is missing - never dropped, because a gap in our research is not a fault of the product.

Only a documented failure of a mandatory criterion rules a product out. An unreachable document never does, and neither does one of our own estimates.

A laptop you carry every day

CriterionRequirement TypeWeight
Weight at most 3 weighted 30
Battery, video streaming at least 15 weighted 30
Memory at least 16 mandatory 25
Display size at most 14.5 nice to have 15

Business software a security team can sign off

CriterionRequirement TypeWeight
SOC 2 Type II present mandatory 30
ISO/IEC 27001 present weighted 20
Single sign-on present weighted 20
Entry price per month at most 50 weighted 20
Public list price present nice to have 10