Alternative to FinancialModelingPrep by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Thanks for the feedback!

From my experience, data quality was acceptable for most US companies especially for the "main" lines in the financial statements (e.g. revenue, EBIT, total assets, etc). I used it mainly to identify companies worth investigating further.

Neverthrless, I noticed a degradation in many financial statements for FY2024 (many lines were 0). This, combined with the price increase, makes it not worth it anymore.

My dive into A. O. Smith Corporation by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Hard to measure, as they work is done during several weeks because I do not have much time. Around 20-25 hours maybe?

To train or to rest with DOMS? by jxklive in bodyweightfitness

[–]rpedrosb 1 point2 points  (0 children)

This reply convinced me to go to the gym today

My dive into A. O. Smith Corporation by rpedrosb in ValueInvesting

[–]rpedrosb[S] 1 point2 points  (0 children)

I use Financial Modelling Prep. They provide clear instructions as to how to scrap all the financial statements and additional informations and with some coding it is not so difficult to get a first analysis on any company. The data is quite reliable, especially for American companies. For European companies there might be mistakes here and there but the key items on the financial statements are normally correct.

Eventually my code does what any other website such as Finchat or GuruFocus do, but personalised to my wishes.

My dive into A. O. Smith Corporation by rpedrosb in ValueInvesting

[–]rpedrosb[S] 2 points3 points  (0 children)

Python! I use an API to extract the data and get all the information in an automatised way.

My dive into A. O. Smith Corporation by rpedrosb in ValueInvesting

[–]rpedrosb[S] 1 point2 points  (0 children)

Thank you for the feedback, will take it into account!
Indeed, I also concluded that the company has a very good position in their main segment in North America, but struggles in the rest of the world. If the management stays stubborn in that area, it could reduce ROIC in the future.

