> ## Content Index
> Fetch the complete content index at: https://fanyang.me/llms.txt
> Use this file to discover other available public pages before exploring further.

# Ireland Property Analytics — 项目完整说明文档
- URL: https://fanyang.me/ireland-property-analytics/
- Published: 2026-03-31T21:57:26.000Z
- Updated: 2026-03-31T21:57:26.000Z
- Author: Fan Yang
- Tags: Career, #Migrated-1792530774538, #wp, #wp-post, #Import 2026-10-20 21:12

> 作者：Fan Yang | 网站：[property.fanyang.me](https://property.fanyang.me/?ref=fanyang.me) | 更新日期：2026-03-31

---

## 目录

1. [项目是什么](#1-%E9%A1%B9%E7%9B%AE%E6%98%AF%E4%BB%80%E4%B9%88)
2. [技术架构](#2-%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84)
3. [数据库](#3-%E6%95%B0%E6%8D%AE%E5%BA%93)
4. [数据文件（JSON）](#4-%E6%95%B0%E6%8D%AE%E6%96%87%E4%BB%B6json)
5. [数据来源（14个）](#5-%E6%95%B0%E6%8D%AE%E6%9D%A5%E6%BA%9014%E4%B8%AA)
6. [网站页面详解（6个页面）](#6-%E7%BD%91%E7%AB%99%E9%A1%B5%E9%9D%A2%E8%AF%A6%E8%A7%A36%E4%B8%AA%E9%A1%B5%E9%9D%A2)
7. [计算算法详解](#7-%E8%AE%A1%E7%AE%97%E7%AE%97%E6%B3%95%E8%AF%A6%E8%A7%A3)
8. [国际化（双语）系统](#8-%E5%9B%BD%E9%99%85%E5%8C%96%E5%8F%8C%E8%AF%AD%E7%B3%BB%E7%BB%9F)
9. [SEO 优化](#9-seo-%E4%BC%98%E5%8C%96)
10. [部署与运维](#10-%E9%83%A8%E7%BD%B2%E4%B8%8E%E8%BF%90%E7%BB%B4)
11. [关键数据结论](#11-%E5%85%B3%E9%94%AE%E6%95%B0%E6%8D%AE%E7%BB%93%E8%AE%BA)

---

## 1\. 项目是什么

### 背景和目的

爱尔兰近年来吸引了大量海外华人投资者的关注。但是，市面上大多数爱尔兰房产数据工具要么是英文的、要么需要付费、要么数据不透明。这个项目的目标是：

**为海外华人投资者提供一个免费、透明、数据驱动的爱尔兰房产分析平台。**

### 项目做了什么

1. 从爱尔兰政府公开数据库下载了约77.5万条房产交易记录
2. 经过5层数据清洗，得到699,653条有效交易
3. 将这些数据与13个其他数据源交叉验证，补充租金、人口、犯罪率、按揭等维度
4. 把所有分析结果预先计算好，生成JSON文件
5. 建设一个完全静态的双语（中英文）网站，让用户无需任何专业知识即可查询数据

### 目标用户

主要是：正在考虑购买爱尔兰房产出租（Buy-to-Let）的海外华人投资者。他们关心的核心问题是：**哪个郡的租金回报率最高？买了之后每年能赚多少钱？**

---

## 2\. 技术架构

### 整体结构

```
用户浏览器
    ↓  HTTP请求
Nginx Web服务器（服务器 91.99.111.153）
    ↓  直接返回静态文件
/opt/www/irelandproperty/
    ├── index.html          ← 首页
    ├── query.html          ← 收益率查询页
    ├── calculator.html     ← 净回报计算器
    ├── mortgage.html       ← 按揭市场页
    ├── map.html            ← 地图页
    ├── about.html          ← 数据说明页
    ├── i18n.js             ← 双语翻译文件
    ├── favicon.svg         ← 网站图标
    ├── og-image.png        ← 社交媒体分享图
    ├── sitemap.xml         ← 搜索引擎地图
    └── data/               ← 所有数据（JSON格式）

```

**没有后端服务器，没有API，没有数据库查询**。所有数据在部署前已经计算好，保存为JSON文件。用户打开页面时，浏览器直接读取这些JSON文件，在浏览器里用JavaScript展示。

### 为什么选择纯静态架构

- **速度快**：没有数据库查询的等待时间
- **成本低**：不需要后端服务器，只需要最便宜的VPS
- **可靠性高**：没有服务器崩溃、数据库宕机的风险
- **安全**：没有任何用户输入直接碰数据库

### 技术栈

| 层次        | 技术                                       |
| --------- | ---------------------------------------- |
| 数据库（离线使用） | PostgreSQL（在服务器上，只在生成数据时用）               |
| 数据处理      | Python（pandas、psycopg2）                  |
| 前端框架      | 原生HTML + CSS + JavaScript（无React/Vue等框架） |
| 地图        | Leaflet.js 1.9.4（开源地图库）                  |
| 图表        | Chart.js 4.4.0（开源图表库）                    |
| 字体        | Google Fonts（Playfair Display + DM Sans） |
| Web服务器    | Nginx                                    |
| 统计分析      | Google Analytics 4（追踪ID：G-BWR3108MN4）    |

### 服务器信息

- **IP地址**：91.99.111.153
- **域名**：property.fanyang.me
- **网站根目录**：`/opt/www/irelandproperty/`
- **数据目录**：`/opt/www/irelandproperty/data/`

---

## 3\. 数据库

### 数据库的作用

PostgreSQL数据库**只在离线数据处理阶段使用**，不对外开放，不参与任何网站请求。它的作用是：存储原始PPR数据，运行清洗和分析SQL，生成最终的JSON文件。

### 核心表：`property_sales`

这是项目最重要的表，存储从爱尔兰PSRA（财产服务监管局）下载的所有房产交易记录。

| 字段名               | 类型      | 含义                                                                                  |
| ----------------- | ------- | ----------------------------------------------------------------------------------- |
| id                | integer | 自增主键                                                                                |
| address           | text    | 房产地址（完整地址字符串）                                                                       |
| date\_clean       | date    | 成交日期（已清洗为标准date类型）                                                                  |
| price             | numeric | 成交价格（欧元，原始值，未加VAT）                                                                  |
| description       | text    | 物业类型描述，如 “New Dwelling house / Apartment” 或 “Second-Hand Dwelling house /Apartment” |
| vat\_exclusive    | boolean | 是否为不含VAT价格（新建住宅通常为true）                                                             |
| not\_full\_market | boolean | PSRA标记：是否为非市场价交易（家庭内部转让、破产出售等）                                                      |
| county            | text    | 所在郡（从地址解析得出）                                                                        |
| eircode           | text    | 爱尔兰邮政编码（仅2021年后数据有）                                                                 |

**表的规模**：约 775,000 行，永不修改（只读）。

### 核心视图：`clean_residential_sales`

这是建立在 `property_sales` 之上的**数据库视图**（View）。

> **什么是视图**：视图不存储数据，它是一个保存好的SELECT查询语句。每次查询视图时，数据库实时执行那个查询。对于使用者来说，视图看起来就像一张表。

视图的作用是对原始数据应用5层过滤，只保留有意义的市场交易。详细过滤逻辑见第7章算法说明。

**过滤结果**：从 \~775,000 行 → 保留 **699,653** 行

### 其他辅助表/数据

除了PPR数据，服务器数据库里还有从其他来源导入的辅助数据，用于生成各JSON文件（如人口数据、犯罪数据等）。这些数据的来源见第5章。

---

## 4\. 数据文件（JSON）

这些文件全部存放在 `/data/` 目录下，是网站的"血液"。

### 4.1 `county_stats.json`

**用途**：核心文件，存储26个郡的综合统计数据

**格式**：数组，每个元素代表一个郡，共26条

**字段说明**：

| 字段                  | 示例值（Louth郡） | 含义                                     |
| ------------------- | ----------- | -------------------------------------- |
| county              | “Louth”     | 郡名                                     |
| ppr\_median\_price  | 321585.0    | PPR数据库中的中位成交价（欧元，VAT调整后）               |
| tx\_count           | 3752.0      | 2025年交易笔数                              |
| daft\_rent          | 1722.0      | Daft.ie平台两居室平均月租金（欧元）                  |
| daft\_room\_rent    | 758.0       | Daft.ie平台单间平均月租金（欧元）                   |
| rent\_yoy           | 3.8         | 租金同比增长率（%，year-over-year）              |
| hap\_couple         | 480.0       | HAP补贴上限：夫妻（欧元/月，无子女）                   |
| hap\_family         | 660.0       | HAP补贴上限：家庭（欧元/月，有子女）                   |
| hap\_single         | 460.0       | HAP补贴上限：单身（欧元/月）                       |
| region              | “Leinster”  | 所在省份（Leinster/Munster/Connacht/Ulster） |
| rtb\_rent           | 1308.0      | RTB登记租金（欧元/月，政府数据）                     |
| daft\_asking\_price | 190000.0    | Daft.ie挂牌要价（欧元）                        |
| price\_per\_sqm     | 3277.0      | 每平方米价格（欧元）                             |
| gross\_yield\_daft  | 10.88       | 毛租金收益率——Daft版本（%）                      |
| gross\_yield\_ppr   | 6.43        | 毛租金收益率——PPR版本（%）                       |

> **为什么有两个收益率**：Daft收益率用的是挂牌要价和挂牌租金（反映市场预期），PPR收益率用的是实际成交价和RTB登记租金（反映真实交易）。两者差距有时很大，建议参考PPR版本。

---

### 4.2 `dublin_postcodes.json`

**用途**：都柏林22个邮区（D1-D24，除D19/D21/D23之外）的详细数据

**格式**：对象，键为邮区名（如 “Dublin 2”），值为该邮区数据

**每个邮区包含**：

- `trends`：按卧室数量（1-5床）分类的季度租金趋势，从2018Q1到2025Q2，包含每季度租金和同比增长率
- `latest`：各卧室数量的最新季度租金
- `ppr`：PPR成交数据（中位价、样本量）
- `gross_yield_2bed`：两居室毛收益率（%）

**数据量**：每个邮区约30个季度 × 5种卧室数量 = 约150条时间序列数据点

---

### 4.3 `rent_trends.json`

**用途**：41个地点（26个郡 + 15个城市/地区细分）的季度租金趋势

**格式**：对象，键为地名，值为数组，每个元素 `{q: "2018Q1", rent: 1561}`

**覆盖时间**：2018Q1 到 2025Q2，共约30个季度

**用于**：Query页的租金趋势折线图

---

### 4.4 `ber_county.json`

**用途**：55个地区的建筑能源评级（BER）分布数据

**格式**：对象，键为地区名（包含郡级和都柏林邮区级），值包含：

- `rating_dist`：各BER等级（A1到G）的房屋数量
- `avg_floor_sqm`：平均建筑面积（平方米）
- `avg_year_built`：平均建造年份
- `total_rated`：已评级总数

> **BER是什么**：Building Energy Rating，类似中国的建筑节能标识。A1最好（最节能），G最差（最费能）。买房前看BER评级可以判断供暖成本。

---

### 4.5 `cso_population.json`

**用途**：26个郡的人口数据（来自爱尔兰中央统计局CSO）

**格式**：对象，键为郡名，值包含：

- `pop_2016`：2016年人口
- `pop_2022`：2022年人口
- `growth_pct`：增长率（%）

**示例**（Dublin）：人口从1,273,069增至1,458,154，增长14.5%

---

### 4.6 `cso_vacancy.json`

**用途**：26个郡的房屋空置率（CSO 2022年普查数据）

**格式**：对象，键为郡名，值为空置率百分比（如 Dublin: 5.6）

**用于**：净回报计算器中"空置率"滑块的默认值（选择郡后自动填入该郡的真实空置率）

---

### 4.7 `cso_completions.json`

**用途**：26个郡2022-2024年的住宅竣工量

**格式**：对象，键为郡名，值包含：

- `completions_2022`、`completions_2023`、`completions_2024`：各年竣工套数
- `avg_annual`：三年平均

**用于**：地图页的"新增供给"指标；Query页的供给分析板块

---

### 4.8 `cso_planning.json`

**用途**：26个郡2022-2024年的住宅规划许可数量（CSO BHA14数据）

**格式**：与 `cso_completions.json` 结构相同

**用于**：地图页的"规划管道"指标（规划许可是竣工的领先指标，通常提前18-24个月）

---

### 4.9 `cso_crime.json`

**用途**：26个郡的犯罪统计数据（CSO CJQ06数据）

**格式**：对象，键为郡名，值包含：

- `crimes_2022`、`crimes_2023`、`crimes_2024`：各年犯罪记录数
- `avg_annual`：三年平均
- `per_1000_pop`：每千人犯罪率

**注意**：爱尔兰有28个警察区（Garda Division），不完全对应26个郡。跨郡的警察区（如Cavan/Monaghan、Sligo/Leitrim等）按人口比例拆分，这是估算值不是精确值。

---

### 4.10 `hap_county.json`

**用途**：26个郡的HAP租金补贴上限

**什么是HAP**：Housing Assistance Payment，即爱尔兰政府对低收入家庭的租金补贴。政府直接把钱打给房东，房东接受HAP租客就相当于有政府托底。对投资者来说，HAP上限是"政府认可的最低可接受租金"。

**格式**：对象，键为郡名，值包含：

- `single`：单身人士HAP上限（欧元/月）
- `couple`：夫妻（无子女）HAP上限
- `couple_1child`：夫妻1孩HAP上限
- `couple_2children`：夫妻2孩HAP上限
- `couple_3children`：夫妻3孩HAP上限

**示例**（Cork）：单身€550，夫妻€650，夫妻1孩€900

---

### 4.11 `ida_fdi.json`

**用途**：26个郡的外资投资（FDI）吸引力数据

**什么是IDA**：Industrial Development Authority，爱尔兰工业发展局，负责招商引资。外资多的地方就业机会多，租房需求强。

**格式**：对象，键为郡名，值包含：

- `tier`：等级（hub核心枢纽 / regional区域中心 / emerging发展中）
- `site_visits_2025`：2025年潜在投资者考察次数
- `ida_jobs_est`：IDA支持企业的就业人数估算
- `note`：重要外资企业备注（如都柏林：“Google, Meta, Microsoft, Pfizer HQs”）

---

### 4.12 `mortgage_data.json`

**用途**：爱尔兰按揭市场历史数据（来自BPFI）

**格式**：对象，包含4个子键：

- `drawdowns`：季度按揭提款数据，64条记录（2010Q1-2025Q4）  
  - 每条：`year`、`quarter`、`ftb_count`（首次置业者数量）、`mover_count`（换房者）、`ril_count`（投资者）、`total_count`、`ftb_pct`（首置占比%）、`total_value_m`（总金额百万欧元）、`ftb_avg_loan`（首置平均贷款额）、`total_avg_loan`（总平均贷款额）
- `approvals_annual`：年度按揭审批汇总，11条
- `approvals_monthly`：月度审批数据，22条
- `updated`：“2025Q4”（数据更新至此）

---

### 4.13 `mortgage_rates.json`

**用途**：利率历史数据

**格式**：对象，包含：

- `ecb_rate`：ECB主要再融资利率的月度时间序列（2022-01 到 2026-01）
- `ie_mortgage_rate`：爱尔兰新增按揭平均利率的月度时间序列（同期）
- `_latest`：最新值摘要（ECB当前2.15%，爱尔兰按揭当前3.50%）

---

### 4.14 `region_matrix.json`

**用途**：将26个郡分组为5个区域，用于首页区域对比分析

**5个区域**：

- Dublin（都柏林）
- Leinster ex-Dublin（莱因斯特省，除都柏林外）
- Munster ex-Cities（芒斯特省，除科克市/利默里克市外）
- Connacht-Ulster ex-Galway（康诺特-阿尔斯特，除高威外）
- Other Cities（其他主要城市）

---

## 5\. 数据来源（14个）

### A组：房产交易数据

#### 01\. PSRA Property Price Register（PPR）

- **机构**：爱尔兰财产服务监管局（Property Services Regulatory Authority）
- **内容**：爱尔兰所有住宅类房产的成交记录（来源于买家缴纳印花税时的申报）
- **数据量**：约775,000条，2010年至今
- **更新频率**：持续更新（本项目数据截至2026年3月）
- **关键说明**：  
  - 新建住宅价格**不含VAT**（VAT为13.5%），分析时需乘以1.135
  - 家庭内部转让（如父母低价转给子女）已在清洗时过滤
  - 机构批量购买整栋楼的记录已过滤（超过300万欧元）

---

#### 02\. Daft.ie Rental Reports

- **机构**：Daft.ie（爱尔兰最大房产门户网站）
- **内容**：各郡及都柏林邮区的按卧室数量分类的平均挂牌租金
- **数据时间**：2024年Q4至2025年Q2（最新）
- **用于**：Query页的"Daft租金"字段；毛收益率计算（Daft版本）

> **挂牌租金 vs 登记租金**：挂牌租金（Daft）是房东标价，登记租金（RTB）是实际签约租金。挂牌租金通常略高，因为最终成交价可能下调。两者都有参考价值。

---

#### 03\. RTB/ESRI Rent Index

- **机构**：爱尔兰租赁委员会（RTB）+ 经济社会研究所（ESRI）
- **内容**：季度租金指数，按地区和卧室数量分类，基于所有在RTB登记的实际租赁合同
- **数据时间**：2007年至今（本项目使用2018Q1-2025Q2）
- **用于**：Query页的"RTB租金"字段；毛收益率计算（PPR版本）；首页的租金收益率分析

---

### B组：供给、人口与社会数据（均来自CSO——爱尔兰中央统计局）

#### 04\. SEAI BER Public Database

- **机构**：爱尔兰可持续能源局（SEAI）
- **内容**：所有已评级建筑的BER评级、面积、建造年份
- **数据量**：1,353,297条评级记录
- **用于**：首页的BER分析；Query页的能源评级信息

#### 05\. CSO Census 2022（人口普查）

- **内容**：各郡2016年、2022年人口数量及增长率
- **用于**：地图页人口指标；Query页人口分析板块

#### 06\. CSO Census 2022（空置率）

- **内容**：各郡住宅空置率百分比
- **用于**：净回报计算器中空置率滑块的默认值

#### 07\. CSO BHA04 — 住宅竣工量

- **内容**：各郡2022-2024年新建住宅竣工套数
- **用于**：地图页新增供给指标；Query页供给分析

#### 08\. CSO BHA14 — 住宅规划许可

- **内容**：各地方政府2022-2024年批准的住宅规划许可数量
- **注意**：31个地方政府 → 映射到26个郡（都柏林的4个地方政府数据合并）
- **用于**：地图页规划管道指标；未来供给预测

#### 09\. CSO CJQ06 — 犯罪统计

- **内容**：各警察区（Garda Division）2022-2024年犯罪记录总数
- **注意**：28个警察区不完全对应26个郡，跨郡警察区按人口比例估算拆分
- **用于**：地图页犯罪率指标（每千人）；Query页安全评分

---

### C组：经济与金融数据

#### 10\. IDA Ireland — 外资就业数据

- **机构**：爱尔兰工业发展局
- **内容**：各郡IDA支持企业的就业人数估算、考察次数
- **用于**：Query页的FDI（外资）分析板块；地图页经济吸引力参考

#### 11\. BPFI Mortgage Market Data

- **机构**：爱尔兰银行与支付联合会
- **内容**：季度按揭提款量（按买家类型分）、月度审批量、平均贷款规模
- **时间**：2010年至2025年Q4
- **用于**：Mortgage Market页所有图表

#### 12\. ECB Key Interest Rates

- **机构**：欧洲央行
- **内容**：ECB主要再融资利率（MRR）月度序列（2022年至今）
- **当前利率**：2.15%（2025年6月后）
- **用于**：Mortgage Market页的利率环境图表

#### 13\. Central Bank of Ireland — Retail Interest Rates (B.3.1)

- **机构**：爱尔兰央行
- **内容**：爱尔兰新增住宅按揭月度平均利率（固定+浮动）
- **当前利率**：3.50%（固定3.44%，浮动4.09%，截至2026年1月）
- **用于**：Mortgage Market页的利率环境图表（与ECB利率对比显示）

---

### D组：税务与法规

#### 14\. HAP限额 + LPT估值分档

- **机构**：爱尔兰住房部（HAP数据）+ Revenue爱尔兰税务局（LPT数据）
- **HAP内容**：各郡按家庭规模分类的每月最高租金补贴金额
- **LPT内容**：地方物业税（Local Property Tax）按房产估值分档的年度税额（2022年重新估值）
- **用于**：Query页的HAP限额展示；Net Return Calculator中的LPT计算

---

## 6\. 网站页面详解（6个页面）

### 6.1 首页（`index.html`）

**URL**：`https://property.fanyang.me/`

**定位**：项目的门面，展示核心研究发现，吸引用户下载报告

#### 页面结构与功能

**① Hero区（顶部横幅）**

- 标题：《70万条爱尔兰房产成交数据到底告诉了我们什么》
- 副标题解释数据来源和处理方式
- 两个"下载免费PDF报告"按钮（8页，无需注册）

**② 数据统计展示区（5个KPI卡）**

| 指标          | 数值                | 含义         |
| ----------- | ----------------- | ---------- |
| 已验证交易量      | 699,653           | 经过清洗的有效交易数 |
| 全国中位成交价2025 | 数据来自county\_stats | 所有郡的中位价    |
| 2013年以来增长幅度 | 全国平均+134%         | 从房价谷底算起    |
| 最高毛租金收益率    | \~7%（Longford）    | 全国最高的郡     |
| 数据年限        | 15年               | 2010-2026  |

**③ 12年增长排行图（Growth Section）**

- 展示2013年（房价谷底）到2025年各郡的中位价格增长率
- 关键发现：都柏林排第**24名**（倒数第3），不是最快增长的地方
- Laois郡领先：从€93k涨到€298k，增长+220%
- Donegal垫底：+90%，是全国唯一低于+100%的郡

**④ 租金收益率分析图（Yield Section）**

- 展示25个郡的毛租金收益率排行（两居室公寓）
- 关键发现：都柏林排第7名，不是最高收益率的地方
- Longford最高：7.05%（房价约€190k，月租约€1,116）
- Kildare最低：4.28%（高房价相对于租金）

**⑤ 方法论说明（Methodology Section）**

- 简述数据来源：PPR（699,653条）、SEAI BER（1,353,297条评级）、RTB/ESRI租金指数
- 说明5层数据清洗：排除非市场交易、VAT调整、去重

**⑥ 下载CTA区**

- 再次展示PDF报告下载入口
- 联系邮件：imfan.yang@gmail.com

**⑦ 免责声明区**

- 4条声明：PPR数据说明、BER说明、RTB说明、总体免责

---

### 6.2 收益率查询页（`query.html`）

**URL**：`https://property.fanyang.me/query.html`

**定位**：用户最常用的工具，可以查询任意郡或都柏林邮区的详细数据

#### 查询方式

**方式一：按郡查询**

从下拉列表选择26个郡中的一个，点击"查看详情"

**方式二：按都柏林邮区查询**

从下拉列表选择22个邮区（D1-D24，除D19/D21/D23），支持卧室数量选择（1-5床）

**URL参数深链接**：其他页面可以通过 `?county=Cork` 这样的URL参数自动触发查询。例如，从地图页点击"查看完整详情"，会跳转到 `query.html?county=Cork` 并自动显示Cork的数据。

#### 郡级查询展示的数据

**基本价格数据**

| 字段         | 数据来源                  | 含义                  |
| ---------- | --------------------- | ------------------- |
| 毛收益率（Daft） | Daft.ie挂牌价 ÷ Daft挂牌租金 | 以挂牌价购买、按挂牌租金出租的理论回报 |
| PPR中位价     | county\_stats.json    | 2025年实际成交价中位数       |
| Daft挂牌要价   | Daft.ie数据             | 当前市场挂牌价             |
| Daft两居室月租  | Daft.ie数据             | 当前市场挂牌租金            |
| RTB登记租金    | RTB/ESRI数据            | 已实际签约的平均租金          |
| 租金同比增长率    | Daft.ie报告             | 过去12个月租金涨幅          |
| HAP补贴上限    | 住房部数据                 | 政府租金补贴上限（按家庭类型）     |

**租金趋势图**

折线图展示2018Q1至2025Q2的季度租金变化，可以看到COVID期间租金下跌（2020-2021年）和随后的快速上涨。

**供给分析板块**

- 年均竣工量（套）
- 规划许可量（未来18-24个月的供给预测）

**人口与就业板块**

- 2022年人口及2016-2022年增长率
- IDA外资吸引力等级（Hub核心 / Regional区域 / Emerging发展中）
- IDA支持企业估计就业人数
- 主要外资企业名单

**安全板块**

- 每千人犯罪率（2022-2024年平均）

**能源评级板块（BER）**

- 已评级房产的BER等级分布（从A到G的比例）
- 平均建筑面积（平方米）
- 平均建造年份

#### 都柏林邮区查询额外功能

- 选择卧室数量（1-5床）
- 显示该邮区该床型数量的季度租金趋势（2018-2025）
- 显示当季同比增长率
- PPR实际成交中位价（来自dublin\_postcodes.json）
- 毛收益率

---

### 6.3 净回报计算器（`calculator.html`）

**URL**：`https://property.fanyang.me/calculator.html`

**定位**：最实用的工具，帮助投资者算出买了之后每年**真正能到手多少钱**（而不是表面上的租金回报率）

#### 输入参数

| 参数    | 控件类型     | 默认值       | 说明            |
| ----- | -------- | --------- | ------------- |
| 房产价格  | 数字输入框    | 无         | 欧元            |
| 月租金   | 数字输入框    | 无         | 欧元/月          |
| 所在郡   | 下拉选择（可选） | —         | 选后自动填入该郡空置率   |
| 税务身份  | 单选按钮（3个） | 非居民20%预扣税 | 影响税率          |
| 管理费   | 滑块 0-20% | 10%       | 支付给房产管理公司的费用  |
| 空置率   | 滑块 0-20% | 8%        | 预计一年中无租客的时间比例 |
| 年度维修费 | 滑块 0-2%  | 0.5%（房价的） | 预计修缮费用        |

> **税务身份说明**：**非居民-20%预扣税**：在爱尔兰没有税务居留的投资者（如中国买家），租客或管理公司必须每月扣留20%的租金上缴税务局。这是最常见的情况。**爱尔兰居民-标准税率20%**：年收入在标准税率档内的爱尔兰居民**爱尔兰居民-高税率40%**：年收入超过标准税率上限的爱尔兰居民（高收入）

#### 计算逻辑（详见算法M6）

计算器自动算出：

1. **毛收益率**：年租金 ÷ 房价
2. **净收益率**：扣除所有成本和税后净收入 ÷ 房价

并展示逐项明细：

```
年租金总额
  (- 空置损失)
= 有效租金收入
  (- 管理费)
  (- 维修费)
  (- 保险费)         ← 固定值：€600/€800/€1,200（按房价段）
= 应税收入
  (- 所得税)
  (- 地方物业税LPT)  ← 按Revenue 2022分档，约€90-€1,035/年
= 净年收入

```

净年收入 ÷ 房价 = **净收益率**

#### RPZ提示框

页面底部有一个黄色警告框，提示爱尔兰的"租金限压区"（Rent Pressure Zone）制度：在大部分城市地区，每年租金涨幅不得超过2%。投资者不能随意提价。

---

### 6.4 按揭市场页（`mortgage.html`）

**URL**：`https://property.fanyang.me/mortgage.html`

**定位**：展示爱尔兰按揭市场的历史趋势，帮助投资者了解市场资金面

#### 页面包含的图表和数据

**图表一：季度按揭提款量（2010-2025）**

- 柱状图，分首次置业者（FTB）、换房者（Mover）、投资者（RIL）三色堆叠
- 可以直观看到：2010-2011年金融危机后跌至低谷，随后逐年恢复
- 2025年Q4总按揭额达43亿欧元

**图表二：月度审批量（2024-2025）**

- 折线图，展示最近两年的月度按揭审批动态

**图表三：首次置业者占比趋势**

- 显示FTB占市场的比例变化
- 当前FTB约占按揭数量的62%（首置主导市场）

**图表四：平均首置贷款规模趋势**

- 展示首次置业者平均贷款金额从2010年约€201,516增长到2025年Q4约€323,871

**图表五：利率环境（2022-2026）**

- 双折线图：ECB基准利率 vs 爱尔兰新增按揭平均利率
- 展示2022年ECB从0%快速加息到4.5%，以及2024年底开始降息的过程
- 当前：ECB 2.15%，爱尔兰新增按揭 3.50%

#### KPI概览卡

| 指标               | 数值       |
| ---------------- | -------- |
| 首次置业者Q4 2025平均贷款 | €323,871 |
| Q4 2025总按揭放款     | €43亿     |
| 首置占比（按笔数）        | \~62%    |
| 当前新增按揭利率         | 3.50%    |

---

### 6.5 地图页（`map.html`）

**URL**：`https://property.fanyang.me/map.html`

**定位**：用颜色深浅直观展示26个郡在各指标上的差异

#### 技术实现

使用 **Leaflet.js 1.9.4** 渲染的交互式 Choropleth 地图（热力地图）。地图底图使用爱尔兰26个郡的GeoJSON多边形数据，根据选定指标的值用不同深浅的颜色填充每个郡。

#### 可切换的6个指标

| 指标    | 颜色含义             | 数据来源                                  |
| ----- | ---------------- | ------------------------------------- |
| 中位成交价 | 深绿=贵，浅绿=便宜       | PPR（county\_stats.ppr\_median\_price） |
| 毛收益率  | 深绿=高收益，浅绿=低收益    | county\_stats.gross\_yield\_daft      |
| 人口增长  | 深绿=增长快，浅绿=增长慢    | cso\_population.json                  |
| 新增供给  | 按年均竣工量           | cso\_completions.json                 |
| 规划许可  | 按年均获批量           | cso\_planning.json                    |
| 空置率   | 深色=空置多，浅色=空置少    | cso\_vacancy.json                     |
| 犯罪率   | 深色=犯罪多（红色系），浅色=少 | cso\_crime.json                       |

#### 交互功能

- **点击郡**：右侧弹出信息面板，显示该郡的多项指标摘要
- **信息面板内容**：中位成交价、毛收益率、人口、竣工量、空置率、犯罪率
- **"查看完整详情"链接**：跳转到 `query.html?county=郡名`，自动触发该郡的详细查询
- **悬停提示**：鼠标悬停时显示郡名和当前指标数值

---

### 6.6 数据与方法说明页（`about.html`）

**URL**：`https://property.fanyang.me/about.html`

**定位**：全面透明地展示数据来源和计算方法，建立用户信任

#### 页面内容

**数据来源区**（14个来源卡，分4组）

- A组：房产交易（PPR、Daft、RTB）
- B组：供给/人口/社会（SEAI BER、CSO人口、CSO空置率、CSO竣工、CSO规划、CSO犯罪）
- C组：经济与金融（IDA、BPFI、ECB、爱尔兰央行）
- D组：税务与法规（HAP限额 + LPT分档）

每张数据源卡包含：机构名称、数据内容描述、时间范围、用于哪个页面、数据局限性警告、官方数据链接

**方法论区**（9个手风琴展开区，M1-M9）

见第7章详解。

---

## 7\. 计算算法详解

### M1：新建住宅VAT调整

**问题背景**：爱尔兰PPR数据中，新建住宅的成交价是"不含VAT"的价格（VAT为13.5%）。二手房免VAT，价格直接是全价。如果不处理，新建住宅价格看起来会比实际低13.5%。

**解决方案**：对所有标注为新建（`description LIKE 'New%'`且`vat_exclusive = true`）的交易，将价格乘以1.135。

```
新建住宅调整价 = 原始价格 × 1.135
二手住宅调整价 = 原始价格（不变）

```

---

### M2：五层PPR数据清洗

从\~775,000行 → 699,653行有效数据，依次过滤：

| 层次  | 规则                                   | 原因                             | 去除数量    |
| --- | ------------------------------------ | ------------------------------ | ------- |
| 第1层 | 去掉价格低于€50,000的                       | 家庭内部名义转让（€1转给子女等）              | 少量      |
| 第2层 | 去掉价格高于€3,000,000的                    | 机构批量购买整栋楼，245笔共€30.6亿，会拉高郡级中位数 | 245笔    |
| 第3层 | 去掉not\_full\_market = true的          | PSRA已标记的非市场价交易（破产出售、社会住房转让等）   | 33,301笔 |
| 第4层 | VAT调整（见M1）                           | 标准化新旧建筑价格                      | 无删减，仅调整 |
| 第5层 | DISTINCT ON (address, date\_clean)去重 | 同一地址同一日期的重复录入                  | 870笔    |

SQL伪代码：

```sql
CREATE VIEW clean_residential_sales AS
SELECT DISTINCT ON (address, date_clean)
  *,
  CASE WHEN description LIKE 'New%' AND vat_exclusive
       THEN price * 1.135
       ELSE price END AS adjusted_price
FROM property_sales
WHERE price >= 50000
  AND price <= 3000000
  AND not_full_market IS NOT TRUE
ORDER BY address, date_clean, price ASC;

```

---

### M3：中位价计算

**为什么用中位数而不用平均值**：

假设一个小县城有9套成交：€100k、€120k、€130k、€140k、€150k、€160k、€170k、€180k、€2,000k

- 平均值 = €350k（被最后一笔超豪华物业严重拉高）
- 中位数 = €150k（更能代表普通市场）

**规则**：

- 郡级：至少20笔交易才纳入统计
- 都柏林邮区：至少10笔交易才纳入统计

---

### M4：都柏林邮区识别

**难点**：PPR数据里的地址是自由文本字符串，例如：`"Flat 3, 45 Ranelagh Road, Ranelagh, Dublin 6"`，需要从中提取邮区编号"6"。

**双重识别方法**：

1. **地址解析**：用正则表达式在地址字符串里找"Dublin X"（X为数字）的模式
2. **Eircode前缀**：2021年后的记录有Eircode，前两位是区域代码（如D01、D04），可以映射到邮区

有效都柏林邮区集合：`{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24}`（没有D19、D21、D23这三个区）

**覆盖率**：双重方法将覆盖率从53.4%提升到65.8%

---

### M5：毛租金收益率

毛收益率 = 一年如果全部出租能收到的租金 ÷ 买房的价格，以百分比表示。

**两个版本**：

```
# Daft版本（主要展示）：用挂牌价和挂牌租金
gross_yield_daft = (Daft月租金 × 12) / Daft挂牌要价 × 100
PPR版本（次要展示）：用成交价和登记租金
gross_yield_ppr = (RTB月租金 × 12) / PPR中位成交价 × 100

```

**重要提示**：毛收益率不是真实到手收益率。要扣除管理费、空置损耗、维修费、保险、税款后才是净收益率（通常比毛收益率低40-50%）。

---

### M6：净回报计算（完整公式）

这是净回报计算器的核心逻辑：

```
① 年毛租金       = 月租金 × 12
② 空置损失       = 年毛租金 × 空置率
③ 有效年租金     = 年毛租金 - 空置损失
④ 管理费         = 有效年租金 × 管理费率
⑤ 年维修费       = 房产价格 × 维修费率
⑥ 保险费         = 固定值（按房价段：<€30万→€600，€30-60万→€800，>€60万→€1,200）
⑦ 应税收入       = 有效年租金 - 管理费 - 维修费 - 保险费
（注：管理费、维修费、保险费均为税前可抵扣费用）
⑧ 所得税         = 应税收入 × 税率
（非居民：20%，标准税率：20%，高税率：40%）
⑨ 地方物业税LPT  = 按Revenue 2022分档查表（€90 to €1,035+）
⑩ 净年收入       = 有效年租金 - 管理费 - 维修费 - 保险费 - 所得税 - LPT
⑪ 净收益率       = 净年收入 / 房产价格 × 100%

```

**LPT分档**（Revenue 2022重新估值）：

| 房产估值                | 年度LPT        |
| ------------------- | ------------ |
| ≤ €200,000          | €90          |
| €200,001–€262,500   | €225         |
| €262,501–€350,000   | €315         |
| €350,001–€437,500   | €405         |
| €437,501–€525,000   | €495         |
| €525,001–€612,500   | €585         |
| €612,501–€700,000   | €675         |
| €700,001–€787,500   | €765         |
| €787,501–€875,000   | €855         |
| €875,001–€962,500   | €945         |
| €962,501–€1,050,000 | €1,035       |
| \> €1,050,000       | 房价 × 0.1029% |

---

### M7：犯罪评分标准化

**问题**：不同郡人口相差悬殊，都柏林人口150万，莱特里姆只有4万人。如果直接比较犯罪总数，都柏林会显得极不安全。

**解决方案**：将犯罪总数转化为**每千人犯罪率**：

```
每千人犯罪率 = 年均犯罪记录数 / 人口 × 1000

```

**注意**：爱尔兰警察分区（Garda Division）不完全对应26个郡，以下警察区跨越两个郡，按人口比例估算拆分：

- Cavan/Monaghan
- Sligo/Leitrim
- Roscommon/Longford
- Laois/Offaly
- Kilkenny/Carlow

---

### M8：价格增长率计算

**基准年选择**：2013年是2008年金融危机后的房价谷底，以此为基准计算"复苏以来的增长"。

```
增长率 = (2025年中位价 - 2013年中位价) / 2013年中位价 × 100%

```

注意：某些人口稀少的郡在2013年可能样本量不足，使用2014年或2015年作为起点。

---

### M9：HAP承租能力指数

**含义**：将市场租金与HAP补贴上限做对比，衡量政府补贴与市场的脱节程度。

```
HAP覆盖率 = HAP家庭限额 / 市场平均两居室租金 × 100%

```

如果覆盖率低于70%，意味着接受HAP租客的房东收入远低于市场价，此类租客对投资者吸引力下降。

---

## 8\. 国际化（双语）系统

### 工作原理

网站支持中文（简体）和英文切换。实现方式是两套并行方案，分别针对不同类型的内容：

**方案A：i18n.js（用于简短UI文本）**

所有页面引用 `/i18n.js?v=5`（版本号用于缓存刷新）。

HTML中用属性标记需要翻译的元素：

```html
<span data-i18n="nav.report">Report</span>

```

JS启动时调用 `applyLang()` 把翻译文本填入这些元素。点击语言按钮时触发 `langchange` 事件，所有监听这个事件的组件更新显示。

**方案B：`.en-text` / `.zh-text` CSS类（用于长段落文本）**

about.html中大量中英文并排内容使用这种方式：

```html
<p>
  <span class="en-text">This is the English text.</span>
  <span class="zh-text">这是中文文本。</span>
</p>

```

CSS规则控制显示：

```css
html[lang="zh-CN"] .en-text { display: none; }
html[lang="zh-CN"] .zh-text { display: inline; }
/* 默认（英文）下相反 */

```

### i18n.js命名空间

| 命名空间      | 用于页面            | 说明                 |
| --------- | --------------- | ------------------ |
| nav.\*    | 所有页面            | 导航链接文本             |
| footer.\* | 所有页面            | 页脚免责声明（不同页面用不同key） |
| ix.\*     | index.html      | 首页所有文本             |
| q.\*      | query.html      | 收益率查询页所有文本         |
| c.\*      | calculator.html | 净回报计算器所有文本         |
| m.\*      | mortgage.html   | 按揭市场页所有文本          |
| mp.\*     | map.html        | 地图页所有文本            |

---

## 9\. SEO 优化

### 每个页面的SEO标签配置

所有6个页面均配置了：

- `<title>`：关键词丰富的页面标题
- `<meta name="description">`：160字以内的摘要
- `<meta name="keywords">`：关键词列表
- `<link rel="canonical">`：规范URL（防止重复内容）
- `<link rel="sitemap">`：指向 `/sitemap.xml`
- `<link rel="alternate" hreflang="en-IE">`：语言区域标记
- `<meta name="geo.region" content="IE">`：地理位置标记
- **Open Graph标签**（og:type, og:title, og:description, og:image + 尺寸 + 类型, og:locale, og:site\_name）：用于Facebook/LinkedIn分享
- **Twitter Card标签**：用于Twitter分享
- **JSON-LD结构化数据**：帮助Google理解页面内容类型

### 结构化数据类型

| 页面              | JSON-LD类型                   | 含义       |
| --------------- | --------------------------- | -------- |
| index.html      | WebSite + Dataset + FAQPage | 数据集+常见问题 |
| query.html      | WebApplication              | 交互工具     |
| calculator.html | WebApplication              | 交互工具     |
| mortgage.html   | Dataset                     | 数据集      |
| map.html        | WebApplication              | 交互工具     |
| about.html      | Article                     | 文章页      |

### sitemap.xml

包含6个URL，按重要性设置优先级：

- `/`：1.0（最重要）
- `/query.html`：0.9
- `/mortgage.html`：0.9
- `/calculator.html`：0.9
- `/map.html`：0.8
- `/about.html`：0.7

---

## 10\. 部署与运维

### 部署方式

本地修改文件后，用SCP命令直接上传到服务器：

```bash
SSHPASS='Yfpwd,0312.' sshpass -e scp -o StrictHostKeyChecking=no \
  文件名.html root@91.99.111.153:/opt/www/irelandproperty/

```

上传后Nginx立即生效，无需重启服务。

### 缓存刷新策略

JavaScript文件（特别是i18n.js）浏览器会缓存。更新i18n.js后，需要在所有HTML文件的引用处修改版本号：

```html
<!-- 旧版本 -->
<script src="/i18n.js?v=4"></script>
<!-- 更新后 -->
<script src="/i18n.js?v=5"></script>

```

当前版本：`v=5`

### 数据更新流程

```
1. 下载最新PPR数据（PSRA网站，CSV格式）
2. 用Python导入PostgreSQL（property_sales表，只追加不修改）
3. 运行分析SQL/Python脚本，重新生成JSON文件
4. 上传新JSON文件到 /data/ 目录
5. 如有新字段或指标，更新相应HTML和i18n.js
6. 缓存刷新（如需要，更新脚本版本号）

```

---

## 11\. 关键数据结论

### 房价增长（2013-2025）

- **全国中位价增长**：+134%
- **增长最快**：Laois（+220%）、Westmeath（+206%）
- **增长最慢**：Donegal（+90%），全国唯一低于+100%的郡
- **都柏林**：+106%，排名第24（倒数第3）——高基数效应

### 2025年租金收益率排名（毛收益率）

| 排名 | 郡         | 毛收益率   | 中位成交价   |
| -- | --------- | ------ | ------- |
| 1  | Longford  | 7.05%  | \~€190k |
| 2  | Leitrim   | \~6.8% | 低价      |
| 3  | Roscommon | \~6.5% | 低价      |
| 7  | Dublin    | \~5.5% | \~€497k |
| 26 | Kildare   | 4.28%  | 高价      |

> 注意：以上毛收益率约为实际到手净收益率的2倍（扣除费用、空置、税后）

### 按揭市场（2025年Q4）

- 首次置业者平均贷款：€323,871
- 首置占按揭总量：约62%（市场主力买家是刚需）
- 当前ECB利率：2.15%（2024年底开始降息）
- 当前爱尔兰新增按揭平均利率：3.50%

### 都柏林邮区最贵两居室租金（2025Q2）

| 邮区              | 2床月租       |
| --------------- | ---------- |
| Dublin 2（市中心）   | €2,483     |
| Dublin 4（南边高档区） | 类似价位       |
| Dublin 1        | €2,050（1床） |

---

## 附录：文件清单

```
/opt/www/irelandproperty/
├── index.html          首页（PPR分析报告）
├── query.html          收益率查询工具
├── calculator.html     净回报计算器
├── mortgage.html       爱尔兰按揭市场
├── map.html            郡级数据地图
├── about.html          数据来源与方法说明
├── i18n.js             中英双语翻译（当前v=5）
├── favicon.svg         网站图标（绿色"IP"字样）
├── og-image.png        社交分享缩略图（1200×630px）
├── sitemap.xml         搜索引擎站点地图
└── data/
    ├── county_stats.json       26个郡综合数据（核心文件）
    ├── dublin_postcodes.json   22个都柏林邮区数据
    ├── rent_trends.json        41个地点季度租金趋势
    ├── ber_county.json         55个地区BER能源评级
    ├── cso_population.json     26个郡人口数据
    ├── cso_vacancy.json        26个郡空置率
    ├── cso_completions.json    26个郡住宅竣工量
    ├── cso_planning.json       26个郡规划许可量
    ├── cso_crime.json          26个郡犯罪统计
    ├── hap_county.json         26个郡HAP租金补贴上限
    ├── ida_fdi.json            26个郡外资吸引力数据
    ├── mortgage_data.json      爱尔兰按揭历史数据
    ├── mortgage_rates.json     ECB和爱尔兰按揭利率历史
    └── region_matrix.json      5大区域分组数据

```

---

*文档生成日期：2026-03-31 | 如有问题请联系：imfan.yang@gmail.com*