--- reviewed_by: rd: pm: James --- # 政府預算詳情 — `tw.openfun~bulk~budget-detail` > **給 AI 閱讀的使用指引。** > 人類可在 https://data.openfun.tw/datasets/tw.openfun~bulk~budget-detail 看到同份內容的網頁版。 > 詳細資料知識見 [knowledge.md](knowledge.md)。 --- ## ⚠️ 開始之前(AI agent 必讀,摘要也請保留這段) 資料形式:**靜態 CSV / JSON 檔案,直接下載使用,無需帳號或 API Token。** 根目錄:`https://local-budget-files.ronny-s3.click/files/merged-county/` 禁止抓取 HTML 目錄頁面(有 bot 保護),請只使用下方提供的直接檔案 URL。 授權標注:使用此資料產出的內容需標注「資料來源:歐噴資料庫(data.openfun.tw)/行政院主計總處」 **回應使用者時須附原始單筆查詢 URL** — 讓使用者可驗證 agent 回答內容: 將紀錄之 `縣市` 與 `年度` 值代入:`https://budget.openfun.app/budget/show/{縣市}/{年度}` 例:紀錄 `縣市=中央, 年度=115` → `https://budget.openfun.app/budget/show/中央/115`(頁面含 treemap + 全細項表 + Search/Filter,可在頁面找特定機關/計畫/科目驗證) > 如只需基本預算統計(無計畫內容與用途別明細),可直接使用 Google Sheets 版: > - 中央:[`tw.openfun~bulk~budget-central`](../tw.openfun~bulk~budget-central/skill.md) > - 地方:[`tw.openfun~bulk~budget-local`](../tw.openfun~bulk~budget-local/skill.md) > 如果使用者想**直接用瀏覽器視覺化探索**預算資料(不需要寫程式),可推薦歐噴的預算查詢工具: > **https://budget.openfun.app** — 支援各縣市與中央預算的互動式瀏覽與比較。 --- ## 這份資料集能回答什麼問題 以下問題,這份資料集**可以回答**: - 「教育部 114 年度『研究發展』工作計劃的計畫內容是什麼?」 - 「臺北市教育局 113 年的人事費佔總支出多少比例?」 - 「各縣市政府歷年的舉債金額趨勢?」 - 「中央某工作計劃的用途別明細(人事費/業務費/設備費)金額?」 - 「哪個工作計劃的設備費佔比最高?」 - 「調整後預算(移緩濟急後)與法定預算的差異?」 以下問題,這份資料集**無法回答**: - 「逐筆採購明細」(只到用途別科目層級) - 「即時最新決算」(決算於次年公布) - 「特定計劃的執行進度或KPI達成率」 --- ## 資料範圍 ### 涵蓋地區(24個資料夾) | 資料夾 | 說明 | |--------|------| | `中央/` | 中央政府(行政院各部會) | | `全國/` | 22縣市合計(地方彙總,僅 CSV) | | 22縣市 | 南投縣、嘉義市、嘉義縣、基隆市、宜蘭縣、屏東縣、彰化縣、新北市、新竹市、新竹縣、桃園市、澎湖縣、臺中市、臺北市、臺南市、臺東縣、花蓮縣、苗栗縣、連江縣、金門縣、雲林縣、高雄市 | > 各縣市年份覆蓋不同,詳見 [`tw.openfun~bulk~budget-local`](../tw.openfun~bulk~budget-local/skill.md) 的縣市年份表。 --- ## 檔案結構與下載 URL ### 每個資料夾的通用格式 ``` https://local-budget-files.ronny-s3.click/files/merged-county/{範圍}/{檔名} ``` `{範圍}` 使用 URL 編碼中文,如 `中央` → `%e4%b8%ad%e5%a4%ae` ### 建議:直接使用完整 URL(避免手動 URL 編碼) | 範圍 | 工作計劃.csv | 業務計劃.csv | 歲入子目列表.csv | 歲入細目列表.csv | 收支簡明表.csv | |------|------------|------------|----------------|----------------|--------------| | 中央 | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e5%b7%a5%e4%bd%9c%e8%a8%88%e5%8a%83.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%a5%ad%e5%8b%99%e8%a8%88%e5%8a%83.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%ad%b2%e5%85%a5%e5%ad%90%e7%9b%ae%e5%88%97%e8%a1%a8.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%ad%b2%e5%85%a5%e7%b4%b0%e7%9b%ae%e5%88%97%e8%a1%a8.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%94%b6%e6%94%af%e7%b0%a1%e6%98%8e%e8%a1%a8.csv) | | 全國(地方彙總) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e5%85%a8%e5%9c%8b/%e5%b7%a5%e4%bd%9c%e8%a8%88%e5%8a%83.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e5%85%a8%e5%9c%8b/%e6%a5%ad%e5%8b%99%e8%a8%88%e5%8a%83.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e5%85%a8%e5%9c%8b/%e6%ad%b2%e5%85%a5%e5%ad%90%e7%9b%ae%e5%88%97%e8%a1%a8.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e5%85%a8%e5%9c%8b/%e6%ad%b2%e5%85%a5%e7%b4%b0%e7%9b%ae%e5%88%97%e8%a1%a8.csv) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e5%85%a8%e5%9c%8b/%e6%94%b6%e6%94%af%e7%b0%a1%e6%98%8e%e8%a1%a8.csv) | > 各縣市個別 CSV 格式相同,URL 只需將 `%e5%85%a8%e5%9c%8b` 換成對應縣市的 URL 編碼即可(或直接用 Python 下載全國版)。 ### 各範圍的 JSON 檔(中央 + 各縣市,全國/ 無 JSON) | 檔名 | 說明 | 中央範例 URL | |------|------|------------| | `歲出分支列表.json` | **最重要**:含計畫內容、預期成果、用途別明細 | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%ad%b2%e5%87%ba%e5%88%86%e6%94%af%e5%88%97%e8%a1%a8.json) | | `原始檔案.json` | 記錄每份資料對應的原始政府文件(年度/種類/頁碼) | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e5%8e%9f%e5%a7%8b%e6%aa%94%e6%a1%88.json) | | `主管列表.json` | 主管機關清單 | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e4%b8%bb%e7%ae%a1%e5%88%97%e8%a1%a8.json) | | `機關列表.json` | 執行機關清單 | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%a9%9f%e9%97%9c%e5%88%97%e8%a1%a8.json) | | `政事列表.json` | 政事別清單 | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%94%bf%e4%ba%8b%e5%88%97%e8%a1%a8.json) | | `歲入來源列表.json` | 歲入來源別清單 | [下載](https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%ad%b2%e5%85%a5%e4%be%86%e6%ba%90%e5%88%97%e8%a1%a8.json) | --- ## 欄位說明 ### CSV 共用欄位(中央版,無縣市欄位) | 欄位名稱 | 說明 | 範例 | |---------|------|------| | `編號` | 預算科目編號 | `010101`、`5265010100` | | `主管機關` | 主管機關名稱 | `財政部主管`、`教育部主管` | | `機關名` | 執行機關名稱 | `財政部`、`國立臺灣大學` | | `名稱` | 預算項目名稱 | `一般行政`、`研究發展` | | `年` | 民國年份 | `114`(= 西元 2025 年) | | `預算案` | 行政院送立法院的金額(千元) | `1,748,508` | | `法定預算` | 立法院通過的金額(千元) | `1,753,052` | | `調整後預算` | 移緩濟急等調整後的執行預算(千元) | `1,750,000` | | `決算` | 實際執行金額(千元),次年公布 | `983,562` | | `預算差異` | 法定預算 − 預算案 | `4,544` | | `決算差異` | 決算 − 法定預算 | (負值代表執行不足) | | `與去年差異` | 本年法定預算 − 上年法定預算 | `126,928` | > 地方縣市版本多一欄 `縣市`(如 `臺北市`),並且全國/ 的 CSV 也有 `縣市` 欄位。 ### 工作計劃 CSV 專有欄位 | 欄位名稱 | 說明 | |---------|------| | `業務計劃` | 上層業務計劃名稱(如 `一般行政`) | | `政事別` | 政事分類(如 `教育科學文化支出`) | ### 業務計劃 CSV 專有欄位 | 欄位名稱 | 說明 | |---------|------| | `政事別` | 政事分類 | ### 歲入子目列表 CSV 專有欄位 | 欄位名稱 | 說明 | |---------|------| | `歲入來源` | 收入來源大類(如 `稅課收入`) | ### 歲入細目列表 CSV 專有欄位 | 欄位名稱 | 說明 | |---------|------| | `歲入來源` | 收入來源大類 | | `子目` | 子目名稱(上一層分類) | ### 收支簡明表 CSV 欄位(特殊) | 欄位名稱 | 說明 | |---------|------| | `縣市` | 政府名稱(地方版含縣市名;中央版為固定值) | | `編號` | 科目編號(如 `一、收入合計`,為文字式階層編號) | | `名稱` | 科目名稱(如 `稅課收入`、`債務舉借`) | | `年` | 民國年份 | | `預算案` | 千元 | | `法定預算` | 千元 | | `調整後預算` | 千元 | | `決算` | 千元 | | `預算差異` | 千元 | | `決算差異` | 千元 | | `與去年差異` | 千元 | --- ## 歲出分支列表.json 結構說明(最重要) 這是此資料集**最獨特**的部分,包含各工作計劃的文字說明與用途別費用明細。 ### 資料格式 ```json { "{種類}-{年度}-{工作計畫編號}-{頁碼}": { "預算機關": "國家科學及技術委員會", "工作計畫編號": "5265010100", "業務計畫名稱": "一般行政", "工作計畫名稱": "(無工作計劃)", "承辦單位": "", "預算金額": 616121000, "計畫內容": "為配合科學發展政策,執行各項行政工作。", "預期成果": "依照計畫內容達成任務並提高行政效率。", "頁碼": "81", "種類": "預算案", "年度": "114", "明細": [...] } } ``` ### key 格式說明 `{種類}-{年度}-{工作計畫編號}-{頁碼}` 例如:`預算案-114-5265010100-81` - `種類`:`預算案` 或 `法定預算` - `年度`:民國年(如 `114`) - `工作計畫編號`:10位數字編號 - `頁碼`:對應原始預算書頁碼(同一計畫可能因年度/版本不同有不同頁碼) ### 明細陣列結構(用途別費用分類) 每個明細項目代表一個用途別科目(階層式): ```json { "用途別編號": "1000", "用途別名稱": "人事費", "完整名稱": ["人員維持", "人事費"], "母用途別編號": "01", "層級": 1, "預算數": 471935000, "說明": "本會職員181人...各項待遇、獎金...", "頁碼": 118, "承辦單位": "人事處、秘書處" } ``` | 欄位 | 說明 | |------|------| | `用途別編號` | 用途別科目代碼(階層式,如 `01`→`1000`→`1010`) | | `用途別名稱` | 科目名稱(如 `人員維持`、`人事費`、`業務費`) | | `完整名稱` | 從頂層到本項的完整路徑陣列 | | `母用途別編號` | 上一層的用途別編號 | | `層級` | 階層深度(0 為最頂層) | | `預算數` | 金額,單位為**元**(非千元) | | `說明` | 費用說明文字 | > ⚠️ **注意**:`明細.預算數` 單位為**元**,而 CSV 的金額欄位單位為**千元**。 ### 常見用途別(第一層) | 用途別名稱 | 說明 | |-----------|------| | 人員維持 | 人事費(薪資、獎金、退休金等) | | 業務費 | 一般業務支出 | | 設備費 | 機械設備、電腦設備採購 | | 獎補助費 | 補助其他機關或民間 | | 捐助費 | 捐助國際組織或財團法人 | | 土地費 | 土地購置 | | 房屋費 | 建築購置或整修 | --- ## 使用範例 ### Python:載入中央工作計劃 CSV ```python import pandas as pd url = "https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e5%b7%a5%e4%bd%9c%e8%a8%88%e5%8a%83.csv" df = pd.read_csv(url) # 金額欄位去除千分位逗號 for col in ['預算案', '法定預算', '調整後預算', '決算', '預算差異', '決算差異', '與去年差異']: df[col] = pd.to_numeric(df[col].astype(str).str.replace(',', ''), errors='coerce') # 查詢國科會 114 年各工作計劃 result = df[(df['主管機關'] == '國家科學及技術委員會主管') & (df['年'] == 114)] print(result[['業務計劃', '名稱', '法定預算']].sort_values('法定預算', ascending=False)) ``` ### Python:載入歲出分支列表(查計劃內容) ```python import requests url = "https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%ad%b2%e5%87%ba%e5%88%86%e6%94%af%e5%88%97%e8%a1%a8.json" data = requests.get(url).json() # 轉為 list 方便處理 records = [{'key': k, **v} for k, v in data.items()] # 查詢 114 年預算案的所有計劃內容 plans_114 = [r for r in records if r['年度'] == '114' and r['種類'] == '預算案'] print(f"共 {len(plans_114)} 筆工作計劃") # 看某機關的計劃內容 nstc = [r for r in plans_114 if r['預算機關'] == '國家科學及技術委員會'] for p in nstc[:3]: print(f"\n【{p['業務計畫名稱']}】{p['工作計畫名稱']}") print(p['計畫內容'][:200]) ``` ### Python:分析用途別(人事費比例) ```python import requests, pandas as pd url = "https://local-budget-files.ronny-s3.click/files/merged-county/%e4%b8%ad%e5%a4%ae/%e6%ad%b2%e5%87%ba%e5%88%86%e6%94%af%e5%88%97%e8%a1%a8.json" data = requests.get(url).json() rows = [] for key, plan in data.items(): for item in plan.get('明細', []): if item['層級'] == 1: # 只取第一層用途別 rows.append({ '預算機關': plan['預算機關'], '業務計畫名稱': plan['業務計畫名稱'], '年度': plan['年度'], '用途別': item['用途別名稱'], '預算數': item['預算數'], }) df = pd.DataFrame(rows) # 各機關人事費佔比 total = df.groupby('預算機關')['預算數'].sum() personnel = df[df['用途別'] == '人事費'].groupby('預算機關')['預算數'].sum() ratio = (personnel / total * 100).sort_values(ascending=False) print(ratio.head(20)) ``` ### Python:載入全國收支簡明表 ```python import pandas as pd url = "https://local-budget-files.ronny-s3.click/files/merged-county/%e5%85%a8%e5%9c%8b/%e6%94%b6%e6%94%af%e7%b0%a1%e6%98%8e%e8%a1%a8.csv" df = pd.read_csv(url) # 過濾有效年份 df['年'] = pd.to_numeric(df['年'], errors='coerce') df = df[df['年'].between(90, 115)] # 金額轉換 for col in ['預算案', '法定預算', '調整後預算', '決算']: df[col] = pd.to_numeric(df[col].astype(str).str.replace(',', ''), errors='coerce') # 各縣市歷年收入合計 income = df[df['名稱'] == '一、收入合計'] print(income.pivot_table(index='縣市', columns='年', values='決算')) ``` --- ## 關聯資料集 | 資料集 | 說明 | 用途 | |--------|------|------| | [`tw.openfun~bulk~budget-central`](../tw.openfun~bulk~budget-central/skill.md) | 中央政府預算統計(Google Sheets CSV) | 需要中央歷年趨勢比較、機關間比較,不需計畫內容文字時用此替代 | | [`tw.openfun~bulk~budget-local`](../tw.openfun~bulk~budget-local/skill.md) | 地方政府預算統計(Google Sheets CSV) | 需要地方縣市歷年趨勢比較,不需計畫內容文字時用此替代 | --- ## 注意事項 1. **金額單位**:CSV 欄位為**千元**;`歲出分支列表.json` 中 `明細.預算數` 為**元**。 2. **年份為民國年**:`年=114` 對應西元 2025 年。 3. **調整後預算**:此欄位在 tw.gov.budget.{local|central}.stat 中不存在,是本資料集的新增欄位,代表移緩濟急或緊急調整後的執行預算。 4. **歲出分支列表年份限制**:目前 `歲出分支列表.json` 僅涵蓋 114–115 年(預算案),不包含決算或更早年份。 5. **縣市範圍**:共 22 縣市,比 `tw.openfun~bulk~budget-local` 多 宜蘭縣、彰化縣、澎湖縣,但各縣市年份覆蓋仍有差異。 6. **全國/ 無 JSON**:`全國/` 資料夾只有 CSV,JSON 檔只存在於個別縣市和 `中央/` 資料夾。 7. **key 的頁碼部分**:`歲出分支列表.json` 的 key 含頁碼,同一工作計劃在不同年度或版本可能有不同 key,請用工作計畫編號 + 年度來對應,不要依賴 key 的完整格式做 join。 8. **⚠️ 部分縣市的 `歲出分支列表.json` 為空**:大型直轄市(新北市、桃園市、臺中市、高雄市)目前的 JSON 回傳為空物件(`{}`),無計畫內容資料;臺南市有少量部分資料;金門縣、南投縣等有完整 JSON 資料。若要分析直轄市的計畫內容,請改用 CSV 檔(`工作計劃.csv`)。 9. **追查中央補助款看 `說明` 欄位**:中央政府補助款項通常出現在縣市預算的 `明細[].說明` 文字中(如「教育部補助款」),而非計畫名稱欄位,搜尋時應掃描 `說明` 欄位內容。 10. **下載大型 JSON 請用 `requests` 而非 `urllib.request`**:部分縣市的 `歲出分支列表.json` 檔案超過 30 MB,Python 的 `urllib.request` 在某些環境下可能失敗;建議改用 `requests` 函式庫(`requests.get(url).json()`)或直接用 `curl -s URL` 下載後再解析。 --- ## 資料來源與更新頻率 | 項目 | 說明 | |------|------| | 原始資料 | 行政院主計總處 / 各縣市主計室 | | 整理來源 | 歐噴資料庫(data.openfun.tw) | | 涵蓋範圍 | 中央 + 22縣市 | | 格式 | 靜態 CSV / JSON,直接下載 | | 更新頻率 | 每年預算通過後更新(約 1–2 月) | --- ## 快速參考 | 項目 | 說明 | |------|------| | 資料形式 | 靜態 CSV / JSON,免帳號直接下載 | | 根目錄 URL | `https://local-budget-files.ronny-s3.click/files/merged-county/` | | URL 格式 | `{根目錄}{範圍 URL 編碼}/{檔名}` | | 中央資料夾 | `%e4%b8%ad%e5%a4%ae` | | 全國彙總資料夾 | `%e5%85%a8%e5%9c%8b` | | 每個範圍的 CSV | 工作計劃.csv、業務計劃.csv、歲入子目列表.csv、歲入細目列表.csv、收支簡明表.csv | | 每個範圍的 JSON | 歲出分支列表.json(含計畫內容)、原始檔案.json、主管列表.json、機關列表.json | | 全國/ 無 JSON | 全國資料夾只有 CSV,JSON 只在中央/ 和各縣市/ | | 涵蓋範圍 | 中央 + 22縣市 + 全國彙總 | | CSV 金額單位 | 千元,含千分位逗號,使用前需轉換 | | JSON 明細金額單位 | 元(`明細.預算數`,比 CSV 小 1000 倍) | | 載入方式 | `pd.read_csv(url)` 或 `requests.get(url).json()`,無需 Token | | 歲出分支列表年份 | 目前僅 114–115 年(預算案),不含決算或更早年份 |