← 台北食安
追風險

被系統判成高風險之後,真的會多查嗎?

台北已有差別稽查頻率與必查名單。真正難驗證的是:哪個風險訊號讓哪一次稽查提前、加深,最後又有沒有降低再犯。

前一輪已經確認:台北的稽查並非平均分配,制度有明確風險導向。真正要追的是,risk signal 被系統記住後,有沒有真的改變人力怎麼花。

第一個答案其實很明確:有些風險會直接改變稽查頻率

北市公開資料長期採風險管理原則,對不同高風險業態訂不同 cadence。近年的公共安全方案曾要求餐盒食品、學校午餐等高暴露業態提高查核頻率;20 桌以上筵席餐廳與大型旅宿附設餐廳,也曾被要求每季至少稽查 1 次。雲端廚房則另有專案,每年至少稽查 1 次,不符規定會加強列管。
雲端廚房風險管理說明

過往違規也會改變 follow-up。113 年施政績效報告明載,114 年把食品衛生複查不合格業者列入必查名單,一年至少稽查 1 次;114 年績效報告再記錄,前一年 24 家複查不合格業者已全部追蹤稽查。
113 年施政績效報告 · 114 年施政績效報告

所以「risk signal 有沒有 operational consequence」不是完全不知道。至少業態風險與複查失敗,都有證據顯示會改變後續查核。

但我們卡在下一層:哪個 signal 造成哪一次 inspection?

IMAP 個別業者公開歷史目前主要只有「歷次稽查日期」與「歷次稽查結果」。它沒有同步告訴市民:這次是例行、專案、檢舉、輿情、年度必查,還是內部 risk-priority 排程;也沒有公開當時 risk tier、要求多久內再查、是否逾期。

因此看到某家店兩個月後又被查,不能直接說「因為上次違規,所以系統提高了它的稽查優先度」。也可能是新的檢舉、專案或原本就固定的業態 cadence。

真正的 audit seam:action 看得到,signal-to-action attribution 看不到。制度可能真的在把資源往高風險移,但公開資料不足以讓外界驗證這個 routing。

拿 20 桌以上筵席餐廳試算,問題馬上變具體

臺北市衛生局自己的月統計顯示,114 年這類餐廳每月現有家數約 96–102 家,12 月為 99 家;政策要求每季至少稽查 1 次。同一個局的年度績效報告則寫累計查核 374 家次,量級上接近「約 100 家 × 4 季」。

但這仍不能算 coverage:374 是「家次」,可能同一家重複;衛生局月統計的「稽查家數」12 個月加總是 302,同一家跨月也可能重複;而列管母體本身每月又會變。這因此不是中央與地方數字互相矛盾,而是同一機關不同統計單位之間需要被 reconcile。公開資料目前仍無法回答「約 100 家裡,有多少家四季都完成 required inspection、多少逾期」。

這是很乾淨的 measurement seam:工作量看起來接近政策需要的量級,不等於能驗證每一家 required cadence 都完成。反而「前一年複查不合格 24 家、下一年追蹤 24 家」是較乾淨的 cohort KPI,因為分母和完成數是同一批業者。

再往 115 年走,問題反而更具體

臺北市衛生統計資料查詢系統目前已有 115 年 1–6 月資料,表格明載資料來源是臺北市政府衛生局。同一個「20 桌以上筵席餐廳」類別,1–3 月每月現有家數都是 104 家,稽查家數分別是 26、23、46,三個月月度家數加總 95;4–6 月現有家數為 104、104、103,稽查家數分別是 13、30、48,三個月月度家數加總 91。
臺北市衛生局|食品衛生管理工作月統計

115 Q1 月度稽查家數加總26 + 23 + 46 = 95(跨月可能重複,不是季度覆蓋率分子)115 Q1 每月現有家數104 / 104 / 104(不是固定季度分母)115 Q2 月度稽查家數加總13 + 30 + 48 = 91(跨月可能重複,不是季度覆蓋率分子)115 Q2 每月現有家數104 / 104 / 103(不是固定季度分母)

