Methodology changelog
Every change to Rankquant's normalization methodology — source weights, prior strength constants, peer-set hierarchy, affiliate routing logic — is logged here with rationale. Historical scores remain reproducible at the methodology version active when they were computed.
v0.2.0
Per-reviewer z-score + CI-floor ranking (complete methodology overhaul)
- Replaced v0.1's source-level six-step pipeline with reviewer-level four-step pipeline: per-reviewer z-score → aggregate three ways → 90% CI-floor → empirical-CDF percentile.
- Per-reviewer normalization: z_{u,i} = (r_{u,i} − μ_u) / σ_u, pooled cross-category per reviewer. Admission rule n_u ≥ 2 and σ_u > 0 for R1 and R2; σ_u = 0 reviewers admitted to R3 via imputed σ̃_s.
- Three aggregation lenses published: R1 (pure relative, unweighted reviewer mean — headline), R2 (source-weighted with published w_s), R3 (broadened to include consistent-rater reviewers).
- Ranking moved from raw aggregate mean to the 90% one-tailed CI-floor: floor = Ẑ − 1.645 · SE(Ẑ), where SE = 1/√N_eff. For R2, N_eff uses Kish's design-effect formula.
- Output scale changed from 1–5 normalized score to 0–100 empirical-CDF percentile. A 90 means the product's CI-floor is higher than 90% of all products in the database.
- Cohort definition simplified: same category × ±20% of list price. Cohort percentile is a pure re-ranking of the same CI-floor among cohort members — not a separate computation. Removes the v0.1 peer-set-hierarchy overhead.
- Bayesian prior strength k retired from the pipeline. Its role (penalizing thin samples) is now performed by the CI-floor's SE term, which is parameter-free.
- Python package bumped to v0.2.0; new public API includes Reviewer dataclass, aggregate_r1/r2/r3, percentile_from_ci_floors, cohort_percentile, is_in_cohort.
- v0.1 six-step API is not backward-compatible. Applications using the legacy normalize_product(...) signature must migrate.
v0.1.0
Initial public methodology + source weights (legacy)
- Six-step normalization method published at /methodology/ (rescale → source-weighted mean → Bayesian adjust → z-score → percentile → 1-5).
- Source-weighted mean uses w_s · √n_s (meta-analysis inverse-variance approximation) to keep large-sample crowd sources influential but not dominant.
- Bayesian prior strength set to k = 30 across all categories. Chosen via simulation across 10,000 synthetic review distributions.
- Source weights published for wine, movies/TV, books, Amazon consumer products, hotels, and restaurants. Full table at /glossary/wine-terms/ (wine) and /methodology/ (all).
- Adaptive peer-set hierarchy for wines (style × grape × region × vintage × price tier) with minimum-30-peers backoff rule.
- Affiliate routing formula (price_attractiveness × commission_rate) committed and published.
- Reference implementation open-sourced at github.com/rankquant/normalize under MIT license.
Methodology version is surfaced on every review page in the methodologyVersion field of the product's JSON-LD Product schema. You can see the exact version used to compute any score at any time.
See also: current methodology · source-code changelog