By Benjamin Graham & David Dodd

Security Analysis β€” Complete Implementation Specification

Based on Benjamin Graham & David Dodd, Security Analysis (6th Edition, 2008)


Table of Contents

  1. Overview
  2. The Concept of Intrinsic Value
  3. The Margin of Safety Principle
  4. The Classification of Securities
  5. Bond Analysis β€” The Foundation
  6. Preferred Stock Analysis
  7. Common Stock Analysis β€” Earnings Power
  8. Income Statement Analysis
  9. Balance Sheet Analysis
  10. Comparative Analysis of Securities
  11. Market Analysis vs. Security Analysis
  12. Stock Selection for the Defensive Investor
  13. Stock Selection for the Enterprising Investor
  14. The Role of Management
  15. Discrepancies Between Price and Value
  16. Common Mistakes in Security Analysis
  17. Complete Analysis Lifecycle Example
  18. Implementation Pseudocode
  19. Key Quotes

1. Overview

Benjamin Graham (1894–1976) is universally acknowledged as the father of security analysis and value investing. A professor at Columbia Business School for nearly three decades and a successful money manager through his firm Graham-Newman Corporation, Graham β€” along with his colleague David Dodd (1895–1988) β€” created the intellectual foundation upon which virtually all serious fundamental investing rests. Their masterwork, Security Analysis, first published in 1934 in the smoking aftermath of the 1929 crash and the Great Depression, is the single most important investment book ever written.

The book emerged from catastrophe. Graham himself had been nearly wiped out in the 1929–1932 market collapse, losing approximately 70% of his assets. That searing experience forged the central preoccupation of the text: how to invest in securities with a rational framework that protects against permanent capital loss. Every concept in Security Analysis β€” intrinsic value, margin of safety, earnings power, the distinction between investment and speculation β€” flows from this foundational concern with safety first, return second.

The 6th edition (2008), published by McGraw-Hill, restores the original 1940 second edition text (which Graham and Dodd considered the most complete expression of their ideas) and adds extensive commentary from modern practitioners including Seth Klarman, Howard Marks, Glenn Greenberg, Bruce Berkowitz, and others. These commentaries demonstrate the remarkable durability of Graham and Dodd's principles across seven decades of market evolution.

1.1 The Book's Enduring Significance

Security Analysis is not merely an investment manual β€” it is a way of thinking about financial assets. Its influence is staggering:

1.2 The Historical Context

The book was conceived and written during the worst economic collapse in modern history. Between September 1929 and July 1932, the Dow Jones Industrial Average fell from 381 to 41 β€” a decline of 89%. Thousands of securities that had been considered safe investments proved worthless. Banks failed by the thousands. The dominant "investment" approach of the 1920s β€” buying stocks because they were going up β€” was exposed as pure speculation.

Graham and Dodd's response was revolutionary in its simplicity: they proposed that securities could be analyzed as businesses, that a security's value could be estimated independently of its market price, and that the difference between price and value β€” the margin of safety β€” was the only reliable foundation for investment decisions. This seems obvious today only because Graham and Dodd made it so.

1.3 The Graham-Dodd Framework at a Glance

Concept Definition
Intrinsic value The value a security would have to a knowledgeable buyer of the entire business
Margin of safety The discount of price below intrinsic value; the investor's protective cushion
Investment An operation which, upon thorough analysis, promises safety of principal and adequate return
Speculation Everything that does not meet the definition of investment
Earnings power The normal earning capacity of a business, adjusted for the business cycle
Coverage ratio The multiple by which earnings exceed fixed charges (interest, preferred dividends)
Net current asset value Current assets minus all liabilities β€” the liquidation floor

2. The Concept of Intrinsic Value

The concept of intrinsic value is the cornerstone upon which the entire edifice of Security Analysis rests. Graham and Dodd define it not as a precise number but as an approximate range β€” the value that the facts of the business justify, independent of the market's current mood.

2.1 What Intrinsic Value Is (and Is Not)

Intrinsic value is NOT:

Intrinsic value IS:

Graham was emphatic that intrinsic value need not be precise to be useful. If a bond analyst determines that a company's earnings cover its interest charges five times over, the analyst need not calculate the exact intrinsic value of the bond to conclude that it is safe. Similarly, if a stock trades at $30 when a conservative analysis suggests intrinsic value of $60–$80, the analyst need not determine whether the "true" value is $65 or $72 β€” the substantial discount is what matters.

2.2 The Three Pillars of Intrinsic Value

Graham and Dodd identify three sources of value, in descending order of reliability:

  1. Asset value β€” What the company owns, net of all obligations. Most reliable because it is based on tangible, verifiable facts. Net current asset value (current assets minus total liabilities) is the most conservative measure.

  2. Earnings power β€” The normalized earning capacity of the business. More important than asset value for going concerns, but less reliable because it requires judgment about sustainable earnings levels.

  3. Growth value β€” The present value of expected future growth in earnings. Least reliable because it depends heavily on forecasts, which are inherently uncertain. Graham warned repeatedly against placing too much weight on growth expectations.

2.3 The Analyst's Hierarchy of Evidence

Most Reliable Evidence
β”‚
β”œβ”€β”€ Tangible assets (cash, receivables, inventory, property)
β”œβ”€β”€ Demonstrated earnings power (5-10 year average)
β”œβ”€β”€ Stable earnings trend (consistency over time)
β”œβ”€β”€ Dividend record (actual cash returned to shareholders)
β”œβ”€β”€ Current earnings level
β”œβ”€β”€ Management quality (difficult to quantify)
β”œβ”€β”€ Growth prospects (inherently uncertain)
β”‚
Least Reliable Evidence

A critical Graham principle: the analyst should place the greatest weight on the most reliable evidence and the least weight on the most speculative factors. This is the exact opposite of what most market participants do β€” they weight growth expectations most heavily because growth is exciting, while ignoring balance sheet strength because it is boring.


3. The Margin of Safety Principle

The margin of safety is Graham's single most important concept β€” the one idea that, if fully understood and consistently applied, protects the investor against serious permanent loss. Graham considered it so essential that he devoted the final chapter of The Intelligent Investor to it, calling it the "central concept of investment."

3.1 Definition and Logic

The margin of safety is the difference between the estimated intrinsic value of a security and its market price. It serves as a cushion against errors in analysis, unforeseen business deterioration, and bad luck.

The logic is straightforward:

3.2 Margin of Safety in Different Security Types

Security Type Margin of Safety Source
Investment-grade bonds Earnings coverage well above interest requirements; asset backing
Preferred stock Same as bonds, but requires higher coverage because of subordination
Common stock (value) Price substantially below estimated intrinsic value (asset or earnings-based)
Common stock (growth) Conservative growth estimates; even if growth disappoints, price still justified
Net-net stocks Price below net current asset value β€” you are buying below liquidation value

3.3 Quantitative Standards

Graham evolved increasingly specific minimum standards over his career:

3.4 The Insurance Analogy

