台灣行業排名

排名方法論

這一頁是本站的核心。排名只使用可驗證的客觀事實,不使用任何主觀評分、 使用者評論或第三方口碑。以下數字全部直接讀自計算時實際使用的設定表, 不是另外手抄的副本。

本站衡量的是什麼:經營的穩定程度與合規紀錄。不是餐點好不好吃、 服務態度好不好、CP 值高不高。一家開了 30 年、沒有任何食安違規的老店, 在本站會得到高分——這只代表它撐得久且沒有被開罰,不代表你會喜歡它。

一、四個維度與權重

維度權重意義原始指標
經營穩定度
longevity
40%撐得久是最誠實的信號營業月數、狀態中斷次數
合規紀錄
compliance
30%有沒有食安違規紀錄違規次數 × 嚴重度 × 時間衰減、食品業者登錄狀態
營運正式度
formality
15%是否為正規經營主體資本額、使用統一發票、組織別
商圈活力
cluster
15%所在商圈的生命力同業聚集度、商圈存活率

二、各維度的原始值怎麼算

經營穩定度

months = 設立日期至本期的月數 中斷次數 = 曾自開放資料消失後又重新出現的次數 raw_longevity = ln(1 + months) − 0.5 × 中斷次數

取自然對數,是為了避免五十年老店把所有新店壓成同一個分數。 月數從 12 變成 24 的意義,遠大於從 480 變成 492。

合規紀錄

penalty = Σ(嚴重度權重 × 時間衰減) 對每一筆違規紀錄 嚴重度權重:1 → 1.0 2 → 3.0 3 → 8.0 時間衰減:decay(m) = 0.5 ^ (m ÷ 24) ← 24 個月半衰期 bonus = 有有效的食品業者登錄 ? 1.0 : 0.0 raw_compliance = bonus − penalty

三年前的輕微標示缺失幾乎不影響分數,上個月的食安危害則影響很大。 這個時間衰減不只是統計上的設計,也是本站認為合理的立場:不該讓一次舊違規永久釘死一家店

營運正式度

raw_formality = 0.5 × ln(1 + 資本額 ÷ 10000) + 0.3 × (使用統一發票 ? 1 : 0) + 0.2 × 組織別權重

組織別權重:股份有限公司 1.0 / 閉鎖性股份有限公司 1.0 / 有限公司 0.8 / 外國公司 0.8 / 有限合夥 0.6 / 合夥 0.5 / 獨資 0.3 / 其他 0.3

這個維度對小攤商天然不利,因此權重只給15%, 而且一律在同業內標準化——牛肉湯只跟牛肉湯比, 路邊攤不會拿去跟連鎖餐飲比資本額。

商圈活力

zone_peer_density = 該商圈同分類的營業中店家數 zone_survival = 36 個月前該商圈的店家中至今仍營業的比例 raw_cluster = 0.4 × ln(1 + zone_peer_density) + 0.6 × zone_survival × 5

沒有落入任何商圈聚類的店家,以其所在行政區作為退回的比較單位。 系統上線未滿 36 個月時,存活率會改用 現有最早的快照計算,並在資料中記錄實際使用的回看月數; 完全沒有歷史可用時,該項以當期各商圈的平均值代入, 而不是給 0——那會把「剛成形的新商圈」誤判成「快死掉的商圈」。

三、標準化與總分

每個維度都在 (分類 × 地區範圍)的群組內轉成 0–100 的百分位, 再依權重加總。用百分位而不是 z-score,是因為資本額之類的變數有極端長尾, z-score 會被少數大企業扭曲。

總分 = 0.40 × 經營穩定度 + 0.30 × 合規紀錄 + 0.15 × 營運正式度 + 0.15 × 商圈活力

並列時怎麼給分

百分位採「並列組取中點」:一個並列組拿到的是該組在分佈中所佔區間的中點, 而不是最低名次。

