跳至正文

【管理会计】入门-2 账户余额变化的两种记录方式

在第一节中,我们介绍了账户基本信息、期初余额、会计期间和会计借贷的基本概念。

注:本文正在修改中,可能存在瑕疵,请批判地浏览。这是 XILEJUN 之前不能抵达的全新领域。

一、上节回顾

  • 账户余额:账户在特定时点的资金总额,反映资产、负债或权益状况。
  • 期初余额:会计期间开始时的账户余额,为财务记录提供起点。
  • 会计期间:财务记录的时间范围,通常以财年或月为单位。
  • 会计科目:分类管理财务信息,银行账户归为资产类(如银行存款)或负债类(如短期借款)。
  • 会计借贷:余额分为借方(资产正余额或负债负余额)和贷方(负债正余额或资产负余额)。

二、余额变化的基本概念与记录方式

1. 余额变化的定义

余额变化(Balance Change)是指在会计期间内,因交易(如收入、支出、转账等)导致账户余额的增减。

余额变化记录企业资金流动,是会计核算的核心。

2. 记录方式

企业可通过以下两种方式管理余额变化,分别代表不同的观察视角和数据粒度:

2.1 每日余额快照 BalanceRowDay

  • 定义:每天记录账户在特定时点(通常24点)的借贷余额,形成余额快照。
  • 实现方式:从银行每日提供的余额数据(如邮件通知)获取并记录。
  • 优点
    • 简单易用每日一次记录,数据量小,易于初学者理解
    • 趋势分析:便于生成日、月余额趋势图,适合管理会计。
    • 低维护成本:无需处理交易细节,减少复杂性。
  • 缺点
    • 缺乏细节:无法反映日内多次交易的明细(如收入、支出来源)。
    • 审计局限:不适合需要详细对账的财务会计场景。
    • 数据依赖:依赖银行提供准确余额,异常数据可能影响记录。

2.2 详细余额变化 BalanceChange(简称 Balance)

  • 定义:记录每次交易引起的余额变动,详细追踪交易金额及业务关联。
  • 实现方式:通过业务系统(如应收、应付、收入)集成,记录每笔交易的影响。
  • 优点
    • 高精度:记录每笔交易的金额,便于追溯资金流向。
    • 审计支持:支持生成日记账、分类账,满足财务会计和审计需求。
    • 业务关联:可与业务数据(如应收账款)关联,反映交易背景。
  • 缺点
    • 复杂性高:数据量大,需与业务系统集成,维护成本高。
    • 技术要求:需设计外键关联,确保数据一致性。
    • 处理成本:记录和处理每笔交易需更多资源。

3、两种记录的差异

  • 记录粒度
    • BalanceRowDay是粗粒度的每日汇总,记录账户在一天结束时的借贷余额状态,适合管理层快速概览。
    • Balance是细粒度的交易级记录,捕捉每笔交易的余额变化,适合详细核算和审计。
  • 关联性:BalanceRowDay的每日余额可以通过Balance表中的交易记录汇总计算:例如,公户1月2日余额(BalanceRowDay)应等于期初余额加上Balance表中当日的Amount总和。
每日余额(BalanceRowDay.DebitAmount/CreditAmount) = 期初余额(OpeningBalance) + ∑Balance.Amount
  • 借贷金额设计差异
    • BalanceRowDay:分开DebitAmount和CreditAmount,直接反映会计科目的借贷余额(如资产类账户的借方余额、负债类账户的贷方余额)。这种设计便于与会计科目余额表对齐,适合统计分析和报表生成(如资产负债表)。
    • Balance:使用单一Amount字段,正值表示借方影响(余额增加),负值表示贷方影响(余额减少)。这种设计简化了交易记录,聚焦余额变化本身,不受业务行为的具体借贷方向限制,适合与多样化的业务表(如应收、应付)关联。
一张展示会计余额数据的表格,内容包括ID、版本、账户ID、会计年度ID和金额,金额列的文字强调可以是正数或负数.
  • 差异的原因
    • BalanceRowDay面向管理会计,强调科目级汇总,借贷分开更符合会计报表的结构;
    • Balance面向财务会计,关注交易级明细,单一金额字段更灵活,适应不同业务行为的余额影响(如客户付款增加余额、供应商支付减少余额)。

