# Classification criteria — Verkkokaupan näkyvyys 2026

Fixed and published **before** the basket runs, per R6. Working language is English; the Finnish rendering in the report's method section is derived from this, not the other way round.

Every domain that ranks in the basket is classified. Nothing is deleted.

---

## Why two dimensions instead of one list

The plan's six categories (Finnish retailer / international marketplace / price comparison / manufacturer / media / non-commercial) collapse two independent axes into one, and the collapse breaks on real cases:

- **Zalando.fi** is an international *retailer*. Not a Finnish retailer, not a marketplace.
- **Tori.fi** is a Finnish *marketplace*. Neither of the two marketplace-flavoured options fits.
- **CDON** is an international marketplace, **Verkkokauppa.com** a Finnish retailer — but the flat list can't say that Amazon and CDON share a business model while Amazon and Zalando share an origin.

So role and origin are recorded separately. Every domain gets one value on each axis. The report can then cut either way, and the interesting number — how much Finnish retail search goes to international marketplaces — becomes a cross-tab rather than a category that has to be defined into existence.

This also produces more findings than the flat list, not fewer: "shops hold X% of Finnish shopping search, intermediaries Y%, content Z%" is available only when content and intermediaries are classified rather than excluded.

---

## Dimension A — role

What the domain does for a searcher who wants to buy. Applied in the order below; **first match wins**, so two people applying it reach the same answer without needing to agree on which label feels most apt.

| # | Role | Test | Evidence to record |
|---|---|---|---|
| 1 | `marketplace` | Transaction completes on the domain, and the seller of record is a third party for the majority of listings | The site's own description of its model, plus one product page naming a third-party seller |
| 2 | `manufacturer` | Transaction completes on the domain, and the operator manufactures or owns the brand being sold | Product page + operator identity |
| 3 | `retailer` | Transaction completes on the domain, selling goods the operator neither manufactures nor sources from third-party sellers of record | A product page with a working checkout |
| 4 | `comparison` | Lists offers from multiple named sellers and routes out to complete the purchase; does not transact | A listing page showing 2+ named sellers with outbound links |
| 5 | `affiliate` | Publishes editorial or review content whose outbound product links carry affiliate or tracking parameters; does not transact | An outbound link carrying an affiliate parameter, or a disclosed affiliate statement |
| 6 | `media` | Publishes editorial content; product links, where present, are not affiliate-monetised | Masthead or imprint, plus a check of outbound product links |
| 7 | `community` | Primary content is user-generated discussion or listings between private parties | The page format itself |
| 8 | `reference` | Operator is a public institution, broadcaster, university, library, or an encyclopedic project | Operator identity |
| 9 | `other` | Commercial, and none of the above (a bank, a carrier, a trade body) | Operator identity |

**Ordering is load-bearing.** Rules 1–3 come before 4–6 because a domain that both sells and publishes reviews is a shop with a blog, not a blog with a checkout. Rule 5 comes before 6 because an affiliate review site is editorially indistinguishable from media and differs only in how it earns.

## Dimension B — origin

| Value | Test | Evidence to record |
|---|---|---|
| `FI` | The site states a Finnish operating company | The company name and domicile as the site gives them, verbatim |
| `INT` | The site states a non-Finnish operating company | Same |
| `unknown` | The site states no operator and no public source gives one | What was checked and where it stopped |

**The TLD is not the test and must not be used as one.** `verkkokauppa.com` is Finnish; `zalando.fi` is German-operated. A rule keyed on `.fi` would produce a confident, wrong, and very quotable number. This is the rule the evidence exists to enforce, and it costs nothing.

**The site's own word is the evidence; no registry check.** An earlier draft required a Y-tunnus verified against PRH. That was rigour aimed at the wrong risk: the failure it guards against is a company misstating its own domicile in its own footer, which does not happen, and the cost was a registry lookup per domain across hundreds of them. The report's claim is about market structure — how much Finnish shopping search reaches international players — not about the accuracy of the trade register. A footer reading "Zalando SE, Germany" or "Verkkokauppa.com Oyj, Helsinki" settles the question the report is asking.

Where a site states nothing, `unknown` is the honest answer and it stays in the denominator. Recording *what was checked* is what keeps `unknown` a measurement rather than a shrug.

---

## Edge cases, decided in advance

Deciding these now — before the ranking is visible — is the whole point of pre-registration. Each one is a case where seeing the answer first would make the "obvious" call suspiciously convenient.

- **Omnichannel retailers** (Gigantti, Power, K-Rauta): `retailer`. Physical stores are irrelevant to a search-visibility measurement.
- **A retailer with a marketplace arm** (a shop that also lists third-party sellers): `retailer`, unless third-party sellers are the majority of listings. Rule 1's "majority" test is what separates Amazon from Verkkokauppa.com, and the call is recorded with its evidence.
- **Manufacturer selling direct** (apple.com/fi): `manufacturer`, not `retailer`. The distinction is the finding — a brand ranking for its own product is a different story from a shop ranking for it.
- **Second-hand and classifieds** (tori.fi, huuto.net): `marketplace`, origin `FI`. They compete for the same query.
- **Grocery and hypermarket** (Prisma, K-Ruoka): `retailer`.
- **A Finnish subsidiary of a foreign group**: origin follows the operating company that runs the domain, not the ultimate parent. If `example.fi` is run by Example Suomi Oy, it is `FI` — the report measures who sells into Finnish search, not who ultimately owns them.
- **Forums and Wikipedia**: `community` and `reference`. Classified, not excluded — see below.

