Joel Greenblatt's Magic Formula

Yes agree.

Cool. All the best .

I am following the steps as mentioned by @Ahmed_Madha above in his blog. He has shared a google sheet on his blog which is more or less my portfolio as well because i read the book and started this experimental portfolio around the same time.

1 Like

And use Screener.in to apply the required ROCE and EY filters.

Additionally, i added a filter to remove stocks with pledged promotor holding.

I saw one guy on twitter named CoolFundo xxxx, he posts the magic formula screens. you can get some inspiration from that as well

1 Like

Based on Ahmed blog also from Joel book ,the return they got by introducing any additional filter apart from standard portfolio was less .

So i think its good to go with standard screener RoCE + EY

1 Like

Ahmed had published an excel sheet here Joel Greenblatt’s Magic Formula in the Indian context – Does it work? – Financial Tales
It was based on FY 2019-2020 Results

I tried to recreate it using screener. I expected at least 80% would match. However there very little overlap between his findings & my results
(I used screener to scrape data for verification so I don’t have to use any expensive dataset right now)

Below is the way how I scrapped & applied the formula. Can somebody let me know where I am doing wrong?

(I know there are few assumptions, but I thought the result should match at least 75% to Ahmed’s which did not)


  1. Created the Screen for MarketCap more than 250Cr. (MoreThan250MarketCap - Screener)
    ( I know its based on current Price. but I am taking top 250 companies & there could be change of 20-30 companies compared to FY19-20)
    (Hoped to match or having near to Top 250 results that of Ahmed’s)

  2. Sorted by Current Market Cap

  3. Picked top 250 companies

  4. Went to each company Screener page

The Formula used

  1. ROIC= EBIT/(Net Working Capital + Net Fixed Assets)
  2. Earnings Yield = (EBIT*1000000)/EnterpriseValue

Now How I calculated each component

  1. EBIT = Profit Before Tax + Interest

    • Profit Before Tax is taken from P&L (Yearly) under Mar 2020 column
    • Interest : Same Mar 2020 column
      (If Mar 2020 is not available. i.e. Company is not following Apr-Mar FY, I took Dec 2019 data. I could use Mar 2020 Quarterly results, but avoided complications for proof of concept)
  2. Net Working Capital = Trade Receivables + Inventories - Trade Payable

    • Trade Receivables & Inventories are taken from Other Assets under Balance Sheet of Mar 2020
    • Trade Payable from Other Liabilities
  3. Net Fixed Assets = Fixed Assets - Intangible Assets

    • Total Fixed Assets value is taken from Balance Sheet &
    • Intangible value is taken from by expanding the Fixed Assets.
  4. Enterprise Value = Current Market Value - NetDebt
    i.e. Enterprise Value = (OutstandingShares*3rdJul2020 Price) + (Borrowings - Cash)
    (3rd July Price was taken as Ahmed mentioned 3rd July Price on the sheet he shared or his exercise was on that date)

    • 3rd Jul 2020 price was scrapped separately for those companies
    • Outstanding Shares is calculated from Current Market Cap divided by Current Market Price (Both are given in Screener.in at the top section)
    • Borrowings scraped from Balance Sheet
    • Cash was scarped from Balance Sheet’s Other Asset’s data (Cash Equivalents)

Some of the companies were skipped based few criteria

  1. Sector Skipping: Screener gives “Sector” in Peer Comparison section. I skipped the company if sector is Banks or Finance or Insurance
  2. Other Assets Total has Other Assets Items value. I did not get clearly the significance of it.
    However I saw that if Other Asset Items value is more than 30% of Total Other Assets, it belongs to finance or non-operating assets.
    So I skipped the company if OtherAssetItems is greater than 30% of Total Other Assets
    (If I don’t skip, the results are totally different.)

After this standard procedure of sorting was applied.


Only 10-11 companies matched to that of Ahmed’s list. So I am not sure if I did correct thing.

If somebody can point out the issue in above logic, that will be great.

1 Like

Few questions:

  • Earnings Yield and EBIT are already with screener.in. Is there a reason why you’re calculating it on your own?
  • For Return on Capital, how about using EBIT * 100 / (Working capital + Net block )?
  • Joel Greenblatt mentions to also skip utilities, which I think are power and gas distribution companies. Is there a reason why you did not exclude these companies?

Thanks for the commetns…

  1. I did not find Earning Yield & EBIT (e,g, Reliance Industries Ltd financial results and price chart - Screener . Can you please point out where?
  2. Ok. I shall try to change that & rerun.
  3. Hmmmm… No particular reason… I thought its only about Finance & Banks… Ahmad included Power & Gas (Gujrat Gas, Coal India, Petronet etc…). First I wanted to see whether I can get similar results as of Ahmad (who has historical data, which I do not have to test the results whether philosophy/idea is working in back-testing)

screener.in already has Earnings Yield and EBIT. Just search for them using "Add ratio to table” and/or “Columns”.

Curious to know about results of your back testing.

Hey guys, did you figure this out? How best to rebalance?
I have a more complex setup, I buy a batch of 2 stocks per month, have been doing this since June 2021. As per the formula, this first batch will have to be sold next month. As of today, the first batch is trading at a profit of 35% and I am wondering how best to reallocate the initial capital plus profits. Any practical suggestions?

2 Likes

Hey hi Nikunj,
I reinvest the whole proceeds + new capital into the next batch.
Alternatively, you can choose one of the below
a) Take the profit and invest only the old capital
b) Take the profit and invest the old capital plus add new capital (monthly amount)
c) Invest only new capital, transfer the sale proceeds (profit + old capital) to bank and enjoy it :smiley:

What’s your batch size? In my case, it’s 2 stocks per month. And if I reinvest profit/loss plus capital into the same batch next cycle, I will potentially end up with a non-equal weighted portfolio. For eg,
Batch 1 Jun 2020, 2 stocks, 50k each, as of June 2021 profit 50% i.e. capital + profit = 150000
Batch 2 July 2020, 2 stocks, 50k each, as of Jul 2021 loss 10%, i.e i.e. capital - loss = 90000

Now when I reinvest Batch 1 capital + profit in 2 new stocks in June 2021, each of my stock gets 75k
And, when I reinvest Batch 2 capital - loss in 2 other new stocks in July 2021, each of my stock gets just 45k.

And this contradicts the magic formula where invested capital is supposed to be equal in each stock. I am aware this is due to batch buying instead of single buying, I wonder if others see this as a problem or not?

Regards
Yogi

my batch size is 3 stocks. and whenever there is loss, I top it up and make it equal.

1 Like