三、实现方式:vizwise公司的余额变化管理

以“vizwise”公司为例,设计以下数据 table 记录余额变化,基于现有账户(公司人民币公户、公司人民币信用卡、法人人民币储蓄卡)。

1. BalanceRowDay 表:每日余额快照

  • 从银行每日24点邮件获取账户余额,记录借方或贷方余额,或者每晚根据实时余额登记一遍。
  • 适合生成月度余额汇总或趋势分析。

表结构:

字段名数据类型描述
IDINT记录唯一标识,主键
AccountIdINT关联账户ID,外键
AccountingYearIdINT关联会计年度ID,外键
AccountingYearPeriodIdINT关联会计期间ID,外键
BalanceDateDATE余额记录日期
DebitAmountDECIMAL(15,2)当日借方余额
CreditAmountDECIMAL(15,2)当日贷方余额

示例数据 (2025年1月1日-1月2日):

IDAccountIdAccountingYearIdAccountingYearPeriodIdBalanceDateDebitAmountCreditAmount
11202562025-01-01100000.000.00
21202562025-01-02120000.000.00
32202562025-01-010.000.00
42202562025-01-020.005000.00
53202562025-01-0150000.000.00

实现要点:

  • 数据来源:解析银行邮件,自动更新每日余额。
  • 校验:确保DebitAmount和CreditAmount互斥,符合账户科目性质(公户为借方,信用卡为贷方)。
  • 用途:生成月度余额折线图或汇总表,分析资金趋势。

在笔者的分析中,可以把多个账户的每日借贷变化,绘制为如下的现金流量可视化。

一张展示借贷金额变化的图表,横轴为时间,纵轴展示借方和贷方金额的波动情况。

2. Balance 表:详细余额变化

  • 记录每笔交易引起的余额变化,反映账户余额变动。
  • 通过ID与业务表(如应收账款、应付账款)关联,业务表包含BalanceId外键。
  • 支持日记账、分类账和审计。

表结构:

字段名数据类型描述
IDINT余额变化记录唯一标识,主键
AccountIdINT关联账户ID,外键
AccountingYearIdINT关联会计年度ID,外键
AccountingYearPeriodIdINT关联会计期间ID,外键
TransactionDateDATETIME交易发生时间
AmountDECIMAL(15,2)交易金额(正为借方,负为贷方)

余额表是最为详细的余额变动记录(BalanceChange),每一笔记录都不是独立的,而是由于应收、应付等业务行为出发的。所以,Balance 表的细节其实隐藏在其他数据表中。

XILEJUN:从这个角度看,Balance 表中的 TransactionDate 其实是冗余的,这个字段应该在其他各个业务系统只是。

四、实践:账户的期初、借贷和结转金额

利用OpeningBalance、BalanceRowDay和Balance表,分析每个账户的期初余额期间借方金额期间贷方金额实时结转金额,以完成余额管理流程。

1. 分析目标

  • 期初余额:从OpeningBalance表获取会计期间开始时的借方和贷方余额。
  • 期间借方金额:从BalanceRowDay表汇总DebitAmount,反映期间内账户的借方余额。
  • 期间借方金额:从Balance表汇总期间内正Amount(借方交易,如收入)。
  • 期间贷方金额:从BalanceRowDay表汇总CreditAmount,反映期间内账户的贷方余额。
  • 期间贷方金额:从Balance表汇总期间内负Amount(贷方交易,如支出)。
  • 实时结转金额:通过BalanceRowDay计算期间余额变化,结合OpeningBalance得出期末余额,并与Balance表验证一致性。

2. 数据表支持

  • OpeningBalance 表(调整后):
    • 字段:ID, AccountId, AccountingYearId, DebitAmount, CreditAmount。示例数据 (2025年,AccountId=1):
一张表格展示了账户的ID、账户ID、会计年度ID、借方金额和贷方金额,借方金额为100000.00,贷方金额为0.00。
  • BalanceRowDay 表