Graham frequently compared the margin of safety to an insurance principle. An insurance company cannot predict which individual policyholder will file a claim, but it can predict with reasonable accuracy the aggregate claims across a large pool. Similarly, the individual security analyst cannot guarantee that any single margin-of-safety purchase will work out, but across a diversified portfolio of such purchases, the aggregate results should be satisfactory. The margin of safety does not guarantee profit on each transaction β€” it guarantees that the odds are in the investor's favor across many transactions.


4. The Classification of Securities

Graham and Dodd propose a functional classification of securities that differs fundamentally from the conventional legal classification. Where the conventional system classifies by type of instrument (bond, preferred stock, common stock), Graham and Dodd classify by the character of the investment:

4.1 Graham's Functional Classification

Group I β€” Securities of Fixed-Value Type

Group II β€” Senior Securities of Variable-Value Type

Group III β€” Common-Stock Type Securities

4.2 The Key Insight

This classification reveals that a speculative bond (one with questionable ability to pay interest) has more in common with a common stock than with a high-grade bond. The legal form of the security matters far less than its investment character. A bond issued by a weak company may be more speculative than common stock issued by a strong company. This insight was revolutionary in 1934 and remains insufficiently appreciated today.

4.3 The Hierarchy of Claims

Priority of Claims in Liquidation (highest to lowest)
β”‚
β”œβ”€β”€ Secured debt (backed by specific assets)
β”œβ”€β”€ Senior unsecured debt
β”œβ”€β”€ Subordinated debt
β”œβ”€β”€ Preferred stock (fixed dividends, no maturity)
β”œβ”€β”€ Common stock (residual claim)
β”‚
In good times: common stock benefits most from upside
In bad times: common stock absorbs losses first

5. Bond Analysis β€” The Foundation

Graham devotes the most methodical portion of Security Analysis to bond analysis, and for good reason: the principles of bond safety are the foundation upon which all other security analysis is built. If you understand how to determine whether a bond is safe, you understand the basic framework for evaluating any security.

5.1 The Four Pillars of Bond Safety

Pillar 1: Character of the Enterprise

Pillar 2: Specific Contractual Terms

Pillar 3: Earnings Coverage β€” The Dominant Factor

Pillar 4: Asset Coverage

5.2 Minimum Coverage Standards

Graham established specific quantitative minimum standards for investment-grade bonds. These standards represent the floor, not the ceiling β€” bonds meeting them deserve consideration, those failing them should be avoided regardless of yield:

Test Industrial Utility Railroad
Times interest earned (7-yr avg) 5x 4x 4x
Times interest earned (worst year) 3x 2.5x 2.5x
Debt as % of total capital < 50% < 60% < 60%
Stock equity as % of total debt > 100% > 75% > 75%

The coverage ratio is calculated using the "overall" or "cumulative deduction" method:

Times Interest Earned = (Earnings Before Interest and Taxes) / (Total Interest Charges)

Graham insists on the overall method (total earnings vs. total interest) rather than the "prior deductions" method (applying earnings to each layer of debt separately), because the overall method reveals the true cushion protecting all bondholders collectively.

5.3 The Depression Standard

Graham introduced what might be called the "depression standard" β€” any bond being considered for investment must demonstrate adequate coverage not merely under normal conditions but under the worst conditions experienced during the prior business cycle. A bond that meets coverage requirements during prosperity but fails them during recession is not investment-grade, regardless of its current rating.

This principle generalizes: security analysis must always consider adverse conditions, not just current conditions. Investing for the best case is speculation; investing with a cushion for the worst case is genuine investment.

5.4 Warning Signs in Bond Analysis


6. Preferred Stock Analysis

Graham's treatment of preferred stock is distinctly skeptical. He views preferred stock as occupying an uncomfortable middle ground β€” it bears the risk of equity (dividends can be omitted, no maturity date) with the limited upside of debt (fixed dividend, no participation in growth). This combination makes preferred stock an inherently inferior security type in most cases.

6.1 The Fundamental Problem

Preferred stock lacks the two features that make bonds tolerable for conservative investors:

  1. No legally enforceable right to dividends β€” unlike bond interest, preferred dividends can be suspended without triggering default
  2. No maturity date β€” there is no contractual obligation to return principal

As Graham writes, the preferred stockholder "has no enforceable claim for dividends, no right to get his principal back, and no voice in management." The only advantage over common stockholders is priority β€” preferred gets paid before common, but after all debt holders.

6.2 When Preferred Stock Is Acceptable

Given these disadvantages, Graham insists that preferred stock must meet even higher safety standards than bonds of the same issuer:

The only preferred stocks suitable for conservative investment are those issued by companies so strong that they could easily have issued bonds instead. Ironically, the best preferred stocks are those that need not exist β€” they are issued by companies that could have raised debt capital on better terms.

6.3 Participating and Convertible Preferreds

Graham views these more favorably because they add an element of upside potential to the fixed-income framework. A convertible preferred issued by a fundamentally sound company at a reasonable conversion ratio can offer bond-like safety with equity-like upside β€” the best of both worlds. However, investors should verify that:


7. Common Stock Analysis β€” Earnings Power

The analysis of common stocks is fundamentally different from bond analysis. For bonds, the question is binary: will the issuer make all promised payments? For common stocks, the question is continuous: what is the enterprise worth, and does the current price represent a bargain relative to that worth?

7.1 Earnings Power β€” The Central Concept

Graham defines "earnings power" as the normal earning capacity of the business β€” what it would earn under mid-cycle business conditions, sustained indefinitely. This is distinct from:

Earnings power is an idealized concept β€” a smoothed, normalized representation of what the business can reliably produce. It is the most important single factor in common stock valuation, though not the only one.

7.2 Valuation Based on Earnings Power

Graham's basic valuation formula:

Intrinsic Value = Earnings Power Γ— Appropriate Capitalization Rate

The "capitalization rate" is essentially the inverse of the P/E ratio. Graham suggests the following framework for determining appropriate multiples:

Business Quality Suggested P/E Range Notes
Exceptional β€” dominant franchise, high growth 15–20x Rarely exceeds 20x in Graham's framework
Above average β€” strong position, moderate growth 12–15x Most good businesses fall here
Average β€” stable but unexceptional 8–12x The broad market average historically
Below average β€” cyclical, competitive, declining 5–8x Discount reflects higher risk
Speculative β€” highly uncertain < 5x or N/A Cannot be reliably valued on earnings

Graham was deeply skeptical of assigning high capitalization rates (high P/E multiples). A P/E above 20 implies that the market is placing substantial value on growth β€” and growth estimates are the least reliable component of value.

7.3 Asset Value vs. Earnings Power

Graham identifies two independent measures of intrinsic value:

When both measures point in the same direction, the analyst can have greater confidence. When they diverge, the analyst must exercise judgment:

7.4 The Role of Dividends

Graham gives dividends substantial weight in common stock valuation β€” a position that distinguishes him from many modern value investors. His reasoning:

  1. Dividends are the only tangible return most stockholders receive. Earnings retained by the company only benefit the stockholder if they are eventually reflected in dividends or a higher stock price.
  2. A dollar of dividends is worth more than a dollar of retained earnings because the dividend is certain (once declared) while the reinvestment return is speculative.
  3. Dividend policy is a signal of management's confidence and shareholder orientation. Companies with long, unbroken dividend records tend to be well-managed and financially strong.
  4. Dividend yield provides a floor for valuation. A stock paying a 5% dividend from well-covered earnings has fundamental support independent of market mood.

