Verification states
| State | Meaning | Describes |
|---|---|---|
| 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 |
Source tiers
| Tier | Name | What | 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.
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.
| Extractor | Attributes | Sampled | Correct | Wrong | Not decidable | Precision |
|---|---|---|---|---|---|---|
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 | 10 | 7 | 3 | 0 | 70% |
muster:\bhealth\s?care\b |
industry_healthcare | 9 | 7 | 2 | 0 | 78% |
muster:\bretail\b(?! (?:price|value|prices|banking|stores?|locations?|partners?|chain)\b) |
industry_retail | 7 | 6 | 1 | 0 | 86% |
muster:\bmanufactur(?:ing|ers?)\b |
industry_manufacturing | 6 | 5 | 1 | 0 | 83% |
muster:\bsmall business(?:es)?\b |
use_case_small_business | 6 | 4 | 2 | 0 | 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 | 5 | 4 | 1 | 0 | 80% |
jsonld:organization.foundingDate |
founded_year | 4 | 4 | 0 | 0 | only 4 decided judgements; at least 5 are needed for a figure |
muster:\benterprise[- ](?:grade|ready|class|scale)\b |
use_case_enterprise | 4 | 4 | 0 | 0 | only 4 decided judgements; at least 5 are needed for a figure |
muster:\bAPI\s+(?:documentation|reference|docs)\b |
api_available | 3 | 2 | 1 | 0 | only 3 decided judgements; at least 5 are needed for a figure |
muster:\bHIPAA\b |
hipaa | 3 | 1 | 2 | 0 | only 3 decided judgements; at least 5 are needed for a figure |
muster:\binsurance\b(?! company) |
industry_financial_services | 3 | 0 | 3 | 0 | only 3 decided judgements; at least 5 are needed for a figure |
muster:\bpublic sector\b |
industry_public_sector | 3 | 3 | 0 | 0 | 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 | 2 | 2 | 0 | 0 | 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 | 2 | 0 | 2 | 0 | only 2 decided judgements; at least 5 are needed for a figure |
muster:\benergy (?:and|&) utilities\b |
industry_energy | 2 | 2 | 0 | 0 | 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 | 2 | 2 | 0 | 0 | only 2 decided judgements; at least 5 are needed for a figure |
muster:\bgam(?:ing|ers?)\b |
use_case_gaming | 2 | 1 | 1 | 0 | only 2 decided judgements; at least 5 are needed for a figure |
muster:\bhigher education\b |
industry_education | 2 | 1 | 1 | 0 | only 2 decided judgements; at least 5 are needed for a figure |
muster:\boil (?:and|&) gas\b |
industry_energy | 2 | 0 | 2 | 0 | only 2 decided judgements; at least 5 are needed for a figure |
muster:SOC\s*2\s*(Type\s*)?(II|2)\b |
soc2_type2 | 2 | 2 | 0 | 0 | only 2 decided judgements; at least 5 are needed for a figure |
jsonld:organization.address.addressCountry |
hq_country | 1 | 1 | 0 | 0 | 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 | 1 | 1 | 0 | 0 | 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 | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\b(?:on|from|in|via) the App Store\b |
mobile_app | 1 | 0 | 1 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\b(?:public|private|K-12) schools\b |
industry_education | 1 | 0 | 1 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\b3PLs?\b |
industry_logistics | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bcontent creators?\b |
use_case_creators | 1 | 0 | 1 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bcreators (?:and|&) |
use_case_creators | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bdata processing (?:agreement|addendum)\b |
dpa_available | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bfintech\b |
industry_financial_services | 1 | 0 | 1 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bfor (?:large |global )?enterprises?\b |
use_case_enterprise | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bfor governments?\b |
industry_public_sector | 1 | 0 | 1 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bfor students\b |
use_case_students | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bfree (?:plan|tier)\b |
free_tier | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\blife sciences\b |
industry_healthcare | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\blogistics (?:companies|providers|industry|firms|and transportation)\b |
industry_logistics | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bonline (?:retailers|stores|sellers|merchants)\b |
industry_retail | 1 | 0 | 1 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bREST(?:ful)?\s+API\b |
api_available | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\bSMBs\b |
use_case_small_business | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\buniversit(?:y|ies)\b |
industry_education | 1 | 0 | 1 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
muster:\buniversities\b |
industry_education | 1 | 1 | 0 | 0 | only 1 decided judgements; at least 5 are needed for a figure |
What gets indexed
| Component | Weight |
|---|---|
| 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:
| Kind | In 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.
| Badge | Condition |
|---|---|
| Verified vendor profile | A vendor account has proven control of the vendor domain. |
| Verified product data | At least three core attributes of a product are verified or corroborated. |
| Verified integration | At least one integration is documented from a tier 1 source. |
| AI autonomy level | An AI agent of the vendor has an assessed autonomy level; the badge names the level and the agent. |
| Price verified | A 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
| Role | Rights |
|---|---|
| visitor | lesen |
| consumer_user | lesen watchlist |
| buyer | lesen watchlist workspace rfp |
| buyer_admin | lesen watchlist workspace workspace_verwalten rfp |
| vendor_user | lesen watchlist vendor_profil |
| vendor_admin | lesen watchlist vendor_profil vendor_verwalten |
| analyst | lesen watchlist workspace rfp pruefschlange |
| editor | lesen watchlist workspace rfp pruefschlange redaktion |
| moderator | lesen watchlist pruefschlange pruefschlange_entscheiden moderation |
| internal_admin | lesen 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 kind | Weight |
|---|---|
| new_product | 5 |
| new_ai_agent | 5 |
| new_integration | 3 |
| security_certification | 3 |
| product_change | 1 |
| new_price | 1 |
| price_drop | 1 |
| price_increase | 1 |
| funding | 4 |
| acquisition | 4 |
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.
| Signal | If documented true | If documented false | Why |
|---|---|---|---|
| Public API | -1 | +1 | an API lowers integration effort |
| Single sign-on | -1 | +1 | SSO 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
| Question | Weight | Scale |
|---|---|---|
| How do requests reach procurement? | 20 | Ad hoc · Defined · Managed · Optimised |
| How are sourcing events run? | 20 | Ad hoc · Defined · Managed · Optimised |
| Where does supplier master data live? | 15 | Ad hoc · Defined · Managed · Optimised |
| How are contracts stored and tracked? | 15 | Ad hoc · Defined · Managed · Optimised |
| How well do you know your spend? | 15 | Ad hoc · Defined · Managed · Optimised |
| How is policy compliance enforced? | 15 | Ad hoc · Defined · Managed · Optimised |
AI readiness self-assessment
| Question | Weight | Scale |
|---|---|---|
| How clean and accessible is the data an agent would act on? | 25 | Exploring · Piloting · Governed · Scaled |
| Is there a policy for what AI may do without a human? | 20 | Exploring · Piloting · Governed · Scaled |
| How are approval thresholds defined? | 15 | Exploring · Piloting · Governed · Scaled |
| Who can evaluate an AI vendor's claims? | 15 | Exploring · Piloting · Governed · Scaled |
| How is data shared with an AI vendor controlled? | 15 | Exploring · Piloting · Governed · Scaled |
| How would you know whether an agent helped? | 10 | Exploring · 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.
| Level | Name | Condition |
|---|---|---|
| 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.
| Level | From |
|---|---|
| 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
| Criterion | Requirement | Type | Weight |
|---|---|---|---|
| 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
| Criterion | Requirement | Type | Weight |
|---|---|---|---|
| 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 |