LifeOS 开支数据层实战指南:以 EXPENSES.md 模板构建 Pulse 财务仪表盘的支出分类体系
发布时间:2026/9/13 18:41:01 作者:尧图编辑部 阅读量:1,286

LifeOS 开支数据层实战指南以 EXPENSES.md 模板构建 Pulse 财务仪表盘的支出分类体系【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS导读在 LifeOS 的私人用户数据树USER tree中FINANCES目录是个人财务上下文的唯一事实来源source of truth而EXPENSES.md正是其中负责支出侧的核心模板文件它将反复性与自由裁量支出按类别拆解供 Pulse 读取以标记超支、发现优化候选并与账单明细statement对账。本文以 EXPENSES.md 为骨架完整解析其五段式支出模型与占位符规范并结合 schema.yaml、obligations.yaml 与 Pulse 财务仪表盘源码 说明底层数据结构与校验规则。读完你将掌握如何用结构化 Markdown 描述个人支出、如何将表格映射到机器可校验的 YAML 模式以及如何让真实财务数据安全地在本地驱动 Pulse 财务视图。一、EXPENSES.md 在 LifeOS 财务数据层中的定位FINANCES目录是 LifeOS 个人财务上下文的集中存放处目录 README 明确列出了每个文件的职责FINANCES.md— 顶层概览净资产快照、月度现金流、当前焦点INCOME.md— 收入来源、频率与预期金额EXPENSES.md— 带预算的经常性支出类别本文主角INVESTMENTS.md— 投资账户与配置ACCOUNTS.md— 银行、信用卡与券商账户仅存后四位GOALS.md— 带目标金额与日期的财务目标TAXES.md— 税务概览、预估季度税、需跟踪的抵扣项obligations.yaml— 经常性账单订阅、保险、贷款vendors.yaml— 你付款或收款的所有已知商户schema.yaml— 财务数据的模式定义结构参考其中FINANCES.md 是财务仪表盘的入口它的月度现金流一节直接引用固定支出与可变支出的月度金额fixed_expenses (monthly)与variable_expenses (monthly)而这两个数字正是由EXPENSES.md的分类小计汇总而来。因此EXPENSES.md不是一份孤立的记账表而是整个现金流计算链路的支出源数据。从实现侧看Pulse 财务仪表盘 会把义务obligations、商户vendors与其他支出汇总为对外支出总额源码中以obligations_annual、obligations: ResolvedLine[]等字段参与 KPI 计算并把商户个人义务其他的合计呈现为支出侧核心指标。也就是说你在EXPENSES.md与obligations.yaml里填的数据最终会被 Pulse 解析成仪表盘上的支出 KPI 与年度义务口径。二、模板结构总览五段式支出模型EXPENSES.md 将个人支出划分为五个区块构成一个完整的分类 → 小计 → 汇总 → 优化闭环区块内容汇总方式固定月度支出Fixed Monthly Expenses住房、水电、保险、电话等刚性账单月度小计经常性软件/订阅Recurring Software / SubscriptionsSaaS、流媒体、云服务、AI 工具归一化到月的小计可变支出月度均值Variable Expenses食品杂货、外食、交通、旅行等月度均值小计年度/周期性支出Annual / Periodic Expenses房产税、车检、域名、会费等年度条目总支出与优化候选Totals Optimization月度合计、年度化合计、优化清单汇总计算这种分段的意义在于刚性支出与自由裁量支出分开统计订阅单独归类便于 Pulse 分别做超支标记flag overruns、优化候选识别surface optimization candidates与账单对账reconcile against statement summaries三件事。三、固定月度支出刚性账单的标准化记录模板中固定月度支出表格的列为Category | Vendor | Amount | Frequency | Notes内置了 7 类示例条目CategoryVendorAmountFrequencyNotesHousingSample Landlord / Sample Bank Mortgage$X,XXXmonthlySample notesUtilities — ElectricSample Utility$XmonthlySample notesUtilities — InternetSample ISP$XmonthlySample notesUtilities — WaterSample Water Co.$XmonthlySample notesInsurance — HealthSample Insurer$XmonthlySample notesInsurance — AutoSample Auto Insurer$XmonthlySample notesPhoneSample Carrier$XmonthlySample notesSubtotal (fixed monthly):$X,XXX填写要点Category 取值应当与 schema 对齐。在 schema.yaml 的expense定义中category枚举为[housing, utilities, insurance, subscription, software, grocery, dining, transportation, travel, entertainment, health, clothing, gifts, charitable, tax, loan, other]frequency枚举为[weekly, monthly, quarterly, semi-annual, annual, one-time]。模板中的中文表头如 Utilities — Electric是展示性的真正被 Pulse 校验的是类别字段是否命中枚举值。金额字段在模板阶段必须用字符串占位符$X/$X,XXX这是 schema.yaml 底部validation规则明确要求的所有货币字段必须是字符串而非数字以便在上手阶段容纳$X,XXX这类占位值。从底层实现看固定支出与 obligations.yaml 中的category: housing/utilities/insurance条目是一一对应的例如模板中的 Sample LandlordHousing对应 obligations.yaml 里due_day: 1、autopay: true的租金条目Sample ISP 对应due_day: 10的宽带条目。EXPENSES.md负责月度成本结构视角obligations.yaml负责扣款日程与自动扣款视角二者互为表里。四、订阅与软件容易被忽略的经常性现金流订阅区独立成表Category | Vendor | Amount | Frequency | Notes模板内置 5 条示例CategoryVendorAmountFrequencyNotesProductivity SaaSSample SaaS Vendor 1$XmonthlySample notesProductivity SaaSSample SaaS Vendor 2$XannualSample notesStreamingSample Streaming Service$XmonthlySample notesCloud / HostingSample Cloud Provider$XmonthlySample notesAI ToolsSample AI Vendor$XmonthlySample notesSubtotal (subscriptions, normalized to monthly):$X注意这里的关键设计年度订阅必须归一化到月度normalized to monthly例如年付 $120 的 SaaS 记为每月 $10。这样小计才能与固定月度支出一并相加。在 vendors.yaml 中这些订阅商户Sample SaaS Vendor 1、Sample SaaS Vendor 2、Sample AI Vendor、Sample Cloud Provider、Sample Streaming Service均以category: software或subscription、direction: outbound登记并带有match字段如SAMPLE SAAS 1、SAMPLE AI——这是 Pulse 用来在账单明细中识别已知 vs 新商户的匹配子串。五、可变支出信封预算Envelope Budget机制可变支出表Category | Average | Envelope / Budget | Notes引入了本模板最有特色的概念——信封预算Average记录历史月度均值Envelope / Budget记录你为该类别设定的预算上限。模板内置 8 类CategoryAverageEnvelope / BudgetNotesGroceries$X$XSample notesDining out$X$XSample notesTransportation / Fuel$X$XSample notesTravel$X$XSample notesEntertainment$X$XSample notesHealth / Fitness$X$XSample notesClothing / Personal$X$XSample notesGifts / Charitable$X$XSample notesSubtotal (variable, monthly avg):$X,XXX在 schema.yaml 的expense定义中envelope字段示例$X对应模板的 Envelope / Budget 列notes为自由文本。当Average连续超过Envelope时Pulse 的超支标记逻辑就有了可比较的数据对。这也是整个模板中唯一一处同时记录实际值与预算值的表是后续优化分析的核心输入。六、年度/周期性支出与大额低频账单年度区表格Category | Vendor | Amount | When | Notes模板内置 4 条CategoryVendorAmountWhenNotesProperty taxSample County Assessor$X,XXXannuallySample notesAuto registrationSample DMV$XannuallySample notesDomain / DNSSample Registrar$XannuallySample notesProfessional duesSample Org$XannuallySample notes这类条目在 obligations.yaml 中有对应的机器化表达例如Sample County Assessor条目为category: tax、frequency: annual、autopay: false、due_day: null并注明property tax, due YYYY-MM-DD。可见模板中的When列在 YAML 里由frequency频率与due_day期间内的到期日月度 1-31年度 1-365两个字段共同表达。七、总支出汇总月度合计与年度化合计模板给出的汇总口径Monthly total (fixed subscriptions variable avg):$X,XXXAnnualized total:$X,XXX即月度合计 固定月度小计 订阅月度归一化小计 可变支出月度均值小计年度化合计 月度合计 × 12再加入年度/周期性条目后得到更完整的年支出。这两个数字与 FINANCES.md 的Monthly Cash Flow区块Fixed expenses (monthly)、Variable expenses (monthly)、Net (monthly)直接联动最终汇入净现金流与储蓄率计算。八、优化候选把数据变成行动模板的最后一段Optimization Candidates以自由清单形式列出降本方向内置 3 条示例Sample candidate 1 — e.g., consolidate overlapping SaaS合并重叠的 SaaS 订阅Sample candidate 2 — e.g., renegotiate insurance at renewal续保时重新谈判保险Sample candidate 3 — e.g., audit subscriptions quarterly每季度审计订阅这是意图工程平台intent engineering platform理念的体现LifeOS 不仅记录支出还要求用户显式写出优化行动项使其成为后续每日简报中的可跟踪任务。该区块与 FINANCES.md 的Current Focus如 reducing recurring software costs形成呼应。九、底层数据结构与校验规则schema.yaml 深入解读obligations.yaml 是EXPENSES.md的机器可读孪生体其字段定义如下字段类型说明vendorstring收款方名称categorystringhousing \| utilities \| insurance \| subscription \| loan \| tax \| otheramountstring美元金额字符串$X/$X,XXXfrequencystringmonthly \| quarterly \| annual \| semi-annual \| weekly \| one-timedue_daynumber?期间内到期日月度 1-31年度 1-365可空accountstring扣款账户Sample Bank ...XXXX形式autopayboolean是否开启自动扣款notesstring?自由文本schema.yaml 同时定义了全局校验规则Pulse 与/interview finances工作流会据此校验你的真实数据所有货币字段必须是字符串非数字以便上手阶段容纳$X,XXX占位值last_4字段必须恰好 4 个字符数字或 X 占位日期必须为 ISO 8601YYYY-MM-DDcategory与枚举字段必须精确匹配允许值任何位置都不得出现完整账号只允许后四位。这意味着你在EXPENSES.md填写的$X,XXX、Sample Landlord、Sample Notes都是合法的过渡值但一旦替换为真实数据就必须满足上述类型与枚举约束否则 Pulse 校验无法通过。十、两种填充方式与隐私边界按照 目录 README 的说明填充真实数据有两条路径运行 Finances 访谈/interview finances会以对话方式逐文件引导你填写并把结果写回本目录直接编辑文件打开每个文件把所有$X、Sample Bank、Sample Vendor占位符替换为真实值保持结构不变——Pulse 依赖字段名解析。占位符约定sample placeholder conventions$X— 任意美元金额$X,XXX— 较大的美元金额$X.XX— 精确美元金额Sample Bank/Sample Vendor/Sample Account— 替换为真实实体名XXXX— 账户或卡号后四位隐私边界是这套数据层设计的硬约束FINANCES目录属于私人 USER 树永远不会被打包进公开的 LifeOS 发布物且ACCOUNTS.md明确要求登录凭据存放在密码管理器中而不是这里。把FINANCES当作密码管理器同等对待——真实数字只存在于本机。结语从 EXPENSES.md 的单一模板出发可以看清 LifeOS 财务数据层的完整设计Markdown 表格面向人类可读性schema.yaml 提供机器可校验的类型与枚举约束obligations.yaml 与 vendors.yaml 支撑 Pulse 的账单日程、商户识别与对账能力最终汇入 FINANCES.md 的现金流概览并由 Pulse 财务仪表盘 渲染为支出 KPI。只要保持模板结构与字段名不变将每一处占位符替换为真实数据并遵守字符串金额、后四位账号与 ISO 日期三项硬规则你的本地财务数据就能安全地驱动 Pulse 的超支标记、优化候选与账单对账能力。【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考