Report card
top10vpn.com
Insufficient data
Generated 2026-09-17 under SPEC: Scoring — v0.6.12. State: Not scored — below the article threshold.
Do they get paid?
41.0%Monetization exposure across 7 articles. A fact, never scored.
Do they tell you?
1.000Article-weighted disclosure deficiency, A = 0 through F = 1. Lower means the disclosure appears earlier relative to the first link.
Does the pay change the picks?
not publishedFewer qualifying articles than SPEC §2.2 requires.
Monetization exposure — what was observed
A pick whose status was not established is counted apart from a pick observed to be unmonetized. Each reason is published on its own, because they are different situations and one of them is about us rather than about the publisher:
| Reason the status was not established | Picks |
|---|---|
| cloaked unresolved | 0 |
| declared sponsored unverified | 0 |
| no observed link | 49 |
| external destination unclassified | 1 |
Marked sponsored by the publisher — what was observed on those links
1 direct merchant link(s) across 1 ranked pick(s) carry this publisher’s own rel="sponsored" and point at a registrable domain that is not the publisher’s. NONE OF THEM IS BADGED, whatever follows: rel="sponsored" is the attribute the HTML specification defines for paid placement of any kind, including placement that pays no commission, so it establishes that the publisher marked the placement as paid and establishes nothing about a commission. What was observed ON those links, counted apart rather than summarised as an absence: 0 carry a real attribution subtag that this publisher’s OWN client code wrote onto the anchor while the page ran in our browser. SPEC §0.1.0 counts those as monetized (m_i = 1) and still does not badge them, because a signal derived from executed JavaScript is weaker provenance than served markup: it is admitted to a corpus statistic we publish with its inputs, and refused to an assertion made to a reader about one link. 0 carry that same attribute with the literal value "undefined" — the publisher’s own code reporting that it recognised NO affiliate program for that destination. Those are m_i = 0 on the publisher’s own signal rather than on our failure to find one. 1 carry no such attribute at all. Absence is not a statement: those are m_i = 0 because nothing was observed either way, and that is the only one of these three counts about which we are saying we did not detect a mechanism.
Declared, not observed
12 ranked pick(s) are priced against a merchant the publisher DECLARED in the link itself (name= — a parameter the publisher wrote): nordvpn.com, surfshark.com. THE DESTINATION WAS DECLARED, NOT OBSERVED — we did not follow the link and do not know that it arrives there. What we observed is the publisher naming the merchant in its own markup; the rate is that merchant’s own published schedule, with its source and date shown beside every number. 23 further pick(s) declare a merchant we cannot resolve to a rate card — an opaque publisher id, or a merchant whose schedule we do not hold. Those stay unpriced (r = null) and are excluded from the correlation. They are counted here so the gap is visible rather than silent.
Payout–Rank correlation
No correlation is published for this publisher
Not scored — below the article threshold
A qualifying article is one with enough priced picks, enough rated picks, and enough rate coverage for a per-article correlation to exist. This publisher has some, but fewer than the threshold. The count is shown below with the reason each article was excluded. Nothing about the correlation is shown, because the threshold is what decides whether it may be shown at all.
The card records Insufficient data as the headline it would print, and prints no median, no interval and no Kickback Score. The inputs below are published anyway, so the same computation can be run against them.
Disclosure
| Grade | Articles | Share |
|---|---|---|
| A | 0 | 0.0% |
| B | 0 | 0.0% |
| C | 0 | 0.0% |
| D | 0 | 0.0% |
| F | 7 | 100.0% |
§1.5 is purely positional. The A/B boundary here is measured against the first OUTBOUND link, which is at or before the first AFFILIATE link, so this test is stricter than §1.5 and can only understate a grade, never overstate one.
Diagnostics published beside the figures
Count of qualifying articles with ρ > 0.99 at n ≤ 5.
Sole-Paid-Pick Placement
Not published: §1.6 requires |A₁| ≥ 20 and this publisher has 1.
Articles excluded from the pool, by reason
| Exclusion reason | Articles |
|---|---|
| fewer than 2 priced picks | 2 |
| fewer than 4 rated picks | 0 |
| rate coverage undefined | 0 |
| rate coverage below threshold | 5 |
| rho undefined | 0 |
Reasons may co-occur on the same article, so these counts do not sum to a total.
Right of reply
State: silent. We wrote to this publisher and the seven-day window closed without a reply. Not replying is not agreement with anything on this card, and we do not present it as one.
Written to hello@top10vpn.com on 2026-09-10T00:10:55Z. Basis for that address: published site contact Seven-day window closes 2026-09-17T00:10:55.000Z.
Hello, Thanks for getting in touch with Top10VPN.com. We'll get back to you as soon as possible. Please note: if your query concerns a refund or a billing issue, please contact your VPN service provider directly. We are a VPN review website and don't charge for our services. Best regards, Support Team
Confounds, stated by us, first
- Reverse causality. A publisher may negotiate a higher rate because it already ranks a product well. The §5 event study partially addresses this by measuring ranking changes after rate changes. It does not eliminate it.
- Category confounding. High-commission categories may differ in quality.
- Brand-size confounding. Products with affiliate programs skew toward larger brands, which may be better on average.
- Rate coverage. We observe roughly half the market. The rate coverage figure on this card is the measured share for this publisher.
- Editorial firewalls are real. Where the median ρ is at or below zero, that is stated on this card in the same size type as every other number.
- Private-network rate invisibility. Merchants on Impact, CJ, Rakuten and Partnerize keep rates private, so their picks carry r = null and are dropped from ρ. Those are systematically different merchants from Amazon’s — large retailers rather than marketplace sellers. The sign of the resulting bias is indeterminate.
- Per-transaction earnings caps and negotiated tiers mean a published nominal rate is an upper-bound proxy for effective compensation. eBay’s published rate card carries a per-transaction cap on every category (550 USD on Electronics, 100 USD on eBay Motors and on Real Estate) and states that exceptions to the rate card exist for certain partners. Roborock publishes 4%–7% and Narwal 4%–10%, and where a given publisher’s tier falls within either band is negotiated privately. On a high-priced item a per-transaction cap can put the amount actually earned, expressed as a percentage of price, below the published rate. This is a disclosure: it moves no estimator and no r_i.
Recompute this
Every input this card was computed from. A third party who cannot recompute a figure from what is published here should treat the figure as unsupported, and we would rather they did.
- publisher
- top10vpn.com
- spec version
- SPEC: Scoring — v0.6.12
- generated at
- 2026-09-17T21:55:39.581Z
- card status
- insufficient_data
- corpus dir
- data/corpus
- rates dir
- data/rates
- articles with picks
- 7
- qualifying articles
- 2
- anti recommendation excluded
- none
- article ids
7 entries
177504e3e3a7d0f2d7587ee9fa64d4a457264f968b60c81fc9060110fc0e428b 285f6e0213963b651001a1ba44d157878ee4783287cca0b28736f2b60b989ed1 52d4824410c7cd24ffaf62f8473ac12202e53760a7ad85d1313ac3676942e66c 61c6ab1154c2b1955aa2d18ca8703c3ec6b9e71b72e707ad8b3e193e7a8fd718 a223013a40962e9d7644fd038e8468c4f4ed8d683798974096a6b22cc5d42b74 a3eb5258dd4aac6c5a7d73d54c29ce9e35035e7bc14788eddd7133cb28fd6a80 ac9c955c9db690158bd4fdc1e84af03ad3196572d4b24c8bb8bf4fd015a9ccb0- merchant hosts observed
18 entries
bbc.co.uk cyberghostvpn.com en.wikipedia.org expressvpn.com hide.me home.cern ipvanish.com mullvad.net my.nordaccount.com nordvpn.com privadovpn.com privateinternetaccess.com protonvpn.com surfshark.com torrentfreak.com windscribe.com wireshark.org youtube.com- verticals matched
- televisions
- amazon rate sources
- US
- file
- data/rates/amazon-us.json
- source url
- https://affiliate-program.amazon.com/help/node/topic/GRXPHT8U84RAYDXZ
- fetched at
- 2026-09-05T21:56:26.934Z
- table sha256
- ea97cd4fc12108d018958e8ee57941109c803dd0203bbd4f4715069c0b21408d
- default rate
- 0.04
- CA
- file
- data/rates/amazon-ca.json
- source url
- https://associates.amazon.ca/help/node/topic/GRXPHT8U84RAYDXZ
- fetched at
- 2026-09-05T21:56:32.508Z
- table sha256
- 6876ec738879654e535a0340d81268aacc55e2b938d08c96416b8c856eda55ba
- default rate
- 0.02
- merchant rate card
- data/rates/merchants.json
- snapshot index
- data/corpus/snapshots.jsonl
- inclusion criteria
- min priced picks k
- 2
- min rated picks n
- 4
- min rate coverage C
- 0.6
- min qualifying articles
- 20
- kickback weights
- R
- 0.75
- O
- 0.25
- version
- 3.0.0
- disclosure deficiency scale
- A
- 0
- B
- 0.25
- C
- 0.5
- D
- 0.75
- F
- 1
- bootstrap resamples
- 2000
- quantile method
- type-7 (linear interpolation; the R and NumPy default)
- ci percentile convention
- lower bound at floor(0.025 * B), upper bound at ceil(0.975 * B) - 1 (positions 50 and 1949 at B = 2000)