Graham's dividend test: a company should distribute at least two-thirds of its earnings as dividends unless it can demonstrate that retained earnings are being reinvested at a high rate of return. If the company earns 8% on equity but retains most of its earnings, shareholders would be better off receiving dividends and investing them elsewhere.


8. Income Statement Analysis

The income statement is the security analyst's primary raw material for assessing earnings power. Graham and Dodd devote extensive attention to the accounting adjustments necessary to transform the reported income statement into a useful analytical tool.

8.1 Normalizing Earnings β€” The Essential Task

Reported earnings in any single year are almost never an accurate representation of earning power. They are distorted by:

The analyst's primary task is to "normalize" earnings β€” to strip away distortions and arrive at a figure representing sustainable earning capacity. This requires a minimum of five years of data and ideally seven to ten.

8.2 Specific Adjustments

Non-recurring items: Any income or expense that is unlikely to recur should be excluded from normalized earnings. Common examples:

Depreciation and amortization: Graham insists that depreciation is a real economic cost, not merely an accounting convention. Reported depreciation should be compared to actual maintenance capital expenditures. If the company spends significantly more on capex than it reports in depreciation, reported earnings overstate true earnings. If the company's assets are aging and capex is deferred, future expenses are being pushed forward.

Maintenance CapEx Test:
  If CapEx >> Depreciation consistently β†’ assets are growing (good or neutral)
  If CapEx β‰ˆ Depreciation β†’ assets are maintained (neutral)
  If CapEx << Depreciation β†’ assets are deteriorating (earnings may be overstated)

Owner Earnings = Net Income + Depreciation/Amortization - Maintenance CapEx

Inventory accounting: The choice between FIFO and LIFO can materially affect reported earnings, especially during periods of inflation:

Stock-based compensation: Treat as a real expense. Companies that exclude stock-based compensation from "adjusted" earnings are overstating their true profitability. Graham would view this practice with great suspicion.

8.3 The Earnings Record as a Whole

Graham emphasizes examining the entire earnings record over a full business cycle, not just the latest year or the trend. Key questions:

A company earning $5 per share on average over ten years, with a range of $3 to $7, has more reliable earning power than a company earning $5 on average with a range of $0 to $12 β€” even though the average is identical.

8.4 Red Flags in the Income Statement


9. Balance Sheet Analysis

If the income statement reveals what a business earns, the balance sheet reveals what it owns and owes. Graham and Dodd view the balance sheet as the bedrock of security analysis β€” less glamorous than earnings analysis but more reliable, because assets and liabilities are verifiable in ways that earnings projections never can be.

9.1 Current Asset Value β€” The Liquidation Floor

Graham's most distinctive contribution to balance sheet analysis is the concept of net current asset value (NCAV), sometimes called "net-net working capital":

Net Current Asset Value = Current Assets - Total Liabilities (including preferred stock)

Note that this formula deducts ALL liabilities β€” not just current liabilities β€” from current assets. It ignores fixed assets entirely, assigning them a value of zero. The resulting figure represents the minimum liquidation value of the business under the most conservative assumptions.

If a stock trades below its net current asset value per share, the buyer is getting:

Graham considered stocks trading below 2/3 of NCAV to be the most statistically reliable bargain category β€” and decades of academic research have confirmed that net-net portfolios generate superior returns.

9.2 Adjustments to Book Value

Reported book values rarely reflect economic reality. The analyst must make several adjustments:

Upward adjustments (hidden assets):

Downward adjustments (hidden liabilities):

9.3 Net-Net Working Capital in Practice

Graham's net-net calculation, step by step:

Step 1: Start with total current assets
  Cash and equivalents           $100M
  Short-term investments          $20M
  Accounts receivable             $80M
  Inventory                       $60M
  Other current assets            $10M
  ─────────────────────────────────────
  Total current assets           $270M

Step 2: Apply Graham's discount factors (conservative variant)
  Cash and equivalents      Γ— 100% = $100M
  Accounts receivable       Γ—  80% =  $64M
  Inventory                 Γ—  67% =  $40M
  Other current assets      Γ—  50% =   $5M
  ─────────────────────────────────────
  Adjusted current assets          $209M

Step 3: Subtract ALL liabilities
  Total current liabilities        $90M
  Long-term debt                   $50M
  Other long-term liabilities      $10M
  ─────────────────────────────────────
  Total liabilities               $150M

Step 4: Calculate NCAV
  NCAV = $209M - $150M = $59M

Step 5: Calculate NCAV per share
  Shares outstanding: 10M
  NCAV per share = $5.90

Step 6: Apply Graham's 2/3 discount
  Maximum purchase price = $5.90 Γ— 0.67 = $3.95

If the stock trades at $3.95 or below, it qualifies as a Graham net-net.

9.4 The Balance Sheet as a Safety Check

Even for stocks being evaluated primarily on earnings power, Graham insists on a balance sheet safety check:

A company with excellent earnings but a dangerously leveraged balance sheet is not a conservative investment β€” it is a speculation on the continuation of favorable conditions.


10. Comparative Analysis of Securities

Graham devotes considerable attention to the practice of comparing similar securities to identify relative value β€” what modern practitioners call "relative valuation" or "comps analysis." However, his approach is more rigorous than the superficial comparisons common in Wall Street research.

10.1 The Principle of Substitution

If two securities offer essentially the same risk-return characteristics, the rational investor should prefer the cheaper one. This obvious principle becomes powerful when applied systematically across an industry or asset class.

10.2 Comparing Bonds

When comparing bonds of similar quality:

10.3 Comparing Common Stocks

When comparing stocks in the same industry:

Metric What It Reveals
P/E ratio Relative earnings valuation
P/B ratio Relative asset valuation
Dividend yield Relative income return
Earnings stability Relative predictability
Debt levels Relative financial risk
Return on equity Relative profitability
Earnings trend Relative momentum
Insider ownership Management alignment

The analyst should look for situations where one stock is clearly cheaper than its peer on multiple metrics simultaneously, without obvious reasons for the discount. Such situations often arise when a company is temporarily out of favor due to a short-term problem that does not impair long-term value.

10.4 The Importance of Quantitative Comparison

Graham warns against qualitative arguments that justify paying more for one company versus another ("Company A has better management" or "Company B has superior technology"). While such factors are real, the analyst must ask: is the qualitative superiority already reflected in the price? A company with modestly superior prospects trading at twice the P/E of its competitor offers no bargain β€” the premium exceeds the advantage.


11. Market Analysis vs. Security Analysis

One of Graham's most important distinctions β€” and one of the most frequently misunderstood β€” is the sharp line he draws between security analysis and market analysis.

11.1 The Distinction Defined

Security analysis determines what a security is worth based on the underlying business facts. It is bottom-up, fact-based, and independent of market conditions.

Market analysis attempts to predict future price movements based on market data β€” price patterns, volume, sentiment, economic indicators. It is inherently speculative because it depends on forecasting the behavior of other market participants.

