Reverse Dcf logo

Reverse Dcf

Organization
OpenMinis
reverse-dcf

Reverse DCF (reverse discounted cash flow) valuation tool. Uses the market price to back-solve the market's implied growth rate expectations, replacing the common forward DCF routine of "tweaking parameters to fit the conclusion." Suitable for mature companies with positive FCFF (A-shares, Hong Kong-listed stocks, and U.S.-listed stocks). Trigger when the user says "reverse DCF," "Reverse DCF," "implied growth rate," "market-implied expectations," "price in," "valuation back-solve," "reverse valuation," "run a DCF," or asks to "calculate what the market is betting on." Not suitable for companies with negative FCFF (in that case, use a PS-implied revenue back-solve instead).

Overview

PublisherOpenMinis
RepositoryMinisSkills
Skill namereverse-dcf
Stars
543
Forks
86
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by OpenMinis on GitHub. Read the source before you install it.

Installation

Install the Reverse Dcf AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/OpenMinis/MinisSkills/tree/main/reverse-dcf
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/OpenMinis/MinisSkills.git /tmp/MinisSkills
mkdir -p .claude/skills
cp -r /tmp/MinisSkills/reverse-dcf .claude/skills/reverse-dcf
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Reverse Dcf in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Reverse Dcf on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Reverse Dcf is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Reverse DCF: Deriving Market-Implied Expectations

Core Idea

Forward DCF: given assumptions, calculate a target price. The parameters can be adjusted arbitrarily and end up "serving the conclusion."

Reverse DCF: given the market price, back-solve the implied growth rate and translate "expensive" or "cheap" into a verifiable proposition.

The essential difference:

  • Forward DCF outputs "fair value." It is abstract, and you can always be right, but your wallet will not get any thicker.
  • Reverse DCF outputs "market expectations": specific, verifiable numbers that can be compared with reality.

Applicability

Necessary condition: base-year FCFF must be positive.

Applying a standard two-stage DCF to companies with negative FCFF, such as early-stage high-growth companies or companies in an asset-heavy expansion phase, produces meaningless results.

Alternative: use PS-implied revenue back-solving (see "Handling Special Cases" below).

Data requirements:

  • Latest complete annual report (income statement, balance sheet, and cash flow statement)
  • Current stock price/market capitalization
  • Details of interest-bearing debt (short-term borrowings, long-term borrowings, lease liabilities, etc.)
  • Risk-free rate (10-year government bond yield)
  • Industry β and ERP (Damodaran data recommended)

Practical Steps

Step 1: Determine Enterprise Value (EV)

EV = Market Capitalization + Net Debt
Net Debt = Interest-Bearing Debt - Cash and Cash Equivalents - Financial Assets Held for Trading

Notes:

  • For companies like SK Hynix that are in a "net cash" position (cash > interest-bearing debt), EV will be lower than market capitalization.
  • For A-share companies, check whether financial assets held for trading include wealth management products, which are treated as cash equivalents.
  • STAR Market companies often have large amounts of IPO or financing proceeds sitting on the balance sheet, so EV may be far lower than market capitalization.

Step 2: Calculate Base-Year FCFF (the core step and the easiest place to make mistakes)

Recommended Method A: Back-solve from CFO (most reliable in practice)

FCFF = CFO - Capex + After-Tax Interest Expense
  • CFO = net cash flow from operating activities (audited real cash).
  • Capex = cash paid to acquire and construct fixed assets and intangible assets.
  • Net-cash companies: after-tax interest ≈ 0.

Verification Method B: Bottom-up from NOPAT

NOPAT = Operating Profit × (1 - Effective Tax Rate)
FCFF = NOPAT + D&A - Capex - ΔWC
  • Effective tax rate ≠ statutory tax rate (for example, South Korea's statutory rate is 24%, while SK Hynix's effective rate is only 14.9%).
  • D&A = depreciation and amortization.
  • ΔWC = increase in working capital (changes in inventory + accounts receivable + prepayments - accounts payable - contract liabilities).
  • Cross-check the two methods and take the average.

