先进先出与移动平均

先进先出与移动平均计价方法

1. 概述

ERPNext 采用永续盘存制对库存进行计价:每一次库存移动(入库、出库、调拨、生产)都会通过库存分类账实时更新物料的数量货币价值。计价方法决定了如何计算每个出库单位的价值,从而影响剩余库存的价值以及销售成本(COGS)。

ERPNext 支持三种计价方法:

  • 先进先出(FIFO)
  • 移动平均
  • 标准成本 (在单独指南中介绍)

本指南将解释先进先出移动平均——每种方法的工作原理、产生的会计分录、对回溯单据和重过账的处理方式,以及各自的优缺点,以便您为每个物料选择合适的方法。

设置位置: 计价方法可以在物料级别(物料主数据 → 计价方法)设置,也可以在公司级别设置默认值,或者在库存设置中全局设置。最具体的设置优先级最高(物料 → 公司 → 库存设置)。


2. 先进先出(FIFO)

2.1 工作原理

先进先出假设最先入库的库存最先被消耗ERPNext 为每个物料-仓库组合维护一个 [quantity, rate] 层的先进先出队列。每次入库都会以其实际入库价格添加一个层;每次出库都会从队列的前端(最早入库的)消耗层,并使用它们原始的价格

任何时刻报告的计价率是队列中当前剩余层的加权平均值,但每个出库单位的成本是根据其所消耗层的具体价格计算的。

2.2 示例

步骤 交易 之后队列 库存价值
1 入库 10 个 @ 100 [10 @ 100] 1,000
2 入库 10 个 @ 120 [10 @ 100], [10 @ 120] 2,200
3 出库 15 个 [5 @ 120] 600

在步骤 3 中,出库的 15 个单位成本计算为 10 个 @ 100 + 5 个 @ 120 = 1,600(最早入库的优先)。剩余的 5 个单位仍按其原始价格 120 计价。

2.3 会计影响

在永续盘存制的公司中,出库会以消耗单位的实际分层成本计入销售成本:

  • 销售成本(步骤 3)= 1,600
  • 库存减少 1,600;剩余库存资产 = 600。

由于出库成本反映了离开库存的特定单位的实际历史采购价格,先进先出法紧密追踪实际采购成本,并被广泛接受用于法定/税务报告。

2.4 优点

  • 紧密匹配实际成本流 — 销售成本反映了所消耗特定单位的真实支付价格。
  • 期末库存价值更真实 — 剩余库存按最近期的采购价格计价,因此资产负债表反映了接近当前重置成本的价值。
  • 广泛接受 — 符合会计准则和税务机关要求;直观且可审计(可以追溯哪些层被消耗)。
  • 适用于有保质期/批次轮换的物料(食品、药品、易腐品),因为实际中您也会优先发出最早入库的。

2.5 缺点

  • 对回溯单据敏感 — 插入或编辑过去的交易会改变后续出库消耗的层,因此必须重新计算(重过账)每个后续的分类账条目。在长而密集的分类账上,这种重过账速度慢且资源消耗大。
  • 在价格上涨环境中销售成本波动大 — 较早、较便宜的层先被费用化,这可能在通货膨胀期间低估销售成本并高估利润。
  • 计算/存储量更大 — 必须为每个物料-仓库组合维护和序列化层队列。
  • 重过账负担更重 — 当更正、取消或落地成本凭证触及历史条目时。

3. 移动平均

3.1 工作原理

移动平均为每个物料-仓库组合维护一个单一的混合平均价格。在每次入库时,重新计算平均值:

new average = (existing qty × existing avg rate + incoming qty × incoming rate)
              ──────────────────────────────────────────────────────────────
                             existing qty + incoming qty

出库按当前平均价格计价,并且不会改变平均值;只有入库(和重估)会改变它。

3.2 示例

步骤 交易 在手数量 平均价格 库存价值
1 入库 10 个 @ 100 10 100 1,000
2 入库 10 个 @ 120 20 110 2,200
3 出库 15 个 5 110 550

在第二步,平均成本变为 (10×100 + 10×120) / 20 = 110。第三步发出的 15 个单位,每个成本为 110 → 销售成本 = 1,650;剩余 5 个单位按 110 计价 = 550。

3.3 会计影响

  • 销售成本(第三步)= 1,650(15 × 平均成本 110)。
  • 库存减少 1,650;剩余库存资产 = 550。

与相同数据下的先进先出法相比,移动平均法 平滑 了成本:销售成本为 1,650,而先进先出法为 1,600,差额流入剩余库存的价值。