Graham does not claim that market analysis is impossible β€” only that it is unreliable and fundamentally different in character from security analysis. An investor who buys a stock because it is cheap relative to its intrinsic value is engaging in security analysis. An investor who buys a stock because the market is "due for a rally" is engaging in market analysis.

11.2 Investment vs. Speculation

Graham's famous definition:

"An investment operation is one which, upon thorough analysis, promises safety of principal and an adequate return. Operations not meeting these requirements are speculative."

Three conditions must ALL be met for an operation to qualify as investment:

  1. Thorough analysis β€” not a tip, not a hunch, not a trend
  2. Safety of principal β€” reasonable protection against permanent loss
  3. Adequate return β€” reasonable expectation of satisfactory (not spectacular) returns

Everything else is speculation. Graham does not condemn speculation β€” he acknowledges that it is a legitimate activity. But he insists that the speculator must recognize what he is doing, limit his speculative capital, and never confuse speculation with investment.

11.3 Mr. Market

Graham's famous allegory (more fully developed in The Intelligent Investor but rooted in Security Analysis):

Imagine that you own a share of a private business alongside a partner named Mr. Market. Every day, Mr. Market offers to buy your share or sell you his at a quoted price. Sometimes his price is reasonable relative to the business value; often it is absurdly high or absurdly low. Mr. Market does not mind being ignored β€” he will return tomorrow with a new price.

The key insight: Mr. Market exists to serve the investor, not to guide him. The investor should take advantage of Mr. Market's occasional foolishness (buying when prices are irrationally low, selling when they are irrationally high) and ignore him the rest of the time. The investor who allows Mr. Market to determine his opinion of value has abandoned analysis for speculation.


12. Stock Selection for the Defensive Investor

Graham distinguishes between two types of investors β€” not by wealth or sophistication, but by willingness to devote time and effort to investment analysis. The "defensive" (or "passive") investor seeks safety and freedom from bother; the "enterprising" (or "aggressive") investor is willing to devote time and effort to selection.

12.1 Criteria for Defensive Stock Selection

Graham's specific requirements for the defensive investor:

  1. Adequate size: The company should be among the larger in its industry. Small companies are subject to greater volatility and have less margin for error. (In modern terms: market cap above $2–5 billion.)

  2. Strong financial condition: Current ratio at least 2:1 for industrials. Long-term debt should not exceed net current assets (working capital).

  3. Earnings stability: Positive earnings in each of the past ten years. No exceptions.

  4. Dividend record: Uninterrupted dividend payments for at least 20 years.

  5. Earnings growth: A minimum increase of at least one-third in per-share earnings over the past ten years, using three-year averages at the beginning and end.

  6. Moderate P/E ratio: Current price should not exceed 15 times average earnings of the past three years.

  7. Moderate price-to-assets ratio: Current price should not exceed 1.5 times the most recently reported book value. However, a P/E below 15 could justify a correspondingly higher price-to-book ratio. As a rule of thumb: the product of the P/E and the P/B should not exceed 22.5.

Graham's Defensive Valuation Formula:
  P/E Γ— P/B ≀ 22.5

  Equivalently: Maximum Price = √(22.5 Γ— EPS Γ— BVPS)

  Example: EPS = $3.00, Book Value = $20.00
  Maximum Price = √(22.5 Γ— 3.00 Γ— 20.00) = √1,350 = $36.74

12.2 The Rationale for Each Criterion

Each criterion serves a specific protective function:

12.3 Diversification for the Defensive Investor

Graham recommends a portfolio of 10 to 30 stocks meeting the above criteria, spread across different industries. The defensive investor should rebalance periodically (annually or semi-annually) and replace any holding that no longer meets the criteria.


13. Stock Selection for the Enterprising Investor

The enterprising investor, willing to devote significant time and effort, can pursue opportunities unavailable to the passive investor. Graham identifies several categories of attractive situations.

13.1 Bargain Issues β€” The Primary Category

A bargain issue is a common stock that appears to be worth substantially more than its current price, based on thorough analysis. Graham identifies two primary tests:

Test 1: Earnings-based bargains

Test 2: Asset-based bargains (net-nets)

13.2 Net-Net Stocks β€” The Statistical Bargains

The net-net approach is Graham's most mechanical and historically most reliable strategy. The principle: buy a diversified portfolio of stocks trading below 2/3 of net current asset value, and hold until they appreciate to NCAV or until a reasonable time period (2–3 years) has passed.

Why it works:

Graham reported that his firm's net-net portfolio earned approximately 20% per year over a 30-year period β€” a remarkable record.

13.3 Special Situations

Graham also identifies "special situations" as opportunities for the enterprising investor:

These situations require specialized knowledge and careful analysis of the specific transaction, but they can offer returns that are substantially independent of general market conditions.

13.4 Workouts and Hedges

Graham was an early practitioner of what would now be called "event-driven" investing. His firm regularly engaged in:

These strategies offered returns uncorrelated with the market β€” a form of diversification at the strategy level.


14. The Role of Management

Graham acknowledges that management quality is an important factor in security analysis, but he warns against placing too much weight on it β€” for a surprising and counterintuitive reason.

14.1 Graham's Skepticism

Management quality is difficult to evaluate objectively. Most investors who claim to assess management quality are actually observing the results of a good or bad business (which any competent person could run) and attributing them to management genius or incompetence.

Furthermore, management quality is typically already reflected in the stock price. When a company has a visionary CEO, the market usually knows and has bid the stock up accordingly. The investor who pays a premium for "great management" gets no bargain β€” they pay for what they get.

14.2 What the Analyst Can Observe

Rather than subjective assessments of management charisma or vision, Graham directs the analyst to observable, quantitative indicators:

14.3 Management as a Negative Indicator

Graham suggests that management quality is more useful as a negative screen than a positive one. It is very difficult to identify superior managers in advance, but it is relatively easy to identify management practices that destroy shareholder value:


15. Discrepancies Between Price and Value

The exploitation of discrepancies between market price and intrinsic value is the central activity of value investing. Graham identifies the principal sources of such discrepancies and the mechanisms by which they are eventually resolved.

15.1 Why Discrepancies Arise

Exaggerated reaction to short-term developments: The market tends to overweight recent events β€” a bad quarter, a management change, a regulatory action β€” and extrapolate them indefinitely. A company that reports one poor quarter may see its stock decline as if the poor results will continue forever.

Neglect and obscurity: Small companies, recently listed companies, and companies in boring industries may be overlooked by analysts and institutional investors. With fewer eyes watching, prices are more likely to deviate from value.

General market decline: During bear markets, all stocks decline, including those of excellent companies with strong balance sheets and stable earnings. The best bargains are created when fundamentally sound businesses are dragged down by market-wide panic.

Industry disfavor: Entire sectors fall out of favor periodically, creating opportunities to buy good companies at unreasonable prices simply because they are classified in the wrong industry group.

Complex capital structures: Companies with complicated financial structures (multiple classes of stock, convertible securities, warrants) are harder to analyze and more likely to be mispriced.

15.2 The Correction Mechanisms

Graham identifies several forces that tend to close the gap between price and value:

15.3 The Time Dimension

