Intelligent Investor is a classic investment book written by Benjamin Graham, often considered the father of value investing. Originally published in 1949, the book offers timeless principles for sound investing.

It is one of my most favorite finance books and to summarize key points deserves a single post in itself.

Python (or programming in general) is very popular in the financial industry.

I really like to work on my programming skills on a real-world projects, hence I have built a small script that analyzes stocks based on Benjamin Graham’s criteria (but I also added some other small criterias) for finding undervalued stocks.

You can find the script on my github repo.

This is the most basic version. It only outputs results into console.

Obviously, it’s not like when criterias pass it’s an automatic buy, but it is a good starting point for further analysis.

Graham’s criteria (defensive investor)

  1. Size: Market cap > $2b
  2. Strong financial condition: current ratio > 2; long term debt (long term debt + preferred stocks - deferred tax liabilities) < working capital
  3. Stocks that were once hot and have since gone cold
  4. Earnings stability - positive earnings last 10 years - “some earnings for the common stock in each of the past 10 years”
  5. Dividend record (uninterrupted payments for at least the past 20 years)
  6. Earnings growth: increase by at least 1/3 over 10 years, or even 1/2, or even 1 (double): average earnings first 3 years vs average last 3 (check the change)
  7. Moderate P/E: current price no more than 15 times average earnings over past 3 years
  8. Moderate P/B: price to assets < 1.5
  9. p/e * p/b < 22.5