5.9 KiB
产品需求文档 (PRD): ProjectMoneyX 个人全景财务分析系统
| 文档属性 | 详情 |
|---|---|
| 项目名称 | ProjectMoneyX |
| 版本号 | v1.1 (优化版) |
| 编制日期 | 2026-02-26 |
1. 项目背景与目标
1.1 项目背景
随着移动支付的普及,个人财务数据分散在支付宝、微信、各家银行APP及电商平台中。用户难以通过单一平台获取全景财务状况,面临“账单碎片化”、“流水重复记录”、“统计维度单一”等痛点。
1.2 项目目标
构建一套自动化、高精度的个人财务分析系统。通过ETL(抽取、转换、加载)技术整合多源数据,利用算法解决跨账户流水重复问题,提供多维度的收支分析、资产趋势及预算管理功能,帮助用户实现“上帝视角”的财务管控。
2. 数据源与采集规范 (Data Ingestion)
系统需支持多格式、多来源的账单导入,并建立可扩展的解析适配器模式。
| 数据来源 | 原始格式 | 数据周期 | 解析策略 | 数据权重 | 备注 |
|---|---|---|---|---|---|
| 支付宝 | CSV | 1年 | Pandas直接读取 | L1 (最高) | 包含商品明细,作为消费类主数据 |
| 微信支付 | CSV | 3个月 | Pandas预处理 (表头清洗) | L2 | 包含转账与社交红包,需特殊标记 |
| 招商银行 | 1年 | 文本流解析 (pdfplumber) | L3 | 作为资金来源核对依据 (Reconciliation) | |
| 京东金融 | PDF/XLS | 1年 | 文本流解析 / OCR辅助 | L3 | 重点关注“白条”类信贷数据 |
| 云闪付 | PDF/CSV | 1年 | 适配器解析 | L3 | 银联通道补充数据 |
功能要求:
- 适配器模式(Adapter Pattern): 针对不同来源开发独立的解析类(Parser Class),当银行账单格式变更时,仅需更新对应解析器。
- OCR 增强解析: 针对图片格式的账单或非标准的扫描版PDF,集成 OCR 引擎(如 PaddleOCR)进行关键字段(日期、金额、商户)提取。
3. 数据清洗与核心逻辑 (Data Cleaning & Logic)
这是本系统的核心壁垒,重点解决多渠道数据冲突与标准化问题。
3.1 时间维度标准化
- 存储标准: 所有交易时间戳统一转换为 ISO 8601 格式存储。
- 时区处理: 统一归一化为
UTC+8。若涉及跨国交易(如外币信用卡),需保留原始交易币种和时间,并记录当期汇率。 - 查询支持: 数据库层需支持基于时间窗口(Time Window)的聚合查询(如:
BETWEEN '2026-02-01' AND '2026-02-28')。
3.2 交易去重与链路合并 (De-duplication & Linkage)
初始需求中提到的“重复项”实际上是“同一笔交易在不同账户的映射”。系统不应简单删除,而应建立交易链路(Transaction Linkage)。
核心算法逻辑: 设支付宝账单记录为 $T_{ali}$,银行账单记录为 $T_{bank}$。 当满足以下条件时,判定为同一笔交易:
| Time(T_{ali}) - Time(T_{bank}) | \le \Delta t \quad (\text{建议 } \Delta t = 120s)
Amount(T_{ali}) = Amount(T_{bank})
处理策略:
- 合并展示: 将两条记录关联。
- 主记录(保留): 支付宝/微信记录(因其包含具体的商户名、商品名、消费分类)。
- 辅记录(隐藏/标记): 银行卡记录标记为“资金划转(Transfer)”或“支付源扣款”。
- 账户归属明确:
- 支付渠道(Payment Channel): 支付宝、微信、云闪付、美团。
- 资金账户(Funding Source): 招商银行信用卡、工商银行储蓄卡、京东白条、余额宝。
- 示例: 用户在淘宝买衣服,用支付宝绑定的招行卡支付。系统记录为:支出 200元 (分类:服饰),支付渠道:支付宝,资金来源:招行信用卡。
3.3 智能分类 (Smart Categorization)
-
多级分类体系:
-
一级分类:餐饮、交通、购物、居住、娱乐、医疗、金融。
-
二级分类:早餐/正餐、地铁/打车、数码/服饰、房租/水电。
-
关键词映射: 建立
Merchant_Keyword_Map表。 -
例:包含“星巴克”、“瑞幸” -> 自动归类为 [餐饮-咖啡]。
-
例:包含“中国石油” -> 自动归类为 [交通-加油]。
-
人工修正与学习: 用户手动修改某一笔交易分类后,系统询问“是否将该商户后续交易默认应用此分类”。
4. 功能模块详述
4.1 仪表盘 (Dashboard)
-
全景资产卡片: 显示总资产、总负债(信用卡+白条+花呗)、净资产。
-
本月收支概览: * 当月支出 vs 上月同期环比 (MoM)。
-
预算执行进度条(如:本月预算剩余 30%)。
-
收支趋势图: 折线图展示近12个月的收支波动。
4.2 账单查询与分析
-
高级筛选器: 支持组合条件筛选:
-
时间范围(自定义/本周/本月/本年)。
-
金额区间(如:> 1000元的大额支出)。
-
支付渠道 & 资金账户。
-
交易分类。
-
关键词搜索(如:“京东”)。
-
多维图表:
-
[饼图] 消费结构分析(哪类钱花得最多)。
-
[堆叠柱状图] 支付渠道依赖度分析。
-
[桑基图 (Sankey Diagram)] 资金流向可视化(从收入 -> 账户 -> 支出类别)。
4.3 预算与预警
- 预算设置: 支持总预算及分分类预算(如:“餐饮”每月限额 3000元)。
- 超支预警: 当某一类别支出达到预算的 80% 时,界面高亮提示。
5. 非功能需求 (NFR)
5.1 数据隐私与安全
- 本地优先(Local-First): 鉴于财务数据极度敏感,建议所有数据解析、清洗、存储默认在用户本地电脑中完成。
技术栈
- Golang
- Vue
- TypeScript
- SQLite
- ECharts(寻找适合的图表工具,不限于ECharts)