CHANGELOG
- 1.1.0 (2026-06-10) — Column names rewritten to match the actual normalised CSV schema. The previous "公版命名" English columns (
transaction_date,address,total_price_ntd,developer,planned_completion_date, etc.) were aspirational — never implemented in the materialised dataset. Real columns are mostly the Chinese government source names (總價元,鄉鎮市區,建物型態, …) with a thin English overlay (city,season,iso_trade_date). Examples updated to match. (Documentation bug surfaced by user query about "預計完工日" — that field does NOT exist in any open Taiwan LVR dataset.)
tw-opendata-realestate — 實價登錄查詢
Corpus 概況
| Dataset | 內容 | 時間範圍 |
|---|---|---|
lvr-trades | 不動產買賣成交 | 2012-08 → 至今, 每季更新 |
lvr-rentals | 不動產租賃成交 | 2015-07 → 至今, 每季更新 |
lvr-presale | 預售屋成交 | 2021-07 → 至今 (預售屋強制揭露法), 每季更新 |
| 涵蓋區域 | 全 6 都 + 16 縣市, 全鄉鎮 | |
| 來源 | 內政部地政司 實價登錄專區 |
何時用本 skill
「實價登錄 / 房價 / 預售屋 / 租金 / 房地產 / 不動產 / 看屋 / 物件 / 坪數 / 單價 / 行情 / 都更 / 地段比較」相關時優先載入。不適用於:建商廣告價、未公開的私下成交、銀行估價、海外房產。
MCP Tools
query_rows(dataset_id, where, columns, limit) — SQL 查詢
query_rows(
dataset_id="lvr-trades",
where="city = '臺北市' AND 鄉鎮市區 = '大安區' AND 總價元 > 50000000",
columns=["iso_trade_date", "土地位置建物門牌", "總價元", "單價元平方公尺"],
limit=50,
)
DuckDB SQL 直接跑 normalised CSV, 第一次 call 會 lazy-materialize cache。
注意:欄位名稱以繁體中文為主 (原始政府開放資料就是中文標題),DuckDB 雙引號可省,但在 SQL WHERE clause 中是直接使用中文欄位名。city 是臺北市 / 臺中市 (官方寫法),不是「台北市」。
get_dataset(dataset_id, sample_rows=3) — 看 schema + 範例
get_dataset("lvr-trades", sample_rows=3)
回 dataset metadata + 欄位列表 + 3 筆 sample 看資料長相。
search_datasets("實價登錄", domain="economy_business") — 找其他相關 dataset
少用, 已知三個 dataset_id 直接 query_rows 即可。
三個 dataset 實際欄位(normalised CSV)
欄位用法原則:所有 3 個 dataset 都帶 3 個 English overlay 欄位 (
city,season,iso_trade_date),其餘全部沿用內政部地政司原始繁體中文欄位。沒有單獨的「坪數」欄位,原始資料用「平方公尺」 — 要轉坪自己* 0.3025或/ 3.30579。
lvr-trades (買賣)
| 欄位 | 說明 |
|---|---|
city | 縣市,例:臺北市 / 新北市 / 基隆市 (注意是臺不是台) |
season | 季別,例:113S4 (民國 113 年第 4 季) |
iso_trade_date | 交易日 ISO 格式 YYYY-MM-DD |
鄉鎮市區 | 例:大安區 |
土地位置建物門牌 | 地址 (門牌部分數字遮罩) |
交易標的 | 房地(土地+建物) / 房地(土地+建物)+車位 / 土地 ... |
交易年月日 | 民國年月日數字字串 (例:1131102) — iso_trade_date 是這欄轉好的西元 |
總價元 | 總價 (新台幣元) |
單價元平方公尺 | 每平方公尺單價,不是每坪。轉每坪 = * 3.30579 |
建物型態 | 例:住宅大樓(11層含以上有電梯) / 透天厝 / 華廈(10層含以下有電梯) |
主要用途 | 住家用 / 商業用 / 工業用 ... |
主要建材 | 鋼筋混凝土造 / 加強磚造 ... |
總樓層數 | 例:12 |
移轉層次 | 例:十層 / 全 / 地下一層 (注意:中文數字,不是阿拉伯數字) |
建築完成年月 | 民國年月,常為空字串 (新成屋第一次過戶時才填) |
建物移轉總面積平方公尺 | 含主+附+陽台+車位 (要拆開看下面 4 欄) |
主建物面積 / 附屬建物面積 / 陽台面積 | 平方公尺,分項 |
車位類別 | 坡道平面 / 升降平面 / 機械 ... |
車位移轉總面積平方公尺 / 車位總價元 | 車位獨立 |
建物現況格局-房 / -廳 / -衛 | 房廳衛數 |
電梯 | 有 / 無 / 空 |
有無管理組織 | 有 / 無 |
備註 | 特殊交易事件 (親友交易 / 含車位 / 毛胚屋等 — 影響單價) |
編號 / 移轉編號 | 資料來源編號 |
lvr-rentals (租賃)
買賣的欄位多數一樣,差異欄位:
| 欄位 | 說明 |
|---|---|
總額元 | 月租金 (新台幣元) — 跟 總價元 對齊但意義是月租 |
單價元平方公尺 | 每平方公尺月租金 |
租賃年月日 / 租賃筆棟數 / 租賃層次 | 對應交易欄位 |
租賃期間 | 例:1130831~1140830 |
出租型態 | 整棟(戶)出租 / 分租 / 分層 ... |
有無附傢俱 | 有 / 無 |
有無管理員 | 有 / 無 |
附屬設備 | 文字描述 (例:冷氣、熱水器、冰箱、瓦斯或天然氣) |
租賃住宅服務 | 社會住宅代管 / 空字串等 |
lvr-presale (預售)
| 欄位 | 說明 |
|---|---|
| 大部分欄位 | 跟 lvr-trades 相同 |
建案名稱 | 例:陞家百福匯 (這份資料唯一的建案識別) |
棟及號 | 例:C棟10號 |
解約情形 | 預售屋特有,例:1140622全部解約 / 空字串 |
建築完成年月 | 大多空白 (預售屋還沒蓋好) |
以下欄位 ❌ 開放資料中不存在 — 之前 SKILL.md 誤列:
developer(建商) — 本資料集沒有。最接近的是另一個 dataset 「預售屋建案備查」(dataset_id=176351) 的起造人,那不是這份lvr-presale,需另外接入。planned_completion_date(預計完工日) — 政府公開資料中沒有任何欄位對應建商定型化契約裡的「預計取得使照日」。最接近的推估:建照核發日 + 縣市平均施工期,需從 dataset 176351 拉。contract_date(簽約日) — 預售屋成交日已合併在iso_trade_date(交易年月日),沒有獨立簽約日欄位。
範例 query
| 使用者問題 | 對應 call |
|---|---|
| 「臺北大安區去年 5000 萬以上成交」 | query_rows("lvr-trades", where="city='臺北市' AND 鄉鎮市區='大安區' AND 總價元 > 50000000 AND iso_trade_date >= '2024-01-01'", limit=50) |
| 「新竹東區預售屋平均單價」 | query_rows("lvr-presale", where="city='新竹市' AND 鄉鎮市區='東區'", columns=["單價元平方公尺","建物移轉總面積平方公尺"]) 後 client 端 aggregate (記得單價是 / 平方公尺,要換算 / 坪自己 * 3.30579) |
| 「板橋租金 3 萬以下 2 房」 | query_rows("lvr-rentals", where="city='新北市' AND 鄉鎮市區='板橋區' AND 總額元 <= 30000 AND \"建物現況格局-房\" = 2") |
| 「林口建案 X 預售價格」 | query_rows("lvr-presale", where="建案名稱 LIKE '%X%' AND 鄉鎮市區='林口區'") |
| 「我想看 lvr-trades 資料結構」 | get_dataset("lvr-trades", sample_rows=5) |
最佳實踐
土地位置建物門牌已部分遮罩:門牌號是X或範圍, 不要試圖反推實際門牌- 單價 vs 總價:投資看
單價元平方公尺比較, 自住看總價元 - 單位是平方公尺,不是坪:原始開放資料一律用平方公尺。轉坪除以
3.30579(或乘0.3025) - 沒有
building_age_years欄位:屋齡要從iso_trade_date跟建築完成年月自己算。建築完成年月是民國 ROC 字串 (例:0941213),常為空 備註有特殊事件:「親友交易」「含車位」「毛胚屋」會嚴重影響單價, 一定要看- 季更新有 lag:當季資料約延後 1.5 個月才完整 (i.e. 2024-Q1 在 2024-05 中才齊)
- 預售屋 ≠ 新成屋:預售屋是建案銷售時登錄, 新成屋已交屋後再賣是進
lvr-trades - 中文欄位在 SQL 內:DuckDB 接受中文欄位名直接使用 (
WHERE 鄉鎮市區 = '大安區'),含-連字號的 (例建物現況格局-房) 才要"..."雙引號包起來 - 臺 vs 台:政府開放資料一律用「臺」北市 / 臺中市 / 臺南市,搜尋時
city='臺北市'才會 match 移轉層次是中文數字:例如十層、全、地下一層,要查特定樓層不能用> 5比較,得用LIKE或字典對應
注意事項
- 內政部僅公開「成交日」, 每件揭露時點延後 30 天 (依不動產經紀業管理條例)
- 「實價」是申報價, 雖有罰則但部分仍有 inflate/deflate, 適合 trend 分析不適合 single-deal valuation
- 車位、雨遮、屋簷面積 是否計入坪數 各案不同, 比較時要看
parking_ping拆開 - LVR 不含 法拍屋、繼承移轉、贈與
與其他 skill 的邊界
- 地籍 / 都市計畫圖 →
tw-opendata-geo(內政部地政司 SHP) - 房屋稅 / 地價稅 →
tw-opendata-general(財政部稅務數據) - 房屋仲介公會數據 → 不在 OpenData (商業組織)
- 建商財報 →
tw-opendata-general(證交所 dataset)