Graham acknowledges that the market can remain irrational for extended periods. The investor must have:


16. Common Mistakes in Security Analysis

Throughout Security Analysis, Graham identifies errors that even careful analysts make. These mistakes fall into recognizable patterns.

16.1 Overpaying for Growth

The single most common and costly mistake in security analysis is overpaying for expected growth. Growth is the most exciting but least predictable component of value. Companies expected to grow rapidly command high P/E multiples β€” but if growth fails to materialize, the double compression of declining earnings AND declining multiples is devastating.

Graham's rule: never pay more than 20x earnings for any stock, regardless of growth expectations. If the growth materializes, you will do well buying at 20x. If it does not, you have limited your downside.

16.2 Ignoring the Balance Sheet

Modern analysts frequently value companies solely on earnings multiples, ignoring the balance sheet entirely. This can lead to catastrophic errors when the company is overleveraged and earnings are cyclically inflated.

16.3 Confusing Temporary and Permanent Earnings

A company reporting record earnings due to a cyclical peak in its industry, a one-time gain, or an accounting change does not have higher earning power β€” it has temporarily elevated earnings that will revert. The analyst who capitalizes peak earnings at a normal multiple will overvalue the stock.

16.4 Relying on Management Projections

Management has every incentive to present an optimistic picture. Forward guidance, non-GAAP earnings, and "adjusted" metrics frequently overstate economic reality. The analyst should rely on verified historical data and make independent projections.

16.5 Anchoring to Current Price

The analyst who begins with the current stock price and then constructs a justification for it is working backward. The correct approach is to estimate intrinsic value independently and only then compare to the price.

16.6 Ignoring Capital Structure

Two companies with identical earnings are not equivalently valued if one is financed entirely with equity and the other is loaded with debt. The leveraged company's earnings are riskier and should be capitalized at a lower multiple (higher discount rate).

16.7 Failing to Distinguish Between Price and Value

Perhaps Graham's most profound observation: most market participants do not distinguish between a stock's price and its value. They believe that because a stock has declined, it has become riskier (when in fact it may have become safer). They believe that because a stock has risen, it has become safer (when in fact it may have become more dangerous). This confusion is the ultimate source of opportunity for the value investor.


17. Complete Analysis Lifecycle Example

The following example demonstrates Graham-Dodd analysis applied to a hypothetical industrial company, "Acme Manufacturing Corp."

17.1 Initial Screening

Acme Manufacturing Corp. β€” Initial Screen
─────────────────────────────────────────
Market Price:               $28.00
Shares Outstanding:         10 million
Market Capitalization:      $280 million
Industry:                   Industrial Manufacturing
─────────────────────────────────────────

Screening Criteria Check:
  βœ“ Market cap > $200M (adequate size)
  βœ“ Current ratio: 2.4 (> 2.0)
  βœ“ Long-term debt $40M < working capital $95M
  βœ“ Positive earnings all 10 years
  βœ“ Dividends paid continuously for 22 years
  βœ“ Earnings growth: 3-yr avg EPS now $3.50 vs $2.40 ten years ago (+46%)
  βœ“ P/E on 3-yr avg earnings: 28/3.50 = 8.0x (< 15)
  βœ“ P/B: 28/24 = 1.17 (< 1.5)
  βœ“ P/E Γ— P/B = 8.0 Γ— 1.17 = 9.36 (< 22.5)

  β†’ PASSES all defensive criteria. Proceed to detailed analysis.

17.2 Income Statement Analysis (Normalizing Earnings)

Acme Manufacturing β€” 10-Year Earnings Record
─────────────────────────────────────────────
Year    Revenue($M)  Reported EPS  Adjustments   Normalized EPS
─────────────────────────────────────────────
2016      $320         $2.20        β€”              $2.20
2017      $345         $2.60        β€”              $2.60
2018      $360         $2.80        β€”              $2.80
2019      $310         $1.90       +$0.30 restr.   $2.20
2020      $280         $1.50       +$0.40 COVID    $1.90
2021      $350         $3.00       βˆ’$0.20 PPP      $2.80
2022      $390         $3.80       βˆ’$0.50 one-time $3.30
2023      $400         $3.60        β€”              $3.60
2024      $410         $3.70        β€”              $3.70
2025      $395         $3.20       +$0.30 restr.   $3.50
─────────────────────────────────────────────
10-Year Average Normalized EPS:                    $2.86
Recent 3-Year Average Normalized EPS:              $3.27
Worst Year Normalized EPS:                         $1.90
Best Year Normalized EPS:                          $3.70
Earnings Stability: Good (worst year = 66% of avg)

17.3 Balance Sheet Analysis

Acme Manufacturing β€” Balance Sheet Summary
──────────────────────────────────────────
ASSETS
  Cash and equivalents            $45M
  Accounts receivable             $65M
  Inventory                       $50M
  Other current assets            $10M
  ────────────────────────────────────
  Total Current Assets           $170M

  Net PP&E                       $120M
  Other long-term assets          $30M
  Goodwill                        $20M
  ────────────────────────────────────
  Total Assets                   $340M

LIABILITIES
  Accounts payable                $35M
  Other current liabilities       $40M
  ────────────────────────────────────
  Total Current Liabilities       $75M
  Long-term debt                  $40M
  Other long-term liabilities     $15M
  ────────────────────────────────────
  Total Liabilities              $130M

EQUITY
  Book Value                     $210M
  Book Value per Share            $21.00 (adjusted ex-goodwill: $19.00)

KEY RATIOS
  Current ratio:                  2.27
  Debt/Equity:                    0.19
  NCAV: $170M βˆ’ $130M =          $40M ($4.00/share)
  Working Capital:                $95M

17.4 Intrinsic Value Estimation

Method 1: Earnings Power Value
  Normalized EPS (10-yr avg):     $2.86
  Conservative multiple (10x):    $28.60
  Moderate multiple (12x):        $34.32
  Range:                          $28.60 β€” $34.32

Method 2: Graham's Defensive Formula
  √(22.5 Γ— $3.27 Γ— $21.00) = √($1,548) = $39.35

Method 3: Asset-Based Value
  Adjusted Book Value:            $19.00 (ex-goodwill)
  With hidden assets (real estate
  carried below market value):    ~$23.00

Method 4: Net Current Asset Value
  NCAV per share:                 $4.00 (floor; stock trades well above)

INTRINSIC VALUE RANGE:            $29 β€” $39
CURRENT PRICE:                    $28.00
MARGIN OF SAFETY:                 3% β€” 28%

17.5 Investment Decision

CONCLUSION:
  Intrinsic value range:  $29 β€” $39
  Current price:          $28.00
  Margin of safety:       Modest at low end, significant at high end
  Dividend yield:         4.3% ($1.20 annual dividend / $28)
  Earnings stability:     Good
  Balance sheet:          Strong

  RECOMMENDATION: ACCEPTABLE for the defensive investor.
  The stock meets all quantitative criteria. The margin of safety is adequate
  when measured against the full intrinsic value range. The strong dividend
  yield provides tangible return while waiting for appreciation. The balance
  sheet provides downside protection.

  An enterprising investor might wait for a price closer to $24–25
  (representing a clearer margin of safety) unless qualitative factors
  support the higher end of the intrinsic value range.

  POSITION SIZE: Standard (3–5% of portfolio), given adequate but not
  exceptional margin of safety.

  REVIEW TRIGGER: Re-evaluate if price exceeds $35 (potential sale),
  if earnings deteriorate below $2.00/share (potential red flag), or
  if debt increases significantly.

