《软件和信息技术服务业IPO实务》节选 | 定制软件收入确认
企业会计准则及应用指南系列
《软件和信息技术服务业IPO实务》节选 | 定制软件收入确认
《软件和信息技术服务业IPO实务》节选
| 定制软件收入确认
引
言
软件是新一代信息技术的灵魂,是数字经济发展的基础,是制造强国、网络强国、数字中国建设的关键支撑。软件企业的业务模式复杂多样,包括标准软件、定制软件、系统集成、SaaS等。不同的业务模式下的收入确认有着明显的区别,本文拟重点探讨定制软件的收入确认问题以及IPO审计思路,供大家参考。
定制软件业务概述
定制化软件开发业务是指软件厂商根据特定使用对象或特定项目,在已有的软件平台上,根据特殊需求对软件进行定制开发,使之更加满足客户需求,实现某些特定功能组合。通常涉及流程梳理和改进、个性化应用软件设计、开发、测试、软件安装部署以及数据迁移等定制化服务。一般面向企业用户或者特定工程项目,例如大型企业集团的内部管理软件、为某政府机关开发的行政管理系统、为某大型工程开发的运营管理系统等。
定制软件一般业务流程如下:公司在与客户签订合同后,组建项目实施小组,与客户就具体需求进行充分的沟通和交流并确定实施方案,方案确定后,项目实施人员开始进行需求分析、程序开发、系统部署、试运行、验收测试等后续工作。在整个过程中,项目组与客户保持持续的沟通,根据客户的意见调整开发过程,确保产品充分满足客户需求。
定制软件业务的主要成本为人工成本,外部采购规模相对较小,主要包括少量开发工具及第三方技术服务等。
定制软件收入确认的分析
(一)确定各单项履约义务是在某一时段内履行,还是某一时点履行
软件开发项目的周期较长,通常在1年左右,大型项目的开发周期在2年以上,因此在某一时段确认收入还是在某一时点确认收入对财务报表影响重大,也需要专业判断。
新收入准则第二章第十一条规定:满足下列条件之一的,属于在某一时段内履行的履约义务;否则属于在某一时点履行的履约义务。
(1)客户在企业履约的同时即取得并消耗企业履约所带来的经济利益;
(2)客户能够控制企业履约过程中在建的商品;
(3)企业履约过程中所产出的商品具有不可替代的用途,且该企业在整个合同期间内有权就累计至今已完成的履约部分收取款项。
结合准则规定的上述三种情况及定制软件常见情况,逐一分析判断其是否属于在某一时段内履行的履约义务:
(1)客户在企业履约的同时即取得并消耗企业履约所带来的经济利益
通常情况下,公司是按客户需求提供定制化产品,在软件开发完成验收之前,客户一般无法获得相关过程资料,如源代码、相关参数、系统配置等。当合同终止时,已完成的工作也无法直接被继续使用。因此,定制软件通常不满足客户在企业履约的同时即取得并消耗企业履约所带来的经济利益这一条件。
(2)客户能够控制企业履约过程中在建的商品
通常情况下,在软件开发过程中公司会定期向客户汇报开发进展,也与客户持续保持沟通听取客户意见,但以上事项的目的是为了确保开发的软件能满足客户的需求,并不表明客户控制了软件开发过程中的产品,同时,在定制软件开发完成前,客户无法获得相关过程资料。因此,定制软件通常不满足客户能够控制企业履约过程中在建的商品这一条件。
(3)企业履约过程中所产出的商品具有不可替代的用途,且该企业在整个合同期间内有权就累计至今已完成的履约部分收取款项
通常情况下,定制软件是根据客户需求提供定制化产品,需要满足客户特定的技术指标和功能要求,具有独特性,且合同中亦会约定软件知识产权、使用权的归属。因此,定制软件能常满足企业履约过程中所产出的商品具有不可替代的用途这一项条件。
在判断企业是否有权就累计至今已完成的履约部分收取款项时,需要注意下列五点:
第一,企业有权收取的该款项应当大致相当于累计至今已经转移给客户的商品的售价,即该金额应当能够补偿企业已经发生的成本和合理利润。
第二,该规定并不意味着企业拥有现时可行使的无条件收款权。
第三,当客户只有在某些特定时点才有权终止合同,或者根本无权终止合同时,客户终止了合同(包括客户没有按照合同约定履行其义务
),但是,合同条款或法律法规要求,企业应继续向客户转移合同中承 诺的商品并因此有权要求客户支付对价,此种情况也符合“企业有权就
累计至今已完成的履约部分收取款项”的要求。
第四,企业在进行判断时,既要考虑合同条款的约定,还应当充分考虑适用的法律法规、补充或者凌驾于合同条款之上的以往司法实践以
及类似案例的结果等。
第五,企业和客户之间在合同中约定的付款时间进度表,不一定就表明企业有权就累计至今已完成的履约部分收取款项,这是因为合同约定的付款进度和企业的履约进度可能并不匹配。
实务中重点考虑的是该权利是否存在于合同期内的任一时点,收取的金额是否能够补偿企业已经发生的成本和合理利润,以及该权利是否具有法律约束力。
通常情况下,软件定制合同会约定预付款及分阶段进度款,进度款仅在相关里程碑达到时才支付,进度款金额一般很难覆盖前期成本及合理利润,在未达到里程碑时违约的情况下,无须支付进度款,且合同中通常不会约定相关按进度的补偿条款。因此,定制软件通常不满足有权就累计至今已完成的履约部分收取款项这一条件。
综上所述,通常情况下定制软件业务属于在某一时点履行的履约义务,应在客户取得相关商品控制权时确认收入,即验收通过时确认收入。
(二)定量开发
实务中存在另一种类型的定制软件业务,定量开发,其业务模式是根据合同约定,企业派驻约定数量和职级的软件工程师至客户公司,根据客户的要求为其提供相关服务。所有开发成果(包括代码、开发资料等)须保留在客户系统中,企业无权处置。客户负责统计工程师的工作量(或工时),按合同约定价格付费。
此类型业务中,客户在公司履约的同时即取得并消耗本公司履约所带来的经济利益,能够控制履约过程中在建的商品,因此应属于在某一时段内履行的履约义务,在结算周期内根据客户统计的工作量和合同约定的价格计算确认收入。
(三)整体合同
通常,一个大型定制软件项目从建设到实施,除需要软件开发人员根据具体需求,进行定制化的设计、开发以外,应用系统的正常运行需要搭建部署相应的环境,如计算机系统相关的软硬件产品,包括各类数据库、服务器、存储器等,并将相应的软硬件产品以及定制软件系统集成在一起。在定制软件上线运行后,需要对定制软件系统以及基础环境进行持续的运行维护服务。
整体合同的收入确认方式和时点应重点考虑其承诺的商品是否可明确区分。
《企业会计准则第14号-收入》第十条:企业向客户承诺的商品同时满足下列条件的,应当作为可明确区分商品:(一)客户能够从该商品本身或从该商品与其他易于获得资源一起使用中受益;(二)企业向客户转让该商品的承诺与合同中其他承诺可单独区分。下列情形通常表明企业向客户转让该商品的承诺与合同中其他承诺不可单独区分:1.企业需提供重大的服务以将该商品与合同中承诺的其他商品整合成合同约定的组合产出转让给客户。2.该商品将对合同中承诺的其他商品予以重大修改或定制。3.该商品与合同中承诺的其他商品具有高度关联性。
整体合同中既包含定制软件业务,又包含系统集成业务,该类业务在履约过程中需提供重大的服务以整合成合同约定的组合产出转让给客户,故应作为一项履约义务,在整体合同验收完毕,并取得验收报告后,在客户取得相关商品控制权时确认收入。
后续维护服务应判断是否构成单项履约义务,如构成单项履约义务则需要从合同金额中予以分拆,并在服务期内分摊确认收入。
审核关注要点
定制化软件开发周期偏长,单个项目金额较大,按照时段还是时点确认、在初验还是终验确认,对财务报表影响较大。都是审核关注的重点。
(1)合同对于验收的具体约定,采用确认文件和验收文件的主要区别、是否分为初验和终验、初验和终验的具体内容和实质差异,对应业务类别和收入占比,并结合付款进度、风险报酬转移、后续成本支出等情况,说明收入确认时点的准确性,是否存在同类业务验收约定不一致的情况及原因,是否符合企业会计准则要求,是否与同行业可比公司一致;收入确认方法与同行业可比公司是否一致。
(2)收入确认方法与同行业可比公司是否一致。
(3)以初验证书作为收入确认依据的原因,初验、终验时履行的验收程序的差异情况,
(4)验收时点与合同约定时点的差异情况,实施验收周期与合同约定的差异,收入确认时点是否合理,发行人是否存在人为调节收入确认时点的情形。是否存在在报告期末突击确认收入的情形。
(5)说明12月收入占比,相关项目客户签收单等证明是否齐备,盖章单位与合同签订单位是否存在差异,验收单签订时间是否在本期间内,是否存在软件未上线、未测试、客户未实际使用、发行人培训工作未实施即验收的情形,
(6)属于某一时段内还是某一时点履行的履约义务,收入确认的具体标志,是否需要试运行,收入确认政策与合同约定是否一致
(7)不同类型产品或服务之间是否存在捆绑销售情形
(8)相关验收时点、实施周期与合同约定时间的差异、相关原因的合理性和真实性
(9)对于定制化软件开发业务,客户出具完工确认函/完工确认邮件的具体时点 ,是否存在试运行期要求
、是否存在出具完工确认函/完工确认邮件后对软件进行调整的情况
(一)核查思路:
重点核查按照初验确认收入的依据是否充分,了解验收的具体流程,初验和终验的区别,以初验确认收入时分析是否符合以下几点:1)终验是否为形式验收;2)初验后软件交付给客户并完成安装调试工作,系统已达到可运行状态,公司需要履行的主要合同责任和义务已经基本完成,初验后不提供重要服务;3)企业既没有保留通常与所有权相联系的继续管理权,也没有对已售出的商品实施有效控制—项目初验后交付给业主或客户,业主或客户已能完整控制并使用该系统,故公司不再保留与所有权相联系的继续管理权或实施有效控制。
(二)主要核查程序:
(1)访谈公司管理层、业务部门,了解公司业务开展模式、业务流程、收入确认方法;
(2)了解并测试与收入相关的内部控制;
(3)核查销售合同的验收条款、付款时间、质量保证条款、收入确认依据等资料,检查公司账面收入的记录是否与其收入确认政策相符;
(4)获取软件业务合同/订单,核查是否存在验收条款,针对存在验收条款的合同/订单,核查具体验收条款内容并核查针对该合同/订单客户是否出具验收单;
(5)查阅公司同行业可比公司招股说明书、年度报告等公开资料,并与公司收入确认方法进行比对分析;
(6)访谈主要客户,了解项目建设的整体情况、建设流程、验收流程及相关标准,了解客户验收时间、付款时间,比对分析公司项目建设时间的合理性;
(7)对发行人各类产品和服务收入真实性、截止性进行核查,向发行人报告期内主要客户进行发函确认销售交易金额。
参考案例
【威士顿】首轮问询
8.关于营业收入
(4)软件开发业务公司按照客户确认的终验报告确认收入;软件开发类型的定量开发收入,按照项目开发周期进行结算,按照从客户取得的当期结算单或工作量确认单及合同约定的单价计算确认收入。运维服务按照合同约定内容在提供服务的期间内分期确认收入。系统集成在商品到货签收或安装验收后,取得客户到货签收单或者验收单时确认收入。软件产品及服务中软件产品收入在软件产品在商品到货签收或安装验收后,取得客户到货签收单或者验收单时确认收入;软件产品服务在一段期间提供软件授权许可使用权的,在受益期内分期确认收入。
(一)说明不同类型业务验收时点与合同约定时点的差异情况,验收的流程,发起验收的相关内部控制制度及执行情况,相关验收时点、实施周期与合同约定时间的差异、相关原因的合理性和真实性,是否存在在报告期末突击确认收入的情形
1、发行人不同类型业务验收时点与合同约定时点的差异情况,相关验收时点、实施周期与合同约定时间的差异、相关原因的合理性和真实性
(1)软件开发业务
软件开发业务在实际开展过程中,存在定制软件合同验收时点、实施周期与合同约定的差异情况,且通常是验收时点晚于合同约定时点,主要的原因是合同约定的计划进度是根据招投标时需求概要所做的预估进度,需求概要只框定合同实施的范围,是客户根据项目范围、内部管理要求和经验初步框定的项目计划。合同执行过程中,会进行详细的需求调研,确定详细实施方案。由于详细需求调研确定的实施内容往往比需求概要的实施内容更具体更深入,因此实际实施周期长于计划周期的现象比较普遍。此外,
软件开发项目从整个项目周期角度看,过程比较复杂,历经项目计划制定、需求分析、设计、开发、测试、上线试运行、项目验收等多个阶段,这些过程阶段需要逐步推进,其中部分环节需要客户或者第三方参与(例如需求确认、设计确认、上线试运行等),会遇到不可控的因素,当各方进度无法统一,不可控因素无法消除,会导致项目周期发生延期。具体情况例如:
①需求分析时间长于预期时间:因为发行人提供的是定制化的软件开发业务,
出于谨慎、认真的原则需要反复与客户沟通需求以最终敲定需求分析报告,导致此阶段用时可能长于预期时间;
②软件测试的过程长于预期时间:发行人的主要客户为大型烟草企业,其信息化模块众多,在软件测试过程中,可能涉及某些模块的测试结果不理想,需要重新调试,反复测试,导致测试阶段用时可能会长于预期时间;
③上线试运行的时间长于预期时间:上线试运行后,客户可能会提出额外的需求,需要进行改进,导致试运行周期拉长;此外,
其它关联项目上线的延期或者配套设备采购或者系统运行环境的搭建和部署无法按期完成,也会导致联调工作无法按计划启动,导致上线试运行周期被拉长。
除上述技术层面的原因,客户出于审计等内部管理要求、招投标周期不可控等客观因素也会导致部分项目实际验收时点与计划验收时点不同。
上述原因导致了软件开发业务的实际验收时点与合同约定的时点、实施周期与合同约定存在差异。在软件开发过程中,需求、设计、测试方案、试运行等各个阶段均需要与客户进行沟通,并获得客户的确认意见,符合软件开发业务的特征,具有商业合理性。报告期内,公司不存在因为合同实际执行情况与合同约定存在差异而产生纠纷或者受到处罚的情况。
(3)系统集成
部分系统集成合同约定了交付/验收时点。报告期内,除个别大型集成项目由于客户厂房建设延期,设备集成进度延后以外,不存在项目验收或者产品交付明显晚于合同约定的情形,上述集成项目进度系根据项目实际情况以及客户的要求进行调整,并非由于发行人的原因所造成的,不存在纠纷。
本篇完