Important: the base year determines everything

  • Using FCFF at the top of the cycle → implied CAGR is understated.
  • Using cycle-median FCFF → implied CAGR is on the high side.
  • This is a judgment, not a calculation.

Step 3: Build the WACC

Re = Rf + β × ERP
WACC = Re × We + Rd×(1-t) × Wd

Suggested parameter sources:

ParameterSource
Risk-free rate Rf10-year government bond yield in the company's home country
Equity risk premium ERPDamodaran annual data (varies by country)
βDamodaran industry unlevered β → re-lever based on D/E (more robust than a single-stock regression β)
Pre-tax cost of debt RdAverage level of investment-grade corporate bonds in the company's home country
Effective tax rateCompany's actual effective tax rate (calculated from financial statements, not the statutory rate)

Step 4: Two-Stage DCF Model

EV = Σ [FCFF₀ × (1+g₁)ᵗ / (1+WACC)ᵗ] + [FCFF₁₀ × (1+g₂) / (WACC-g₂)] / (1+WACC)¹⁰

Where:

  • g₁ = annualized FCFF growth rate during the explicit forecast period (10 years) ← the target to back-solve
  • g₂ = perpetual growth rate (usually 2.5-3%, approximately nominal GDP growth)
  • FCFF₁₀ = FCFF₀ × (1+g₁)¹⁰ × (1+g₂)

Forward DCF: given g₁ and g₂, solve for EV.

Reverse DCF: given EV and g₂, solve for g₁.

Step 5: Build a Sensitivity Table

              Perpetual growth g₂
            1.5%  2.0%  2.5%  3.0%  3.5%
     18%     xxx   xxx   xxx   xxx   xxx
CAGR 20%     xxx   xxx   xxx   xxx   xxx
g₁   22%     xxx   xxx   xxx   xxx   xxx
     25%     xxx   xxx   xxx  [1189] xxx  ← Target EV
     28%     xxx   xxx   xxx   xxx   xxx
  1. Each cell = the EV under the corresponding (CAGR, g₂) combination.
  2. Find the cell closest to the actual EV.
  3. The g₁ corresponding to that cell is the market-implied explicit-period CAGR expectation.

Key observations:

  • Valuation sensitivity to explicit-period CAGR >> sensitivity to perpetual g.
  • Valuation differences are not large within the same row (same CAGR), while valuations can differ by a factor of two within the same column (same perpetual g).
  • Therefore, the key valuation question is whether the "10-year CAGR can be achieved," not whether "3% perpetual growth is too aggressive."

Step 6: Translate CAGR into Plain English

After calculating the implied CAGR, make three translations:

Translation 1: Company size in 10 years

FCFF₁₀ = FCFF₀ × (1+g₁)¹⁰
Corresponding revenue ≈ FCFF₁₀ / (current FCFF/revenue conversion rate)

Translation 2: What needs to happen at the industry level

Current TAM → required revenue in 10 years → implied market share change
Or: how many times TAM must grow to support it

Translation 3: Compare with history

