先講一個比喻
想像三家書店各自貼了一張今天的排行榜。你想知道哪本書「真的」在紅,你會怎麼看?
大概不會只看某一家的第一名——那可能只是那家書店這週在做那本書的活動。你會找同時出現在三張榜上的書,看它們各排第幾,再想想它是這幾天才衝上來的,還是已經貼在那裡半年了。
萬卷的熱度,就是把這個直覺變成一個 0 到 100 的分數。
熱度分數看五件事
| 看什麼 | 佔比 | 白話 |
|---|---|---|
| 幾家書店在榜上 | 30% | 三家都有 > 兩家 > 一家。這是最重要的一項,因為它最難被單一書店的促銷灌水。 |
| 名次多前面 | 25% | 第 1 名接近滿分,第 100 名接近 0。只算有上榜的書店。 |
| 這七天衝多快 | 20% | 從第 80 名衝到第 10 名,比一直待在第 5 名更「熱」。 |
| 是不是新書 | 15% | 出版三個月內有加分,越新加越多。不加的話,新書永遠打不贏老牌暢銷書。 |
| 最近三十天在榜幾天 | 10% | 連續在榜的書比只上榜一天的穩。 |
最後還有一個折扣:在榜上超過半年的書,熱度會打七折;超過十個月打五折。不然像《原子習慣》這種一紅好幾年的書會永遠佔住前十名,你每次來看到的都是同一批。這些書我們另外放在長銷榜。
給想看公式的人
Heat = 100 × decay × ( 0.30 × 廣度 + 0.25 × 名次 + 0.20 × 動能 + 0.15 × 新鮮度 + 0.10 × 持續 )
廣度 = 上榜書店數 ÷ 今天有資料的書店數
名次 = 各上榜書店 (101 − 名次) ÷ 100 的平均
動能 = 七天對數名次差,正規化到 0–1
新鮮度 = max(0, 1 − 出版天數 ÷ 90)
持續 = 近 30 天上榜天數 ÷ 30
decay = 1.0(近一年在榜 ≤ 180 天)/ 0.7(≤ 300 天)/ 0.5(> 300 天)
廣度 = 上榜書店數 ÷ 今天有資料的書店數
名次 = 各上榜書店 (101 − 名次) ÷ 100 的平均
動能 = 七天對數名次差,正規化到 0–1
新鮮度 = max(0, 1 − 出版天數 ÷ 90)
持續 = 近 30 天上榜天數 ÷ 30
decay = 1.0(近一年在榜 ≤ 180 天)/ 0.7(≤ 300 天)/ 0.5(> 300 天)
動能:這七天衝多快
竄升榜看的是「動能」。它比較一本書七天前和今天的名次,但有個小心機:越前面的名次,每前進一名越難。從第 50 名到第 20 名,和從第 5 名到第 2 名,在我們的算法裡是差不多的成就。七天前還沒進榜的書,當作第 101 名起算。
動能需要至少兩週的紀錄才算得準。萬卷剛開站、或某家書店的資料剛接上時,動能會先不顯示,竄升榜也會先關著。
先把紙本和電子書合起來
同一本書的紙本和電子書有不同的 ISBN(就是書背後那串條碼號)。Readmoo 賣的是電子書,博客來、金石堂榜上的多半是紙本——不先合併,同一本書會被當成兩本,永遠算不出「三家都在榜」。所以我們用書名、作者、出版社把它們認成同一本,所有分數都是合併後算的;書籍頁下方會列出各個版本。
標籤是什麼意思
| 標籤 | 條件 |
|---|---|
| 升竄升 | 七天內名次以對數計上升幅度 ≥ 0.7,且至少一通路進 Top 50 |
| 爆爆款新書 | 出版 60 天內,兩個以上通路進 Top 30 |
| 跨跨通路 | 所有有資料的通路同時進 Top 20 |
| 新新上市 | 出版 7 天內 |
| 新新書 | 出版 30 天內 |
| 熱新書熱賣 | 出版 60 天內,任一通路進 Top 50 |
| 上上升中 | 七天內名次上升幅度 ≥ 0.3 |
| 初初登榜 | 近 30 天內第一次進榜 |
| 長長銷 | 近一年上榜超過 180 天 |
| 回回鍋 | 離榜 60 天以上後重新進榜 |
| 讀讀得完 | Readmoo 閱讀榜名次優於暢銷榜:買了也真的在讀 |
熱度不是什麼
- 不是品質分數。熱度 90 的書不一定比熱度 40 的好,只是現在更多人在買。
- 不是我們的推薦。它完全由公式算出來,沒有人手動調整,也不能花錢買。
- 不是即時的。每天早上更新一次,頁面頂端會寫資料截止日。
我們知道的限制
- 三家書店暫時是等權重。博客來的量最大、Readmoo 只有電子書讀者,理論上該有不同權重,但我們想先累積幾個月資料再決定,不憑感覺調。
- 書店頁面上偶爾抓不到 ISBN,書名又對不準的書,我們寧可先不算,也不猜。猜錯會污染整個榜。
- 只涵蓋三家書店與國圖預告。誠品、Kobo 之後再加。
版本紀錄
| 2026-09-20 | 第一版。權重 30 / 25 / 20 / 15 / 10。 |