# 租金逐月统计表制作方法（应付-已付-累计欠付）

## 适用场景
租赁纠纷中需要证明承租人在合同解除前是否/何时达到约定解除条件（如"欠交租金二个月"）。

## 关键方法论

### 铁律1：计算口径必须与再审申请书完全一致 + Doro最终计租规则（2026-06-15 万禹案教训）

**Doro最终确认的计租规则（2026-06-15，优先级最高）**："按月租金固定算，不足月的才按天算"
- **整月**：用合同约定的固定月租（如118,625元），不管该月28/29/30/31天，都收固定月租
- **不足月（首月/末月）**：才用日租金×天数（如首月9/16-9/30=15天×3,900；末月3/1-3/12=12天×3,900）
- 这是合同约定的计租方式，符合\"月租金\"的法律含义。**不要为了对齐申请书的按日总数而把所有月份都改成按日**——那是中间错误版本，被Doro否定

**与申请书核对——方法可不同但关键数字必须锚定同一来源**：
- 申请书可能用纯按日（1500×2.6×908=3,541,200）作总额验算，统计表用\"整月固定+首尾按天\"，两者总应付会有约3,557元的方法性差异（整月118,625≈30.42天 vs 实际天数）——这个差异是计租方法不同造成的，可以接受，在表底\"交叉验证区\"如实标注差异和原因即可
- **但已付租金、减免金额、瑕疵减价单价、解除门槛这些关键数字必须与申请书/判决书完全一致**，不能算出两个值
- **两份文件同一个数字不能算出不同结果**——这是Doro质疑的直接原因

**踩坑顺序（2026-06-15，三次返工）**：
1. 第一版用整月118,625逐月累加 → 漏掉\"补充协议减免\"列，欠付暴涨到226,281（见铁律4）
2. 补回减免列后欠付75,032.70，与申请书71,475.90差3,556.80 → 追查发现是计租方法差异（整月vs按日 + 末月天数）
3. 改成全部按日（3,900×天数）、末月11天 → 欠付71,475.90完全对齐申请书，但Doro指出\"按月租金固定算，不足月的才按天算\"，又改回整月固定+首尾按天
- **末月天数**：解除日当天是否计入要与申请书一致（申请书908天不含解除日当天，则末月用11天而非12天；用Python `(end-start).days` 验证）

**核对步骤**：
1. 找到申请书中的总应付公式（如"1,500㎡×2.6元/日×908日=3,541,200元"）
2. 确认总天数（起始日到解除日是否含末日，用Python `(end-start).days` 验证）
3. 确认减免总额公式（如"388,498.50元"是哪几项之和）
4. 确认瑕疵减价公式（如"257×2.6×908=606,725.60"）
5. 统计表合计行的每个数字都必须能还原到申请书公式

### 铁律2：减免金额用判决书/申请书确认的数字
- ✅ 判决书确认"疫情减免2022年4月和5月共237,250元" → 直接用
- ✅ 申请书写"388,498.50元（含补充协议减免151,248.50元+疫情减免237,250元）" → 直接用
- ❌ 自己重新计算减免金额（会因计租方法差异产生偏差）
- 原则：凡申请书/判决书有确认数字的，用它的数字

### 铁律3：已付租金按实际付款日期归入对应月份
- 不要平摊到多个月——一笔付款就在付款当月全额记入
- 付款记录必须交叉核对多个数据源（银行回单 > 当事人明细 > 判决书认定）

### 铁律4：重做表格时必须逐列对照旧版（2026-06-15 教训）
**重做/更新统计表时，MUST逐列对照旧版检查，不能凭记忆重建**。漏掉一列就可能导致15万元级别的计算错误。
- 2026-06-15教训：重做统计表时漏掉了"补充协议减免"列（¥151,248.50），导致累计欠付从75,032.70暴涨到226,281.20。Doro发现后问"为什么和申请书的71,475.90差距那么大"
- 原因：旧表有10列（含补充协议减免），新表只建了9列
- 修正方法：读取旧表headers → 逐列确认新表是否覆盖 → diff列出新旧差异

