DCF Valuation (FCFF) - Fair Value Table

304
DCF Valuation (FCFF) – Fair Value Table | "DCF Claude"

A transparent, fully on-chart discounted-cash-flow model. It reads TradingView's own financial data, builds a WACC from live macro symbols, projects free cash flow to the firm (FCFF), and prints every step, including the formulas, in a single table. It also draws the resulting DCF fair value on the chart. Built for US and global stocks.


## What it does

For the symbol on your chart the script:

1. Pulls inflation, GDP growth and the 10-year government bond yield for the symbol's country from TradingView economic data (or from symbols you choose).
2. Estimates beta against a benchmark index and builds the cost of equity (CAPM), the after-tax cost of debt and the WACC.
3. Takes trailing-twelve-month free cash flow, converts it to FCFF, grows it for N years with a growth rate that fades linearly into a terminal rate, and adds a Gordon-growth terminal value.
4. Subtracts net debt, divides by shares outstanding and compares the result with the current price.
5. Shows a block of additional model inputs (normalized ROE / ROIC / margin, payout, growth, Lynch and Graham P/E, symbol-specific average P/E and P/B).
6. Shows a 3 x 3 sensitivity grid (WACC and terminal growth), data-freshness information and context-aware warnings.

Nothing is hidden: each number in the table can be traced to the formula printed under its section ("fx" rows – can be switched off).


## How the numbers are built

Macro
- Terminal inflation = Inflation x (1 - fade) + Long-term target x fade
- Terminal growth (auto) = (1 + clamp(GDP growth, 0%, 4%)) x (1 + terminal inflation) - 1
- Terminal growth used = min(terminal growth, your cap, Rf - 1 pt, WACC - 1 pt). The terminal rate can therefore never exceed the risk-free rate or the discount rate.

WACC
- Cost of equity: Re = Rf + Beta x ERP
- Beta: raw beta = correlation(stock, benchmark) x stdev(stock) / stdev(benchmark) over the chosen window; optional Blume adjustment (0.67 x raw + 0.33); clamped to 0.2–3.0.
- Cost of debt: interest expense / total debt when that ratio is plausible (between Rf and Rf + 20 pts), otherwise Rf + credit spread. Multiplied by (1 - tax) for the tax shield.
- Tax: effective rate (income tax / pre-tax income, clamped to 10–35%) or the statutory rate.
- Weights: E = price x shares, D = total financial debt, WACC = E/(E+D) x Re + D/(E+D) x Rd x (1 - t).
- ROIC - WACC (in points) is shown as a quick value-creation check.

Cash flow and growth
- FCF = operating cash flow - |capex| (TTM). Optionally the base is the 3-year average of the quarterly TTM FCF records.
- FCFF_0 = FCF + |interest expense| x (1 - t) (switchable, for FCF that is already after interest).
- Year-1 growth (Auto, conservative) = the lower of the historical FCF CAGR and the analyst-consensus EPS growth (FY estimate / TTM EPS - 1), each limited to your floor/cap. You can also force either source, or type a manual rate.
- Growth path: g_t = g_1 + (g_T - g_1) x (t - 1) / (N - 1), FCFF_t = FCFF_(t-1) x (1 + g_t).

Valuation
- PV_t = FCFF_t / (1 + WACC)^t
- TV = FCFF_N x (1 + g_T) / (WACC - g_T), PV(TV) = TV / (1 + WACC)^N
- EV = sum of PV_t + PV(TV), Equity = EV - net debt, Value per share = Equity / shares.


Additional model inputs (context for cross-checking the DCF)
- ROE used = clamp(0.5 x latest ROE + 0.5 x median ROE of the last N quarters, -50%, cap). ROIC used = EBIT x (1 - t) / (Equity + Debt - Cash), clamped the same way.
- Normalized EBIT margin = median EBIT / Revenue of the last N quarters (N adjustable, default 20).
- Dividend payout = dividends per share over the last 365 days / EPS (or manual). Dividend yield = DPS / price.
- Growth g = EPS CAGR over the history window (needs 2+ years of recorded reports) -> else analyst FY EPS growth -> else last-12-month EPS growth, limited by a cap. Optionally converted to real growth: (1 + g) / (1 + inflation) - 1.
- Lynch fair P/E = (growth % + dividend yield %) / target PEG.
- Symbol average P/E and P/B = mean of the daily ratios (P/E 0–100, P/B 0–50) over the 3- or 5-year window, so every symbol is judged against its own history.
- Graham base P/E = max(4, average P/E - multiplier x g %) (original: 8.5 + 2g); Graham defensive P/E = the symbol's average P/E (original: 15). Fixed original constants can be used instead of the symbol averages.


## Reading the tables

The output is split into two tables so that each fits a normal chart pane. Table 1 holds MACRO, WACC and DCF; Table 2 holds the additional inputs, data freshness, sensitivity and warnings. Each has its own on/off switch, position (9 anchors) and fine offsets, so you can, for example, put Table 1 bottom-left and Table 2 bottom-right. If a table is still taller than your pane, switch the formula rows off or choose a smaller table size.