Company's actual CAGR over the past 10 years vs implied CAGR
Historical CAGR comparison with industry peers/global tech giants
(TSMC's CAGR over the past 20 years was approximately 18%, already an industry miracle)

Step 7: Be Honest About Limitations

  1. Terminal value (TV) accounts for a high proportion of EV: this is especially dangerous for cyclical stocks. TV accounting for >50% is a red flag.
    • Alternative: Exit Multiple method (use the industry median EV/EBITDA in year 10 for the exit).
  2. The choice of base-year FCFF determines everything: the top and bottom of the cycle can differ by several times.
  3. D&A and Capex are estimates: accuracy is limited by the granularity of public disclosures.
  4. Reverse DCF tells you what the market expects, not whether the market is right or wrong.
    • A 25% CAGR may or may not be reasonable and requires independent judgment.
    • It is not a conclusion. It is the starting point for discussion.

Handling Special Cases

Companies with Negative FCFF (such as Cambricon)

A standard two-stage DCF cannot be used for the back-solve. Use PS-implied revenue back-solving instead:

  1. Assume a reasonable terminal PE, such as 30x in the mature phase.
  2. Back-solve the required net profit 10 years from now.
  3. Then assume a reasonable net margin and back-solve the required revenue 10 years from now.
  4. Calculate the implied revenue CAGR.
Implied Revenue₁₀ = Market Capitalization / Terminal PE / Net Profit Margin
Implied CAGR = (Implied Revenue₁₀ / Current Revenue)^(1/10) - 1

Cyclical Stocks

Use cycle-median FCFF instead of a single year's FCFF as the base-year data.

You can also use the Exit Multiple method instead of the Gordon Growth Model to calculate terminal value.

Recommended Data Sources

DataRecommended acquisition method
Stock price/market capitalizationbrowser_use navigate to Sina Finance or Xueqiu individual stock pages, then use get_text to extract
Financial statement dataUse browser_use navigate to open https://emweb.securities.eastmoney.com/PC_HSF10/NewFinanceAnalysis/Index?type=web&code=<stock-code>; the income statement, balance sheet, and cash flow statement tabs provide the complete data.
Details of interest-bearing debtSame as above, balance sheet tab: short-term borrowings, long-term borrowings, lease liabilities, and bonds payable
CFO/CapexSame as above, cash flow statement tab: net cash flow from operating activities and cash paid to acquire and construct fixed assets
Industry β/ERPDamodaran Online (pages.stern.nyu.edu/~adamodar/)
10-year government bond yieldTradingView or official central bank websites, retrieved with browser_use navigate
Historical revenue/CAGREast Money PC_HSF10 income statement tab, pull 5-10 years of revenue data and calculate manually

Note: All data should be retrieved in real time through browser_use; do not rely on training data. A-share stock codes in emweb format are SH600519 (Shanghai) or SZ000651 (Shenzhen), and Hong Kong stocks use HK00700.

Practical Case References

Series of articles (author: monokuro, Manager on the valuation team at a Big Four accounting firm in Tokyo):

  1. Core case: "What Expectations Is the Market Pricing In for SK Hynix? Reverse DCF Gives You a Startling Number": uses Reverse DCF to calculate that SK Hynix's current stock price implies 25% annualized FCFF growth over the next 10 years. FCFF would need to reach 208 trillion won in 10 years, nine times 2025 revenue and twice the actual growth rate over the past 10 years (13%).
  2. Method correction: "Three Corrections to the Previous Reverse DCF for the Five AI Chip Giants": points out practical pitfalls such as using Exit Multiple instead of GGM, replacing single-year FCFF with cycle-median FCFF, and correcting data sources. It can be used as supplemental reference for the limitations section of Reverse DCF.

The core methodological reference is Aswath Damodaran's valuation framework (Investment Valuation and the country risk premium data updated each year).

Frequently asked questions

What does the Reverse Dcf AI skill do?

Reverse DCF (reverse discounted cash flow) valuation tool. Uses the market price to back-solve the market's implied growth rate expectations, replacing the common forward DCF routine of "tweaking parameters to fit the conclusion." Suitable for mature companies with positive FCFF (A-shares, Hong Kong-listed stocks, and U.S.-listed stocks). Trigger when the user says "reverse DCF," "Reverse DCF," "implied growth rate," "market-implied expectations," "price in," "valuation back-solve," "reverse valuation," "run a DCF," or asks to "calculate what the market is betting on." Not suitable for comp...

Why use Reverse Dcf on TypingMind?

Because you install it once and use it with any model. Reverse Dcf is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Reverse Dcf in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/OpenMinis/MinisSkills/tree/main/reverse-dcf. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Reverse Dcf?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Reverse Dcf?

As many as you like. As long as a model supports skills, you can use Reverse Dcf with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Reverse Dcf AI skill free?

Yes. It is published on GitHub by OpenMinis under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