18. Implementation Pseudocode

18.1 Graham Bond Screener

FUNCTION graham_bond_screen(universe):
    """
    Screens bonds using Graham's minimum safety standards.
    Returns bonds meeting all investment-grade criteria.
    """
    qualified = []

    FOR EACH bond IN universe:
        issuer = bond.issuer
        sector = classify_sector(issuer)  // industrial, utility, railroad/transport

        // Criterion 1: Size and prominence
        IF issuer.total_assets < MINIMUM_SIZE_THRESHOLD:
            CONTINUE

        // Criterion 2: Earnings coverage (7-year average)
        earnings_7yr = issuer.get_ebit(years=7)
        interest_charges = issuer.get_total_interest_charges(years=7)
        avg_coverage = MEAN(earnings_7yr[i] / interest_charges[i] FOR i IN range(7))

        IF sector == "industrial" AND avg_coverage < 5.0:
            CONTINUE
        ELIF sector == "utility" AND avg_coverage < 4.0:
            CONTINUE
        ELIF sector == "transport" AND avg_coverage < 4.0:
            CONTINUE

        // Criterion 3: Worst-year coverage
        worst_coverage = MIN(earnings_7yr[i] / interest_charges[i] FOR i IN range(7))

        IF sector == "industrial" AND worst_coverage < 3.0:
            CONTINUE
        ELIF sector == "utility" AND worst_coverage < 2.5:
            CONTINUE
        ELIF sector == "transport" AND worst_coverage < 2.5:
            CONTINUE

        // Criterion 4: Debt as percentage of total capital
        debt_ratio = issuer.total_debt / issuer.total_capital
        IF sector == "industrial" AND debt_ratio > 0.50:
            CONTINUE
        ELIF sector IN ["utility", "transport"] AND debt_ratio > 0.60:
            CONTINUE

        // Criterion 5: Asset coverage
        equity_to_debt = issuer.stockholders_equity / issuer.total_debt
        IF sector == "industrial" AND equity_to_debt < 1.0:
            CONTINUE
        ELIF sector IN ["utility", "transport"] AND equity_to_debt < 0.75:
            CONTINUE

        // Criterion 6: Earnings stability
        IF ANY(year < 0 FOR year IN earnings_7yr):
            CONTINUE  // No loss years permitted

        // Criterion 7: Earnings trend (not declining)
        recent_avg = MEAN(earnings_7yr[-3:])
        earlier_avg = MEAN(earnings_7yr[:3])
        IF recent_avg < earlier_avg * 0.80:
            CONTINUE  // Declining earnings trend

        // All criteria passed
        qualified.APPEND({
            bond: bond,
            avg_coverage: avg_coverage,
            worst_coverage: worst_coverage,
            debt_ratio: debt_ratio,
            equity_to_debt: equity_to_debt,
            yield: bond.yield_to_maturity,
            safety_score: compute_safety_score(avg_coverage, worst_coverage,
                                               debt_ratio, equity_to_debt)
        })

    // Sort by safety score (highest first), then yield (highest first)
    RETURN SORT(qualified, key=(-safety_score, -yield))

18.2 Net-Net Screener

FUNCTION graham_net_net_screen(universe):
    """
    Identifies stocks trading below 2/3 of Net Current Asset Value.
    The purest expression of Graham's quantitative value investing.
    """
    net_nets = []

    FOR EACH stock IN universe:
        company = stock.company

        // Step 1: Calculate Net Current Asset Value
        current_assets = company.total_current_assets
        total_liabilities = company.total_liabilities
        preferred_stock = company.preferred_stock_value

        ncav = current_assets - total_liabilities - preferred_stock

        // Skip if NCAV is negative
        IF ncav <= 0:
            CONTINUE

        ncav_per_share = ncav / company.shares_outstanding
        price = stock.current_price

        // Step 2: Apply the 2/3 rule
        IF price > ncav_per_share * 0.667:
            CONTINUE  // Not cheap enough

        // Step 3: Apply Graham's conservative discount factors
        cash = company.cash_and_equivalents * 1.00
        receivables = company.accounts_receivable * 0.80
        inventory = company.inventory * 0.667
        other_current = company.other_current_assets * 0.50

        conservative_ncav = (cash + receivables + inventory + other_current
                            - total_liabilities - preferred_stock)
        conservative_ncav_per_share = conservative_ncav / company.shares_outstanding

        // Step 4: Quality filters (avoid value traps)
        // Filter: Not burning cash too rapidly
        IF company.operating_cash_flow < -ncav * 0.25:
            FLAG_WARNING("Rapid cash burn β€” NCAV may erode quickly")

        // Filter: Not in active bankruptcy proceedings
        IF company.is_in_bankruptcy:
            CONTINUE

        // Filter: Some positive earnings history
        years_profitable = COUNT(year FOR year IN company.eps_history(10)
                                IF year > 0)

        // Filter: Insider ownership (alignment check)
        insider_pct = company.insider_ownership_percent

        net_nets.APPEND({
            ticker: stock.ticker,
            price: price,
            ncav_per_share: ncav_per_share,
            conservative_ncav_per_share: conservative_ncav_per_share,
            discount_to_ncav: 1 - (price / ncav_per_share),
            discount_to_conservative: 1 - (price / conservative_ncav_per_share),
            years_profitable: years_profitable,
            insider_ownership: insider_pct,
            market_cap: stock.market_cap,
            current_ratio: company.current_ratio,
            has_dividends: company.dividend_yield > 0,
            cash_burn_warning: company.operating_cash_flow < -ncav * 0.25
        })

    // Sort by discount to NCAV (deepest discount first)
    RETURN SORT(net_nets, key=(-discount_to_ncav))

18.3 Earnings Power Calculator