這兩組數字值得問,但不能直接把 95 或 91 除以 104 當成季度 coverage。同一家可能跨月被重複計入;業者可能在季中加入或退出列管;而且我們目前找到的文件明確說的是 114 年開始採每季至少一次,還沒有找到 115 年重新確認相同 cadence 與適用範圍的文件。

另一個重要反證是:114 年同一個「稽查家數」欄位 12 個月加總為 302,若只看月度活動量的季均量級約 75.5;相較之下,115 年上半年 95、91 不是偏低的數字。這不排除季節差異,也不是季度 unique coverage 的直接比較;它只更提醒我們,月度家數加總不能直接拿來判斷逐家季度覆蓋。

所以 95、91 不是漏查證據。它們真正提供的是一個可驗證的 reconciliation question:公開的月度活動量,要怎麼和「逐家、逐季完成」的政策要求接起來?

我們真的試著把這張表接起來,卡點在 identity

臺北食材登錄 open data 有公司名稱與 company identity,但沒有「20 桌以上筵席餐廳」cohort 欄位;IMAP 有穩定的食品業者登錄字號、稽查日期與結果,但進階篩選也沒有這個 cohort。因此公開資料目前無法完成最關鍵的一個 join:這一家本季本來該被查 → 它實際哪天被查。
臺北市食材登錄平台 open data · IMAP 食品業者查詢

我們又用另一個比較乾淨的 cohort 做控制。官方 114 年績效報告說,113 年有 24 家「複查不合格」業者,114 年 24 家都完成追蹤;但現行 IMAP 用 2024 全年+「複查不合格」查詢,無法重建那 24 家名單。這不代表 2024 沒有複查不合格,也不代表市府沒有紀錄;它只表示現在的 public IMAP 不能當成完整歷史 cohort ledger。
重現 2024 複查不合格查詢

所以缺的不是更多總數。真正缺的是 stable cohort identity:誰在這個母體、哪個期間應查、實際何時完成,以及後來有沒有再犯。

透明不等於把完整風險演算法公開

把每個權重、每家店的 risk score 全公開,可能造成 gaming,也可能讓執法模型失去調整空間。真正需要的是 aggregate accountability,而不是把內部模型全部攤開。

Risk tier各風險層有多少業者Expected cadence各層多久應查一次Coverage實際完成率與逾期率Follow-up latency風險訊號後多久再次稽查Outcome6/12 個月再犯與風險層升降

這樣才能回答真正的資源問題:有限稽查人力有沒有被 risk model 推到最需要的地方,以及那些更密集的查核最後有沒有換來較低的 recurring failure。

這一輪先停在這裡,不把不知道寫成失敗

目前能確認的是:風險導向存在、不同 cohort 的查核頻率確實不同、前一年複查不合格者也有 mandatory follow-up;不能確認的是逐店季度完成率、逾期名單與 6/12 個月 recurrence。這些未知不是「市府拒絕提供」——我們目前還沒有向市府索取這份資料。

Walkingbook 先把現有公開證據做到足夠清楚,讓市民實際閱讀、使用,再看大家真正想追的是「有沒有逐家完成」、「多久才查到」,還是「密集查了以後再犯有沒有下降」。有了真實問題,再去問 holder,索取範圍會更小,也更接近公共需要。

目前理解:政策已經把高風險業者分出來,也公布不少稽查工作量;但公開資料還缺一條能把 required cohort 和逐次 inspection 接起來的 ledger,所以市民暫時無法獨立驗證 cadence 是否逐家完成。

我們接下來看:這個問題對市民真正重要的是 coverage、速度,還是 recurrence?哪一個被真實使用證明值得追,再把缺的 evidence 精準帶回制度。

本文只回答這一個問題。完整原始資料、方法與跨篇證據保留在系列證據紀錄。