财务报假

【财报分析】识别财务造假

2022-05-09  本文已影响0人  山药鱼儿

Hello 大家好!财报分析系列文章的上一篇我们学习了从资产负债表来分析一家企业的硬实力、债务压力、竞争力、主业专注度以及暴雷的风险。本节,我们继续分析资产负债表,从五个方面识别财务造假。

下面,就和小鱼一起变身柯南,学习掌握识别财务造假的技能吧~

温馨提示:
文章内容源自小鱼最新创建的开源项目https://gitee.com/miali/financial-report-analysis,需要的小伙伴可前往围观。

在开始分析前,导入项目中自定义的 Python 包 analysis 中的相关工具:

from analysis import ANALYSIS_CONFIGS
from analysis.analysis import FinancialAnalysis
from analysis.doc_utils import ReportDocument

其中,ANALYSIS_CONFIGS 定义了财报分析对应的配置文件:

>> ANALYSIS_CONFIGS
['all_analysis.json',
 'asset_quality_analysis.json',
 'asset_indepth_analysis.json',
 'asset_fraud_analysis.json',
 'profit_analysis.json',
 'cash_flow_analysis.json']

本次分析的主题是通过资产负债表进行财务造假分析。因此,实例化分析对象时使用的配置文件为 asset_fraud_analysis.json

analysis = FinancialAnalysis(ANALYSIS_CONFIGS[3])
images, titles, fields = analysis.images, analysis.titles, analysis.fields

至此,准备工作就完成了,接下来我们将变身柯南,识别财务造假。

1. 假销售

伪造假的销售合同来增加利润是最常用的造假手段之一。因为是假装把货卖出去,所以这笔钱实际上是收不到的。

因此,假销售会带来应收账款的虚增。通常应收账款大于 20% 有财务造假的风险,也可以结合年报中披露的应收账款账龄和坏账计提标准是否严格来进一步分析。

下面是应收账款占比分析:

t1 = analysis.init_table('t1')
t1['应收账款+合同资产'] = t1.T[:2].sum()
t1['(应收账款+合同资产)占总资产的比率'] = t1['应收账款+合同资产'] / t1['资产合计(元)']

analysis.format_show_table('t1')

该公司应收账款占比小 20% ,应收账款造假的风险很小。

不过,应收账款占比在逐年上升,很可能行业竞争激烈,货越来越难卖,必须要靠让渡账期来把货卖出去。

analysis.show_plot('t1')

2. 假存款

虚增应收账款,时间一长,钱一直收不回来,难免叫人怀疑。于是,通过 “假存款” 来瞒天过海,伪造假的银行存单,假装钱已经收回开了。因此,会带来货币资金的虚增。

识别假存款,从两个方面入手:

也就是,我们要警惕大存大贷的公司,这是自相矛盾的,账上有那么多钱,为什么还要支付那么多利息去贷款呢?很可能货币资金是假的。

1)利息收入

平均货币资金的计算使用期末的货币资金和期初的货币资金计算平均值得出,下面计算最近 5 年的利息收入占平均货币资金的比例:

t2 = analysis.init_table('t2')
t2['平均货币资金'][1:] = (t2['货币资金(元)'][1:].values + t2['货币资金(元)'][:-1].values) / 2
t2['利息收入占平均货币资金的比率'] = t2['利息收入(元)'] / t2['平均货币资金']

analysis.format_show_table('t2')

该公司利息收入占平均货币资金的比例在 3% 左右,大于 2% ,货币资金的真实性比较高。

利息收入基本在 3% 以上,可见公司在货币资金上做了理财规划,利息收入还是不错的。

analysis.show_plot('t2')

2)利息支出

利息支出占净利润的比值大于 10%,并且账上有大量货币资金,即大存大贷的现象,很可能货币资金是假的。

t3 = analysis.init_table('t3')
t3['利息费用占净利润的比率'] = t3['其中:利息费用(元)'] / t3['五、净利润(元)']

analysis.format_show_table('t3')

该公司利息支出不足每年净利润的 1% ,可以忽略不计。

从利息费用和利息支出来看,该公司的货币资金虚增的可能性几乎为 0 。

analysis.show_plot('t3')

3. 假购买

