How to value startup investments using Risk-Adjusted DCF

Investments in high-risk startups and startup-like projects pose unique challenges: the return ranges from 10x+ to 0x (e.g., wipe out!). This article provides a valuation approach using risk-adjusted discounted cash flow.

Discounted Cash Flow is a conventional approach to valuing a future revenue stream. When dealing with high-risk investments, such as funding a startup or a startup-like project (e.g., royalties in a book or application), the future revenue streams may range from a highly profitable investment to a loss. This article provides a simple approach to calculating a risk-adjusted discounted cash flow so that you can generate an initial estimate of the cash value of your investment.

Matt Dyor Matt Dyor

What is discounted cash flow?

Discounted cash flow (DCF) is an analysis method used to value investment by discounting the estimated future cash flows. DCF analysis can be applied to value a stock, company, project, and many other assets or activities, and thus is widely used in both the investment industry and corporate finance management.

In short, DCF allows you to adjust for the time value of money. If the DCF is lower than the cost of the investment, it is not a good investment. If it is higher, it is a good investment.

What is *Risk-Adjusted* DCF?

When dealing with a high-risk investment, you never really know what is going to happen. When I ran the Microsoft Startup Accelerator powered by Techstars (long name:), I received a portion of my salary in the form of equity in each of the 20 startups. Most of them failed (0x return - wipe out), a few of them went sideways (1x or 2x return), and a small set of them did amazing (5x+). This type of distribution seems fairly typical - see Why VC's seek 10x returns (although a lot of what you read about are people who have atypical returns - there are probably a lot of investors who lose most/have negative returns who do not share their experience).

Even though investing in 20 startups does a great job of distributing your risk, it is expensive (and barring joining a firm/pool that has a mechanism to enable investing in multiple startups simultaneously, is logistically infeasible). So how do you calculate the value of a single investment, given that there is so much uncertainty about the return?

That is where risk adjusted discounted cash flow comes in. In essence, you are coming up with the likely scenarios that will unfold: from an optimistic (perhaps 10x return) to a neutral (2x) to a negative (0.5x - half of your investment returned) to a wipe out (0x return). You can then assign a likelihood to each of these scenarios, such as 10%, 50%, 20%, and 20%.

A DCF is generated for each of the scenarios, and then DCF is multiplied by the likelihood. of that scenario playing out. These values are then summed,

Here is a Jupyter notebook that covers how to implement risk-adjusted DCF in Python. It involves a royalty payment - 5 royalties of $2,000 being returned in 1 year, 2 years and 3 years (and never for the wipe out scenario). It assumes an interest rate of 4%. Assuming the probabilities of 10%, 50%, 20%, and 20%, this investment is worth $7,472.75. If you pay $7k for this royalty, you are doing well. If you pay $8k, you are likely paying too much.

probability_list = [.1, .5, .2, .2]


name = "optimistic"
probability= probability_list[0]
revenues = []
revenues.append({'date':'2022-08-01','investor_payout':'2000'})
revenues.append({'date':'2022-10-01','investor_payout':'2000'})
revenues.append({'date':'2022-11-01','investor_payout':'2000'})
revenues.append({'date':'2022-12-01','investor_payout':'2000'})
revenues.append({'date':'2023-02-01','investor_payout':'2000'})
first_stream={"name":name,"probability":probability,"revenues":revenues}


name = "medium"
probability=probability_list[1]
revenues = []
revenues.append({'date':'2023-02-01','investor_payout':'2000'})
revenues.append({'date':'2023-06-01','investor_payout':'2000'})
revenues.append({'date':'2023-09-01','investor_payout':'2000'})
revenues.append({'date':'2023-11-01','investor_payout':'2000'})
revenues.append({'date':'2024-02-01','investor_payout':'2000'})       
second_stream={"name":name,"probability":probability,"revenues":revenues}


name = "pessimistic"
probability=probability_list[2]
revenues = []
revenues.append({'date':'2023-08-01','investor_payout':'2000'})
revenues.append({'date':'2024-02-01','investor_payout':'2000'})
revenues.append({'date':'2024-07-01','investor_payout':'2000'})
revenues.append({'date':'2024-10-01','investor_payout':'2000'})
revenues.append({'date':'2025-02-01','investor_payout':'2000'})            
third_stream={"name":name,"probability":probability,"revenues":revenues}


name = "zero"
probability=probability_list[3]
revenues = []        
fourth_stream={"name":name,"probability":probability,"revenues":revenues}


aggregate_stream = []
aggregate_stream.append(first_stream)
aggregate_stream.append(second_stream)
aggregate_stream.append(third_stream)
aggregate_stream.append(fourth_stream)
aggregate_stream


from datetime import datetime
format = '%Y-%m-%d'
interest_rate = 0.04

def diff_month(d1, d2):
    return (d1.year - d2.year) * 12 + d1.month - d2.month

stream_dcf = []
dcf_total = 0

for stream in aggregate_stream: 
    stream_sum = 0
    for revenue in stream['revenues']:         
        revenue_date_dt = datetime.strptime(revenue['date'], format)
        month = diff_month(revenue_date_dt, datetime.now())
        cash_flow_discounted = float(revenue['investor_payout'])/((1 + interest_rate/12)**month)
        stream_sum += cash_flow_discounted 
    print(stream_sum)
    weighted_stream_sum = stream_sum * float(stream['probability'])
    stream_dcf.append(weighted_stream_sum)
    dcf_total+=weighted_stream_sum
print(stream_dcf)
print(dcf_total)

# https://notebooksharing.space/view/76b799a59c2a2750fac30c31e8145a8a02b51316a2245d054e521c7ce5867e5e

What if I think the investment is worth more?

This is probably your heart's way of getting you into a bad investment. But you can take a look if some of your modeling is off - is there a 40x possibility that you should account for? Is the likelihood of a wipe-out really small? But if you cannot model this contingency, it is unlikely that this value will manifest. Trust your gut about the startup's potential of achieving a specific outcome, but do not trust your gut when it comes to the startup achieving an outcome that neither you nor the startup can describe and model (in terms of your return).

Good luck!

Tagged with:
Business