合同资产与应收账款:工程类公司要多看一张表
资本成长学堂 · 道纳出品
设想你在读一家工程公司的年报:应收账款三年没怎么涨,账龄表上一年以内占了七成,看上去回款不错。可往上挪两行,「合同资产」一年比一年大,三年翻了将近一倍。钱没有收回来,只是还没走到「应收」那一步。
我们在第 84 期讲应收账款账龄,用的是一家设备公司的示意:货交出去、确认收入,应收账款就开始计龄。工程类公司多了一道工序。活干完了,收入按进度确认了,可业主还没计量、还没结算,这时候公司手里的,还不是一张能要钱的单子。
这道工序在报表上的名字,叫「合同资产」。读工程、安装、装饰、系统集成这类公司,只看应收账款,等于只看了后半段路。这一篇讲四件事:合同资产和应收账款差在哪里,工程款从干活到进账要走几步,去年报哪里找,以及怎么把两张表连起来做一次三年的迁移和减值测算。
先把两个科目分清楚。
应收账款,是公司已经拥有的、无条件收取对价的权利。所谓「无条件」,是说只剩时间这一个因素:到期了,客户就该付。
合同资产,是公司已经向客户转让了商品或服务、因而有权收取对价,但这个权利还取决于时间以外的其他因素。最典型的「其他因素」,就是业主的计量和结算,以及质保期满。
这个区分来自《企业会计准则第 14 号——收入》修订后的规定。在新准则之前,工程类公司按建造合同准则核算,「已完工未结算」的部分挂在存货里;新准则执行以后,这部分大多搬进了合同资产(各类公司执行新准则的时间有先后,以现行规定为准)。所以拿较早年份的年报和近几年比,要记得有一笔钱换过位置。
落到工程公司身上,合同资产里常见的有两块:
已完工未结算。 按履约进度确认了收入,但业主还没有确认工程量、没有出结算单。
质保金。 工程款结算了,但合同约定留一部分,等质保期满、没有质量问题才付。这笔钱能不能拿到,取决于质保期内的表现,不只是时间,所以通常留在合同资产里。预计一年以上才能收回的部分,常见列在「其他非流动资产」里。
一句话:应收账款是「到期就该付」的钱,合同资产是「还要过一道关」的钱。 多了这道关,就多了一层不确定。
把一笔工程款从干活到进账的路画出来,大致是这样:
| 步骤 | 发生了什么 | 报表上记在哪里 | 卡在这一步的常见原因 |
|---|---|---|---|
| 1. 投入 | 采购材料、组织施工,成本发生 | 合同履约成本(存货)、营业成本 | 预计总成本估不准 |
| 2. 确认收入 | 按履约进度确认收入 | 合同资产(尚未结算的部分) | 进度估计偏乐观 |
| 3. 计量结算 | 业主、监理确认工程量,出结算单 | 从合同资产转入应收账款 | 业主拖延审价、变更签证未确认 |
| 4. 回款 | 业主按结算单付款 | 银行存款,或应收票据、应收款项融资 | 业主资金紧张,付票据或以房抵款 |
| 5. 质保期满 | 收回质保金 | 从合同资产(或其他非流动资产)转入应收,再收回 | 质量争议、业主借故扣留 |
我们在第 42 期讲中东工程项目的收款节奏,讲过预付款、进度款、保留金三笔钱各自怎么走。那是从合同条款看;这张表是从报表看。两边对上,你就知道一家工程公司的钱,停在了哪一步。
这里有一个要紧的地方:第 2 步到第 3 步之间,不在应收账款的账龄里。 一笔活干完了半年、一年,业主一直不来计量,这笔钱在合同资产里待着,应收账款的账龄表上看不到它。等它终于结算、转进应收账款,账龄才从「一年以内」开始算(起算口径各家不同,以公司会计政策披露为准)。
所以,合同资产越大、待得越久,应收账款的账龄表就越显得「年轻」。
读工程类公司,我们一般翻下面这几处:
| 想看什么 | 搜索关键词 | 所在位置 |
|---|---|---|
| 合同资产余额和减值 | 合同资产、账面余额、减值准备 | 合并报表项目注释 ·「合同资产」 |
| 合同资产里有什么 | 已完工未结算、质保金、未到期质保金 | 同上,按性质列示的明细 |
| 合同资产为什么变 | 账面价值发生重大变动的金额和原因 | 同上 |
| 一年以上的质保金 | 其他非流动资产、合同资产、质保金 | 合并报表项目注释 ·「其他非流动资产」 |
| 应收账款账龄和坏账 | 按账龄披露、按坏账计提方法分类 | 合并报表项目注释 ·「应收账款」 |
| 欠款最多的是谁 | 应收账款和合同资产期末余额前五名 | 同上 |
| 进度怎么估 | 履约进度、投入法、预计总成本 | 会计政策 · 收入;重要会计估计 |
| 付款条件 | 履约义务、付款期限、质保期 | 营业收入附注 · 履约义务说明 |
| 两种减值分别多少 | 信用减值损失、资产减值损失、合同资产减值损失 | 利润表及对应附注 |
| 会计师怎么看 | 收入确认、履约进度、关键审计事项 | 审计报告 |
有三处常被跳过,值得多花几分钟:
一是合同资产附注里的「重大变动原因」。 公司要自己说明为什么变多。写「业务规模扩大」和写「部分项目业主审价周期延长」,信息量完全不同。
二是其他非流动资产。 很多人读到流动资产就停了。一年以上才到期的质保金常常在这里,把它和合同资产加在一起,才是「还要过一道关」的钱的全貌。
三是利润表上的两行减值。 应收账款的预期信用损失,进「信用减值损失」;合同资产的减值,按现行报表格式通常进「资产减值损失」(以公司适用的报表格式为准)。只看一行,会漏掉一半。
把「合同资产 + 应收账款」当成一个数看。 对工程公司,两者是同一条路上的前后两段。只看应收账款,回款好不好会被合同资产的多少左右;加在一起,再和营业收入比,才是真实的「干了活还没拿到钱」的规模。
分两个转化率,各看各的。 一个是结算率:本期从合同资产转入应收的金额,占(期初合同资产 + 本期新增)的比例,说明业主计量结算快不快。另一个是回款率:本期回款占(期初应收 + 本期结算转入)的比例,说明结算以后业主付不付钱。两个率卡在哪一个,问题就在哪一段。
年报不会直接告诉你本期结算了多少。可以用恒等式倒推:期末合同资产 = 期初合同资产 + 本期确认收入中未结算的部分 − 本期转入应收。 实际操作中,常用「本期营业收入」作为新增的近似,把增值税和合同负债净额列示的影响放到一边,先看方向,不求精确。
最后用现金流量表校一次。 「销售商品、提供劳务收到的现金」和营业收入的比值,是整条路的出口。前面两个率都变差,这个比值一般也会往下走。
假设一家工程公司,三年的数据是这样的(单位:亿元,为便于说明,未考虑增值税)。
第一步:合同资产和应收账款的三年滚动
| 项目 | 第一年 | 第二年 | 第三年 |
|---|---|---|---|
| 营业收入(近似本期新增履约) | 100 | 105 | 108 |
| 期初合同资产 | 15 | 20 | 28 |
| 本期结算转入应收 | 95 | 97 | 100 |
| 期末合同资产 | 20 | 28 | 36 |
| 期初应收账款 | 25 | 28 | 35 |
| 本期回款 | 92 | 90 | 90 |
| 期末应收账款 | 28 | 35 | 45 |
| 合同资产 + 应收账款 | 48 | 63 | 81 |
每一行都满足两个恒等式:期末合同资产 = 期初 + 营业收入 − 结算转入;期末应收 = 期初 + 结算转入 − 回款。
算出几个比率:
| 指标 | 算法 | 第一年 | 第二年 | 第三年 |
|---|---|---|---|---|
| 结算率 | 结算转入 ÷(期初合同资产 + 收入) | 95 ÷ 115 = 82.6% | 97 ÷ 125 = 77.6% | 100 ÷ 136 = 73.5% |
| 回款率 | 回款 ÷(期初应收 + 结算转入) | 92 ÷ 120 = 76.7% | 90 ÷ 125 = 72.0% | 90 ÷ 135 = 66.7% |
| 回款 ÷ 收入 | — | 92.0% | 85.7% | 83.3% |
| (合同资产 + 应收)÷ 收入 | — | 48.0% | 60.0% | 75.0% |
这两张表说了三件事:
两段都在变慢。 结算率三年降了约 9 个百分点,回款率降了 10 个百分点。业主计量变慢,计量之后付款也变慢。
收入只涨了 8%,在路上的钱涨了近七成。 合同资产加应收账款从 48 亿元涨到 81 亿元,占收入的比例从不到一半升到四分之三。
只看应收账款会低估问题。 应收账款三年从 28 亿元到 45 亿元,涨了六成;合同资产从 20 亿元到 36 亿元,涨了八成。更大的那一段增长,在应收账款的账龄表上看不到。
第二步:应收账款的账龄迁移
| 账龄 | 第一年末 | 第二年末 | 第三年末 |
|---|---|---|---|
| 1 年以内 | 22.0 | 25.0 | 30.0 |
| 1–2 年 | 4.0 | 6.0 | 8.0 |
| 2–3 年 | 1.5 | 2.5 | 4.0 |
| 3 年以上 | 0.5 | 1.5 | 3.0 |
| 合计 | 28.0 | 35.0 | 45.0 |
| 一年以上占比 | 21.4% | 28.6% | 33.3% |
按第 84 期的办法斜着读:
| 迁移路径 | 第一年→第二年 | 第二年→第三年 |
|---|---|---|
| 1 年以内 → 1–2 年 | 6.0 ÷ 22.0 = 27.3% | 8.0 ÷ 25.0 = 32.0% |
| 1–2 年 → 2–3 年 | 2.5 ÷ 4.0 = 62.5% | 4.0 ÷ 6.0 = 66.7% |
| 2 年以上 → 3 年以上 | 1.5 ÷(1.5 + 0.5)= 75.0% | 3.0 ÷(2.5 + 1.5)= 75.0% |
迁移率也在往上走。要记住,这些应收账款在进入账龄表之前,可能已经在合同资产里待了一段时间。真实的「从干完活到现在」的时间,比账龄表上写的更长。
第三步:第三年末的合同资产,拆开看
| 构成 | 金额 | 说明 |
|---|---|---|
| 已完工未结算 · 一年以内 | 17 | 正常的结算周期内 |
| 已完工未结算 · 超过一年 | 10 | 业主迟迟未计量,或有变更签证没确认 |
| 未到期质保金 | 9 | 质保期一般一到两年 |
| 合同资产合计 | 36 | — |
| 另:其他非流动资产中的质保金 | 4 | 一年以上才到期 |
如果附注没有按时间拆,可以看「重大变动原因」和前五名项目的说明,结合往年余额粗略估一个。
第四步:减值算两遍
公司的算法(示意): 应收账款按账龄组合计提,比例 5%、10%、30%、50%;合同资产统一按 2% 计提。
| 项目 | 余额 | 比例 | 减值准备 |
|---|---|---|---|
| 应收 · 1 年以内 | 30.0 | 5% | 1.50 |
| 应收 · 1–2 年 | 8.0 | 10% | 0.80 |
| 应收 · 2–3 年 | 4.0 | 30% | 1.20 |
| 应收 · 3 年以上 | 3.0 | 50% | 1.50 |
| 合同资产 | 36.0 | 2% | 0.72 |
| 合计 | — | — | 5.72 |
我们的复核(示意): 两处调整。第一,三年以上的应收账款,迁移率连续两年 75%,按 70% 计提。第二,合同资产不按一个比例算:超过一年未结算的部分,风险和一到两年的应收账款相当,按 10%;一年以内未结算的和质保金,参照一年以内应收,按 5%。
| 项目 | 余额 | 比例 | 减值准备 |
|---|---|---|---|
| 应收 · 1 年以内 | 30.0 | 5% | 1.50 |
| 应收 · 1–2 年 | 8.0 | 10% | 0.80 |
| 应收 · 2–3 年 | 4.0 | 30% | 1.20 |
| 应收 · 3 年以上 | 3.0 | 70% | 2.10 |
| 合同资产 · 超过一年未结算 | 10.0 | 10% | 1.00 |
| 合同资产 · 其余 | 26.0 | 5% | 1.30 |
| 合计 | — | — | 7.90 |
两种算法差了约 2.2 亿元。假设这家公司第三年的净利润是 3.8 亿元,也就是说,按更贴近迁移情况的比例,利润要少一半以上。差额里有 1.58 亿元来自合同资产,比应收账款那一边的调整还多。
这也是为什么我们说「要多看一张表」:在这个示意里,减值计提最宽松的地方,恰好是大家最少看的那一行。
当然,这是很粗的算法。真实的预期信用损失要考虑客户分层、前瞻性调整、担保和抵押,业主是政府平台、国企还是民营开发商,差别也很大。它的作用,是帮你判断公司给的比例偏紧还是偏松。
(以上数字为示意,不对应任何公司。)
误读一:「应收账款不涨,说明回款好。」 工程公司的应收账款不涨,可能是业主不来结算,钱停在了合同资产里。先把两个数加起来再说。
误读二:「合同资产是资产,跟坏账没关系。」 合同资产同样要按预期信用损失计提减值。它的风险,不比应收账款小:还没结算,意味着金额本身都可能在审价时被核减。审价核减的那一部分,不是「收不回来」,而是「本来就不该确认」。
误读三:「账龄表上一年以内占七成,很健康。」 账龄从结算转入那天才开始算的话,账龄表年轻,可能只是因为结算慢。这一点和第 84 期讲的「年底集中确认收入稀释老账龄」是一个道理,换了一个位置。
坑一:履约进度估得太乐观。 多数工程公司用投入法:已发生成本 ÷ 预计总成本。预计总成本估低了,进度就算高了,收入和合同资产一起虚高。这类问题,往往要到项目尾声、结算审价时才暴露,体现为一次性冲回收入或大额减值。我们在第 112 期讲过年底「大洗澡」,工程公司的大洗澡,常常洗的就是这里。会计师如果把「履约进度」列为关键审计事项,那一段要逐字读。
坑二:净额列示把两边都藏小了。 我们在第 94 期讲合同负债时说过,同一合同下合同资产和合同负债按净额列示。一份合同已收预付款很多、另一份合同大量未结算,两者不在同一合同下,不能互抵;在同一合同下抵掉以后,报表上看到的合同资产比实际未结算的工作量少。附注里如果有按项目或按合同的说明,要看一眼。
坑三:质保金悄悄搬家。 一年以上的质保金转进其他非流动资产,合同资产看起来就小了。跨年比较,把两处加起来。
坑四:「回款」换了形式。 业主付的是商业承兑汇票、供应链票据,或者用房产、车位抵款。应收账款减少了,换来的是应收票据、应收款项融资,或者存货、投资性房地产。判断方法和第 84 期一样:看「销售商品、提供劳务收到的现金」有没有同步变好。
坑五:长期应收款里还有一块。 做过 BT、分期收款或部分 PPP 项目的公司,有一部分工程款记在长期应收款里,具体分类以公司会计政策为准。把它也拉进「在路上的钱」,口径才完整。
| 序号 | 动作 | 在哪里 |
|---|---|---|
| 1 | 抄下三年的合同资产、应收账款、营业收入,算两者之和占收入的比例 | 资产负债表、利润表 |
| 2 | 用恒等式倒推每年的结算转入和回款,算结算率、回款率 | 同上 |
| 3 | 把其他非流动资产里的质保金、长期应收款里的工程款加进来 | 对应附注 |
| 4 | 读合同资产附注:构成、减值、重大变动原因 | 合同资产附注 |
| 5 | 尽量把合同资产拆成「一年以内未结算」「超过一年未结算」「质保金」 | 同上,及前五名说明 |
| 6 | 应收账款三年账龄并排,算迁移率 | 应收账款附注 |
| 7 | 用迁移率复核应收的计提比例,用结算时长复核合同资产的计提比例 | 会计政策、减值附注 |
| 8 | 信用减值损失和资产减值损失两行都看 | 利润表及附注 |
| 9 | 读履约进度的估计方法,看会计师是否列为关键审计事项 | 会计政策、审计报告 |
| 10 | 看应收票据、应收款项融资、抵债资产有没有同步变大 | 资产负债表及附注 |
| 11 | 「销售商品、提供劳务收到的现金」÷ 营业收入,连续三年 | 现金流量表 |
关键词顺手记一下:合同资产、已完工未结算、质保金、其他非流动资产、履约进度、预计总成本、资产减值损失、信用减值损失、应收账款和合同资产前五名、长期应收款。
工程公司的钱,要先过「结算」这一关,才走到应收账款。合同资产就是那段还没过关的路。
读这类公司,把合同资产和应收账款放在一起,倒推出结算率和回款率,再用迁移率复核一次减值。半小时的功夫,就能知道它的收入里,有多少已经走到了终点。
留言区想听听
你读工程类公司的年报时,
会把合同资产和应收账款加在一起看吗?
下期预告 · 西部笔记 24 · 周五
西部的煤化工:从燃料到材料
本文为公开信息的财务读法讨论,文中数字均为示意,不对应任何公司,不构成投资建议。会计处理以《企业会计准则第 14 号——收入》等现行企业会计准则及公司适用的报表格式为准。
觉得有用,也欢迎把「资本成长学堂」推荐给身边做企业、做投资、做招商的朋友。
扫码添加道纳客服
融资、出海、招商相关的具体问题,可以直接来聊
工作日 9:00–18:00 回复