這件事有實際後果。以商圈活力為例,同一個商圈同一個分類的所有店家, 原始值必然完全相同。若採用取最低名次的演算法,這一整組會全部拿到0 分——那不是「這些店商圈活力差」,而是演算法的假象。 取中點的話,全體並列會得到 50 分,也就是「這個維度在這組裡分不出高下」, 那才是資料真正在說的話。

四、樣本不足時的退回機制

同區同業樣本太少時,百分位沒有意義——三家店只會得到 0、50、100 三種分數。 因此依序退回更大的比較範圍:

同區同業 ≥ 20 家 → 用(分類 × 行政區)比較 退回層級 0 否則同市同業 ≥ 20 家 → 用(分類 × 縣市)比較 退回層級 1 否則 → 用(分類 × 全國)比較 退回層級 2 全國同業仍 < 5 家 → 不產生任何分數,只顯示店家資料頁
產品規則:同組樣本數少於 20 家的榜單不對外顯示排名名次,只顯示店家清單。 寧可少一個榜單,也不要一個「共 3 家、排名第 1」的笑話。 每個店家頁與榜單頁都會標示該分數實際使用的比較範圍與樣本數。

五、違規嚴重度怎麼判定

稽查資料只給違規事由的文字敘述,嚴重度是本站依下列規則判定的。 這是主觀判斷,因此公開規則本身。由上往下比對,先命中者勝; 全部沒命中時給第 2 級。

嚴重度類型比對關鍵字
3致病菌與食品中毒食品中毒、病原性、沙門氏、金黃色葡萄球、仙人掌桿菌、李斯特菌、大腸桿菌
3有害物質農藥殘留、動物用藥、重金屬、塑化劑、工業用、非法添加、摻偽、假冒、三聚氰胺
3逾期食品逾有效日期、過期、逾保存期限、回收銷毀、下架
3添加物超標防腐劑、漂白劑、著色劑、甜味劑、殺菌劑、二氧化硫、苯甲酸、己二烯酸
2未依法登錄未辦理登錄、未登錄、未辦理食品業者登錄
2場所衛生缺失環境衛生、作業場所、病媒、老鼠、蟑螂、清潔、地面、天花板、排水
2人員衛生缺失從業人員、健康檢查、手部、衣帽、口罩、工作服
2器具容器缺失器具、容器、包裝材料、洗滌、消毒
2衛生標準不符生菌數、衛生標準、微生物
1標示不符中文標示、標示不全、標示不符、標示規定、營養標示、過敏原
1廣告不實廣告、誇大、不實、涉及療效
1文件紀錄缺失文件、紀錄、保存期限文件、追溯追蹤、流向

六、商圈是怎麼畫出來的

商圈不是行政區劃,是用店家座標跑 DBSCAN 密度聚類產生的: 150 公尺範圍內至少 15 家店才成立一個商圈。只有定位到門牌或路段層級的 店家會參與聚類——定位只到行政區質心的店會全部疊在同一個點上, 那會生出不存在的假商圈。

聚類結果由人工命名(「國華街商圈」「保安路商圈」)。 未命名的商圈不會出現在商圈榜。

七、已知限制

  1. 稅籍資料涵蓋不到無登記的攤商,夜市小攤可能整批缺漏。
  2. 統一編號對應的是營業主體而不是「一家店」。 一個統編開三家分店會被當成一筆資料。
  3. 合規資料的完整度依縣市而異,部分縣市衛生局的開放資料更新極不規律。 沒有違規紀錄不等於從未被稽查。
  4. 細分類(牛肉湯、鱔魚意麵…)無法只靠稅務行業代號判斷, 需要用店名關鍵字推論,會有誤判。每家店的分類依據與可信度 都列在該店的店家頁上,可據以申訴。
  5. 本系統衡量的是「經營穩定與合規」,不是「好不好吃」。

八、資料有錯怎麼辦

每個店家頁都列出了該店分數的完整計算依據與資料出處。 若發現錯誤,請至申訴頁面提出, 我們會於 7 個工作日內回覆。經確認的資料錯誤會在下一次批次更新時修正; 涉及個資或要求下架者,會在確認後立即處理,不等下一期。