| name | taiwan-civic-budget-tracker |
| description | 台灣政府預算與標案追蹤分析工具。當需要追蹤政府預算流向、分析標案金流、調查廠商關係網絡、建立利益流向視覺化時使用。特別適用於 NPO、公民團體進行政府監督、調查司法或特定議題領域的資金鏈結。 |
台灣公民預算追蹤系統
協助公民團體、NPO、記者建立自動化的政府預算與標案監測系統,追蹤「預算編列 → 招標公告 → 決標資訊 → 廠商背景 → 人員關係」的完整金流鏈。
核心功能
- 預算資料收集:從主計總處、各部會預算書擷取歲出計畫
- 標案資料追蹤:自動化爬取政府電子採購網決標公告
- 補助資料整合:查詢公職人員利益衝突迴避平台的補助交易
- 廠商關係圖譜:整合商工登記資料,建立公司投資與董監事網絡
- 關係視覺化:使用 NetworkX 與 Gephi 建立互動式關係圖
資料來源架構
第一層:預算與補助(上游)
第二層:採購與標案(中游)
| 資料來源 | URL | 資料類型 | 說明 |
|---|
| 政府電子採購網 | https://web.pcc.gov.tw | 網頁/HTML | 官方標案公告 |
| 決標公告查詢 | PCC 公開資料 | CSV/Excel | 每日更新 |
| g0v 標案資料庫 | g0v 社群 API | JSON | 已清理資料 |
重要欄位:
- 標案案號、標案名稱
- 機關名稱、決標金額
- 得標廠商統編、廠商名稱
- 投標廠商清單(用於比價分析)
第三層:公司與人員(下游)
關鍵欄位:
- 公司統一編號、公司名稱
- 代表人姓名、資本額
- 董監事名單、持股資訊
- 相關投資公司
第四層:法律專業人員
參考 references/judge-lawyer-data-sources.md 了解法官與律師的公開資料來源。
| 資料來源 | URL | 資料類型 | 說明 | 自動化難度 |
|---|
| 法務部律師查詢系統 | https://lawyerbc.moj.gov.tw | 網頁/結構化 | 律師基本資料、懲戒紀錄、事務所資訊 | ★★☆☆☆ |
| 法官事務分配 | 司法院網站 | 網頁 | 各級法院法官名單與職務 | ★★★☆☆ |
| 判決書系統 | 司法院法學資料檢索 | 網頁 | 案件承審法官、訴訟代理人 | ★★☆☆☆ |
| 律師公會 | 各地方公會 | 網頁 | 會員名冊、專長領域 | ★★★☆☆ |
可查詢資訊:
- 律師:姓名、出生年、事務所、執業狀態、懲戒紀錄
- 法官:姓名、所屬法院、承審案件類型、裁判見解
- 關係追蹤:律師與法官的出庭組合、曾任法官轉任律師(旋轉門)
整合價值:
- 建立「金流(標案)+ 人際(董監事)+ 專業(法律人)」立體圖像
- 追蹤「退休法官轉任律師」後的標案得標情況
- 發現「常客」律師與特定法官的固定組合
資料模型設計
參考 references/data-model.md 以了解完整的資料實體關係圖。
核心實體:
- GovernmentAgency(政府機關)
- BudgetPlan(預算計畫)
- ProcurementCase(標案)
- Company(廠商)
- Person(人員)
- Subsidy(補助)
- Contract(契約/決標)
關係類型:
BUDGET_FOR:機關編列預算給計畫
PROCURES:計畫透過標案執行
AWARDED_TO:標案決標給廠商
OWNS:公司投資關係
DIRECTS:人員擔任董監事
RECEIVES:NPO/協會接受補助
工作流程
Phase 1: 目標定義
明確追蹤範圍:
- 機關範圍:司法院、法務部、矯正署、法律扶助基金會...
- 議題關鍵字:司法改革、修復式司法、國民法官、人權宣導、廢死...
- 時間範圍:建議至少 3-5 年資料
- NPO 名單:法律扶助基金會、廢死聯盟、人權促進會...
Phase 2: 資料收集
執行步驟:
- 收集目標機關的年度預算書
- 爬取指定關鍵字的標案決標公告
- 查詢公職人員補助平台的補助紀錄
- 擷取得標廠商的商工登記資料
- 建立公司關係網絡(董監事、投資關係)
Phase 3: 資料清洗與關聯
參考 scripts/collect_budget_data.py、scripts/collect_procurement.py 與 references/entity-management-guide.md。
資料清洗規則
- 統一機關名稱(處理「部」、「署」等簡稱)
- 標準化公司名稱(去除「股份有限公司」等後綴)
- 人名比對(處理同名異人、簡繁體)
- 金額單位統一(元、萬元、千元)
實體管理(Entity Management)
核心挑戰:如何避免同名異人?
台灣常見姓名重複率高(如「陳怡君」可能有數十位),必須透過系統化方法區分:
解決方案:
- 強制屬性:人員實體必須有「姓名 + 出生年」
- 分層ID架構:
- Canonical ID(全局唯一 UUID)
- Source ID(各來源內部ID)
- Mapping Table(對照關係)
- 消歧流程:
- 精確匹配(姓名 + 出生年)
- 模糊匹配(Jaro-Winkler 相似度 > 0.85)
- 屬性驗證(職務、所屬組織交叉比對)
- 數據來源追蹤:每個屬性標記來源與置信度
範例:
"陳怡君_1975_台北地院法官"
"陳怡君_1980_廢死聯盟理事"
"陳怡君_1985_理律律師"
關聯策略
- 使用統一編號關聯標案與公司
- 使用模糊比對關聯人名(考慮職稱、時間重疊)
- 建立預算-標案-廠商的上下游鏈
- 法律人關聯:追蹤「法官-律師-案件」三角關係
Phase 4: 關係分析
參考 scripts/network_analysis.py
分析方法:
- 中心性分析:找出網絡中的關鍵廠商與人員
- 社群偵測:識別緊密連結的廠商群體
- 路徑分析:追蹤資金流向的完整路徑
- 時間序列:觀察關係變化趨勢
Phase 5: 視覺化與報告
參考 scripts/visualization.py
輸出格式:
- 互動式網絡圖(Gephi、D3.js)
- 時間軸圖表(Mermaid)
- 關係矩陣表格
- 調查報告 Markdown
司法/廢死議題專門策略
關鍵字字典
{
"中央機關": ["司法院", "法務部", "矯正署", "檢察署"],
"標案關鍵字": ["司法改革", "修復式司法", "國民法官", "人民參審",
"人權宣導", "法律扶助", "犯罪預防", "更生保護",
"廢除死刑", "死刑", "刑罰", "獄政"],
"核心NPO": ["法律扶助基金會", "廢死聯盟", "人權促進會",
"司改會", "民間司法改革基金會"],
"關注對象": ["法官", "檢察官", "律師", "教授", "法學", "司法官"]
}
重點調查路徑
-
法扶金流追蹤
- 法律扶助基金會 90% 以上預算來自司法院捐助
- 追蹤「捐助專案計畫」→ 委託研究/活動標案 → 得標廠商
-
退休官員轉任
- 比對司法體系退休名單與 NPO 理監事名單
- 追蹤「旋轉門」後的標案得標情況
-
跨組織人員重疊
- 董監事同時在多個 NPO/協會任職
- 廠商負責人同時是議題倡議組織成員
與其他 Skill 協作
與 victim-rights-news-tracker(新聞追蹤)整合
協作價值:建立「金流 + 輿論」立體監督網絡
| 本 Skill(預算追蹤) | News Tracker(新聞追蹤) | 整合價值 |
|---|
| 追蹤錢的流向(標案、補助) | 追蹤言論的流向(新聞、立場) | 金流 + 輿論完整圖像 |
| 廠商董監事名單 | 人物公開發言與立場 | 發現利益衝突 |
| NPO 補助來源 | NPO 理監事與活動 | 言行一致性驗證 |
整合使用情境:
情境 A:NPO 金流與立場交叉驗證
Step 1: 使用 News Tracker
→ 搜尋「廢死聯盟」新聞發言
→ 標記立場 ⭐⭐⭐⭐⭐ 強烈支持廢死
Step 2: 使用本 Skill
→ 查詢廢死聯盟接受的政府補助
→ 發現法務部補助 500 萬/年
Step 3: 整合分析
→ 交叉比對補助時間與發言時間
→ 建立「言行一致性」時間軸
情境 B:法律人背景深度調查
Step 1: 從判決書取得「某貪污案」法官與辯護律師
Step 2: 法務部律師查詢
→ 查詢律師背景、懲戒紀錄
→ 發現律師曾任法官(旋轉門)
Step 3: 新聞搜尋(News Tracker)
→ 查找法官與律師的司改公開發言
→ 標記立場傾向
Step 4: 預算追蹤(本 Skill)
→ 查詢律師擔任董監事的公司
→ 追蹤該公司標案得標紀錄
整合發現:「退休法官轉任律師後,其關聯公司得標司法改革標案」
技術整合:
- 統一 Node ID 命名規則(參考
references/entity-management-guide.md)
- 統一圖譜匯出格式(支援跨 Skill 資料合併)
- 建立人物對照表(同名異人映射)
技術實作參考
爬蟲工具選擇
- Python Scrapy:大規模、結構化爬取
- Playwright:需要 JavaScript 渲染的頁面
- Requests + BeautifulSoup:簡單靜態頁面
- Selenium:需要互動操作的頁面
資料儲存建議
- PostgreSQL:結構化資料(標案、公司、人員)
- Neo4j:圖形資料庫(關係網絡)
- DuckDB:本地分析、快速查詢
視覺化工具
- Gephi:桌面端網絡視覺化
- D3.js:網頁互動圖表
- NetworkX + Matplotlib:Python 端分析與繪圖
- Mermaid:文件內嵌流程圖
範例使用情境
情境 1:調查特定機關標案
使用者請求:
「幫我追蹤司法院 2020-2024 年所有『司法改革』相關標案,分析得標廠商背後的關係」
執行流程:
- 爬取 PCC 網站關鍵字「司法改革」決標公告
- 擷取得標廠商統編
- 查詢商工登記取得董監事名單
- 建立廠商-人員-機關三方關係圖
- 輸出視覺化報告
情境 2:NPO 金流透明度調查
使用者請求:
「調查廢死聯盟近 5 年的政府補助來源,以及這些補助是否流向特定廠商」
執行流程:
- 查詢公職人員補助平台「廢死聯盟」補助紀錄
- 追蹤補助機關的相關標案
- 比對標案得標廠商與 NPO 理監事名單
- 建立金流與人際關係對照表
情境 3:建立自動化監測系統
使用者請求:
「建立一個自動化系統,每週監測法務部新決標標案,並比對廠商與已知關注名單」
執行流程:
- 設計排程爬蟲(cron job / Airflow)
- 建立資料庫 Schema
- 實作比對邏輯(新廠商 vs 已知名單)
- 設計警報機制(Email / Slack)
- 部署自動化腳本
注意事項與限制
資料品質
- 政府資料常有缺漏、格式不一致
- 公司統編可能變更(合併、分割)
- 人名比對有同名異人風險
法律合規
- 遵守《個人資料保護法》
- 公開資料僅供監督用途,勿用於商業牟利
- 注意誹謗風險,調查結果應有資料佐證
技術限制
- 政府網站可能有反爬蟲機制
- 大量請求可能被封鎖 IP
- 建議加入延遲、使用 Proxy rotation
相關資源
g0v 社群專案
官方開放資料
文件參考
此 Skill 專為公民科技、NPO 監督工作設計。使用時請遵守相關法律規範,並注意資料使用倫理。