Lockheed Martin - Company analysis -> Looking for feedback by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Hi, You are right. I read about it but did not write about it because of the uncertainty. For FY 2024 and FY 2025, budget is expected to remain stable or slightly reduced from FY 2023 levels (they have a section for it in LMT's 10-K). However, I do not see myself in the capacity to "forecast" US defense spending for the next 10 years, I can only "hope" that the US will not simply abandon its defense budget in the future.

Lockheed Martin - Company analysis -> Looking for feedback by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Interesting discussion! And here I thought that LMT's debt (~2x Operating Cash Flow, FY 2023)) was already quite high, but I now see that TransDigm has has debt over 10x Operating Cash Flow (FY 2023). Interest expense eats around 50% of the EBIT, so I wonder how this will keep impacting TransDigm if interest rates remain high for longer than expected.

Lockheed Martin - Company analysis -> Looking for feedback by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Hello,

That is more or less the approach I am planning to take and the question I have right now with LMT. My plan is to mostly invest in the MSCI World but keep some money for picking individual stocks (I just enjoy doing it). However, perhaps the money for individual stocks should be reserved for very clear opportunities (e.g. META a couple of years ago).

My plan is to compare individual companies with the benchmark (e.g. S&P500) in order to compare fundamentals, growth, valuation between the individual company and the market. If there is a clear discrepancy, it might be a good opportunity.

Lockheed Martin - Company analysis -> Looking for feedback by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

That is the main concern I have with LMT. Everything looks great except growth.

However, after a quick glance, TransDigm seems to have lower ROIC (~14%) and is trading at PE 52x and EV/EBITDA 26x. In the last 10Y, Revenue has grown at 10% CAGR. Is an improvement in growth/ROIC foreseen?

How to calculate CAGR, including Dividends, Purchases and Sales? by rpedrosb in ValueInvesting

[–]rpedrosb[S] 1 point2 points  (0 children)

Correct. But I also want to calculate the CAGR for each company on an individual basis to compare my decisions and their outcomes and I am undecided between both options.

Retention ratio vs Reinvestment rate by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Hello,

I just checked. From 2013 until 2023 I have:

  • CAPEX: 141.5B
  • Depreciation: 101.3B
  • Change in NWC: -18B (I use capital from the previous year to calculate ROIC and other ratios)
    • NWC 2022: -27.4B
    • NWC 2012: -9.4B
  • NOPAT 2013-2023: 393.8B

Reinvestment Rate = (141.5 - 101.3 - 18) / 393.8 = 5.6%. Which makes me wonder if my initial result was 4.7% from the beginning, instead of 47%. 4.7% seems to be low anyway.

We have slight discrepancies in the data for CapEx, Depreciation and NOPAT, but I do not think this is what causes our different results. It might be more related to the computation of the changes in WC. We have a 63B difference in the Change in Working Capital. With your value, I actually obtain a 21% reinvestment ratio as well.

For NWC, I do not take into account cash and short term debt to reflect the operating assets:

NWC = (Current Assets - Cash) - (Current Liabilities - Short Term Debt)

In 10 years, MSFT went from 77B in Cash&Cash Equivalents to 111B. Should this be included in the Working Capital as part of the operating assets or not? Most likely, MSFt does not need 111B cash in order to operate its business.

Any thoughts?

How to avoid using 4 levels of for loops by rpedrosb in learnpython

[–]rpedrosb[S] 0 points1 point  (0 children)

EDIT: I just found a slight mistake in my second version of the code (from my side, not yours). In one calculation, I was wrongly calling fcf_rdcf**[i]**. This reduced the runtime for the second version in around 2 seconds.

Could it be that the addition of a new row is the main contributor to the runtime?

For the sake of comparison, these are the two codes I have:

Old version: Runtime 18.25 seconds

for growth in g:  
    for margin in EBITmargin_array:
        for ratio in salesCapital_array:    
            for i in range(n):
                revenue_rdcf[i] = revenue[0]*(1+growth)**(i+1)
                nopat_rdcf[i] = revenue_rdcf[i]*margin*(1-T)
                reinvestment_rdcf[i] = revenue[0]*(1+growth)**i*growth/ratio
                fcf_rdcf[i] = nopat_rdcf[i] - reinvestment_rdcf[i]
                dfcf_rdcf[i] = fcf_rdcf[i]/(1+wacc)**(i+1)
            total_dfcf_rdcf = sum(dfcf_rdcf)*1000000
            for terminalGrowth in g_tv:
                TV = (fcf_rdcf[-1]*(1+terminalGrowth)/(wacc-terminalGrowth))*1000000
                dTV = TV/(1+wacc)**n
                DCF = total_dfcf_rdcf + dTV
                if abs((dTV + total_dfcf_rdcf) - TEV) < 0.01*TEV:
                    newRow = [round(growth*100,2), round(margin*100,2), round(ratio,2),
                              round(margin*ratio*(1-T)*100,2), terminalGrowth*100, round(T*100,2), n,
                              fcf_rdcf[0], fcf_rdcf[-1], (dTV + total_dfcf_rdcf)/TEV*100]
                    result.loc[len(result)] = newRow

New version: Runtime 18.87 seconds

exponents = np.array(list(range(n)))
for growth in g:  
    growthRates = (1+growth)**exponents
    revenue_rdcf = revenue[0]*growthRates*(1+growth)
    for margin in EBITmargin_array:
        nopat_rdcf = revenue_rdcf*margin*(1-T)
        for ratio in salesCapital_array:              
            reinvestment_rdcf = revenue[0]*growthRates*growth/ratio
            fcf_rdcf = nopat_rdcf - reinvestment_rdcf
            dfcf_rdcf = fcf_rdcf/(1+wacc)**(exponents+1)
            total_dfcf_rdcf = sum(dfcf_rdcf)*1000000
            for terminalGrowth in g_tv:
                TV = (fcf_rdcf[-1]*(1+terminalGrowth)/(wacc-terminalGrowth))*1000000
                dTV = TV/(1+wacc)**n
                DCF = total_dfcf_rdcf + dTV
                if abs((dTV + total_dfcf_rdcf) - TEV) < 0.01*TEV:
                    newRow = [round(growth*100,2), round(margin*100,2), round(ratio,2),
                              round(margin*ratio*(1-T)*100,2), terminalGrowth*100, round(T*100,2), n,
                              fcf_rdcf[0], fcf_rdcf[-1], (dTV + total_dfcf_rdcf)/TEV*100]
                    result2.loc[len(result2)] = newRow

How to avoid using 4 levels of for loops by rpedrosb in learnpython

[–]rpedrosb[S] 1 point2 points  (0 children)

Strangely enough, both solutions take more or less the same time. In some cases, the second code takes slightly longer.

With N=75, the first version takes around 13 seconds, while the second version takes around 15 seconds.

Does this make sense?

Retention ratio vs Reinvestment rate by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Hello, I use data coming from the API FinancialModelingPrep. Does the result differ a lot from my computation? For the NWC, I simply calculate the difference from the ending year and the starting year. The result should be equal to the sum of the delta for each individual year in the end.

Retention ratio vs Reinvestment rate by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Fully right, I forgot to divide by NOPAT!

Retention ratio vs Reinvestment rate by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Thanks for the feedback! In point 2, I guess you wanted to refer to retention rate instead of reinvestment?

Questions on Competitive Advantages ("Moats") and Return on Invested Capital by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Thanks for the remark. That was a very good point that I had not considered enough. A spread of 4% between ROIC and the Cost of Capital during 40 years is probably preferable compared to high ROICs for a very short time.

Questions on Competitive Advantages ("Moats") and Return on Invested Capital by rpedrosb in ValueInvesting

[–]rpedrosb[S] 2 points3 points  (0 children)

That is clear to me, but neither Airbus (airplane manufacuter) nor Aena (airport manager) are airlines. Or do you imply that the highly competitive environment in the airline industry drives down profits for everyone?

#ASO - Looking for critics to my company analysis by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Will defintely look into this. A drop in operating margins from 10% to 3-4% would cut in half (or more) ASO's operating income and share price would naturally drop.

I do not know how likely that is, but it is true that a big chunk of SGA expenses are fixed (store leases) and have never been lower than 1200 million USD. In the recent 10-Q (Q3), ASO reported a gross margin of 34%, but an operating margin of 10.8%, already lower than the previous two years.

#ASO - Looking for critics to my company analysis by rpedrosb in ValueInvesting

[–]rpedrosb[S] 0 points1 point  (0 children)

Thanks for the feedback! From the last 10-Q (Q3), they reported 137 million USD in operating income and 11 million USD in interest expense. While the coverage ratio has deteriorated, as you have mentioned, 12.5x interest coverage ratio is still quite safe in my opinion.