---

## No exclusion rule

The plan carried a "non-commercial domains are removed" rule, inherited from the retired practitioner index where a mechanical rule put Wikipedia at the top of a ranking of SEO consultants and something had to give.

It does not transfer. Here, Wikipedia holding 3% of Finnish shopping search is not noise to be removed — it is a fact about Finnish shopping search. Excluding non-commercial domains would also quietly change what every share means: shares would become *share of commercial visibility* rather than *share of the SERP*, and the report's most interesting single number — how much Finnish shopping search never reaches a shop at all — would have been deleted before it was ever computed.

So nothing is excluded. Every ranking domain is classified, shares are share-of-SERP, and the exclusion rule that R5 and R6 describe has no work left to do.

---

## Where "mechanical" stops, and what replaces it

R6 asks for classification "without per-company discretion" and R8 for a third party reaching the same numbers. Both need qualifying, and the report should qualify them rather than assert them.

The decision order above removes the discretion that matters — which label to reach for — but it cannot remove judgment entirely. Rule 1's majority test, and the affiliate-versus-media call at rules 5–6, are judgments made by a person looking at a site.

R8 is also weaker than it sounds: a third party rerunning the method reruns it **with the published table**, so they reproduce the arithmetic, not the classification. The one genuinely discretionary step in the pipeline is the step R8 does not test.

What replaces the claim:

1. **The table is published in full.** Publishing `zalando.fi -> retailer / INT` is what lets a reader disagree with it. That is the audit surface, and it is the only one anyone will actually use.
2. **The arguable calls carry a note.** Ten or so entries are genuinely contestable -- the marketplace-majority test, the affiliate-versus-media line, a subsidiary's origin. Those say why. `prisma.fi` does not need a note saying it is a Finnish shop.
3. **The report says this plainly** in one sentence, rather than claiming a mechanical purity the table does not have.

An earlier draft required a rule number, an evidence field and a pre/post-run marker on every entry. All three were cut on 2026-07-16 as rigour that cost days and bought nothing: the rule number duplicates the role (the rules map 1:1), the pre/post-run marker marks a distinction that cannot exist (the table is built from what the run surfaced, so every entry is post-data), and uniform evidence spends as much effort on the uncontroversial 90% as on the calls a critic would actually pick.

## What each table entry carries

```
domain   registrable domain, normalised (lowercase, www stripped)
role     one of the nine above
origin   FI | INT | unknown
note     optional; only where the call is arguable and a reader deserves the reasoning
```

A domain listed twice with different roles is a bug, not a judgment: the scorer raises rather than resolving by order.

---

## What the smoke test measured (2026-07-16)

248 Finnish shopping keywords, $0.92. Consumer electronics and home improvement only, so none of this is a finding about Finnish retail — it is what the criteria have to survive.

- **1,082 distinct organic domains.** The tail has no natural cutoff: the top 50 hold 49.7% of ranking slots, the top 200 hold 72.2%, and 585 domains (54% of them) rank for exactly one keyword each while holding 12.4% of slots.
- **157 distinct cited domains**, against 1,082 organic. The citation surface is an order of magnitude narrower.
- **Facebook, YouTube, Reddit and Instagram all rank in the top 15**, which is why nothing is excluded: they are real occupants of shopping SERPs and `community`/`media` exists to hold them.
- **The intermediaries are not hypothetical.** `hintaopas.fi` ranks for 37 of 248 keywords — `comparison` earns its place.
- **`urakkamaailma.fi`, `ainakeittiot.fi`, `kevytremppa.fi`, `kodinplaza.fi`** are among the most-cited domains and are none of them shops. Whether they are `affiliate` or `media` is the judgment rules 5-6 exist to make, and it is load-bearing: they are what the AI actually cites.

**Consequence: classification is bounded by visibility share.** Every domain above a published slot threshold is classified; the rest are counted, bucketed as long tail, and that bucket's share is published. Counting stays exhaustive, so shares are unaffected — only role and origin stop at the threshold. Classifying the whole tail buys ~28% more classified visibility for roughly ten times the labour, almost all of it on one-keyword domains.

## Open decisions

1. **Does the role list survive?** The smoke population exercises `retailer`, `marketplace`, `comparison`, `manufacturer`, `community`, `media` and probably `affiliate`. `reference` and `other` are untested here. Cut any role the basket does not reach rather than defending it.
2. **Is `unknown` origin acceptable, or does an unresolvable operator block the entry?** A small international seller with no imprint is plausible. `unknown` keeps it in the denominator and makes the gap visible; blocking removes it and quietly shrinks the SERP.

Resolved 2026-07-16: the non-commercial exclusion is dropped. Nothing is excluded, every share is share-of-SERP, and R5/R6/KTD6 were amended to match.
