はじめに:レビューは本当に売上に効くか
ECを運営していると、「レビューが多い商品ほど売れる」という感覚は、なんとなく誰もが持っているものだと思います。商品ページにレビューが10件並んでいる商品と、レビューがゼロの商品が並んでいたら、買う側の気持ちとしては前者のほうが安心できますよね。だからこそ、レビュー依頼のメールを送ったり、レビュー投稿でクーポンを配ったりと、各社それなりに手間とコストをかけてレビューを集めています。
ただ、その手間が本当に売上につながっているのかと聞かれると、はっきり数字で答えられる人は意外と少ないのではないでしょうか。「レビューが多い商品は売れている」のは事実だとしても、それは「レビューが多いから売れた」のか、それとも「売れているからレビューが多く集まった」のか。この二つは似ているようで、打ち手がまったく変わってきます。
この記事では、商品ごとのレビュー数・平均評価と売上をBigQueryで集計し、両者の関係を定量的に眺めてみます。そのうえで、相関と因果を取り違えないための注意点と、レビュー促進施策をどう考えればよいかまで整理していきます。
なお、この記事に出てくるSQLや数字は、すべて「考え方を示すための例」です。実在する店舗のデータではなく、テーブル名・カラム名・しきい値はお使いの環境に合わせて読み替えてください。
用意するデータ
分析に必要なのは、大きく分けて二種類のデータです。
ひとつは商品マスタと売上の情報です。商品IDごとに、対象期間の売上金額・注文件数・販売価格などがわかるテーブルを用意します。多くのカートシステムでは、受注明細をエクスポートして商品IDで集計すれば作れます。
もうひとつはレビューの情報です。商品IDごとに、レビュー件数と平均評価(星の数の平均)がわかるテーブルです。レビュー機能を持つカートやモールであれば、レビュー一覧をエクスポートして商品IDで集計できます。
この二つを商品IDで結合すれば、「レビューがこれくらいの商品は、売上がこれくらい」という対応表が作れます。まずはその土台を作るところから始めます。
-- 商品ごとに「売上」と「レビュー」を結合した分析用テーブルを作る
-- ※テーブル名・カラム名は環境に合わせて読み替えてください
WITH sales AS (
SELECT
product_id,
SUM(item_revenue) AS revenue, -- 期間内の売上金額
SUM(quantity) AS units_sold, -- 販売数量
COUNT(DISTINCT order_id) AS orders -- 注文件数
FROM `your_project.ec.order_items`
WHERE order_date BETWEEN '2026-01-01' AND '2026-06-30'
GROUP BY product_id
),
reviews AS (
SELECT
product_id,
COUNT(*) AS review_count, -- レビュー件数
AVG(rating) AS avg_rating -- 平均評価(1〜5想定)
FROM `your_project.ec.product_reviews`
WHERE review_date <= '2026-06-30'
GROUP BY product_id
)
SELECT
s.product_id,
s.revenue,
s.units_sold,
s.orders,
IFNULL(r.review_count, 0) AS review_count,
r.avg_rating
FROM sales s
LEFT JOIN reviews r USING (product_id)
LEFT JOIN にしているのは、レビューがゼロの商品も分析対象から落とさないためです。レビューがない商品こそ、後で「レビューがあると何が変わるか」を見るときの比較対象になります。
レビュー数・平均評価×売上を集計する
商品単位のデータがそろったら、次はレビューの多さ・評価の高さごとに売上を集計してみます。商品を一件ずつ眺めても傾向はつかめないので、レビュー件数でいくつかの階層(バケット)に分けて、各階層の平均売上を比べるのがわかりやすい方法です。
-- レビュー件数の階層ごとに、平均売上と商品数を集計する
WITH base AS (
-- 前のクエリの結果をテーブルやビューにしておくとラクです
SELECT * FROM `your_project.ec.product_sales_reviews`
)
SELECT
CASE
WHEN review_count = 0 THEN '0件'
WHEN review_count BETWEEN 1 AND 4 THEN '1〜4件'
WHEN review_count BETWEEN 5 AND 9 THEN '5〜9件'
WHEN review_count BETWEEN 10 AND 29 THEN '10〜29件'
ELSE '30件以上'
END AS review_bucket,
COUNT(*) AS product_count, -- 各階層の商品数
ROUND(AVG(revenue)) AS avg_revenue, -- 平均売上
ROUND(AVG(avg_rating), 2) AS avg_rating -- 平均評価
FROM base
GROUP BY review_bucket
ORDER BY MIN(review_count)
集計すると、たとえば次のような表(これも例です)が得られます。
| レビュー階層 | 商品数 | 平均売上 | 平均評価 |
|---|---|---|---|
| 0件 | 420 | 38,000円 | - |
| 1〜4件 | 180 | 95,000円 | 4.1 |
| 5〜9件 | 70 | 210,000円 | 4.3 |
| 10〜29件 | 40 | 480,000円 | 4.4 |
| 30件以上 | 12 | 1,200,000円 | 4.5 |
この表はあくまで説明のために作った数字ですが、こうして並べると「レビューが多い階層ほど平均売上が高い」という傾向が、感覚ではなく数字として見えてきます。平均評価も少しずつ上がっていますね。ここまでで「関係がありそうだ」というところまでは言えます。
相関と閾値効果の見方
階層別の表で傾向がつかめたら、もう少し踏み込んで、レビュー数と売上の相関の強さを数値で見てみます。BigQueryには相関係数を計算する関数が用意されています。
-- レビュー数と売上、平均評価と売上の相関係数を計算する
SELECT
CORR(review_count, revenue) AS corr_reviews_revenue,
CORR(avg_rating, revenue) AS corr_rating_revenue
FROM `your_project.ec.product_sales_reviews`
WHERE review_count > 0 -- 評価との相関を見るときはレビューありに絞る
相関係数は -1 から +1 の範囲を取り、+1 に近いほど「片方が増えるともう片方も増える」関係が強いことを意味します。0.7 もあればかなり強い、0.3 程度だと弱い、というのがざっくりした目安です。ただし、相関係数はあくまで「直線的な関係の強さ」を表すだけなので、数字だけを鵜呑みにせず、必ず散布図とあわせて眺めるようにしてください。
閾値効果(何件目から効くか)を探す
ここでもうひとつ見ておきたいのが、閾値効果です。これは「レビューが増えれば一律に売上が伸びる」のではなく、「ある件数を超えたあたりから効きが変わる」という現象を指します。
たとえば、レビューがゼロから1件に増えたときのインパクトはとても大きい一方で、20件が21件になってもほとんど変わらない、というのはよくある話です。買う側の心理として、「レビューが1件でもある」という安心感の効果が大きく、ある程度たまった後は追加の効果が薄れていく、というのは直感的にも納得しやすいですよね。
これを確かめるには、先ほどの階層別の平均売上を、隣の階層との差として見ると掴みやすくなります。
-- 階層ごとの平均売上を、ひとつ下の階層との差(伸び幅)として見る
WITH bucketed AS (
SELECT
CASE
WHEN review_count = 0 THEN 0
WHEN review_count BETWEEN 1 AND 4 THEN 1
WHEN review_count BETWEEN 5 AND 9 THEN 2
WHEN review_count BETWEEN 10 AND 29 THEN 3
ELSE 4
END AS bucket_order,
revenue
FROM `your_project.ec.product_sales_reviews`
),
agg AS (
SELECT bucket_order, AVG(revenue) AS avg_revenue
FROM bucketed
GROUP BY bucket_order
)
SELECT
bucket_order,
ROUND(avg_revenue) AS avg_revenue,
ROUND(avg_revenue - LAG(avg_revenue) OVER (ORDER BY bucket_order)) AS lift_from_prev
FROM agg
ORDER BY bucket_order
lift_from_prev がひとつ下の階層と比べた伸び幅です。この値が「0件→1〜4件」のところで大きく、上の階層に行くほど鈍っていれば、「最初の数件が効く」タイプの閾値効果がある、と読めます。逆に上の階層でも伸び幅が大きいなら、「集めるほど効く」タイプかもしれません。どちらのタイプかによって、後の施策の力点が変わってきます。
相関≠因果:逆因果に気をつける
ここからが、この記事でいちばん伝えたいところです。
これまでの集計で「レビューが多い商品ほど売れている」という相関は確認できました。しかし、相関があることと、レビューが売上の原因であることは、まったく別の話です。相関と因果は違います。これを取り違えると、施策の効果を見誤ります。
いま見ているデータには、少なくとも逆向きの説明が成り立ちます。それは「売れているからレビューが多い」という逆因果です。よく売れている商品は、それだけ多くの人の手に渡っているので、自然とレビューも集まります。つまり「レビューが多い→売れる」ではなく「売れる→レビューが多い」という流れだとしても、まったく同じ相関が観測されてしまうのです。
さらに、第三の要因が両方を引き上げている可能性もあります。たとえば人気カテゴリの主力商品は、広告予算も多く投下され、目立つ場所に陳列され、もともと需要も大きい。そうした商品は「売上も高く」「レビューも集まりやすい」という両方の性質を最初から持っています。この場合、レビューと売上はどちらも「人気商品である」という共通の原因から生まれているだけで、互いに直接の因果関係はないかもしれません。
相関は「一緒に動いている」ことしか教えてくれません。どちらが原因かは、相関係数をいくら眺めても出てきません。「レビューを増やせば売上が増える」と結論づける前に、「売れているからレビューが増えただけではないか」を必ず疑ってください。
では、因果に少しでも近づくにはどうすればよいか。手堅いのは、比較条件をそろえて見ることです。同じカテゴリ・同じ価格帯・近い販売期間の商品どうしに絞って比べれば、「人気商品だから両方高い」という第三の要因の影響をある程度そろえられます。それでもなおレビューの多い商品が売れているなら、レビューの効果である可能性は少し高まります。
より確実なのは、実際に手を動かして試すことです。一部の商品でだけレビュー依頼を強化し、似た条件の他の商品(依頼を強化しない群)と売上の変化を比べる。いわゆる対照群を置いた検証ですね。ここまでやって初めて、「レビューを増やすと売上が動くか」に近い答えが得られます。過去データの相関分析は、その検証の仮説を立てるための入り口だと考えるのが健全です。
レビュー促進施策への示唆
以上を踏まえると、レビュー数と売上の分析は、施策にどうつなげればよいでしょうか。いくつか現実的な使い方を挙げます。
ひとつは、閾値効果を施策のターゲット選びに使うことです。もし「最初の数件が効く」タイプだとわかったなら、レビュー依頼のリソースは、すでにレビューが多い人気商品ではなく、「売れているのにレビューがゼロ〜数件の商品」に優先的に振り向けるのが理にかなっています。伸びしろが大きいのはそこだからです。先ほどの分析用テーブルから、売上は上位なのにレビューが少ない商品を抜き出せば、依頼候補のリストがすぐ作れます。
もうひとつは、平均評価への目配りです。レビューは多いほどよいと考えがちですが、評価が低いレビューが増えれば逆効果になりかねません。件数だけでなく平均評価もあわせて追い、評価が低い商品については、レビューを増やす前に商品説明やサイズ表記、品質そのものの見直しを先に検討すべき、という判断もできます。
そして最後に、効果は必ず検証する、という姿勢です。前の章で書いたとおり、相関だけでは「レビューを増やせば売れる」とは言い切れません。レビュー促進施策を打つときは、対象商品と非対象商品を分けて、施策後の売上の動きを比べる。この一手間を入れるかどうかで、来年も同じ施策にコストをかけ続けるべきかの判断精度が大きく変わります。
レビュー数と売上の対応関係を眺める方法は、こちらの返品率をカテゴリ別に分析する記事で扱った「データを商品単位で結合して傾向を読む」考え方と地続きです。また、購入の手前にある要因を定量化するという意味では、商品写真の枚数とCVRの相関を見た記事も近いテーマなので、あわせて読んでいただくと、相関分析の使いどころと限界がよりはっきりすると思います。
まとめ
レビュー数・平均評価と売上の関係は、BigQueryで商品単位に結合してしまえば、思っているより手早く定量化できます。階層別の平均売上を比べれば傾向が見え、相関係数や伸び幅を見れば「何件目から効くか」という閾値効果も探れます。
ただし、いちばん大事なのは数字の読み方です。相関は因果ではありません。「レビューが多い商品が売れている」という観測には、「売れているからレビューが増えた」という逆因果や、「人気商品だから両方高い」という第三の要因が常につきまといます。ここを区別せずに「レビューを増やせば売れる」と結論づけてしまうと、効きの薄い商品に依頼リソースを注ぎ続けることになりかねません。
過去データの相関分析は、あくまで仮説を立てるための入り口です。そこから「売れているのにレビューが少ない商品」を狙い、対象群と非対象群を分けて効果を検証する。この流れで進めれば、レビュー施策の費用対効果を、感覚ではなく数字で語れるようになります。