伪造的银行存单,毕竟牵扯到银行,时间一长,东窗事发的可能性也比较大。于是,又动了歪心思,假装把这笔钱花出去。找其他公司签一份假的采购合同,由于合同是假的,根本不会收到货。

因此,“假购买” 会带来预付款项的虚增。此外,长期说不清楚去处的钱,也可能被计入其他应收款。

t4 = analysis.init_table('t4')
t4['预付款项和其他应收款占总资产的比率'] = t4.T[:2].sum() / t4['资产合计(元)']
    
analysis.format_show_table('t4')

该公司预付款项+其他应收款占总资产的比例维持在 1% 的水平,远不足 10% ,因此制造假购买的可能性非常小。

一般情况下,预付款项+其他应收款占总资产的比例大于 10%,则财务造假的可能性比较大。

analysis.show_plot('t4')

4. 假工程

通过 “假存单” “假购买” 来造假,要么牵扯到银行,要么牵扯到其他公司,都不是好办法。于是,喜欢粉饰报表的公司找到了更高级的手段——假工程。假工程时间长、净额大,还不易被察觉。

但是,法网恢恢疏而不漏,凡走过必留下痕迹。正常情况下,在产品非常畅销,供不应求的情况下,我们才会扩大产能,也就是在建工程会增加。但如果一家公司,产品滞销,还在扩大产能,这就很可疑了。

我们要警惕应收账款和存货双高,在建工程也大的公司。

在建工程占比没有固定的比例,可以参照同行业其他公司情况。此外,我们也可以观察几年的年报,对方是否存在在建工程迟迟不转固定资产的问题。

t5 = analysis.init_table('t5')
t5['在建工程占总资产的比率'] = t5['在建工程合计(元)'] / t5['资产合计(元)']

analysis.format_show_table('t5')

该公司在建工程占比在逐年上升,2021 年有小幅回落。在 2020 年在建工程同比增长 28% ,可以到年报中查看是否有具体的说明。

analysis.show_plot('t5')

5. 假存货

存货也是上市公司暴雷的重灾区,一些无良企业为了少算成本,会增加一些存货,达到调节利润的目的。这样的公司会出现毛利率需要,比同行业的其他公司高很多。

识别存货造假有两个方面:

毛利率是属于利润表的范畴,小鱼会在后续的连载继续更新。下面,我们先来从应收账款占比和存货占比进行分析。

t6 = analysis.init_table('t6')
t6['存货占总资产的比率'] = t6['存货(元)'] / t6['资产合计(元)']

analysis.format_show_table('t6')

该公司最近 5 年存货占比维持在 15% 以内,存货暴雷的风险不大。

绘制存货占比时,将应收账款占比也绘制到一张柱形图。

import pandas as pd
from analysis.utils import plot_show

tmp_df = pd.merge(
    t6['存货占总资产的比率'], 
    t1['(应收账款+合同资产)占总资产的比率'],
    right_index=True,
    left_index=True
)
plot_show(tmp_df, image_title=images['t6'][0], y_label='', y_format='', save_image=True)

该公司应收账款在不断增加,最近 3 年大于 5% ,好在存货也在进一步控制,最近 3 年维持在 14% 以内。总体来看,存货暴雷的风险比较小。

6. 假收购

和存货平分秋色,商誉也是上市公司暴雷的灾区。由于溢价收购,事后发现收购的公司没有想象中那么好,就会带来资产减值损失(商誉减值损失)。严重的,当期净利润直接被减到负数。

如果我们很难辨别收购的公司是否属于优质的资产,或者商誉虚高,却找不到原因时,那就要远离了。

t7 = analysis.init_table('t7')
t7['商誉占总资产的比率'] = t7['商誉(元)'] / t7['资产合计(元)']

analysis.format_show_table('t7')

该公司商誉占比不足 1% ,无商誉暴雷风险。

并且,商誉占比还在逐年下降。如果商誉占比大于 10% ,则需要重点分析。

analysis.show_plot('t7')

以上就是通过资产负债表分析财报造假的所有内容了,最后执行如下代码,可以生成 Word 格式的分析报告。

ReportDocument(analysis).save()

下一期文章,小鱼将和大家一起学习利润的形成过程,解读从营业收入到归母净利润的产生过程。我们下节见啦 ┏(^0^)┛

上一篇下一篇

猜你喜欢

热点阅读