### 铁律5：Excel保留计算公式，不填静态数字
- 应付租金 = `=B{row}*C{row}`（天数×日租金）
- 瑕疵减价 = `=257*2.6*B{row}`
- 当月欠付 = `=D{row}-E{row}-G{row}-H{row}-I{row}`
- 累计欠付 = `=K{row-1}+J{row}`
- 是否达到 = `=IF(K{row}>=237250,"是","否")`
- 合计行 = `=SUM()`
- 新增"交叉验证"区：申请书公式 vs 统计表公式 vs 差异，方便核对人一眼看出是否一致

## 表格列结构

| 期间 | 天数 | 日租金 | 合同应付租金 | 已付租金 | 支付凭证来源 | 疫情减免 | 补充协议减免 | 瑕疵减价(257㎡×2.6×天) | 当月欠付(净额) | 累计欠付 | 是否达到解除门槛 |

### 各列说明
- **天数**：当月计租天数（注意首月和末月按实际天数，末月是否含解除日当天需与申请书一致）
- **日租金**：固定值（如3,900元），作为公式引用基础
- **合同应付租金**：= 天数 × 日租金（公式）
- **已付租金**：当月实际到账金额，附凭证来源
- **支付凭证来源**：银行编号/页码，便于核查
- **疫情减免**：法院认定的固定金额，按减免月份填入
- **补充协议减免**：协议确认的债务减免差额，在对应月份一次性填入（**不可遗漏！**）
- **瑕疵减价**：= 257 × 2.6 × 天数（公式）
- **当月欠付** = 应付 - 已付 - 疫情减免 - 补协减免 - 瑕疵减价（公式）
- **累计欠付** = 上月累计 + 当月欠付（公式，可为负）
- **是否达到门槛** = IF(累计欠付 ≥ 门槛, "是", "否")（公式）

## 交叉验证区（统计表底部必备）

在合计行下方新增验证区：

| 项目 | 申请书数值 | 统计表公式 | 差异 |
|------|-----------|-----------|------|
| 应付总租金 | =1500*2.6*908 | =SUM(应付列) | =申请书-统计表 |
| 疫情减免 | 388498.50 | =SUM(减免列) | ... |
| 瑕疵减价 | =257*2.6*908 | =SUM(瑕疵列) | ... |
| 实际应付 | =应付-减免-瑕疵 | =应付-减免-瑕疵 | ... |
| 已付 | 2474500 | =SUM(已付列) | ... |
| 欠付 | 71475.90 | =实际应付-已付 | ... |

**差异列全部为0才算通过。**

## 支付凭证OCR交叉校验方法（2026-06-15实测）

当支付凭证为扫描件PDF时：
1. **双OCR引擎交叉验证**：tesseract（快速但质量一般）+ DeepSeek-OCR（质量高但API不稳定）。CamScanner扫描件先用pymupdf转200dpi PNG再逐页OCR，DeepSeek API易Connection reset，要retry+background运行
2. **去重关键**：同一交易可能以付款详情和回单两种格式出现在不同页面，用银行编号（FT号）去重
3. **金额相同≠重复交易**：两笔金额相同但银行编号（FT号）或回单编号不同 = 两笔独立交易，不能去重（2026-06-15教训：P10有两笔8,176水电费、P6+P10各有一笔11,440水电费，FT号和回单编号都不同，是独立交易，差点漏记19,616元）。去重只认银行编号/回单编号，不认金额
4. **金额验证**：大写金额与小写金额不一致时以小写为准（OCR对大写汉字识别率较低；2026-06-15实测DeepSeek把壹万壹仟肆佰肆拾误读成壹万捌仟肆佰肆拾，而回单小写11,440正确）
5. **总额验证（最强校验手段）**：某收款方总额减去非相关项（住宿费、物业管理费、用途不详等）后应等于二审认定的已付租金。本案首乌丽亚收款2,749,350 - 十楼房租150,254 - 物业管理费120,000 - 住宿费2,606 - 用途不详1,990 = 2,474,500，与二审认定分毫不差，反向确认了OCR分类正确

## Excel格式规范
- 标题行：深蓝底白字
- 达到门槛的月份：红字高亮
- 数字格式：#,##0.00
- 合计行：粗体+浅绿底色
- 交叉验证区：独立于合计行下方
