财务规划 是做什么的?
规则
- MRR 计算:所有活跃订阅的月度价值之和 — 年度计划除以 12,排除一次性收费
- ARR:MRR * 12 — 在仪表盘上同时显示两者,使用 MRR 进行月度趋势分析,使用 ARR 进行年度规划
- MRR 构成:跟踪新增 MRR、扩展 MRR(升级)、收缩 MRR(降级)、流失 MRR(取消)、重新激活 MRR — 以瀑布图展示
- 烧钱率:(期初现金 - 期末现金)/ 月份数 — 按月计算,以当前烧钱率显示跑道月数
- 收入仪表盘:显示 MRR、ARR、MRR 增长率(月环比%)、净收入留存率、总客户数 — 每日更新
- 财务预测:建模 3 种场景(保守、基准、乐观)— 变化增长率和流失率,预测 12-24 个月
- 货币处理:所有金额以美分(整数)存储 — 绝不对货币使用浮点数 — 使用
Intl.NumberFormat显示 - 日期范围:默认为过去 12 个月,允许自定义范围 — 按月聚合趋势,按日聚合近期活动
仪表盘数据模型
CREATE TABLE revenue_events (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
type TEXT NOT NULL, -- 'new' | 'expansion' | 'contraction' | 'churn' | 'reactivation'
amount_cents INTEGER NOT NULL,
customer_id UUID NOT NULL,
occurred_at DATE NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
按月聚合 MRR:SELECT date_trunc('month', occurred_at), type, SUM(amount_cents) FROM revenue_events GROUP BY 1, 2。
避免
- 对货币使用浮点数 — 全程使用整型美分
- 不区分构成计算 MRR — 你需要知道 MRR 变化的原因
- 仅按月度粒度 — 存储每日事件,聚合用于展示
- 忽略收缩 MRR — 降级是早期流失信号