# Expense

> SKILL.md - 差旅报销数据处理

- Skill: `sunchenzheng/expense` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add sunchenzheng/expense`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sunchenzheng/expense/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: sunchenzheng (https://skillmd.com/u/sunchenzheng)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sunchenzheng/expense

---

# SKILL.md - 差旅报销数据处理

## 功能概述

自动归集微信/支付宝/招商银行信用卡的消费流水，匹配数电发票，标记公司垫款，生成报销核对清单。

## 用户支付结构

| 支付渠道 | 资金来源卡片 |
|---------|------------|
| 微信支付 | 微信钱包余额 / 招商银行2690(借记卡) / 兴业银行信用卡 |
| 支付宝 | 支付宝余额 / 招商银行8651(公司商务卡) |

### 招商银行8651（公司商务卡）
- **所有餐饮、出差旅馆费用**走这张卡
- **所有>500元的消费**视为公司垫款，需对应发票报销
- 数电发票需上传至公司财务系统（发票云）验真留存

## 消费流水类型

| 类型 | 说明 |
|------|------|
| **公司垫款** | ⭐ 大额消费，需发票报销，需标记 |
| **个人消费** | 自费，无需报销 |
| **日常零星** | 小额，视情况处理 |

## 核心流程

```
消费流水导入 → 自动标记大额垫款 → 匹配数电发票 → 核对清单输出
```

## 数据来源

### 微信支付账单
- 路径：微信 → 我 → 服务 → 钱包 → 账单 → ··· → 账单下载
- 格式：CSV

### 支付宝账单
- 路径：支付宝 → 我的 → 账单 → ··· → 导出账单
- 格式：CSV

### 招商银行信用卡账单（商务卡8651）
- 路径：掌上生活 App → 账单 → 已出账单 → 导出
- 格式：CSV

### 数电发票
- 格式：XML 或 PDF
- 存储目录：用户指定（待配置）

## 核心字段

### 流水表字段
- 交易时间
- 交易金额
- 交易商户/对方
- 支付渠道（微信/支付宝/招行）
- 资金来源（卡片/余额）
- 是否公司垫款（是/否）
- 报销状态（未提交/已开发票/已报销）
- 关联发票号码

### 发票表字段
- 发票号码
- 开票时间
- 金额（含税）
- 销售方名称
- 购买方名称
- 关联流水ID

## 文件结构

```
skills/expense/
├── SKILL.md                    # 本文件
├── config.py                   # 配置文件（路径、阈值等）
├── import_statements.py        # 流水导入模块
├── match_invoices.py           # 发票匹配模块
├── mark_expenses.py            # 垫款标记模块
├── main.py                     # 主入口脚本
├── templates/
│   └── expense_report.xlsx     # 报销核对清单模板
└── data/                       # 数据存放目录（用户创建）
    ├── statements/             # 银行流水CSV
    ├── invoices/               # 数电发票XML/PDF
    └── output/                 # 输出报表
```

## 使用方法

### 第一步：配置
编辑 `config.py`，设置：
- 发票存放目录
- 流水CSV目录
- 大额阈值（默认500元）
- 输出目录

### 第二步：导入流水
```bash
python main.py import --source wechat --file 微信支付账单202601.csv
python main.py import --source alipay --file 支付宝流水202601.csv
python main.py import --source cmb --file 招行商务卡账单202601.csv
```

### 第三步：匹配发票
```bash
python main.py match
```

### 第四步：标记垫款
```bash
python main.py mark
```

### 第五步：生成报表
```bash
python main.py report
```

## 匹配规则

发票与流水的匹配逻辑：
1. **金额完全一致**（精确到分）
2. **日期在±3天内**
3. **商户名称相似**（包含关系，去除"上海""北京"等地名干扰）

满足1+2为候选，同时满足3则高置信匹配。

## 输出报表

生成 `报销核对清单_YYYY-MM-DD.xlsx`，包含：
- 所有公司垫款记录
- 已匹配发票信息
- 未匹配消费（缺发票预警）
- 汇总金额统计