一张表格显示了账户的余额记录,包含ID、账户ID、会计年度ID、会计期间ID、余额日期、借方金额和贷方金额等信息。

说明

  • BalanceRowDay展示公户2025年1月至6月的月末余额快照。
  • 每月余额反映当月交易后的借方余额(资产类账户,借方为主)。
  • AccountingYearPeriodId仅用于标识月份,但分析聚焦年度汇总。

3. 分析方法

使用SQL查询汇总数据,以2025年1月1日-1月2日、账户1(公司人民币公户)

…… 忽略 SQL

3.1 Tableau 实现

通过多个数据表关联,获得期初金额和 借贷变化。

流程图展示了不同数据表之间的关系,揭示了每日余额快照和详细交易记录的管理方法,引用了 SQL 语句来获取期初余额。

而后,使用 Desktop 构建期初、借贷金额和结转金额。

一个图表展示了不同银行账户在2025年的结转金额及相关数据,包括会计年度、账户金额、期初余额等信息,突出显示借方、贷方和汇总金额。

四、可能引发银行卡金额变化的业务行为

银行卡账户(公司人民币公户、公司人民币信用卡、法人人民币储蓄卡)的余额变化通常由以下业务行为触发:

1. 应收账款(Accounts Receivable)

  • 业务行为:客户支付货款或服务费用,导致资金流入公司公户。
  • 影响:增加公户余额(借方增加)。
  • 示例:客户A支付20,000元货款至公户。
  • 相关表:Receivable(应收账款表),记录客户欠款和付款明细。

以应收业务表 ( AccountReceivable表)为例,它的数据表中有一个 BalanceId 外键字段,用于关联该事实交易对科目余额的影响。

实现要点:

  • 数据来源:从业务系统(如ERP)获取交易记录,记录交易金额。
  • 关联机制:业务表(如Receivable、Payable)通过BalanceId关联Balance.ID。
  • 校验:通过公式验证期末余额:期末余额 = 期初余额(OpeningBalance) + ∑Amount
  • 用途:生成日记账、分类账或科目余额表,支持审计。

2. 应付账款(Accounts Payable)

  • 业务行为:公司支付供应商货款或服务费用,导致资金流出公户或信用卡。
  • 影响:减少公户余额(贷方增加)或增加信用卡欠款(贷方增加)。
  • 示例:公司通过信用卡支付供应商B 5,000元采购款。
  • 相关表:Payable(应付账款表),记录供应商账单和付款明细。

3. 资金转账(Bank Transfer)

  • 业务行为:账户间转账,如法人储蓄卡转账至公户,或公户还信用卡欠款。
  • 影响:转出账户余额减少(贷方增加),转入账户余额增加(借方增加)。
  • 示例:法人储蓄卡转10,000元至公户。
  • 相关表:Transfer(转账表),记录账户间资金转移。

4. 费用支付(Expense Payment)

  • 业务行为:公司支付日常运营费用,如租金、水电费、工资等。
  • 影响:减少公户余额(贷方增加)或增加信用卡欠款(贷方增加)。
  • 示例:公司通过公户支付1月租金8,000元。
  • 相关表:Expense(费用表),记录费用支付明细。

5. 贷款或还款(Loan or Repayment)

  • 业务行为:公司从银行贷款存入公户,或偿还贷款/信用卡欠款。
  • 影响:贷款增加公户余额(借方增加),还款减少公户余额(贷方增加)或减少信用卡欠款(借方增加)。
  • 示例:公司偿还信用卡欠款5,000元;或收到银行贷款50,000元。
  • 相关表:Loan(贷款表),记录贷款和还款明细。

五、总结与后续计划

通过BalanceRowDay和Balance表,vizwise公司实现了余额变化的每日快照和详细交易记录。BalanceRowDay以借贷金额记录每日余额,适合管理会计;Balance以单一金额字段记录交易,适合财务会计和审计。

后续方向:

  1. 细化业务表(如Receivable、Payable)结构。
  2. 设计SQL查询,生成余额趋势图或科目余额表。
  3. 讨论异常处理(如银行余额数据错误)。