FUNCTION calculate_earnings_power(company, years=10):
    """
    Normalizes earnings to estimate sustainable earning capacity.
    Returns earnings power value and intrinsic value range.
    """
    // Step 1: Gather raw earnings data
    reported_eps = company.get_eps_history(years)
    revenue = company.get_revenue_history(years)

    // Step 2: Identify and adjust non-recurring items
    normalized_eps = []
    FOR EACH year IN range(years):
        eps = reported_eps[year]
        adjustments = 0

        // Remove non-recurring gains
        nonrecurring_gains = company.get_nonrecurring_gains(year)
        adjustments -= nonrecurring_gains / company.shares_outstanding

        // Remove non-recurring charges
        nonrecurring_charges = company.get_nonrecurring_charges(year)
        adjustments += nonrecurring_charges / company.shares_outstanding

        // Adjust for excess depreciation or deferred maintenance
        depreciation = company.get_depreciation(year)
        maintenance_capex = company.estimate_maintenance_capex(year)
        capex_adjustment = (depreciation - maintenance_capex) / company.shares_outstanding
        adjustments += capex_adjustment * (1 - company.tax_rate)

        // Adjust for stock-based compensation if excluded from reported
        IF NOT company.includes_sbc_in_reported:
            sbc = company.get_stock_compensation(year)
            adjustments -= sbc / company.shares_outstanding

        normalized_eps.APPEND(eps + adjustments)

    // Step 3: Calculate earnings power metrics
    avg_eps = MEAN(normalized_eps)
    median_eps = MEDIAN(normalized_eps)
    recent_avg = MEAN(normalized_eps[-3:])
    worst_eps = MIN(normalized_eps)
    best_eps = MAX(normalized_eps)
    std_dev = STANDARD_DEVIATION(normalized_eps)
    coefficient_of_variation = std_dev / avg_eps

    // Step 4: Determine appropriate earnings power figure
    // Use the lower of average and recent if earnings are declining
    // Use recent if there is a clear secular uptrend
    IF recent_avg > avg_eps * 1.20 AND is_consistent_uptrend(normalized_eps):
        earnings_power = recent_avg * 0.90  // Discount slightly for conservatism
    ELIF recent_avg < avg_eps * 0.80:
        earnings_power = recent_avg  // Earnings may be declining
    ELSE:
        earnings_power = avg_eps  // Use long-term average

    // Step 5: Determine appropriate capitalization rate (P/E multiple)
    base_multiple = 10.0  // Starting point for average business

    // Adjust for earnings stability
    IF coefficient_of_variation < 0.15:
        base_multiple += 2.0  // Very stable earnings
    ELIF coefficient_of_variation > 0.40:
        base_multiple -= 2.0  // Very volatile earnings

    // Adjust for financial strength
    IF company.debt_to_equity < 0.30:
        base_multiple += 1.0  // Strong balance sheet
    ELIF company.debt_to_equity > 1.00:
        base_multiple -= 2.0  // Leveraged

    // Adjust for growth (conservative)
    growth_rate = calculate_growth_rate(normalized_eps)
    IF growth_rate > 0.05 AND growth_rate < 0.15:
        base_multiple += MIN(growth_rate * 20, 3.0)  // Cap growth premium
    ELIF growth_rate < 0:
        base_multiple -= 2.0  // Declining earnings penalized

    // Cap the multiple (Graham's conservatism)
    capitalization_rate = MIN(base_multiple, 20.0)

    // Step 6: Calculate intrinsic value range
    conservative_value = earnings_power * (capitalization_rate - 2)
    base_value = earnings_power * capitalization_rate
    optimistic_value = earnings_power * (capitalization_rate + 2)

    // Step 7: Cross-check with asset value
    book_value = company.tangible_book_value_per_share
    ncav = company.net_current_asset_value_per_share

    // Step 8: Apply Graham's defensive formula
    graham_formula_value = SQRT(22.5 * recent_avg * book_value)

    RETURN {
        normalized_eps: normalized_eps,
        earnings_power: earnings_power,
        capitalization_rate: capitalization_rate,
        intrinsic_value_range: (conservative_value, base_value, optimistic_value),
        graham_formula_value: graham_formula_value,
        book_value: book_value,
        ncav_per_share: ncav,
        earnings_stability: coefficient_of_variation,
        growth_rate: growth_rate,
        worst_year_eps: worst_eps,
        analysis_notes: generate_notes(company, normalized_eps, capitalization_rate)
    }

18.4 Margin of Safety Monitor

FUNCTION margin_of_safety_monitor(portfolio, market_data):
    """
    Continuously monitors portfolio positions for margin of safety.
    Generates alerts when positions approach or exceed fair value,
    and identifies new opportunities when margins widen.
    """
    alerts = []

    FOR EACH position IN portfolio:
        stock = position.stock
        current_price = market_data.get_price(stock.ticker)

        // Recalculate intrinsic value (quarterly refresh of fundamentals)
        IF needs_fundamental_refresh(position):
            ep = calculate_earnings_power(stock.company)
            position.intrinsic_value = ep.intrinsic_value_range
            position.graham_value = ep.graham_formula_value
            position.ncav = ep.ncav_per_share
            position.last_refresh = TODAY

        // Calculate current margins
        iv_low, iv_mid, iv_high = position.intrinsic_value
        margin_to_mid = (iv_mid - current_price) / iv_mid
        margin_to_low = (iv_low - current_price) / iv_low

        // Zone classification
        IF current_price < iv_low * 0.67:
            zone = "DEEP_VALUE"       // Exceptional margin of safety
        ELIF current_price < iv_low:
            zone = "UNDERVALUED"      // Adequate margin of safety
        ELIF current_price < iv_mid:
            zone = "FAIR_LOW"         // Modest margin, hold
        ELIF current_price < iv_high:
            zone = "FAIR_HIGH"        // No margin, consider trimming
        ELSE:
            zone = "OVERVALUED"       // Negative margin, sell candidate

        // Generate alerts based on zone transitions
        IF zone != position.previous_zone:
            IF zone == "OVERVALUED":
                alerts.APPEND(SELL_ALERT(stock, current_price, iv_mid,
                    "Price exceeds intrinsic value range. Margin of safety "
                    "is negative. Consider selling."))

            ELIF zone == "FAIR_HIGH" AND position.previous_zone IN
                    ["UNDERVALUED", "DEEP_VALUE"]:
                alerts.APPEND(TRIM_ALERT(stock, current_price, iv_mid,
                    "Position has appreciated to upper fair value range. "
                    "Consider reducing to lock in gains."))

            ELIF zone == "DEEP_VALUE" AND position.previous_zone != "DEEP_VALUE":
                alerts.APPEND(BUY_ALERT(stock, current_price, iv_mid,
                    "Price has declined to deep value territory. "
                    "Margin of safety is exceptional. Consider adding."))

            position.previous_zone = zone

        // Fundamental deterioration check
        IF position.company.latest_eps < position.company.normalized_eps * 0.50:
            alerts.APPEND(FUNDAMENTAL_ALERT(stock,
                "Earnings have dropped below 50% of normalized level. "
                "Re-evaluate thesis and intrinsic value estimate."))

        IF position.company.current_ratio < 1.5:
            alerts.APPEND(FUNDAMENTAL_ALERT(stock,
                "Current ratio has fallen below 1.5. "
                "Balance sheet safety may be deteriorating."))

        IF position.company.debt_to_equity > previous_debt_to_equity * 1.50:
            alerts.APPEND(FUNDAMENTAL_ALERT(stock,
                "Debt-to-equity has increased by more than 50%. "
                "Financial risk is rising."))

    // Portfolio-level checks
    portfolio_avg_margin = MEAN(margin_to_mid FOR position IN portfolio)
    portfolio_pct_overvalued = COUNT(zone == "OVERVALUED") / LEN(portfolio)

    IF portfolio_avg_margin < 0.10:
        alerts.APPEND(PORTFOLIO_ALERT(
            "Portfolio average margin of safety has fallen below 10%. "
            "Consider raising cash or rotating into cheaper securities."))

    IF portfolio_pct_overvalued > 0.30:
        alerts.APPEND(PORTFOLIO_ALERT(
            "More than 30% of holdings are in the overvalued zone. "
            "Portfolio risk is elevated."))

    // New opportunity scan
    FOR EACH candidate IN market_data.screened_universe:
        IF candidate NOT IN portfolio:
            IF candidate.margin_of_safety > 0.33:
                alerts.APPEND(OPPORTUNITY_ALERT(candidate,
                    "New security identified with >33% margin of safety. "
                    "Consider for portfolio addition."))

    RETURN {
        alerts: alerts,
        portfolio_summary: {
            avg_margin_of_safety: portfolio_avg_margin,
            pct_undervalued: COUNT(zone IN ["DEEP_VALUE", "UNDERVALUED"]) / LEN(portfolio),
            pct_overvalued: portfolio_pct_overvalued,
            positions_by_zone: GROUP_BY(portfolio, zone)
        }
    }

