import numpy as np
import pyval.procjena as procjena # private package
= 0.3
discount_rate = np.arange(100, 1000, 100)
cf
cf
array([100, 200, 300, 400, 500, 600, 700, 800, 900])
We use cookies
We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from.
Josip Kovač
March 14, 2022
Osnovni DCF model (kako je prezentiran u teoriji) zahtijeva izračun sadašnje vrijednosti očekivanih novčanih tijekova, kroz sljedeću jednadžbu:
To jest (pustimo na stranu Gordonov model, for now):
Gdje je: *
Predmetna formula je valjana, pod pretpostavkom da se očekuju novčani tijekovi striktno krajem svake godine.
No, za društva s ograničenom odgovornošću (sve poznato u praksi pod terminom closely held company), takva pretpostavka nije realna. Korištenjem end-year konvencije diskontiranja, kako je prikazano gore, u biti podcjenjuje vrijednost samog društva.
U stvarnosti, novčani tijekovi dostupni su vlasnicima za isplatu kroz godinu (stoga je i moguća isplata prije kraja godine). Kako bi to odrazili, koristimo mid-year konveciju diskontiranja, gdje svaki eskponent u nazivniku proširene jednaždbe umanjujemo za 0.5.
U nastavku je i Python primjer koji pokazuje razliku između end-year i mid-year diskontiranja:
import numpy as np
import pyval.procjena as procjena # private package
discount_rate = 0.3
cf = np.arange(100, 1000, 100)
cf
array([100, 200, 300, 400, 500, 600, 700, 800, 900])
Relativna razlika sadašnjih vrijednosti trebala bi biti
for end, mid, time in zip(discount_end, discount_mid, time_index):
message = f"Godina {time}: END = {end:.2f}, MID = {mid:.2f}, MID / END = {mid/end:.5f}"
print(message)
Godina 1: END = 0.77, MID = 0.88, MID / END = 1.14018
Godina 2: END = 0.59, MID = 0.67, MID / END = 1.14018
Godina 3: END = 0.46, MID = 0.52, MID / END = 1.14018
Godina 4: END = 0.35, MID = 0.40, MID / END = 1.14018
Godina 5: END = 0.27, MID = 0.31, MID / END = 1.14018
Godina 6: END = 0.21, MID = 0.24, MID / END = 1.14018
Godina 7: END = 0.16, MID = 0.18, MID / END = 1.14018
Godina 8: END = 0.12, MID = 0.14, MID / END = 1.14018
Godina 9: END = 0.09, MID = 0.11, MID / END = 1.14018
Dakle, relativna razlika je konstantna. Drugim riječima, pod pretpostavkom da smo ispravno procijenili rizičnost društva (
Idemo provjeriti osnovanost naših zaključaka kroz izračun sadašnje vrijednosti ovog društva:
pv_end = np.sum(cf * discount_end)
pv_mid = np.sum(cf * discount_mid)
def print_res(convention: str, pv_vector: np.array) -> None:
total = np.sum(pv_vector)
message = f"PV with {convention}-year convention: {total:,.2f}"
print(message)
_data = {"end": pv_end, "mid": pv_mid}
for key, value in _data.items():
print_res(key, value)
PV with end-year convention: 1,025.34
PV with mid-year convention: 1,169.06
Dakle, i ovaj izračun pokazuje da bi podcijenili društvo za 12.30% kada bi koristili end-year umjesto mid-year konvenciju.
Procjena vrijednosti društva zahtijeva poznavanje ne samo gore prezentirane matematike, već i razloge zbog čega su formule sastavljene na način kako je prikazano. Koliko god je sam postupak procjene diskontiranja u samoj svojoj biti jednostavan, za sobom povlači određeni set pretpostavki koji možda u pojedinim slučajevima nisu primjenjivi.