Twinkle HubTwinkle Hub
Sign in

📌 2026-06-30 added: 🎓 Teacher exam dual corpus — 12,731 qualification questions + 2,421 recruitment questions (519 datasets)

View full changelog →
Back to Skills

Real-estate (LVR)

v1.1.0

6 metros + 16 counties · since 2012 · sales 4.75M / rentals 726k / pre-sale 554k

Ministry of Interior LVR sales / rentals / pre-sale lookups; address search via the half-width column.

Download SKILL.zip
~10.2 KB

tw-opendata-realestate

SKILL.md content

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)

最佳實踐

  1. 土地位置建物門牌 已部分遮罩:門牌號是 X 或範圍, 不要試圖反推實際門牌
  2. 單價 vs 總價:投資看 單價元平方公尺 比較, 自住看 總價元
  3. 單位是平方公尺,不是坪:原始開放資料一律用平方公尺。轉坪除以 3.30579(或乘 0.3025
  4. 沒有 building_age_years 欄位:屋齡要從 iso_trade_date建築完成年月 自己算。建築完成年月 是民國 ROC 字串 (例:0941213),常為空
  5. 備註 有特殊事件:「親友交易」「含車位」「毛胚屋」會嚴重影響單價, 一定要看
  6. 季更新有 lag:當季資料約延後 1.5 個月才完整 (i.e. 2024-Q1 在 2024-05 中才齊)
  7. 預售屋 ≠ 新成屋:預售屋是建案銷售時登錄, 新成屋已交屋後再賣是進 lvr-trades
  8. 中文欄位在 SQL 內:DuckDB 接受中文欄位名直接使用 (WHERE 鄉鎮市區 = '大安區'),含 - 連字號的 (例 建物現況格局-房) 才要 "..." 雙引號包起來
  9. 臺 vs 台:政府開放資料一律用「」北市 / 中市 / 南市,搜尋時 city='臺北市' 才會 match
  10. 移轉層次 是中文數字:例如 十層地下一層,要查特定樓層不能用 > 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)

Install

Unzip the SKILL into ~/.claude/skills/ — Claude Code and Claude Desktop will auto-discover it. Or pull straight from the OpenData repo: `git clone https://github.com/lianghsun/tw-opendata.git && cp -r tw-opendata/.claude/skills/<slug> ~/.claude/skills/`