3.4 优点

  • 平滑价格波动 — 单一混合费率减轻了采购价格波动的影响,使销售成本和利润率更加稳定。
  • 更简单、更轻量 — 每个物料-仓库只需维护一个费率;无需存储或遍历批次队列。
  • 更易于理解和核对 — “一种物料,一个当前成本” 对运营和报告来说直观易懂。
  • 适用于同质、快消、商品化物料,其中个别批次无法区分(如散装紧固件、燃料、原材料化学品)。

3.5 缺点

  • 回溯分录仍需重新过账 — 因为过去的收货会改变 所有后续 交易的移动平均成本,ERPNext 必须重新计算后续链条。与先进先出法一样,在长账本上可能很慢。
  • 不跟踪实际批次成本 — 发出成本是混合的,因此可能与实际支付给特定发出单位的真实价格存在差异;对于可追溯批次或高价值物料来说不够精确。
  • 平均成本可能滞后于现实 — 在价格快速变化的环境中,混合费率会落后于当前市场成本,这可能会歪曲个别销售的利润率。
  • 审计追踪不够精细 — 无法指出“这些特定单位以这个特定成本发出”,只能知道当时的平均成本。

4. 先进先出法与移动平均法 — 概览

方面 先进先出法 移动平均法
发出成本基础 最旧剩余批次的实际费率 当前混合平均费率
跟踪实际批次成本? 是(批次精确) 否(混合)
销售成本行为 首先反映最旧的价格 在所有收货中平滑
期末库存价值 按最近采购价格 按混合平均价格
维护的数据 [qty, rate] 批次队列 单一平均费率
回溯分录 → 重新过账? (重新计算后续链条) (重新计算后续链条)
计算成本 较高(遍历批次) 较低(单一费率)
最适合 易腐品、批次轮换、审计敏感物料 同质、高量、商品化物料
法定接受度 非常广泛接受 广泛接受

5. 共同限制:回溯分录触发重新过账

这是两种方法共有的最重要操作特性——也是与 标准成本 的关键区别。

对于 先进先出法和移动平均法,任何库存分类账分录的价值都取决于 其之前的条目(存在哪些批次,或移动平均成本是多少)。因此,当您:

  • 插入一个 回溯 交易,
  • 取消修改 历史凭证,
  • 对过去的收货应用 到岸成本凭证,或
  • 更改过去的估价费率,

……ERPNext 必须 重新过账 — 重新计算该物料-仓库的 每个后续库存分类账分录 的数量、费率、价值和总账影响(即 重新过账物料估价 作业)。对于历史记录长且密集的物料,这 缓慢、消耗资源,并且会暂时改变您认为已确定的库存价值

如果您的组织经常记录 回溯更正,并且这种重新过账成本令人困扰,请考虑 标准成本 方法(请参阅单独的 标准估价费率 指南),其中费率按日期已知,回溯分录 不会 触发重新过账。


6. 选择方法 — 建议

您的情况 推荐方法
易腐/保质期物料,物理上先发出最旧的 先进先出法
高价值或可追溯批次的物料,需要精确成本 先进先出法
法定/税务制度要求实际成本流动 先进先出法
同质、商品化、快消物料 移动平均法
您希望获得更平滑、更稳定的利润率 移动平均法
您希望将估价维护开销降至最低 移动平均法
您经常发布 回溯 分录且重新过账成本高 标准成本 (单独指南)
您希望获得可预测的固定产品成本及隔离的价格差异 标准成本 (单独指南)

最佳实践(两种方法)

  • 在物料发生交易前设定方法。 在库存存在的情况下更改物料的计价方法会造成干扰,甚至可能被阻止。
  • 启用永续盘存科目(仓库/库存、已收未票库存、销售成本、库存调整),以确保计价与总账保持同步。
  • 批量处理历史更正,并在低流量时段运行,因为它们会触发重新过账。
  • 收货后及时使用到岸成本凭证,以避免日后进行大规模追溯重估。
  • 定期核对库存价值与总账(库存分类账/库存余额与库存科目对比),以便及早发现偏差。
  • 保持每个物料类别的一致性,以便同类物料的报表和利润率具有可比性。

7. 总结

  • 先进先出法最旧剩余批次的实际成本 对出库库存进行计价——精确、便于审计,适用于易腐品和批次可追溯商品,但批次管理负担重且对重新过账敏感。
  • 移动平均法单一混合平均成本 对出库库存进行计价——简单、平滑,适用于大宗标准化商品,但精确度较低且仍对重新过账敏感。
  • 两种方法 在历史数据变更时都会重新计算(重新过账)后续分类账。如果成本因素是决定性因素,标准成本 方法可完全避免此问题——请参阅《标准计价率指南》。