判斷一個項目是否可行,我們首先考慮的是機會成本。機會成本是指用既定的資本金投資了該項目,而放棄了其他的項目。如果投資其他項目的收益率為10%,那麼投資該項目的收益率要遠高於10%以上,才能證明這個項目是可行且值得投資的。
從財務角度看,判斷項目是否值得投資通常會關注這六大指標:
1、凈現值=未來報酬的總現值-初始投資現值
凈現值(NPV)是指一個項目預期實現的現金流入的現值與實施該項計劃的現金支出的現值的差額。凈現值指標是反映項目投資獲利能力的指標。凈現值為正值的項目可以為股東創造價值,凈現值為負值的項目會損害股東價值。
2、現值指數=現金流入現值÷現金流出現值
現值指數(Profitability Index,縮寫為 PI)又稱獲利指數或利潤指數,是指投資項目未來現金凈流量的總現值與原始投資現值之比。如果投資項目的現值指數大於或等於1,表明該投資項目的投資報酬率高於或等於預定的貼現率,該項目可以接受;如果投資方案的小於1,表明該投資項目的投資報酬率低於預定的貼現率,該項目則不可以接受。在多個備選項目的互斥選擇中,應接受現值指數大於1最多的投資項目。
3、權益乘數=資產總額÷所有者權益總額=1÷(1-資產負債率)=1+產權比率
權益乘數又稱股本乘數,是指資產總額相當於股東權益的倍數。權益乘數越大表明所有者投入企業的資本佔全部資產的比重越小,企業負債的程度越高;反之,該比率越小,表明所有者投入企業的資本佔全部資產的比重越大,企業的負債程度越低,債權人權益受保護的程度越高。
4、營業現金流量=營業收入-付現成本-所得稅(根據定義)=稅後淨利潤+折舊(根據年末營業成果)=(收入-付現成本)×(1-所得稅率)+折舊×稅率(根據所得稅對收入和折舊的影響)
營業現金流量是指投資項目投入使用后,其壽命周期內由於生產經營而帶來的現金流入和流出的數量。它包括年營業凈利潤和年折舊等。營業現金為企業的最主要的一項現金流量,只有在短期內,就能產生足夠的營業現金流量的項目,才是真正的具有高成長性的項目。
5、內含報酬率:每年流量相等時用「年金法」,不等時用「逐步測試法」
內含報酬率,也被稱為內部收益率,是指能夠使未來現金流入現值等於未來現金流出現值的折現率,或者說是使投資方案凈現值為零的貼現率。內含報酬率法是根據方案本身內含報酬率來評價方案優劣的一種方法。內含報酬率大於資金成本率則方案可行,且內含報酬率越高方案越優。
6、投資人要求的收益率(資本成本)=債務比重×利率×(1-所得稅)+所有者權益比重×權益成本
資本成本是指企業取得和使用資本時所付出的代價。
在評估項目可行性時,我們一般會採用現金流量折現法,因為項目的投資支出和收益在項目生命周期的不同時間點發生,如果不考慮貨幣時間價值將項目整體收入和成本進行簡單匯總的話,可能得出錯誤的結論。
現金流量折現法是以期望報酬率為折現率,對項目生命周期內的預期現金流入、流出進行折現,通過現值的計算和比較,為項目可行性提供判斷的依據。
現金流量折現法核心公式:
式中:
NPV:項目凈現值;n:項目的壽命;CFt:資產在t期間產生的現金流;r:預期折現率或期望報酬率;C0:一次性初始投資額。
為了讓大家直觀地感受到現金流量折現法在工作中的實際應用,我們將結合財務案例用數字化工具Python計算出項目投資的收益率,並評估該項目的可行性。
案例背景
某項目投資額為100萬,於2019年1月1日投產,預計固定資產使用年限為5年,每年產生稅後銷售收入為100萬元(假設全部收現),付現成本為66萬元(每年增加1萬元),所得稅率為25%,採用直線法折舊。資產使用期滿后,估計有殘值凈收入10萬元。投資者對該項目的期望投資報酬率是10%。根據上述背景,評估該項目是否可行。
在評估中我們常用上述的凈現值法、回收期法和內含報酬率法去評估項目的可行性,接下來的數據計算我們將在Python中通過代碼復用的方式完成。
(一)凈現值法:
凈現值(Net Present Value,NPV)是一項投資所產生的未來現金流的折現值與項目投資成本的現值之間的差值。凈現值為正值,投資方案是可以接受的;凈現值是負值,從理論上來講,投資方案是不可接受的。
1. 引入pandas
import pandas as pdimport datetime as dt
pd.options.display.float_format =
'{:,.2f}'.format
2. 維護假設或參數,其中項目現金流列表裡的數據以年為間隔,
分別代表所屬年的現金流流入或流出。
# 項目假設
investment = 1000000
start_date = dt.datetime(2019,1,1)
end_date = dt.datetime(2023,12,31)
project_life=round((end_date
- start_date).days/365,0)
tax_rate = 0.25
discount_rate = 0.1
scrap_value = 100000
cash_flow={『日期』:[dt.datetime(2019,12,31),
dt.datetime(2020,12,31),
dt.datetime(2021,12,31),dt.datetime(2022,12,31),
dt.datetime(2023,12,31)],
# 按項目期間錄入現金流,
現金流入=銷售收入+殘值凈收入,
現金流出=付現成本
'現金流入':[1000000,1000000,1000000,
1000000,1100000],
'現金流出':[660000,670000,680000,
690000,700000]}
df=pd.DataFrame(cash_flow)
df
3. 計算期間,這筆現金流相對於項目開啟日期的時間
df['期間'] = round((df['日期']-start_date).
dt.days/365,2)
df
4. 計算折舊=年度折舊額*△現金流期間
df['折舊'] = (investment-scrap_value)
/project_life*(df['期間']- df['期間'].
shift(1).fillna(0))
df
5. 計算稅前利潤=銷售收入+殘值凈收入-付現成本-折舊 = 現金流入-現金流出-折舊
df['稅前利潤']=df['現金流入']-df['現金流出']-df['折舊']
df
6. 計算所得稅=營業利潤*所得稅率
df['所得稅']=df['稅前利潤']*tax_rate
df
7. 計算凈利潤=稅前利潤-所得稅
df['凈利潤']=df['稅前利潤']-df['所得稅']
df
8. 計算現金凈流量=凈利潤+折舊(現金流不包含折舊等非付現成本)
df['現金凈流量']=df['凈利潤']+df['折舊']
df
9. 計算折現係數,距離0時間點越近,折現的次數越少,折現係數越小
df['折現係數']=(1+0.1)**(df['期間'])
df
10. 計算每條現金流的現值
df['現金流折現']=df['現金凈流量']/df['折現係數']
df
11. 計算項目凈現值=現金流折現-投資額
NPV=df['現金流折現'].sum()-investment
132341.61849352042
結論:NPV大於0,因此該項目投資具有可行性。
(二)回收期法:
回收期(payback Period,PP),是指投資項目的未來現金凈流量與原始投資額相等時所經歷的時間,即原始投資額通過未來現金流量回收所需要的時間。收回的時間越長,風險越大,因此,回收期長短也是投資者十分關心的問題。
- 靜態回收期:未考慮貨幣時間價值,未來現金凈流量累計到原始投資時所經歷的時間
- 動態回收期:考慮貨幣時間價值,未來現金凈流量現值累計到原始投資時所經歷的時間
核心公式:
回收期 = M+第M年尚未收回額/第(M+1)年的現金凈流量(M是收回投資的前一年)
使用累計窗口函數對現金凈流量和現金流現值進行累加
df2 = df[['現金凈流量','現金流折現']].cumsum()
需要扣去首年投資額才能觀察項目累計現金流的符號改變的時間點
df2 = pd.concat([df['期間'],df2
- investment],axis=1)
df2
提取現金流符號轉變所在的行
i=df2[(df2['現金凈流量']*df2['現金凈流量'].shift(1)) < 0].index[0]
i
計算靜態回收期
回收期 = M+第M年尚未收回額/第(M+1)年的現金凈流量
# 由於之前做了累計,所以第(M+1)年的現金凈流量=M+1累計現金流-M累計現金流
SPP
= df2.iloc[i-1,0]+abs(df2.iloc[i-1,1])
/(abs(df2.iloc[i-1,1])+df2.iloc[i,1])
SPP
3.4414414414414414
計算動態回收期
j=df2[(df2['現金流折現']*df2['現金流折現'].shift(1)) < 0].index[0]
DPP
= df2.iloc[j-1,0]+abs(df2.iloc[j-1,2])
/(abs(df2.iloc[j-1,2])+df2.iloc[j,2])
DPP
4.382210144927537
可以看到,靜態回收期是3.44年,動態回收期是4.38年。
(三)內含報酬率法:
內含報酬率,就是使得項目流入資金的現值總額與流出資金的現值總額相等的利率,換言之就是使得凈現值(NPV)等於零時的折現率。
如果不使用數字化工具,內含報酬率要用若干個折現率進行試算,直至找到凈現值等於零或接近於零的那個折現率,但是我們用Python就很簡單了。
先來看看如何遍歷Dataframe的index和item
for i,row in df[['期間','現金凈流量']].iterrows():
print(row['期間'],row['現金凈流量'])
定義方程式並求解
# 使用scipy的fsolve求解一元多次方程的跟
from scipy.optimize import fsolve
#定義方程式def f(x):
y=0 #初始化y
for i,row in
df[['期間','現金凈流量']].iterrows():
y=y+row['現金凈流量']/
(1+x[0])**row['期間']
y = -investment+y #別忘記扣除投資額
return y
# 求解方程,[]中是x的近似初始值,
非線性方程通常不止一個解,因此需要設置大致初始解,
這樣方程在初始值附近按梯度下降進行求解,可得局部最優解
irr = fsolve(f, [0])
print(irr)
其中f其實就是下圖的函數,我們預計內含報酬率的解在0-1之間,
局部最優解得:0.14984209
分析結論:內含報酬率為14.98%,大於投資者的期望報酬率10%,該項目可行。
從上述三種方法的計算結果中,我們得出了該項目投資具備可行性的結論
在下一期的文章中,將為大家介紹如何依據現金流量折現模型中的數據,創建數據表用於存儲與模型相關的參數和計算結果,然後進行項目數據表的模型設計~精彩內容,敬請期待!
END
?圖片版權歸財碼數字化所有,如對版權有異議,請聯繫後台議定處理。
本文由財碼數字化整理髮布,如需轉載請務必註明以上信息。
本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 2557861106@qq.com 舉報,一經查實,本站將立刻刪除。如若轉載,請註明出處:https://acenms.com/4790.html