18.5 Graham Defensive Investor Screener

FUNCTION graham_defensive_screen(universe):
    """
    Screens stocks using Graham's complete criteria for the defensive investor.
    All seven criteria must be met simultaneously.
    """
    qualified = []

    FOR EACH stock IN universe:
        company = stock.company
        price = stock.current_price
        fails = []

        // Criterion 1: Adequate size
        IF company.revenue < 500_000_000:  // $500M minimum revenue
            fails.APPEND("Revenue below $500M minimum")

        // Criterion 2: Strong financial condition
        IF company.current_ratio < 2.0:
            fails.APPEND(f"Current ratio {company.current_ratio:.1f} < 2.0")
        IF company.long_term_debt > company.working_capital:
            fails.APPEND("LT debt exceeds working capital")

        // Criterion 3: Earnings stability (positive EPS every year for 10 years)
        eps_history = company.get_eps_history(10)
        loss_years = [y FOR y IN eps_history IF y <= 0]
        IF LEN(loss_years) > 0:
            fails.APPEND(f"Losses in {LEN(loss_years)} of past 10 years")

        // Criterion 4: Dividend record (20 consecutive years)
        consecutive_dividend_years = company.consecutive_dividend_years
        IF consecutive_dividend_years < 20:
            fails.APPEND(f"Only {consecutive_dividend_years} years of dividends (need 20)")

        // Criterion 5: Earnings growth (33% over 10 years using 3-yr averages)
        IF LEN(eps_history) >= 10:
            beginning_avg = MEAN(eps_history[:3])
            ending_avg = MEAN(eps_history[-3:])
            IF beginning_avg > 0:
                growth = (ending_avg - beginning_avg) / beginning_avg
                IF growth < 0.33:
                    fails.APPEND(f"10-year earnings growth {growth:.0%} < 33%")

        // Criterion 6: Moderate P/E ratio
        avg_eps_3yr = MEAN(eps_history[-3:])
        IF avg_eps_3yr > 0:
            pe_ratio = price / avg_eps_3yr
            IF pe_ratio > 15:
                fails.APPEND(f"P/E {pe_ratio:.1f} > 15 on 3-year avg earnings")
        ELSE:
            fails.APPEND("Negative 3-year average earnings")

        // Criterion 7: Moderate price-to-book
        book_value = company.book_value_per_share
        IF book_value > 0:
            pb_ratio = price / book_value
            pe_times_pb = pe_ratio * pb_ratio
            IF pb_ratio > 1.5 AND pe_times_pb > 22.5:
                fails.APPEND(f"P/E Γ— P/B = {pe_times_pb:.1f} > 22.5")

        // Record result
        IF LEN(fails) == 0:
            graham_value = SQRT(22.5 * avg_eps_3yr * book_value)
            margin = (graham_value - price) / graham_value

            qualified.APPEND({
                ticker: stock.ticker,
                name: company.name,
                price: price,
                graham_value: graham_value,
                margin_of_safety: margin,
                pe_ratio: pe_ratio,
                pb_ratio: pb_ratio,
                pe_times_pb: pe_times_pb,
                current_ratio: company.current_ratio,
                dividend_yield: company.dividend_yield,
                eps_growth_10yr: growth,
                consecutive_dividends: consecutive_dividend_years
            })

    RETURN SORT(qualified, key=(-margin_of_safety))

19. Key Quotes

"An investment operation is one which, upon thorough analysis, promises safety of principal and an adequate return. Operations not meeting these requirements are speculative."

This is the most famous definition in all of investment literature. Its power lies in its precision β€” three specific conditions, all of which must be met.

"The margin of safety is always dependent on the price paid. It will be large at one price, small at some higher price, nonexistent at some still higher price."

The margin of safety is not an attribute of the security β€” it is an attribute of the price relative to the value. The same stock can be a safe investment at one price and a dangerous speculation at another.

"Confronted with a challenge to distill the secret of sound investment into three words, we venture the motto: MARGIN OF SAFETY."

Graham's final word on what matters most.

"The investor's chief problem β€” and even his worst enemy β€” is likely to be himself."

Anticipating behavioral finance by decades, Graham recognized that the primary obstacle to investment success is not analytical difficulty but psychological weakness.

"In the short run, the market is a voting machine but in the long run it is a weighing machine."

The market's short-term prices reflect popularity (votes), but its long-term prices reflect value (weight). The security analyst's job is to weigh.

"The individual investor should act consistently as an investor and not as a speculator."

The distinction between investment and speculation is not academic β€” it is the foundation of rational behavior in financial markets.

"To have a true investment, there must be present a true margin of safety. And a true margin of safety is one that can be demonstrated by figures, by persuasive reasoning, and by reference to a body of actual experience."

The margin of safety must be quantitative and evidence-based, not hoped for or assumed.

"The buyer of bargain issues places particular emphasis on the ability of the investment to withstand adverse developments."

The value investor does not predict the future β€” he prepares for adversity.

"It is absurd to think that the general public can ever make money out of market forecasts."

Market timing is a fool's errand for the vast majority of investors.

"You are neither right nor wrong because the crowd disagrees with you. You are right because your data and reasoning are right."

Independence of thought is the foundation of successful security analysis. The market's opinion is irrelevant to the facts.

"The essence of investment management is the management of risks, not the management of returns."

A principle that Graham's intellectual descendants β€” Seth Klarman, Howard Marks, Warren Buffett β€” have all echoed and expanded upon.

"The stock investor is neither right or wrong because others agreed or disagreed with him; he is right because his facts and analysis are right."

Analysis is about evidence, not consensus. The analyst who requires market validation has already abandoned the analytical framework.

"Those who do not remember the past are condemned to repeat it."

Graham quotes Santayana to emphasize that financial history β€” including its catastrophes β€” is the essential context for all security analysis. The analyst who ignores the lessons of 1929, 1937, 1973, 2000, and 2008 is building on sand.


Security Analysis is not a book of stock tips or market predictions. It is a framework for thinking β€” a disciplined, evidence-based approach to determining what securities are worth and whether their market prices offer adequate compensation for the risks involved. Every serious investor owes it to themselves to master this framework. As Seth Klarman writes in his foreword to the 6th edition: "No other book so comprehensively sets forth the principles that should guide the practice of investing."