别只
tail -f流水,你的财务系统需要一个snapshot
01
我维护一个财务日志系统,已经连续运行了 3 年。
每笔消费——无论是 INSERT INTO expenses (奶茶, 25.00),还是 UPDATE 月底预算——都严格记录。每月跑一次报表,看着支出环比下降 5%,我觉得自己是个合格的“系统管理员”。
老公从不记账。他的工资卡像一个只读数据库,每月直接同步给我。我每月给他转账 3000 元(零花钱),剩余数据由我“处理”。
三年后,系统的 savings 字段从 10 万涨到了 35 万。
直到上个月,老公发起一次查询:
“咱家的
net_worth是多少?”
我脱口而出:“存款 35 万。”
他又问:“房子、车子、房贷、公积金……这些字段你 JOIN 了吗?”
我瞬间 NULL。
02
当晚,我执行了一次跨数据源的全量查询。
python
assets = {
"my_current": 80_000,
"husband_current": 20_000, # 刚发薪
"time_deposit": 250_000, # 三年期,锁定期还剩 2 年
"fund": 34_000, # 已扣除浮亏
"house": 2_200_000,
"car": 80_000,
"my_housing_fund": 50_000,
"husband_housing_fund": 120_000
}
liabilities = {
"mortgage": 650_000,
"credit_card": 12_000,
"huabei": 3_000
}
net_worth = sum(assets.values()) - sum(liabilities.values())
print(f"净资产: {net_worth:,}") # 2,169,000
216.9 万?我反复校验,确认没有溢出错误。
可为什么系统每天还是报“资金紧张”?
03
老公看了一眼我的查询结果,指出两个 BUG:
housing_fund不是liquid_asset
不买房不租房,就无法调用withdraw()。time_deposit被锁仓
提前赎回会触发penalty(罚息),且目前处于LOCKED状态。
我突然意识到:我只查询了 balance,没有检查 liquidity 属性。
我的财务系统只有 transaction log(记账流水),却没有定期的 snapshot(资产负债表)。
而 snapshot 不仅要记录 assets - liabilities,还要给每个资产打标签:liquidity_level, lock_period, risk_tolerance。
04
当晚我重构了数据模型,引入了分层存储。
python
class CapitalTier:
def __init__(self, name, liquidity, lock_years, risk):
self.name = name
self.liquidity = liquidity # 0=不可动, 1=可动但成本高, 2=随时
self.lock_years = lock_years
self.risk = risk # 0=保本, 0.8=可接受20%回撤
# 重新分层
tiers = {
"活钱": { "amount": 100_000, "liquidity": 2, "lock": 0, "risk": 0 },
"稳钱": { "amount": 250_000 + 170_000, "liquidity": 1, "lock": 2, "risk": 0.02 },
"长钱": { "amount": 34_000, "liquidity": 2, "lock": 0, "risk": 0.8 }
}
investable = tiers["长钱"]["amount"] # 34,000
# 外加每月增量 5,000
我之前打算拿 20 万去炒股(直接动用 time_deposit 或 housing_fund),幸亏没执行。
正确的可投资金额只有 3.4 万存量 + 每月 5k 定投。
05
从那以后,我的财务系统增加了两个核心作业:
- 每月底执行
snapshot
记录net_worth、liquidity_ratio、tier_distribution。 - 配置偏离告警
如果长钱占比低于目标(比如 20%),触发rebalance信号。
用 SQL 理解就是:
sql
-- 每月快照表
CREATE TABLE monthly_snapshot (
date DATE,
net_worth DECIMAL,
liquid_ratio DECIMAL, -- 活钱 / 总资产
growth_ratio DECIMAL -- 长钱 / 总资产
);
-- 查看净值趋势
SELECT date, net_worth - LAG(net_worth) OVER (ORDER BY date) AS delta
FROM monthly_snapshot;
06
不想手写 SQL 或维护 Python 脚本?用现成工具。
微信搜索「ReFi理财」小程序,里面的“家庭资产负债表”本质上就是:
- 一个前端 UI 帮你
INSERT/UPDATE资产和负债 - 后端自动计算
net_worth、liquidity_ratio、tier_allocation - 每月对比,自动
diff
不需要写代码,但逻辑和你自己设计的 CapitalTier 一模一样。
👉 微信搜索「ReFi理财」→ 家庭资产负债表 → 给你的财务系统建一个 snapshot
最后
记账 = 记录 transaction log(每一笔收支)
资产负债表 = 定期 snapshot(净资产、分层配置、流动性)
两样都有,你才真正拥有家庭财务的可观测性。
别像我一样,维护了三年的完美日志,却答不上一个最简单的 SELECT net_worth。
本文为真实经历改编,不构成投资建议。欢迎评论区讨论你的“财务分层策略”。