Hello 大家好!在连载的前 3 篇文章,小鱼和大家一起学习了资产负债表的分析。我们使用资产负债表分析了一家企业的资产质量,初步判断这家企业牛不牛,以及财务造假分析。
本篇,小鱼将和大家一起学习利润表,了解企业利润的形成过程!
温馨提示:
文章内容源自小鱼最新创建的开源项目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']
分析利润表使用的配置文件为 profit_analysis.json
,使用改配置文件初始化分析对象,就可开始我们今天的分析啦~
analysis = FinancialAnalysis(ANALYSIS_CONFIGS[4])
images, titles, fields = analysis.images, analysis.titles, analysis.fields
营业收入
通过营业收入的规模看企业的行业地位,增长率看企业成长性。
t1 = analysis.init_table('t1')
t1['营业收入增长率'] = t1['其中:营业收入(元)'].pct_change()
analysis.format_show_table('t1')
该公司营业收入在 2021 年突破 100 亿,营业收入在 2018-2020 年小于 10%,好在 2021 年实现了可观的增速。营业收入的增长率平均大于 10%,增速还是不错的。
2021 年营业收入增速相比之前出现大幅提高,可以通过阅读年报,找到分行业、分产品、分地区对营收的贡献情况。
analysis.show_plot('t1')
毛利率
通过毛利率了解产品竞争力和风险,毛利率 = 毛利 / 营业收入,其中毛利的计算公式如下:
毛利 = 营业收入 - 营业成本
计算毛利率及毛利率波动率:
t2 = analysis.init_table('t2')
t2['毛利率'] = (t2['其中:营业收入(元)'] - t2['其中:营业成本(元)']) / t2['其中:营业收入(元)']
t2['毛利率波动率'] = t2['毛利率'].pct_change()
analysis.format_show_table('t2')
该公司的毛利率维持在 50% 以上,对于制造类企业,毛利率大于 40% 就属于高毛利率的企业了。
此外,毛利率的波动幅度不超过 7%,存货造假的风险很小。一般优秀的企业,毛利率波动幅度不超过 10%。
analysis.show_plot('t2')
综上所述,该公司毛利率大于 50%,并且波动幅度很小,在 7% 以内,属于优秀的公司。
期间费用率
期间费用也就是四费:销售费用、管理费用、财务费用和研发费用。其中,财务费用如果是负数,代表收入,可以理解为利息收入大于利息支出。
保守起见,负的财务费用我们不计算在内,也就是负的财务费用赋值为 0 ,来计算四费。使用四费 / 营业收入得到期间费用率,毛利只是营业收入减去了营业成本,尚未扣除四费,因此四费是包含在毛利中的。
因此,在分析期间费用率的时候,我们还会计算出期间费用率占毛利率的比例,来了解企业的成本管控能力。
t3 = analysis.init_table('t3')
t3.loc[t3['财务费用(元)']<0, '财务费用(元)'] = 0
t3['四费合计'] = t3.T[:4].sum()
t3['期间费用率'] = t3['四费合计'] / t3['其中:营业收入(元)']
t3['毛利率'] = t2['毛利率']
t3['期间费用率占毛利率的比率'] = t3['期间费用率'] / t3['毛利率']
analysis.format_show_table('t3')
该公司期间费用率维持在 32% 左右,期间费用率占毛利率的比例在 60% 左右波动。
期间费用率稳定在 30% 左右,2021 年较前 4 年相比出现明显下降。
analysis.show_plot('t3')
期间费用率维持在 60% 左右,成本管控能力有待提高。一般情况下,优秀的公司期间费用率占毛利率的比率小于 40%,这样的公司毛利被更多地保留了下来。大于 60% 则成本管控能力不佳。
analysis.show_plot('t3', image_index=1)
销售费用率
通过销售费用率了解公司产品的销售难易度。销售费用率的计算使用销售费用除以营业收入。
t4 = analysis.init_table('t4')
t4['销售费用率'] = t4['销售费用(元)'] / t4['其中:营业收入(元)']
analysis.format_show_table('t4')
该公司销售费用率在 24% 左右波动。一般情况下,销售费用率小于 15% 则产品比较容易销售,对应的风险也比较小。大于 30% 则销售难度大,风险也比较高。
通常,销售费用率呈现下降趋势时,销售难度下降,风险下降。该公司销售费用率在 24% 左右波动,大于 15% ,存在一定的风险,可能竞争激烈。
analysis.show_plot('t4')
主营利润
主营利润的计算公式为:
主营利润 = 营业收入 - 营业成本 - 税金及附加 - 四费合计
主营利润率 = 主营利润 / 营业收入
主营利润的分析我们看两个方面:主营利润率和主营利润占营业利润的比例。其中,主营利润率 > 15% 则主业盈利能力强,小于 15% 则主业盈利能力有待提高。
主营利润率占营业利润的比率反映了利润质量的水平,主营利润我们可以理解为干正事的利润,营业利润则是主营利润加上一些不干正事的利润。我们投资一家公司,当然希望这家公司的利润是靠主业产生的,而不是靠一些不干正事的收益。
t5 = analysis.init_table('t5')
t5['四费合计'] = t3['四费合计']
t5['主营利润'] = t5['其中:营业收入(元)'] - t5.T[1:4].sum()
t5['主营利润率'] = t5['主营利润'] / t5['其中:营业收入(元)']
t5['主营利润占营业利润的比率'] = t5['主营利润'] / t5['三、营业利润(元)']
analysis.format_show_table('t5')
该公司主营利润率在 20% 左右波动,大于 15% ,主业盈利能力还是非常优秀的。此外主营利润占营业利润的比例大于 80% ,2021 年比例大于 100% ,如果阅读年报,我们可以发现是信用减值损失计提 7.65 个亿所致。
从主营利润率来看,公司的主业盈利能力非常强,并且盈利能力稳定。
analysis.show_plot('t5')
主营利润占营业利润的比率大于 80%,说明公司利润质量高,营业利润大部分是由主业创造的。
analysis.show_plot('t5', image_index=1)
营业外收入净额
营业利润的基础上,加上一些意外的收入和费用,得到利润总额。其中,这些意外的收入减意外的费用就是营业外收入净额,可以理解为惊喜和惊吓。比如正负补助、罚款收入和支出、对外捐赠等等。
营业外收入净额我们计算营业外收入净额占利润总额的比例:
t6 = analysis.init_table('t6')
t6['营业外收入净额'] = t6['加:营业外收入(元)'] - t6['减:营业外支出(元)']
t6['营业外收入净额占利润总额的比率'] = t6['营业外收入净额'] / t6['四、利润总额(元)']
analysis.format_show_table('t6')
该公司营业外收入净额占利润总额的比例不足 1%,利润质量非常高。
营业外收入和营业外支出和主业无关,我们认为占比越小越好,通常小于 5% 利润质量好,大于 5% 利润质量差。
analysis.show_plot('t6')
归母净利润
千呼万唤始出来!通过上述分析,原来从营业收入到我们熟知的归母净利润,中间还有非常多的细节。
归母净利润分析两个方面:归母净利润的规模和增长率。规模越大,盈利能力越强,可以进行同行业公司的对比。归母净利润的增长率大于 10%,则持续性较好,小于 0 则持续性较差。
t7 = analysis.init_table('t7')
t7['归属于母公司所有者的净利润增长率'] = t7.pct_change()
analysis.format_show_table('t7')
该公司归母净利润在 2017 - 2020 年一直处于增长之中,2021 年归母净利润出现同比下降 19.81% ,异常。
通过阅读年报,发现该公司 2021 年归母净利润下降 19.81% 主要系信用减值损失计提 7.65 亿,其中应收账款坏账损失 5.78 亿。通过应收账款分类披露,发现主要是某集团出现了 4.7 个亿的债务违约,计提 100% 。
analysis.show_plot('t7')
最后,执行如下代码,即可在 dist
目录下生成名为 xxxxxx PROFIT_ANALYSIS 2017~2021.docx
格式的分析报告。
ReportDocument(analysis).save()
以上就是利润表分析的全部内容啦,我们从营业收入开始,根据减去费用,加上收入的思路,依次得到毛利、主营利润、营业利润、利润总额和归母净利润,了解了利润的产生过程!
下一节,小鱼将和大家学习现金流量表,了解企业的现金流水情况。我们下节见啦 (╹▽╹)
网友评论