Skip to content

qrp-0001 · the reviews protocol

Reviews you can actually reason about.

QRP-0001 is the first domain-level protocol built on top of the Quidnug infrastructure. Six signed event types (REVIEW, HELPFUL_VOTE, UNHELPFUL_VOTE, REPLY, FLAG, PURCHASE) plus a topic-scoped trust graph plus a four-factor aggregation formula produce per-observer weighted ratings that carry the whole picture: the number, the confidence, the provenance, and the delta from the crowd average.

  • 6 event types
  • 3 visualization primitives
  • 4 factors in the rating weight
  • 5+ drop-in widget adapters
  • 2 platform plugins shipped

rating primitives

Three visuals, one data model, zero JS dependencies.

Stars encode one dimension and throw away the rest. The Quidnug primitives encode the rating value, confidence, trust proximity, personalization delta, polarization, freshness, and factor decomposition, without sacrificing glance-ability.

qn-aurora · nano product grid
4.5 ↑ 0.4 vs crowd
qn-aurora · standard detail page
4.5 ↑ 0.4 · 23 sources
qn-constellation why this rating
CROWD 3+ HOPS 2 HOPS DIRECT YOU
qn-trace weight composition
positive mixed crowd direct transitive width = relative weight · color = rating · outline = direct vs transitive

All three primitives render the same underlying data at three information densities. Zero JS dependencies. Full Schema.org JSON-LD carried alongside for SEO.

qn-aurora is the default indicator: a sentiment dot surrounded by a confidence ring, with an optional delta chip. It renders at three sizes (nano for product grids, standard for detail pages, large for heroes) using the same visual vocabulary.

qn-constellation answers why do I see this number: a bullseye of concentric trust tiers, one dot per contributing reviewer, colored by rating, sized by weight. Click a dot to see the exact trust path.

qn-trace is for comparing items side by side: a horizontal stacked bar where width is relative weight and color is rating. You can eyeball "mostly wide solid green" versus "narrow mixed dashed" across a long list.

how it works end-to-end

From a signed event to a rendered rating.

Reviewers publish signed events into a topic-scoped trust graph. The aggregator walks the graph from each observer's perspective, composes a weight for every review, and produces a per-observer effective rating that renders into the visualization primitives.

SIX EVENT TYPES REVIEW 1..5 · body · product · topic HELPFUL_VOTE upvote on a review UNHELPFUL_VOTE downvote REPLY threaded response FLAG moderator signal PURCHASE retailer attestation TOPIC-SCOPED TRUST GRAPH reviews.public.technology.laptops FOUR-FACTOR AGGREGATION T H A R trust help active recent Σ rᵢ·wᵢ / Σ wᵢ per-observer effective rating aurora glanceable constellation why trace compare

the four-factor formula

No single factor dominates. Missing any one loses that signal only.

Each review's weight is the product of four independent factors. The aggregation is a weighted average over all reviews with non-zero weight. The formula is boring on purpose: its predictability is the point.

w(r) = T × H × A × R per review r, from observer o, in topic domain t T Topical trust path-max · depth 5 BFS over the trust graph in topic t with 0.8-per-hop parent fallback H Helpfulness HELPFUL_VOTE ratio weighted by same trust network · recursive Laplace smoothing A Activity reviews in topic log-scaled count of prior reviews in topic (domain expertise signal) R Recency exp(-λ · age_days) half-life configurable per domain · default 180 days for tech Any factor at zero forces w(r) = 0. No single factor dominates; missing one means losing that contribution only.

Topical transitive trust (T). From the observer through the trust graph to the reviewer, inside the specific topic domain, capped at 1.0. If no direct edge exists in the topic, the algorithm walks up the parent with a 0.8-per-hop decay.

Helpfulness (H). The ratio of trusted HELPFUL_VOTE signals to UNHELPFUL_VOTE signals on the reviewer's past reviews. Weighted by the same trust graph, recursively, with Laplace smoothing so a single upvote doesn't dominate.

Activity (A). Log-scaled count of prior reviews the author has published in this topic. A signal of domain expertise, not total volume.

Recency (R). An exponential decay on the review's age with a configurable half-life per domain. Defaults: 180 days for technology, 30 days for restaurants, 365 days for books.

why you would bother

Because every existing review system is lying to you by omission.

pattern 1

The collapsed number

Amazon's 4.3 stars is the same 4.3 for the sponsored grifter and the power-user you trust. QRP-0001 shows both, and tells you which one weights more for you, and why.

pattern 2

The sybil farm

Flooding a product with 500 cheap 5-star reviews works because the average is all that matters. Topic-scoped transitive trust makes 500 untrusted reviews contribute exactly zero to your effective rating.

pattern 3

The locked-in identity

Yelp owns your review history. QRP-0001 reviewers own theirs: the quid and its event stream are self-sovereign, portable across every site that speaks the protocol, recoverable by guardian quorum if a key is lost.

drop-in install

One line of HTML. Or your framework of choice.

Five adapters ship today covering every major framework plus plain HTML. Two platform plugins (Shopify, WordPress) wrap the widget so non-engineers can install it from an app store.

plain HTML

reviews-widget

<quidnug-review
  product="your-product-id"
  topic="reviews.public.technology.laptops"
  src="https://widget.quidnug.dev/v2/"
></quidnug-review>
<script src="https://widget.quidnug.dev/v2/loader.js" defer></script>
Open the docs →
React

@quidnug/react

import { QuidnugReview } from '@quidnug/react';

<QuidnugReview
  product="your-product-id"
  topic="reviews.public.technology.laptops"
  observer={currentUserQuid}
/>
Open the docs →

Build a review system your users can argue with.

The rating they see is the rating you computed for them from the trust graph they declared. When they disagree, they can drill into the constellation and see exactly whose weight they want to drop.