看待库存的两种方式
最近我们研究了 TallyPrime 的库存设计,它提醒我们:小微企业的经营方式千差万别——有的先备货再等客户,有的客户下单后才采购,有的按项目运转、真正重要的资产是在制品。所以 SnapLedger 不替你选择 Periodic 还是 Perpetual,而是先理解你的生意到底是怎么做的。
最近我们花了一些时间研究 TallyPrime 的 Inventory 设计。
Tally 是一款有很长历史的会计软件,它对库存的处理也体现了传统小微企业非常典型的工作习惯。
一种常见方式是 Periodic Inventory(定期盘存)。
企业平时采购商品或原材料时,记录 Purchases;销售时,记录 Sales。库存并不一定随着每一笔会计交易实时进入或退出 Inventory Ledger。
与此同时,Tally 有独立的 Inventory Module,记录 Stock Item、数量和估值。在报表日,系统根据实际库存计算 Stock-in-Hand,并通过一个经典的会计公式计算销售成本:
COGS = Opening Stock + Purchases − Closing Stock
这种设计其实非常实用。
很多传统小微企业并不需要每天知道精确的实时库存价值。他们习惯正常记录采购和销售,在月底、季度末或者年底盘点库存,再确定真正的成本和利润。
这就是 Periodic Inventory 的优势:简单,对日常操作要求低。
另一种方式是 Perpetual Inventory(永续盘存)。
每次采购,Inventory 增加;每次销售,Inventory 减少并确认 COGS。
因此系统可以随时回答:
现在有多少库存?价值多少?已经销售的商品成本是多少?实时毛利是多少?
对于电商、零售、批发以及标准化制造企业,这种方式越来越重要。订单、采购和库存本身已经数字化,系统完全可以实时维护这些信息。
SnapLedger 的设计思路因此不是简单选择 Periodic 或 Perpetual,而是让底层同时理解不同的 Cost Flow。
因为现实中的小微企业并不都属于同一种模式。
一家电商公司可能需要:
Purchase → Inventory → Sale → COGS
一家很小的贸易公司可能更习惯:
Purchases → Period-End Stock Count → Closing Inventory
而一家按客户订单生产的家具公司,可能根本没有多少传统意义上的库存。
客户先下订单,然后企业采购木材、五金,投入人工和外包成本,完成以后交付。
对这样的企业,更自然的路径其实是:
Customer Order → Project → Materials & Labour → WIP → Delivery → COGS
这里最重要的资产可能不是传统的 Stock-in-Hand,而是 Work in Progress(WIP,在制品)。
所以我们在 SnapLedger 里不希望让软件先决定企业应该怎样管理库存。
底层可以支持 Perpetual Inventory,也可以支持 Periodic Inventory,还可以支持 Project Costing 和 WIP。
而 Snappy 更应该理解的是:
你到底是怎么做生意的?
你是先备货,再等待客户购买?
还是客户下单以后才采购?
你需要随时知道每一个 SKU 的库存吗?
还是更关心每一个客户项目已经投入了多少成本、预计能赚多少钱?
传统会计软件往往从 "How should inventory be recorded?" 开始。
我们更希望从另一个问题开始:
"How does your business actually work?"
然后让会计处理去适应真实的业务流程。
SnapLedger, your life easier.
传统会计软件往往从「库存应该怎样记账」开始;我们更希望从「你的生意实际是怎么运转的」开始——是先备货、还是下单后才采购、还是按项目运转、最重要的资产是在制品——然后让会计处理去适应真实的业务流程。
你的生意实际是怎么运作的——先备货再等客户购买?客户下单以后才采购?还是更关心每一个客户项目已经投入了多少成本、预计能赚多少钱?
软件不应该先决定企业应该怎样管理库存——会计处理应该适应真实的业务流程,而不是反过来。
订阅创始人日记 + 您所在国家/地区的监管动态
每周一封,只在有真材实料时发送 — Richard 的创始人日记和与您相关的监管动态。免费,随时退订。