- MACRO – country, benchmark, inflation, GDP, faded terminal inflation, real rate, terminal growth.
- WACC – Rf, ERP, beta (raw -> used), Re, Rd (pre/post tax), tax, market cap, debt, E/V and D/V, WACC and ROIC - WACC.
- DCF – base FCF, FCFF base, growth source and rates, a year-by-year projection (FCFF, discount factor, present value), PV of terminal value and its share of EV, EV, net debt, equity value, shares, DCF per share, difference vs price and an UNDERVALUED / FAIR / OVERVALUED signal (threshold adjustable).
- ADDITIONAL MODEL INPUTS – ROE and ROIC used, normalized EBIT margin, payout ratio, Lynch fair P/E, terminal ROE/ROIC spread, symbol average P/E and P/B and their source, average growth (EPS CAGR), Graham base and defensive P/E.
- DATA FRESHNESS – date and age of the last balance-sheet update the script saw, estimated next report, number of quarterly records.
- SENSITIVITY – value per share for WACC -2 / 0 / +2 pts (rows) and terminal growth -2 / 0 / +2 pts (columns). The centre cell (diamond) is the base case. Green = above the current price, red = below.
- WARNINGS – missing symbols, fallback values in use, capped terminal growth, negative FCF, bank/insurer notice, stale data and more.

On the chart a yellow line and label mark the DCF value per share and the signal.


## Settings (all in English, grouped)

1. Macro: symbol set (Auto by symbol country / Custom), inflation and GDP symbols, fallback values, long-term inflation target, terminal inflation fade.
2. WACC: risk-free source (bond yield / manual), ERP, beta (calculated / manual), benchmark index, beta window, Blume adjustment, tax mode and statutory rate, cost-of-debt mode and spread.
3. DCF: forecast years (3–10), growth source, manual growth, growth floor and cap, history window (3 / 5 years), terminal growth source / manual / cap, base cash flow (TTM / 3-year average), interest add-back, signal threshold, stale-data threshold.
4. Additional model inputs: multiples source (symbol average / fixed), growth source, manual g and cap, nominal vs real growth, Graham constants (8.5, 2, 15), Lynch target PEG, terminal ROE/ROIC spread, payout mode, ROE/ROIC cap, normalization quarters.
5. Tables: size, formulas on/off, and for each of the two tables: show, position (9 anchors) and fine offsets.
6. Appearance: auto dark/light theme, accent colour, chart line on/off.

US-oriented defaults: ECONOMICS:USIRYY, ECONOMICS:USGDPYY, TVC:US10Y, SP:SPX, ERP 4.5%, statutory tax 21%, long-term inflation 2%, fallback Rf 4%, credit spread 1.5%, terminal-growth cap 3.5%, growth cap 30%, nominal growth measure for the Lynch P/E.


## Using it on non-US stocks

In "Auto (by symbol country)" mode the script builds ECONOMICS:{CC}IRYY, ECONOMICS:{CC}GDPYY and TVC:{CC}10Y from the two-letter country code of the chart symbol, and chooses a local benchmark index for a few major markets (GB, DE, FR, JP, HK, AU, IN, CA, TR; the benchmark box is used for everything else or if a symbol fails). If a series does not exist, the fallback values are used and the table says so. For full control choose "Custom symbols". Always review ERP, long-term inflation and the statutory tax rate for the market you analyse.


## Important notes and limitations

- Data comes from TradingView (request.financial). CAPITAL_EXPENDITURES and INTEREST_EXPENSE_ON_DEBT are not offered as TTM, so TTM capex is derived as FREE_CASH_FLOW(TTM) - OPERATING_CASH_FLOW(TTM) and interest uses the last fiscal year.
- The historical FCF CAGR is built from the quarterly TTM FCF values recorded each time a new balance sheet appears on the bars loaded on your chart. More chart history means a longer CAGR window; with little history the model falls back to analyst growth or your manual rate.
- A DCF is only as good as its inputs. Terminal value usually dominates (see "TV share of EV"). Use the sensitivity grid and try different growth sources.
- Not suitable for banks, insurers and other financials (debt is operating), or for companies with persistently negative free cash flow – the script warns and shows no value when FCF is not positive.
- Beta is calculated on bars of the chart timeframe; a daily chart is recommended. Equity risk premium has no TradingView source and is an input.
- Values are shown in the symbol's currency. For ADRs and dual listings check that financial and price currencies are consistent.
- The script is an educational tool. It is not investment advice and makes no promise about future results.


## Credits and licence

Released under the Mozilla Public License 2.0. This indicator is a standalone, rewritten extract of the WACC/DCF module of the "Stocks Claude" valuation script, which is itself derived from work by polo2323 – original copyright notice retained in the source. The macro/country logic, English interface and formula rows are new in this version.


## Release notes

v1 – Two separate tables (own position and offsets each). First standalone English edition: country-aware macro and benchmark, WACC, FCFF multi-stage DCF, additional model inputs block, formula rows in the table, sensitivity grid, freshness and warnings, chart fair-value line.

Declinazione di responsabilità

Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.