# Case Study Guide Source: https://valuation-101.com/docs/case-studies/case-study-guide A section-by-section guide to the valuation pipeline — what each phase does, how the plugin makes decisions, and what to look for in the output. Each case study on this site walks through a complete Damodaran-style FCFF (Free Cash Flow to Firm) intrinsic valuation produced by the plugin. The sections follow the same order every time, mirroring the pipeline's execution sequence. This guide explains what each section does generically — the case studies themselves show only the company-specific data and commentary. ## Manual Overrides While the pipeline is designed to be fully deterministic — pulling data from SEC filings and guidance from earnings calls — in some cases the default judgment has to be overruled manually. When this happens, the override is documented explicitly in the case study, stating the default figure, the manually assigned figure, and the reason for the change. Overrides are rare by design. The most common trigger is a data gap in SEC XBRL filings (e.g. shares outstanding for a recent IPO where the standard tags aren't populated yet). The override declaration sits at the top of each case study so readers can see upfront which inputs were changed by hand. ## Company Identification The `company-identifier` skill takes whatever the user typed — a ticker, a name, or a partial name — and resolves it to a single confirmed identity in two steps. First, a web search matches the input to a public company and surfaces its SEC CIK number (visible in EDGAR page URLs and search results). With the CIK in hand, the skill calls SEC EDGAR's submissions API (`data.sec.gov/submissions/CIK{cik}.json`) to pull structured metadata: legal name, SIC code, fiscal year end, exchange, and filing history in one call. ### Industry Mapping Getting the industry right matters — downstream skills use Damodaran's 96 canonical industry names to look up unlevered betas, target operating margins, reinvestment rates, and cost of capital. An inappropriate classification cascades through the entire valuation. The plugin looks up the ticker directly in Damodaran's [**indname**](https://www.stern.nyu.edu/~adamodar/pc/datasets/indname.xls) dataset, which covers roughly 48,000 global public companies with his own assigned industry classifications, of which \~6,000 are US public companies. For the purposes of valuation, this is more reliable than directly using SEC-assigned Industry Categories. If you feel your company is assigned to the wrong industry, you can (1) browse through the industry file to choose a more appropriate category, or (2) directly change inputs instead of trying to choose the right industry category. ## Required Filings The `identify-required-statements` skill, based on the date the valuation is being performed, assesses which 10-K (annual) and 10-Q (quarterly) filings are needed to obtain the most recent twelve months of financial data. If the most recent 10-K is fresh enough, only annual filings are needed (`annual_only` method). If the fiscal year ended more than one quarter ago, the skill identifies bridge 10-Q filings to construct a trailing twelve-month view. ## Trailing Twelve-Month Financials The Last Twelve Months (LTM) figures form the base year for the entire DCF projection. The plugin extracts these from SEC XBRL filings, combining annual and quarterly data as needed. Each metric is sourced from specific XBRL tags, with fallback hierarchies when the primary tag is unavailable. The case study tables show LTM values alongside prior-year comparisons so readers can see the year-over-year trajectory. Below each table, data gaps and warnings are listed — these are fields where the XBRL data was null or required fallback resolution. The analyst commentary explains which gaps matter for the valuation and which are immaterial. ## Shares Outstanding Shares outstanding is the denominator in the entire valuation — the DCF model produces an aggregate equity value for the firm, and dividing by shares outstanding converts it into the per-share intrinsic value that gets compared against the market price. Getting this number wrong scales the entire output proportionally, so the plugin invests significant effort in resolving it accurately. The plugin attempts to extract shares outstanding from SEC XBRL filings, searching for the `CommonStockSharesOutstanding` tag first, then falling back through a hierarchy of alternatives: `EntityCommonStockSharesOutstanding`, `WeightedAverageNumberOfDilutedSharesOutstanding`, and `WeightedAverageNumberOfShareOutstandingBasicAndDiluted`. When the company has multiple share classes (e.g. Class A and Class B common stock), the plugin sums across all classes using the `CommonStockSharesOutstanding` tag with distinct `us-gaap:StatementClassOfStockAxis` members. If the XBRL tags are unavailable — common for recent IPOs where filing history is thin — the plugin can fall back to deriving shares from market capitalisation and stock price, or from the 10-K cover page share count obtained via web search. The choice between basic and diluted shares matters. Basic shares count only currently issued stock; diluted shares add the effect of in-the-money options, unvested RSUs, and convertible instruments. The plugin uses diluted shares as the denominator because the DCF model separately computes employee stock option value (via Black-Scholes) and subtracts it in the equity bridge — using basic shares here and option-adjusted equity above avoids double-counting dilution. When diluted shares aren't available, the plugin uses basic shares and flags the potential undercount. $\text{Value per share} = \frac{\text{Equity value after adjustments}}{\text{Shares outstanding}}$ ## Tax Rates Tax rates matter in a DCF because they determine how much of a company's operating income actually becomes free cash flow. The plugin works with two distinct tax rates, each serving a different purpose. **Effective tax rate** is what the company actually paid in taxes over the trailing twelve months, calculated as income tax expense divided by pretax income. It reflects the company's current tax reality — including the effects of tax credits, deductions, loss carryforwards (NOLs), foreign tax differences, and other items that cause taxes paid to differ from the statutory rate. The plugin extracts this directly from SEC filings. When pretax income is negative, the effective tax rate is undefined and the plugin sets it to null. **Marginal tax rate** is the statutory rate the company would pay on an additional dollar of taxable income — 25% for US corporations. This is the rate that matters for evaluating new investments, because it determines the tax shield on incremental interest payments and the after-tax cost of capital. The plugin uses the marginal tax rate when computing the cost of debt (the `$(1 - t)$` term in WACC) and for the after-tax EBIT calculation during the projection period. **Where each rate is used:** * **Cost of capital:** The marginal tax rate is used to compute the after-tax cost of debt and to re-lever beta. This is by design — WACC should reflect the tax benefit of debt at the margin, not the company's current blended tax situation. * **Projection years 1–10:** The effective tax rate applies to EBIT in the early years, gradually converging toward a terminal rate. If the effective rate is null (as when the company is loss-making), the marginal rate is used from year one. * **Terminal year:** The tax rate converges to the industry average effective tax rate, reflecting the expectation that as companies mature, their tax positions normalize toward their industry's typical level. If the industry average is unavailable, the model falls back to the 25% marginal rate. * **NOL shielding:** If the company carries net operating losses, the plugin shields taxable income from taxes until the NOL balance is exhausted. This means the effective tax rate in early projection years may be zero even if the stated rate is positive. ## Cost of Capital (WACC) The cost of capital is the minimum return a company needs to earn on its investments to satisfy both its shareholders and its lenders. It serves as the "hurdle rate" for the entire valuation — future cash flows are discounted at this rate to determine what they're worth today. ### Beta Estimation Beta measures how much a stock's price tends to move relative to the overall market. A beta of 1.0 means the stock moves in lockstep with the market; above 1.0 means it's more volatile, below 1.0 means it's calmer. The more volatile a company's stock is the greater the return demanded by equity investors. A company's stock can be risky for two distinct reasons. * **Operating risk** comes from the nature of the business itself — a semiconductor company's revenues swing more than a utility's, regardless of how either is financed. **Unlevered beta** isolates just the operating risk by mathematically stripping out the effect of debt. Think of it as asking: "how risky is this *business*, ignoring how it's funded?" Since companies in the same industry face similar operating risks, we use the industry-average unlevered beta as a starting point — it's more stable than any single company's estimate. * **Financial leverage risk** comes from debt — borrowing amplifies both gains and losses for shareholders, like buying a house with a mortgage and 10% investment (down payment) means a 10% rise in home value might be a 100% gain on your investment, but a 10% drop could wipe it out. **Levered beta** addresses this by adding back the financial leverage specific to *this* company, reflecting the total risk that equity investors actually bear. A company with more debt will always have a higher levered beta than its unlevered beta, because shareholders are absorbing the amplified ups and downs that come with borrowing. $\beta_{levered} = \beta_{unlevered} \times (1 + (1 - t) \times D/E)$ The D/E ratio used here is based on market values, not book values. Book value of debt and equity are accounting figures from the balance sheet — they reflect historical costs and retained earnings, not what investors are actually paying today. Market values are forward-looking and reflect the current price of each claim on the company's cash flows. * **Market value of debt:** Since most corporate debt isn't publicly traded, the pipeline converts book debt to market value using a bond-pricing formula — treating all of the company's debt as a single bond, discounting its future interest payments and principal repayment at the pre-tax cost of debt. Operating lease obligations are added at book value as a proxy. This mirrors Damodaran's spreadsheet approach and can differ meaningfully from book value when interest rates or credit spreads have shifted significantly since the debt was issued. $MV_{debt} = C \times \frac{1 - (1+r)^{-n}}{r} + \frac{Face}{(1+r)^n}$ where $C$ = annual interest expense, $r$ = pre-tax cost of debt, $n$ = average debt maturity (years), $Face$ = book value of straight debt. * **Market value of equity:** This is simply the current stock price multiplied by shares outstanding — the market capitalisation. Unlike debt, equity is traded continuously, so the market value is directly observable. $D/E = \frac{\text{Market value of debt}}{\text{Stock price} \times \text{Shares outstanding}}$ ### Cost of Equity The cost of equity is the return that shareholders expect for investing in the stock. It's built up from a risk-free baseline (government bond yields) plus a premium for taking on the risk of owning equities in general, and this company's equities in particular. $K_e = R_f + \beta_{levered} \times ERP$ ### Cost of Debt The cost of debt is the interest rate a company effectively pays on its borrowings, adjusted for the tax deduction on interest. Companies that are more likely to default pay higher rates, so this number reflects how risky lenders think the company is. Three concepts chain together to determine cost of debt: * **Interest coverage ratio (ICR):** How many times over a company's operating income can cover its annual interest payments. An ICR of 5x means the company earns five times what it owes in interest — comfortable. Below 1x means it can't cover interest from operations alone. * **Synthetic credit rating:** The ICR maps to a credit rating using Damodaran's lookup table, which mimics what agencies like Moody's and S\&P do. Higher coverage earns a safer rating (AAA, AA, A); lower coverage gets a riskier one (BB, B, CCC, down to D for default). * **Default spread:** Each rating carries an extra interest rate that lenders charge above the risk-free rate to compensate for the chance they won't get paid back. A AAA-rated company might pay just 0.5% above the risk-free rate; a D-rated company could pay 15–20% or more. $K_d = (R_f + \text{default spread}) \times (1 - t)$ ### Weighted Average WACC blends the cost of equity and the cost of debt in proportion to how much of each the company uses. It's the single discount rate applied to all future cash flows in the DCF model — a higher WACC means future cash flows are worth less today. $WACC = W_e \times K_e + W_d \times K_d \times (1 - t)$ ## Forecasts Every DCF valuation is a story told in four variables: how fast revenue grows, how profitable it becomes, how efficiently capital is reinvested, and what return investors demand for bearing the risk. The plugin anchors each variable in two places — the company's current reality (the "base year") and a terminal target that reflects where the business should converge at maturity — then draws a curve between them. The convergence path between start and target is not assumed to be linear. The plugin's curve library offers six S-shaped (and related) convergence functions, each calibrated for a different company lifecycle pattern. A rules-based classifier — or, optionally, an LLM-based classifier that considers narrative context — selects the curve shape for each variable based on the gap between the current value and the target, the company's growth phase, and the nature of the variable. ### Guidance Review By default, the plugin derives its Year 1 forecast anchors from the trailing twelve months of SEC filings — the most recent hard numbers available. But historical financials are backward-looking; they tell you where the company has been, not where management expects it to go. Earnings guidance bridges this gap. After extracting LTM financials, the plugin searches for the most recent earnings call transcript by walking backward from the latest filing quarter (up to four quarters). If a transcript is found, it runs a structured LLM extraction pass that pulls out revenue guidance (explicit annual figures, quarterly sums, or exit run-rate interpolations), operating margin targets (both near-term and long-term), capex plans, and any qualitative commentary on growth trajectory. Each extracted value is tagged with an inference method (e.g. `direct_guidance`, `quarterly_sum`, `derived_from_adj_oi_guidance`) and a confidence level, so the downstream pipeline knows how much weight to place on it. The extracted guidance is then reconciled with the LTM-derived defaults. Revenue Year 1 is replaced by the implied growth rate from the guided revenue figure. Operating margin Year 1 is replaced by the guided margin — with an important adjustment: if management's guidance is on an "adjusted" basis (excluding stock-based compensation), the plugin estimates the SBC burden from the LTM filings and subtracts it to produce a GAAP-equivalent margin. Long-term margin targets, when available, override the industry average as the Year 10 convergence target. Every override is recorded in the output JSON with the raw earnings quote, so the audit trail is fully transparent. When no guidance is available — either because the company hasn't reported yet or the transcript couldn't be fetched — the plugin falls back gracefully to the LTM-derived anchors and flags the forecast as "unguided." ### S-Curve Convergence Library All six S-curve convergence shapes — exponential decay, rapid deceleration, standard S-curve, linear, delayed deceleration, and step-down — plotted from 100% to 0% over 10 years | Curve | Shape | Best for | | ------------------------ | --------------------------- | ----------------------------------------------------------------------------------------- | | **Exponential Decay** | Concave — front-loaded drop | Hyper-growth companies decelerating quickly; cost of capital normalising | | **Rapid Deceleration** | Front-loaded S | Post-IPO companies past peak growth; >60% of transition by year 4 | | **Standard S-Curve** | Classic sigmoid | Established-growth companies with 20–60% growth and clear trajectory | | **Linear** | Uniform steps | Stable, predictable businesses with narrow start-to-target gaps | | **Delayed Deceleration** | Back-loaded S | Structural moats, massive TAMs, or pre-profit margin ramps; \<30% of transition by year 5 | | **Step-Down** | Two plateaus | Known catalysts: contract ramps, infrastructure build-outs, product cycle shifts | ### Revenue Growth Revenue growth represents the year-over-year increase in the company's top line. In the DCF model, it is the primary driver of future cash flows — every other line item (EBIT, reinvestment, FCFF) flows from the revenue projection. The plugin determines the Year 1 growth rate from the most recent earnings guidance or, if unavailable, from the trailing twelve months. The Year 10 target defaults to the company's industry average 5-year revenue CAGR, reflecting the expectation that even exceptional growers converge toward their industry's structural growth rate at maturity. $\text{Revenue}_t = \text{Revenue}_{t-1} \times (1 + g_t)$ where $g_t$ follows the selected convergence curve from $g_1$ (Year 1 anchor) to $g_{10}$ (industry target). Terminal growth is capped at the risk-free rate. ### Operating Margin Operating margin measures how much of each revenue dollar becomes operating profit (EBIT) before interest and taxes. For pre-profit companies, the DCF model projects a margin trajectory from the current operating loss toward a sustainable target, reflecting the expectation that operating leverage and scale will eventually turn the business profitable. The plugin sets the Year 1 margin from earnings guidance (GAAP-equivalent, after adding back SBC adjustments) and the Year 10 target from the company's long-term margin guidance or, if unavailable, the industry average pre-tax operating margin. $\text{EBIT}_t = \text{Revenue}_t \times m_t$ where $m_t$ follows the selected convergence curve from $m_1$ to $m_{10}$. ### Sales-to-Capital Ratio The sales-to-capital ratio measures how much incremental revenue the company generates per dollar of capital invested. It is the DCF model's reinvestment assumption — it determines how much of each year's operating income must be ploughed back into the business to fund the projected revenue growth. $\text{Reinvestment}_t = \frac{\text{Revenue}_t - \text{Revenue}_{t-1}}{S/C_t}$ A low ratio means the company must invest heavily for each dollar of new revenue (capital-intensive build-out phase); a high ratio means the business is capital-efficient and generates revenue growth with minimal incremental investment. The plugin anchors the current S/C ratio from LTM financials and converges it toward the industry average, reflecting the expectation that capital efficiency improves as the business matures and existing infrastructure is utilized more fully. ### Cost of Capital Schedule The cost of capital schedule projects how the company's WACC evolves over the 10-year forecast as risk normalises. Rather than applying a static discount rate, the plugin generates a year-by-year WACC path that converges from the company's current (elevated) cost of capital toward a mature-state target. This reflects the economic reality that young, heavily-levered, or volatile companies carry a risk premium that should dissipate as they mature, delever, and demonstrate operating stability. The terminal WACC target is derived from the risk-free rate plus the equity risk premium: $WACC_{terminal} = r_f + ERP$ The terminal WACC assumes the company's risk profile converges to a market-average cost of capital as it matures — debt gets refinanced at tighter spreads, leverage normalises, and equity volatility declines. ## Employee Stock Options Employee stock options represent a claim on equity that sits between the firm's total equity value and the value available to common shareholders. In a DCF model, the option value is subtracted in the equity bridge — after computing total equity value but before dividing by shares outstanding — to avoid overstating the per-share value. The plugin checks SEC filings for outstanding option grants and, when found, computes their aggregate value using a dilution-adjusted Black-Scholes model. The key inputs are the number of options outstanding, the weighted-average exercise price, the expected option life, the stock's volatility, and the risk-free rate. When option data is available but computation is incomplete (e.g. for recent IPOs where option disclosures are still sparse), the plugin flags the gap and applies a zero deduction. This means the estimated value per share may be slightly overstated — the option claim exists but hasn't been quantified yet. For mature companies with large option pools, the dilution can be material (sometimes 3–5% of equity value), so this is an important adjustment to revisit. ## DCF Model Output The DCF engine takes every input assembled in the prior phases — LTM financials, cost of capital, forecast schedules, tax rates, and adjustments — and runs them through a 10-year free cash flow to firm (FCFF) projection followed by a terminal value calculation and an equity bridge. The engine produces year-by-year projections of revenue, EBIT, after-tax operating income, reinvestment, and free cash flow, discounting each year's FCFF back to present value at the corresponding year's cost of capital. The core mechanics at each projection year are: $\text{FCFF}_t = \text{EBIT}_t \times (1 - t_t) - \text{Reinvestment}_t$ where reinvestment is determined by the revenue growth and the sales-to-capital ratio, and the tax rate fades from the effective rate toward the terminal rate over the projection period. If the company carries net operating losses (NOLs), the engine shields taxable income until the NOL balance is exhausted. ### Terminal Value Beyond Year 10, the model assumes the company reaches a steady state — growing at the risk-free rate, earning returns equal to its cost of capital, and reinvesting just enough to sustain that growth. The terminal value captures all cash flows from Year 11 to infinity in a single number using the perpetuity growth formula: $TV = \frac{\text{FCFF}_{terminal}}{WACC_{terminal} - g_{terminal}}$ Because the terminal value is discounted back 10 years, even a very large terminal value is substantially reduced in present-value terms. Nevertheless, for companies with long payoff horizons — where the early projection years are dominated by reinvestment — the terminal value often represents the majority of the firm's value. ### Present Value Breakdown The present value breakdown shows how the intrinsic value of the firm's operations is split between the cash flows generated during the explicit 10-year forecast period and the terminal value that captures everything beyond. A heavy tilt toward terminal value is typical for high-growth companies — during the projection years, the company is reinvesting aggressively and generating negative free cash flow, so the value creation is deferred to the terminal period when the business reaches maturity. ### Equity Bridge The equity bridge converts the operating value of the firm — which represents the total value of the company's core business operations — into the value available to common shareholders. The bridge subtracts claims that rank ahead of equity (debt, minority interests) and adds assets not captured in the operating cash flows (cash, non-operating investments). Finally, it deducts the value of any employee stock options to arrive at the equity in common stock, which is divided by shares outstanding to produce the per-share intrinsic value. $\text{Value per share} = \frac{\text{Operating assets} - \text{Debt} - \text{Minority interests} + \text{Cash} + \text{Non-operating assets} - \text{Options}}{\text{Shares outstanding}}$ ## The Verdict The final output of the DCF model is a comparison between the intrinsic value per share — what the model says the company is worth based on its projected cash flows — and the current market price. The ratio of price to value indicates whether the market is pricing the company above (overvalued) or below (undervalued) the model's estimate. A ratio below 100% suggests the market is underpricing the stock relative to the DCF, while a ratio above 100% suggests overpricing. This comparison is not a buy/sell recommendation. It is a single model's output based on a specific set of assumptions. The real value lies in understanding which assumptions drive the result and how sensitive the conclusion is to changes in those assumptions. The base-case verdict is supplemented by two scenario analyses that stress-test the key assumptions. ### Bear Case The bear case asks: what happens if the most optimistic assumptions don't materialise? It typically adjusts two or three of the most sensitive levers downward — a lower terminal margin, slower revenue growth convergence, or weaker capital efficiency — and re-derives the implied value per share. The goal is not to predict the worst outcome but to establish a floor that reflects a plausible downside scenario. If the market price sits below the bear-case value, the margin of safety is strong; if it sits above, the investment thesis depends entirely on the base case (or better) playing out. ### Bull Case The bull case asks: what if the company executes better than the base-case assumptions? It typically raises the terminal margin toward management's most ambitious guidance, extends the high-growth period, or assumes faster capital efficiency gains. The bull case establishes a ceiling — the value the company could reach if everything goes right. The spread between bear and bull values gives a sense of the valuation's uncertainty range, which is often more informative than the point estimate itself. ## Diagnostic Flags After producing the valuation, the plugin runs Damodaran's diagnostic checklist — a series of sanity checks designed to catch internally inconsistent or implausible assumptions before the result is taken at face value. Each check compares a model output against an external benchmark (industry averages, current financials, or mathematical constraints) and flags anything that exceeds a threshold. A diagnostic flag does not mean the assumption is wrong — it means it deserves scrutiny and explicit justification. The six checks the plugin evaluates are: 1. **Revenue growth vs. industry** — Is the forecasted growth rate more than 2× the industry average? If so, what structural advantage justifies the premium? 2. **Dollar revenues at maturity** — Does Year 10 revenue exceed 10× current revenue? Absolute dollar scale often tells a different story than growth percentages. 3. **Operating margins vs. industry** — Is the target margin more than 2× the industry average? Margins above the industry norm require an explanation (pricing power, scale economics, different business model). 4. **Reinvestment vs. revenue growth** — Is the implied reinvestment rate consistent with the revenue growth? A disconnect between growth and capital deployment suggests an unrealistic sales-to-capital assumption. 5. **Return on capital trajectory** — Does ROIC converge to or exceed the cost of capital by the terminal year? A company that never earns its cost of capital destroys value in perpetuity. 6. **Price vs. value** — How far is the estimated value from the market price? Large deviations (>50% in either direction) warrant a review of every major assumption. ## What Each Case Study Demonstrates Every company presents unique challenges for an automated valuation pipeline. The final section of each case study summarises which edge cases the company exercised — data gaps, unusual financial profiles, guidance integration challenges, or manual overrides — and what they reveal about where human judgment remains essential # CoreWeave, Inc. (CRWV) Source: https://valuation-101.com/docs/case-studies/coreweave Full Feeling Lucky FCFF valuation of CoreWeave, Inc. — Valued at `$`106.29/share vs. market price of `$`75.00. **Valuation date:** April 1, 2026  |  **Mode:** Feeling Lucky  |  **Result:** `$`106.29/share (41.7% upside vs. `$`75.00 market price) CoreWeave is a GPU cloud infrastructure company that IPO'd in March 2025. It's a challenging valuation subject: pre-profitability, capital-intensive, with explosive revenue growth and heavy debt financing. This case study walks through every phase of the pipeline and shows the real outputs the plugin produced. See the [Case Study Guide](/case-studies/case-study-guide) for how each section works generically. ## Manual Overrides See [Manual Overrides](/case-studies/case-study-guide#manual-overrides) for how the plugin handles overrides. In this case study the only manual override is the figure for 'shares outstanding'. The plugin by default looked up the SEC data which showed 436M shares as the 2025 average. The latest number Q12026 wasn't in the SEC data but was found in the 10-K filing and manually updated as 525.7M shares. This changed the value per share to \$106. ## Company Identification See [Company Identification](/case-studies/case-study-guide#company-identification) for how the plugin resolves company identity. | Field | Value | Source | | --------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Ticker | CRWV | User input | | CIK | 0001769628 | Web search → [SEC EDGAR](https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany\&company=coreweave\&CIK=\&type=\&dateb=\&owner=include\&count=40\&search_text=\&action=getcompany) search results | | Legal name | CoreWeave, Inc. | [SEC EDGAR submissions API](https://data.sec.gov/submissions/CIK0001769628.json) `name` | | Exchange | NASDAQ | [SEC EDGAR submissions API](https://data.sec.gov/submissions/CIK0001769628.json) `exchanges` | | Country | United States | [SEC EDGAR submissions API](https://data.sec.gov/submissions/CIK0001769628.json) `stateOfIncorporation` OR `addresses['business']` | | Sector | Software (Internet) | Damodaran indname dataset → ticker lookup (see below) | | Fiscal year end | December 31 | [SEC EDGAR submissions API](https://data.sec.gov/submissions/CIK0001769628.json) `fiscalYearEnd` | CoreWeave IPO'd in March 2025, so SEC EDGAR history is limited — only one completed 10-K (FY2025) exists at valuation date. The ticker resolved cleanly with no ambiguity. ### Industry Mapping See [Industry Mapping](/case-studies/case-study-guide#industry-mapping) for how Damodaran's classification works. Here are 10 of the 29 companies Damodaran classifies under **Software (Internet)** — the same industry group CoreWeave lands in. These are the peer companies whose aggregate unlevered beta, operating margin, and reinvestment rates feed into CoreWeave's default assumptions. | Ticker | Company | Industry Group | | -------- | --------------------------- | ----------------------- | | AKAM | Akamai Technologies, Inc. | Software (Internet) | | APLD | Applied Digital Corporation | Software (Internet) | | **CRWV** | **CoreWeave, Inc.** | **Software (Internet)** | | DOCN | DigitalOcean Holdings, Inc. | Software (Internet) | | FSLY | Fastly, Inc. | Software (Internet) | | GDDY | GoDaddy Inc. | Software (Internet) | | MDB | MongoDB, Inc. | Software (Internet) | | NET | Cloudflare, Inc. | Software (Internet) | | OKTA | Okta, Inc. | Software (Internet) | | SNOW | Snowflake Inc. | Software (Internet) | ## Required Filings See [Required Filings](/case-studies/case-study-guide#required-filings) for how the plugin determines which SEC filings are needed. | Filing | Period ends | Role | | ------ | ----------- | ------------------------------ | | 10-K | 2025-12-31 | Most Recent Annual (FY2025) | | 10-K | 2024-12-31 | Prior Year Comparison (FY2024) | **Method:** `annual_only` — the annual report was fresh enough that no quarterly bridging was required. In this case, the valuation is being performed, before the end of Q1 FY2026 and thus the most recent twelve months simply correspond to the most recent 10-K. ## Trailing Twelve-Month Financials See [Trailing Twelve-Month Financials](/case-studies/case-study-guide#trailing-twelve-month-financials) for how LTM data is extracted. Method: `annual_only`. | Metric | LTM | Prior Year | Change | | ----------------------------- | -------- | ---------- | --------------- | | Revenue | \$5.13B | \$1.92B | +168% | | Operating income (EBIT) | −\$46M | \$324M | Turned negative | | Interest expense | \$869M | \$184M | +372% | | Book value of equity | \$3.33B | −\$414M | Turned positive | | Book value of debt | \$29.82B | \$10.62B | +181% | | Cash & short-term investments | \$3.16B | \$1.36B | +132% | | Cross holdings | \$168M | \$50M | +236% | **Data gaps and warnings:** * **minority\_interest**: null — common for companies without consolidated subsidiaries * **short\_term\_debt**: null in source filing(s) — CoreWeave reports all borrowings as long-term * **long\_term\_investments**: null — no long-term bond investments reported; cross holdings computed from equity-method investments + non-marketable equity securities only * **shares\_outstanding**: null in XBRL — CoreWeave doesn't file the standard `CommonStockSharesOutstanding` tag (recent IPO). The pipeline falls back to `WeightedAverageNumberOfDilutedSharesOutstanding` (436M from the 10-K) in Lucky mode; in other modes, shares are resolved via web search (525.7M = 419M Class A + 106.7M Class B per the 10-K cover page as of Jan 31, 2026) * **effective\_tax\_rate**: 3.95% — computed from tax expense (−`$`48M) ÷ pretax income (−`$`1.2B). Because both numerator and denominator are negative, the ratio is positive but misleadingly low; the model uses the marginal tax rate (25%) from Year 1 onward, converging to the industry average (17.1%) by Year 10 **Key observations:** * Revenue nearly tripled year-over-year (`$`1.9B → `$`5.1B), but operating income swung from a `$`324M profit to a `$`46M loss — driven by the massive ramp in depreciation on GPU infrastructure and operating costs to support hyperscale contracts. Interest expense jumped from `$`184M to `$`869M as CoreWeave took on nearly `$`20B in additional debt to finance GPU cluster build-outs. Book equity flipped from negative (`$`−414M) to positive (`$`3.3B), largely from the March 2025 IPO proceeds. * Two data gaps required attention. Shares outstanding were null in the XBRL filings — CoreWeave only became public midway through FY2025, so the typical share count tags weren't populated. The plugin resolved this from market cap and share price. Pretax income was deeply negative (`$`−1.2B). The effective tax rate computes to 3.95%, but because both tax expense and pretax income are negative, this rate is used only as the base-year rate — the model switches to the marginal tax rate (25%) from Year 1 and converges to the industry average (17.1%) by Year 10. ## Shares Outstanding See [Shares Outstanding](/case-studies/case-study-guide#shares-outstanding) for how the plugin resolves share counts. $\text{Value per share} = \frac{\text{Equity value after adjustments}}{\text{Shares outstanding}}$ #### Why was the XBRL share count null? The standard XBRL tag `CommonStockSharesOutstanding` was null for CoreWeave — typical for recent IPOs where the filing entity hasn't yet populated standard share-count tags. In Feeling Lucky mode, the pipeline fell back to `WeightedAverageNumberOfDilutedSharesOutstanding` from the FY2025 10-K, which returned 436M — a fiscal-year weighted average that understates the actual share count at valuation date. #### How were the dual-class shares handled? The 10-K cover page (as of January 31, 2026) reports 419,028,081 shares of Class A common stock and 106,660,052 shares of Class B common stock, totalling 525.7M shares. CoreWeave has a dual-class structure: both classes carry the same economic rights, so they are summed for valuation purposes. This 525.7M figure was applied as a manual override, reducing the value per share from the pipeline's `$`128.17 (using 436M shares) to `$`106.29. #### Is the share count at risk of becoming stale? The share count carries staleness risk. CoreWeave IPO'd in March 2025 and has since seen rapid share count growth — from 489M at the August 2025 10-Q to 526M by January 2026. Ongoing equity compensation vesting, lockup expirations, and the NVIDIA `$`2B strategic investment (January 2026) could push the count higher. Each additional 10M shares dilutes the value per share by roughly `$`2. ## Tax Rates See [Tax Rates](/case-studies/case-study-guide#tax-rates) for how the plugin uses effective vs. marginal rates. | Tax rate | Value | Source | | ------------------------------------------ | ----- | -------------------------------------------------------------------------------------------------------- | | Effective tax rate | 3.95% | SEC filings | | Marginal tax rate | 25.0% | US statutory corporate rate | | Industry avg effective (Software/Internet) | 17.1% | [Damodaran Tax Rates dataset](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/taxrate.html) | CoreWeave's 3.95% effective tax rate is technically valid — tax expense (−`$`48M) divided by pretax income (−`$`1.2B) produces a positive ratio — but economically misleading. Both numerator and denominator are negative, so the ratio is an artefact of the company's deep operating losses rather than a reflection of its actual tax burden. The company has significant net operating loss carryforwards from years of pre-IPO losses, which will shield future taxable income. The model uses the 25% US statutory marginal rate from Year 1 onward (applied to EBIT × (1 − t) in the FCFF formula), then converges to the Software (Internet) industry average effective rate of 17.1% by Year 10. This convergence reflects the expectation that CoreWeave will gradually consume its NOL shield and settle into a tax posture more typical of mature software-infrastructure companies. The 17.1% industry average is below the 25% statutory rate because software companies commonly benefit from R\&D tax credits, stock-based compensation deductions, and international tax planning. ## Cost of Capital (WACC) See [Cost of Capital](/case-studies/case-study-guide#cost-of-capital-wacc) for how beta, cost of equity, cost of debt, and WACC are computed. The plugin computed WACC using the Detailed method. ### Beta Estimation | Component | Value | Source | | ----------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------- | | Unlevered beta (corrected for cash) | 1.591 | [Damodaran betas](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/Betas.html) > Software (Internet) — US industry average | | D/E ratio | 0.446 | Market value of debt (`$`17.6B) ÷ market cap (`$`39.4B) | | Levered beta | 2.123 | Re-levered for company's capital structure | $\beta_{levered} = \beta_{unlevered} \times (1 + (1 - t) \times D/E)$ #### Why use the industry beta instead of CoreWeave's own stock returns? The plugin uses the industry unlevered beta (1.591 for Software/Internet) rather than regressing CoreWeave's own stock returns. With barely one year of trading history since the March 2025 IPO, a regression beta would be statistically unreliable and contaminated by post-IPO volatility spikes that don't reflect the company's long-run operating risk. The D/E ratio (0.446) is computed from market values: market value of debt (`$`17.6B, estimated from book debt discounted for CoreWeave's high default spread) divided by market cap (`$`39.4B at `$`75/share × 525.7M shares). This market-value approach is consistent with Damodaran's methodology — book-value D/E would overstate leverage since CoreWeave's `$`29.8B book debt trades well below par. #### How does CoreWeave's beta compare to the industry? The resulting levered beta of 2.123 is significantly above the Software (Internet) industry average levered beta (\~1.7), reflecting CoreWeave's higher-than-industry leverage. Of the total 2.123 levered beta, 1.591 (75%) comes from operating risk and 0.532 (25%) from financial leverage. If CoreWeave increases debt further to fund its `$`30-35B 2026 capex plan, or if the equity declines, the D/E ratio would rise and push levered beta — and cost of equity — even higher. ### Cost of Equity $K_e = R_f + \beta_{levered} \times ERP$ | Component | Value | Source | | -------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------- | | Risk-free rate | 4.23% | 10-year US Treasury yield (fallback) | | Equity risk premium | 4.46% | [Damodaran country ERP](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ctryprem.html) — United States | | Country risk premium | 0.23% | [Damodaran country risk premium](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ctryprem.html) — United States | | **Cost of equity** | **13.70%** | $K_e = R_f + \beta_{levered} \times ERP$ | The cost of equity builds up as: $K_e = 4.23\% + 2.123 \times 4.46\% = 13.70\%$. The risk-free rate (4.23%) comes from the 10-year US Treasury yield. The equity risk premium (4.46%) is Damodaran's estimate for the United States, which includes a small country risk premium of 0.23% reflecting US sovereign risk. At 13.70%, CoreWeave's cost of equity is high but reasonable for a pre-profit, heavily-leveraged GPU infrastructure company. For context, stable large-cap tech companies typically carry a cost of equity of 8–10%, and even high-growth software names rarely exceed 12%. The premium here is driven almost entirely by the levered beta (2.123) — CoreWeave's operating risk combined with its aggressive capital structure makes equity investors demand a meaningful return above the market. As the company matures and D/E normalizes, the levered beta should decline toward the industry average, pulling cost of equity down toward 11–12%. ### Cost of Debt $K_d = (R_f + \text{default spread}) \times (1 - t)$ | Component | Value | Source | | ----------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------- | | Interest coverage ratio (ICR) | −0.053 | EBIT ÷ interest expense (LTM) | | Synthetic rating | D2/D | [Damodaran synthetic rating table](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ratings.html) → ICR lookup | | Default spread | 19.0% | [Damodaran synthetic rating spreads](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ratings.html) → D rating | | Country default spread | 0.23% | [Damodaran country risk premium](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ctryprem.html) — United States | | Pre-tax cost of debt | 23.46% | Risk-free rate + default spread + country spread | | **After-tax cost of debt** | **17.60%** | $K_d = (R_f + \text{spread}) \times (1 - t)$ | #### What does a negative interest coverage ratio mean? The interest coverage ratio (ICR) is −0.053, meaning CoreWeave's operating income doesn't cover even 5% of its annual interest payments. In plain terms, the company loses money before interest — EBIT is −`$`46M against `$`869M in interest expense. Damodaran's synthetic rating table maps this to D2/D, the lowest rating category — equivalent to default territory on the familiar S\&P/Moody's scale (below CCC). This triggers a 19.0% default spread, roughly 10× the 1–2% spread a BBB-rated investment-grade company would pay. Adding the risk-free rate (4.23%) and country spread (0.23%) gives a pre-tax cost of debt of 23.46%, reduced to 17.60% after the marginal tax shield. #### Will CoreWeave's cost of debt stay this high? Even 17.60% is extraordinarily high — for context, most investment-grade corporates pay 5–7% after-tax. However, this rating reflects a transient phase, not a permanent condition. CoreWeave recently closed an `$`8.5B term loan with A3/A(low) ratings by securing it against GPU assets, suggesting the market views the company's creditworthiness very differently from what the synthetic rating implies. As CoreWeave grows into its debt load and EBIT turns positive, the ICR should improve rapidly, pulling the synthetic rating (and cost of debt) down toward more reasonable levels. ### Weighted Average $WACC = W_e \times K_e + W_d \times K_d \times (1 - t)$ | Component | Weight | Cost | | --------- | ------ | ------------------ | | Equity | 69.2% | 13.70% | | Debt | 30.8% | 17.60% (after tax) | | **WACC** | | **14.90%** | #### Why is CoreWeave's WACC so far above the industry average? CoreWeave's 14.90% WACC is 40% above the Software (Internet) industry average of 10.66%. Both sides of the capital structure contribute to the premium: the 13.70% cost of equity (driven by a 2.1× levered beta from high leverage) and the 17.60% after-tax cost of debt (driven by the D2/D synthetic rating) are both well above typical industry levels. The 69/31 equity-debt weighting means debt's high cost pulls WACC up significantly — if CoreWeave had no debt at all, cost of capital would be closer to 13% (just cost of equity). Conversely, if the company were investment-grade (say, 5% after-tax Kd), the blended WACC would drop to roughly 11%. #### Will WACC decline as CoreWeave matures? WACC should decline materially as CoreWeave matures. The DCF forecast schedule decays from 13.40% in Year 1 to 8.69% at terminal (risk-free rate + ERP). This path assumes the company grows into profitability, refinances high-cost debt at tighter spreads, and sees its synthetic rating improve from D to investment-grade territory. The decline is front-loaded — by Year 3, WACC has already fallen to 11.0% — reflecting the expectation that the most significant risk reduction happens early as CoreWeave establishes a track record and begins generating positive operating income. ## Forecasts See [Forecasts](/case-studies/case-study-guide#forecasts) for how the plugin selects convergence curves and anchors each variable. See [S-Curve Convergence Library](/case-studies/case-study-guide#s-curve-convergence-library) for the six available curve shapes. ### Guidance Review See [Guidance Review](/case-studies/case-study-guide#guidance-review) for how the plugin extracts and reconciles earnings guidance. The plugin extracted guidance from CoreWeave's Q4 2025 earnings call (February 26, 2026), stored in `guidance-Q4-2025.json`. Three variables were overridden: **Revenue Year 1** — Management guided "`$`12 billion to `$`13 billion, representing approximately 140% growth year over year." The plugin used the conservative `$`12B (low end), implying 133.9% growth. This replaced the LTM-derived default of 167.9% — a meaningful downward adjustment that reflects management's own expectation of deceleration from the explosive FY2025 growth. Confidence: high (direct guidance with specific dollar range). **Operating Margin Year 1** — Management guided "adjusted operating income of `$`900 million to `$`1.1 billion." The plugin derived this as 7.5% adjusted margin (`$`900M / `$`12B), then subtracted an estimated 5.25pp SBC load to arrive at 2.2% GAAP margin. This replaced the LTM-derived default of −0.9%, moving the starting margin from negative to slightly positive. Confidence: medium (derived from adjusted guidance, GAAP conversion introduces estimation error). **Operating Margin Year 10** — Management stated "25% to 30% margins over the long term." Using the conservative 25% adjusted figure and deducting an estimated 5pp SBC at maturity gives a 20.0% GAAP target. This replaced the industry average default of 3.7% — by far the most impactful override, as it raises the terminal EBIT by roughly 5× relative to the industry default. The guidance is current as of the valuation date (April 1, 2026): the Q4 earnings call occurred just five weeks prior, and no subsequent 8-K has revised the outlook. ### Revenue Growth $\text{Revenue}_t = \text{Revenue}_{t-1} \times (1 + g_t)$ where $g_t$ follows the selected convergence curve from $g_1$ (Year 1 anchor) to $g_{10}$ (industry target). Terminal growth is capped at the risk-free rate ($r_f$ = 4.23%). Revenue growth convergence curve — exponential decay from 133.9% to 29.2% over 10 years Curve: Exponential Decay — selected because the 134% → 29% gap exceeds 100pp, characteristic of hyper-growth companies where more than 50% of deceleration occurs in the first three years. Year 1 is anchored to Q4 2025 earnings guidance (`$`12B low end, 134% implied growth) rather than raw LTM growth of 168%. Year 10 converges to the Software (Internet) industry 5-year average CAGR of 29.2%. #### Why did the plugin override LTM growth with guidance? The plugin overrode the LTM-derived 168% growth with 134% because management explicitly guided "`$`12 billion to `$`13 billion, representing approximately 140% growth year over year" — using the lower bound is conservative. The exponential decay curve was selected automatically by the LLM classifier because the start-to-end gap exceeds 100pp, a pattern characteristic of companies transitioning from hyper-growth to industry-normal rates. #### Is the 29.2% Year 10 growth target the right benchmark? The 29.2% Year 10 target deserves scrutiny. Software (Internet) is CoreWeave's Damodaran classification, but the company's physical GPU infrastructure has more in common with Computer Services or Semiconductor Equipment than with asset-light SaaS. A lower terminal growth rate (15–20%) might be more appropriate for a capital-intensive infrastructure business at scale. That said, the AI compute market is expanding rapidly, and CoreWeave's `$`66.8B contracted backlog provides unusual revenue visibility. #### Does exponential decay fit a contracted-revenue business? There is a meaningful tension between the exponential decay curve shape — which front-loads deceleration — and CoreWeave's contracted revenue model. Multi-year GPU commitments from Microsoft, OpenAI, and Meta could sustain above-industry growth longer than exponential decay assumes. A delayed deceleration or step-down curve might better reflect the backlog runway, which would increase the valuation. ### Operating Margin $\text{EBIT}_t = \text{Revenue}_t \times m_t$ where $m_t$ follows the selected convergence curve from $m_1$ to $m_{10}$. Operating margin convergence curve — standard S-curve from 2.2% to 20.0% over 10 years Curve: Standard S-Curve — selected for the moderate-gap margin expansion from 2.2% to 20.0%. Year 1 is anchored to Q4 2025 earnings guidance (adjusted operating income of `$`900M–`$`1.1B on \~`$`12B revenue = 7.5–8.5% adjusted; GAAP-equivalent = 2.2% after \~5.3pp SBC adjustment). Year 10 target of 20.0% reflects management's long-term guidance of 25–30% adjusted margins, converted to GAAP by deducting an estimated 5pp SBC load at maturity. This overrides the Software (Internet) industry average of 3.7%. #### How does the SBC bridge work from adjusted to GAAP margin? The SBC bridge works as follows: management guides adjusted operating income of `$`900M on `$`12B revenue (7.5% adjusted margin), but this excludes stock-based compensation. CoreWeave's FY2025 SBC ran at approximately 5.3% of revenue. Subtracting this gives a GAAP margin of roughly 2.2%, which is the Year 1 anchor. By Year 10, SBC as a percentage of revenue should decline as the denominator grows; the model assumes 5pp at maturity. #### Is a 20% terminal margin realistic for GPU infrastructure? The 20% GAAP terminal margin (25% adjusted minus 5pp SBC) is aggressive relative to the 3.7% Software (Internet) industry average, but defensible. CoreWeave's GPU infrastructure model has high fixed costs (depreciation on GPU clusters) but strong operating leverage as utilization increases — contribution margins on mature contracts already reach the mid-20s. The S-curve shape is appropriate here: margin expansion is slow in years 1–3 (as new GPU capacity comes online and depreciation ramps) and accelerates in years 4–7 as contracted revenue fills installed capacity. This is the single most sensitive assumption in the model. If the industry default margin of 3.7% were used instead of the 20% guidance target, terminal EBIT would be roughly 5× lower, collapsing the valuation from `$`106/share to well below the current market price. ### Sales-to-Capital Ratio $\text{Reinvestment}_t = \frac{\text{Revenue}_t - \text{Revenue}_{t-1}}{S/C_t}$ Sales-to-capital ratio convergence — step-down from 0.23x to 1.35x over 10 years Curve: Step-Down — selected because the current S/C ratio (0.17x) is less than 30% of the industry target (1.35x), indicating a heavy capital build-out phase. The step-down curve holds the ratio at \~0.23x during years 1–3 (ongoing GPU infrastructure deployment), transitions through a ramp in years 4–5 as contracted capacity comes online, then plateaus at \~1.29x for years 6–9 before reaching the industry average of 1.35x in Year 10. Year 1 is slightly above the LTM 0.17x because guidance-implied capex of `$`30–35B on `$`12B revenue suggests marginally improving efficiency. #### Why is CoreWeave's capital efficiency so far below the industry average? The 0.17x LTM ratio means CoreWeave generates only `$`0.17 of incremental revenue for every `$`1 of incremental invested capital — a consequence of being in the middle of a massive GPU cluster build-out, spending `$`23B+ annually against `$`5B of revenue. This is typical of infrastructure companies in the pre-scale phase: the assets are deployed before revenue fully ramps. #### How does the step-down curve model the "build to harvest" transition? The step-down curve reflects this story. Years 1–3 hold the ratio at \~0.23x as CoreWeave continues deploying capacity for its `$`66.8B contracted backlog. Years 4–5 see a utilization jump (to \~1.04x) as contracted demand catches up to installed capacity — this is when the company transitions from "build" to "harvest" mode. Years 6–9 plateau near 1.29x, converging to the Software (Internet) industry average of 1.35x. #### Is 1.35x the right S/C target for a hardware-intensive company? Whether 1.35x is the right terminal target is debatable. Pure software companies average much higher S/C ratios because they are asset-light. CoreWeave's physical GPU infrastructure will always require heavier capital investment than a SaaS business. A "Computer Services" or "Semiconductor Equipment" comp (typically 0.8–1.0x) might be more realistic. If S/C were capped at 0.5x instead of converging to 1.35x, reinvestment would roughly triple and the valuation would collapse — making this the most sensitive assumption in the entire model. ### Cost of Capital The headline WACC (14.90%) was computed in the [Cost of Capital section above](#cost-of-capital-wacc) using the Detailed method. The DCF forecast schedule starts Year 1 at 13.40% — the first step of the exponential decay — and converges to the terminal target: $WACC_{terminal} = r_f + ERP = 4.23\% + 4.46\% = 8.69\%$ Cost of capital convergence — exponential decay from 14.90% to 8.69% over 10 years Curve: Exponential Decay — selected because the spread between the initial WACC (14.90%) and the terminal target (8.69%) exceeds 5 percentage points. Exponential decay front-loads the WACC decline, reflecting the expectation that the largest risk reduction occurs early as the company establishes a track record, refinances high-cost debt, and credit spreads tighten. By Year 3, WACC has already fallen to 11.0%, and by Year 5 to 9.9%. The remaining convergence is gradual as the final basis points of risk premium erode. #### Can CoreWeave grow into its cost of capital? The initial WACC of 14.90% is driven by the D2/D synthetic rating — a consequence of negative EBIT and an ICR of −0.05x. The exponential decay convergence assumes CoreWeave will grow into its debt rather than delever conventionally: as revenue scales and EBIT turns positive, the ICR improves, the synthetic rating upgrades, and the cost of debt falls. This is realistic given the `$`66.8B contracted backlog, but the pace of improvement depends on whether the company can convert bookings into operating profit while simultaneously funding `$`30B+ annual capex. #### Is the 8.69% terminal WACC realistic for GPU infrastructure? The terminal WACC of 8.69% ($R_f + ERP$) assumes convergence to market-average risk. This may be slightly optimistic for a GPU infrastructure company with concentrated customer risk — Microsoft still accounts for a large share of revenue, and the AI compute market could face cyclical swings. A persistent 50–100bp premium over the market cost of capital (say, 9.2–9.7% terminal) would reduce the valuation by roughly 5–10%. Note the model pre-computes the full WACC schedule independently of the DCF projection, sidestepping the circular dependency where WACC affects discount factors which affect present value. ## Employee Stock Options See [Employee Stock Options](/case-studies/case-study-guide#employee-stock-options) for how the plugin values option claims. | Field | Value | | -------------------- | ------------------------------------------------------- | | Options detected | Yes | | Option value applied | \$0 (Options detected — Black-Scholes computation TODO) | The plugin detected that CoreWeave has employee stock options but assigned a `$`0 value — the Black-Scholes computation is a known TODO for recent IPOs where volatility history is too short and option grant disclosures may be sparse. This means the value per share (`$`106.29) is slightly overstated because the equity bridge doesn't deduct any option claim. #### How much could unvalued options reduce the per-share value? To quantify the potential impact: CoreWeave's 10-K discloses equity compensation primarily in the form of RSUs and stock options. As a recently-public company with heavy equity compensation (SBC running at \~5% of revenue), the total dilutive impact could be material. If the company has roughly 30–50M options outstanding with a weighted-average exercise price around `$`40 (typical for pre-IPO grants), the dilution-adjusted Black-Scholes value could be `$`1–3B, reducing the per-share value by `$`2–6. At the upper end, this would bring the estimated value per share closer to `$`100–104, narrowing the gap with the `$`75 market price. This is a conservative omission — the actual impact depends on the strike prices, vesting schedules, and remaining contractual life of the options, which should be available in the equity compensation footnotes of future filings. ## DCF Model Output See [DCF Model Output](/case-studies/case-study-guide#dcf-model-output) for how the FCFF projection, terminal value, and equity bridge work. $\text{FCFF}_t = \text{EBIT}_t \times (1 - t_t) - \text{Reinvestment}_t$ ### 10-Year FCFF Projection | Year | Revenue | Growth | EBIT Margin | EBIT | After-tax EBIT | Reinvestment | FCFF | ROIC | | -------- | -------- | ------ | ----------- | -------- | -------------- | ------------ | ----------- | ----- | | Base | \$5.13B | — | -0.9% | −\$46M | −\$46M | — | — | 0.0% | | 1 | \$12.0B | 133.9% | 2.2% | \$270M | \$202M | \$52.2B | −\$52.0B | 0.7% | | 2 | \$24.0B | 100.1% | 2.6% | \$620M | \$465M | \$80.7B | −\$80.2B | 0.6% | | 3 | \$42.6B | 77.3% | 3.4% | \$1.46B | \$1.09B | \$114.4B | −\$113.3B | 0.7% | | 4 | \$68.9B | 61.8% | 5.4% | \$3.69B | \$2.77B | \$74.1B | −\$71.3B | 1.0% | | 5 | \$104.2B | 51.3% | 8.9% | \$9.28B | \$6.96B | \$44.1B | −\$37.1B | 2.0% | | 6 | \$150.2B | 44.2% | 13.3% | \$20.0B | \$15.4B | \$45.8B | −\$30.4B | 3.9% | | 7 | \$209.3B | 39.3% | 16.9% | \$35.3B | \$27.6B | \$58.5B | −\$30.8B | 6.3% | | 8 | \$284.8B | 36.1% | 18.8% | \$53.6B | \$42.7B | \$74.6B | −\$31.9B | 8.6% | | 9 | \$381.1B | 33.8% | 19.7% | \$75.0B | \$60.9B | \$86.1B | −\$25.2B | 10.6% | | 10 | \$492.4B | 29.2% | 20.0% | \$98.5B | \$81.6B | \$15.4B | **\$66.2B** | 12.4% | | Terminal | \$513.2B | 4.2% | 20.0% | \$102.6B | \$85.0B | \$41.4B | \$43.6B | 8.7% | The projection tells a stark story: FCFF remains deeply negative for nine consecutive years, turning positive only in Year 10 at `$`66.2B. This means the entire valuation depends on the terminal value and the final projection year — a highly fragile structure. #### Is \$492 billion in Year 10 revenue plausible? Revenue reaches `$`492B by Year 10. For context, AWS generated roughly `$`100B in 2025 revenue and Microsoft Azure approximately `$`80B. At `$`492B, CoreWeave would be larger than any existing cloud infrastructure provider — a scale that, while not impossible in an AI-driven demand environment, requires the total addressable market for GPU compute to expand dramatically. The `$`66.8B contracted backlog provides near-term visibility but covers only a fraction of this trajectory. #### When does CoreWeave start creating value? ROIC climbs from 0.7% in Year 1 to 12.4% in Year 10, crossing the cost of capital (\~8.7%) around Year 9. This crossing point is when the company transitions from value destruction to value creation — for the first eight years, every dollar of invested capital earns less than its cost. Reinvestment is massive throughout: `$`52B in Year 1, peaking at `$`114B in Year 3, driven by the 0.23x sales-to-capital ratio during the GPU build-out phase. Only in Year 10, when S/C jumps to 1.35x, does reinvestment drop enough for FCFF to turn positive. The tax rate fades from 25% (marginal, used in lieu of the misleading 3.95% effective rate) in early years to 17.1% (Software/Internet industry average) by Year 10, reflecting the gradual consumption of NOL carryforwards and convergence to normal software-industry tax posture. ### Terminal Value $TV = \frac{\text{FCFF}_{terminal}}{WACC_{terminal} - g_{terminal}}$ | Component | Value | | ------------------------ | ------------ | | Terminal FCFF | \$43.6B | | Terminal cost of capital | 8.69% | | Terminal growth rate | 4.23% | | **Terminal value** | **\$978.6B** | | PV of terminal value | \$370.2B | The terminal value of `$`978.6B is enormous — but discounted at the 8.69% terminal WACC over 10 years, it shrinks to `$`370.2B in present-value terms (a roughly 62% discount). The magnitude reflects the assumption that CoreWeave will generate `$`43.6B in terminal FCFF growing at 4.23% in perpetuity. #### Does CoreWeave earn excess returns in perpetuity? Terminal ROIC is set equal to the terminal cost of capital (8.69%), which is Damodaran's default excess-return fade assumption. This means the company earns exactly its cost of capital in perpetuity, creating zero excess value beyond Year 10. This is conservative for a company that might develop network effects or switching costs, but reasonable given the relatively commodity nature of GPU compute — cloud infrastructure is ultimately differentiated more by scale and relationships than by proprietary technology. The terminal growth rate of 4.23% equals the risk-free rate, the standard ceiling for sustainable growth in a perpetuity model. No company can grow faster than the economy indefinitely, and setting terminal growth equal to the risk-free rate is Damodaran's default. #### What is the implied terminal reinvestment rate? The implied terminal reinvestment rate is $g / ROIC = 4.23\% / 8.69\% = 48.7\%$ — meaning nearly half of terminal after-tax earnings must be reinvested just to sustain the growth rate. Only the remaining 51.3% flows to investors as free cash flow. ### Present Value Breakdown | Component | Value | % of Total | | ------------------------------- | ----------- | ---------- | | PV of FCFFs (years 1–10) | −\$287.9B | −349% | | PV of terminal value | \$370.2B | 449% | | **Operating value of the firm** | **\$82.4B** | 100% | This is an extreme example of a terminal-value-driven valuation. The PV of operating-year cash flows is deeply negative (−`$`287.9B) because the company burns cash for 9 of 10 projection years. The entire firm value (`$`82.4B) plus the operating-year losses are carried by the terminal value (`$`370.2B). #### How fragile is a 449% terminal-value-driven model? Expressed as a ratio: PV of terminal value ÷ operating value = 449%. The terminal value doesn't just dominate the valuation — it must overcome `$`287.9B of present-value destruction during the forecast period to produce a positive firm value. For comparison, even aggressive tech DCFs typically show 70–80% terminal value reliance. At 449%, this model is roughly 5–6× more terminal-value-dependent than a typical growth-company valuation. This makes the valuation extremely fragile. A 1 percentage point increase in terminal WACC (from 8.69% to 9.69%) would reduce terminal value by roughly 20%, erasing most of the equity value. Similarly, if the Year 10 operating margin landed at 15% instead of 20%, terminal FCFF would fall proportionally and the value per share would drop by `$`20–30. Any investor relying on this DCF should understand that the value estimate is a function of what happens beyond Year 10 — not during the forecast period. ### Equity Bridge $\text{Value per share} = \frac{\text{Operating assets} - \text{Debt} - \text{Minority interests} + \text{Cash} + \text{Non-operating assets} - \text{Options}}{\text{Shares outstanding}}$ | Component | Value | | --------------------------------------- | ------------ | | Operating value of the firm | \$82.4B | | − Debt | \$29.8B | | − Minority interests | \$0 | | + Cash & short-term investments | \$3.2B | | + Non-operating assets (cross holdings) | \$0.2B | | **= Equity value** | **\$55.9B** | | − Employee stock option value | \$0 | | **= Equity in common stock** | **\$55.9B** | | ÷ Shares outstanding | 525.7M | | **= Value per share** | **\$106.29** | Debt of `$`29.8B is the single largest deduction, absorbing 36% of the operating value. This is the book value of debt; the market value used in the WACC calculation was `$`17.6B — significantly lower because CoreWeave's high-cost debt trades at a discount to par. The DCF uses book value in the equity bridge (consistent with Damodaran's methodology) since this represents the actual repayment obligation. Cash of `$`3.2B partially offsets the debt, but the net debt position (`$`29.8B − `$`3.2B = `$`26.6B) is still large relative to the `$`82.4B operating value. Non-operating assets of `$`0.2B represent cross holdings (equity-method investments and non-marketable equity securities) — immaterial in this case. The option value is `$`0 because the Black-Scholes computation is a TODO for this recent IPO. As noted above, the actual dilution could reduce value per share by `$`2–6. #### How did the share count override affect the valuation? Shares outstanding were manually overridden from the SEC XBRL-reported 436M (fiscal-year weighted average) to 525.7M (419M Class A + 106.7M Class B per the 10-K cover page as of January 31, 2026). This single override reduced value per share from the pipeline default of `$`128.17 to `$`106.29 — a `$`22/share reduction that underscores the importance of using the correct, up-to-date share count. The final value of `$`106.29/share implies 41.7% upside to the `$`75.00 market price. However, given the extreme terminal-value reliance (449%) and the aggressive assumptions embedded in the forecast (20% terminal margin, `$`492B Year 10 revenue), this should be treated as a best-case scenario rather than a point estimate. ## The Verdict See [The Verdict](/case-studies/case-study-guide#the-verdict) for how the base case, bear case, and bull case are constructed. | Metric | Value | | ------------------------- | -------- | | Intrinsic value per share | \$106.29 | | Market price | \$75.00 | | Price as % of value | 70.6% | | Implied upside | 41.7% | #### What are the three most sensitive levers? The model estimates `$`106.29/share against a `$`75.00 market price, implying 41.7% upside. Before accepting this at face value, consider the three most sensitive levers: 1. **Terminal operating margin (20% vs. 3.7% industry default)** — This is the single largest driver. The 20% target comes from management guidance (25–30% adjusted, converted to GAAP). If the industry default of 3.7% were used instead, terminal EBIT would be roughly 5× lower and the valuation would collapse to well below the current market price. 2. **Sales-to-capital convergence (0.23x → 1.35x)** — The model assumes CoreWeave's capital efficiency improves dramatically as it transitions from "build" to "harvest" mode. If S/C remains at 0.5x (still 3× the current level but well below the 1.35x target), reinvestment in the later years would roughly triple, pushing FCFF negative for the entire 10-year forecast. 3. **Terminal value carries 449% of operating value** — The PV of operating-year cash flows is −`$`288B, meaning the terminal value must overcome nearly a decade of value destruction. Small changes to terminal WACC or terminal growth produce outsized swings. All three diagnostic flags fire: forecasted growth exceeds 2× the industry average, Year 10 revenue exceeds 10× current revenue, and the target margin exceeds 2× the industry average. These aren't modelling errors — they reflect the reality of valuing a hyper-growth, pre-profit company — but they should calibrate the reader's confidence in the point estimate. ### Bear Case In the bear case, two key assumptions are dialled back to reflect a more pessimistic but still plausible scenario: * **Terminal operating margin: 3.7%** (industry average instead of management's 20% target). If competition from hyperscalers (AWS, Azure, GCP) intensifies and CoreWeave's capital-intensive model prevents the margin expansion management envisions, margins could settle near the industry average rather than 5× above it. * **Sales-to-capital ratio: capped at 0.7x** (instead of converging to 1.35x). Physical GPU infrastructure will always require heavier reinvestment than asset-light software. A 0.7x terminal S/C means the company generates only `$`0.70 of incremental revenue per `$`1 of invested capital. Revenue growth is kept unchanged (anchored to earnings guidance). Under these assumptions, the terminal EBIT falls from `$`103B to roughly `$`19B, reinvestment stays elevated throughout the forecast, and FCFF never reaches the `$`66B Year 10 level in the base case. The implied value per share drops to approximately `$`15–25, well below the `$`75 market price — implying the stock is significantly overvalued in the bear case. This scenario is not far-fetched. It essentially asks: what if CoreWeave turns out to be a good revenue-growth company but a mediocre-margin, capital-hungry infrastructure business? ### Bull Case In the bull case, three assumptions are pushed toward the optimistic end of the plausible range: * **Terminal operating margin: 25% GAAP** (management's upper-bound of 30% adjusted, minus 5pp SBC). This reflects full operating leverage on GPU infrastructure with long-term contracts, where contribution margins on mature capacity reach the mid-20s and overhead scales more slowly than revenue. * **Revenue growth: delayed deceleration curve** instead of exponential decay. CoreWeave's `$`66.8B contracted backlog and multi-year commitments from Microsoft, OpenAI, and Meta could sustain above-industry growth into years 4–5 rather than decelerating immediately. This would produce roughly 15–20% higher cumulative revenue over the forecast period. * **Sales-to-capital ratio: 1.5x by Year 10** (above the 1.35x industry average). As existing GPU clusters are filled to capacity and the company shifts from net-new builds to upgrades and replacements, capital efficiency could exceed the industry norm. Under these assumptions, the implied value per share rises to approximately `$`180–220, representing 140–190% upside from the `$`75 market price. The analyst consensus price target of `$`121 falls roughly at the midpoint between the base case (`$`106) and the bull case. The bear-to-bull range of `$`15–220 captures the extraordinary uncertainty in this valuation. The `$`200+ spread between the scenarios reflects the fragility of the terminal-value-driven model and the sensitivity to margin and reinvestment assumptions. ## Diagnostic Flags See [Diagnostic Flags](/case-studies/case-study-guide#diagnostic-flags) for the six checks the plugin evaluates. **Check 1 — Revenue Growth:** Forecasted growth of 133.9% exceeds 2× the Software (Internet) industry average of 29.2%. **Check 2 — Dollar Revenues:** Year 10 revenue of $492B exceeds 10× the current revenue of $5.1B. At this scale, the company would be larger than any existing cloud infrastructure provider. **Check 3 — Operating Margins:** Target margin of 20.0% exceeds 2× the Software (Internet) industry average of 3.7%. This is driven by management's long-term guidance rather than the industry default. All three diagnostic flags fire on the aggressive side. This is not surprising for a hyper-growth, pre-profit company, but it means the valuation should be treated as a best-case scenario rather than a conservative base case. **Check 1 (Revenue Growth):** The 133.9% Year 1 growth is anchored to earnings guidance, so it isn't a model invention — management explicitly guided `$`12–13B. But the exponential decay curve still assumes 29.2% growth in Year 10, which is the Software (Internet) industry average, not a discount to it. For a `$`492B company, 29.2% growth implies adding `$`144B of revenue in Year 10 alone. **Check 2 (Dollar Revenues):** `$`492B in Year 10 would make CoreWeave roughly 5× the size of AWS's current annual revenue. Even in an AI-driven demand scenario, this scale is extraordinary. The `$`66.8B contracted backlog provides near-term visibility but covers only a fraction of the cumulative revenue implied by this trajectory. The total addressable market for GPU cloud compute would need to expand by an order of magnitude. **Check 3 (Operating Margins):** The 20% GAAP target comes from management guidance (25–30% adjusted → 20% GAAP after SBC deduction). This is a credible aspiration — CoreWeave's contribution margins on mature contracts already reach the mid-20s — but it is not an industry-derived expectation. If competition from hyperscalers compresses margins or if hardware refresh cycles prove more expensive than anticipated, the 20% target may not materialise. #### Which diagnostic checks passed, and what does that tell us? Reinvestment consistency (Step 4) and risk convergence (Step 5) both passed, meaning the model is internally consistent — ROIC converges above the cost of capital by Year 10, and the reinvestment rates implied by the S/C schedule are achievable given the revenue trajectory. The model is aggressive but not incoherent. ## What This Case Study Demonstrates This CoreWeave valuation exercises several edge cases that stress-test the plugin's capabilities: 1. **Recent IPO with sparse XBRL data** — Shares outstanding were null in the XBRL filings, requiring a fallback to the weighted-average diluted count (436M) and ultimately a manual override to 525.7M from the 10-K cover page. The effective tax rate (3.95%) was mathematically valid but economically misleading (two negative numbers). Employee stock option data was too sparse for Black-Scholes valuation. 2. **Pre-profitability company** — Negative EBIT (−`$`46M) produced a negative interest coverage ratio (−0.053), triggering the D2/D synthetic credit rating and a 19% default spread — the highest in Damodaran's table. This cascades into a 23.5% pre-tax cost of debt, which would be implausible for a company that just raised `$`8.5B in investment-grade secured financing. 3. **Extreme terminal-value reliance** — The PV of operating-year FCFFs was deeply negative (−`$`288B), making this a 449% terminal-value-driven valuation — far beyond the typical 70–80% range. This is an inherent feature of valuing companies with years of negative cash flow ahead. 4. **Earnings guidance integration** — The plugin extracted three guided variables from the Q4 2025 earnings call (revenue Year 1, operating margin Year 1, operating margin Year 10), each with an SBC bridge to convert adjusted figures to GAAP-equivalent inputs. This overrode LTM-derived defaults with forward-looking anchors. 5. **Four distinct convergence curves** — Exponential decay for revenue growth and cost of capital, standard S-curve for operating margin, and step-down for sales-to-capital. Each curve shape was selected by the LLM classifier based on the gap between current values and terminal targets. 6. **Manual override workflow** — The share count override reduced value per share by `$`22 (from `$`128 to `$`106), demonstrating why the override mechanism exists and how a single data correction can materially change the output. ## References **Company Filings & Data:** * [CoreWeave FY2025 10-K](https://s205.q4cdn.com/133937190/files/doc_financials/2025/q4/CoreWeave-Inc-FY25-10-K-7.pdf) — Full annual report for fiscal year ending December 31, 2025 * [CoreWeave SEC Filings (EDGAR)](https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany\&CIK=0001769628\&type=\&dateb=\&owner=include\&count=40) — All SEC filings for CIK 0001769628 * [CoreWeave Investor Relations](https://investors.coreweave.com/financials/quarterly-results/default.aspx) — Quarterly results, earnings presentations, and press releases * [Damodaran Betas by Industry](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/Betas.html) — Source for the Software (Internet) unlevered beta (1.591) * [Damodaran Synthetic Rating Spreads](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ratings.html) — Source for the D2/D rating and 19% default spread * [Damodaran Country ERP](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ctryprem.html) — Source for the US equity risk premium (4.46%) **Earnings & Analysis:** * [CoreWeave Q4 2025 Earnings Call Transcript (Motley Fool)](https://www.fool.com/earnings/call-transcripts/2026/02/27/coreweave-crwv-q4-2025-earnings-call-transcript/) — Full transcript with `$`12–13B FY2026 revenue guidance and 25–30% long-term margin target * [CoreWeave Q4 2025 Earnings Report (CNBC)](https://www.cnbc.com/2026/02/26/coreweave-crwv-q4-earnings-report-2025.html) — Coverage of Q4 results including EPS miss and guidance breakdown * [The Bull Case and Bear Case for CoreWeave (Motley Fool)](https://www.fool.com/investing/2026/03/14/the-bull-case-and-bear-case-for-coreweave-stock/) — Balanced analysis of upside and downside scenarios * [CoreWeave Stock Forecast: Debt and Delays (Baptista Research)](https://baptistaresearch.com/coreweave-stock-forecast-2026-ai-debt-crash/) — Analysis of CoreWeave's debt structure and execution risks **Industry Context:** * [CoreWeave Deep Dive: From Crypto to AI Infrastructure (Introl)](https://introl.com/blog/coreweave-gpu-cloud-ai-infrastructure-deep-dive-2025) — Comprehensive overview of CoreWeave's pivot from crypto mining to GPU cloud * [CRWV Analysis: AI Backlog of \$66.8B (MEXC)](https://blog.mexc.com/finance/crwv-stock-analysis-ai-backlog-coreweave-inflection-point/) — Analysis of CoreWeave's contracted backlog and customer concentration * [CoreWeave's \$55B Backlog and the Neocloud Boom (Stansberry)](https://stansberryresearch.com/stock-market-trends/coreweaves-55-billion-backlog-marks-the-next-phase-of-the-neocloud-boom) — Context on the neocloud market including the Meta partnership # Data Handling Source: https://valuation-101.com/docs/data-pipeline How SEC EDGAR XBRL data flows from raw API response to structured valuation inputs. ## Overview The data pipeline transforms a raw SEC EDGAR API response into the exact financial inputs that Damodaran's fcffsimpleginzu Input sheet requires. The entire pipeline is deterministic — given the same company and valuation date, it produces identical outputs every time. ``` [1] identify-required-statements ↓ statements_required_{date}.json [2] pull-raw-data ↓ companyfacts.json (5–15 MB) [3] parse-raw-data-to-filings ↓ company-facts-keys.json ↓ csv/{tag}.csv ↓ {form}_{period_end}_raw.json [4] last-twelve-months ↓ ltm_{date}.json → Damodaran Input sheet column B [5] last-10-k ↓ last_10k_{date}.json → Damodaran Input sheet column C ``` Steps 2 and 3 are skipped entirely if all required `_raw.json` files are already cached. ## Data source The SEC EDGAR XBRL API provides every fact a company has ever filed: ``` GET https://data.sec.gov/api/xbrl/companyfacts/CIK{padded_cik}.json ``` This returns all reported concepts across all filing dates, form types, and periods under US-GAAP, DEI, and other XBRL taxonomies. It is the single authoritative source for all financial data in this pipeline. SEC requires a `User-Agent` header identifying the caller. The plugin sends `ValuationPlugin admin@example.com` per SEC policy. ## Caching strategy All fetched and parsed data is cached per-ticker at `data/cache/{TICKER}/`: | File | Created by | Reuse rule | | --------------------------------- | ---------------------------- | -------------------------------- | | `companyfacts.json` | pull-raw-data | Refreshed if older than 24 hours | | `companyfacts_fetched.txt` | pull-raw-data | Timestamp of last fetch | | `statements_required_{date}.json` | identify-required-statements | One per valuation date | | `company-facts-keys.json` | parse-raw-data-to-filings | Refreshed with companyfacts | | `csv/{tag}.csv` | parse-raw-data-to-filings | Refreshed with companyfacts | | `{form}_{period}_raw.json` | parse-raw-data-to-filings | Immutable once created | | `ltm_{date}.json` | last-twelve-months | One per valuation date | | `last_10k_{date}.json` | last-10-k | One per valuation date | ## XBRL tag selection Not every XBRL tag in the companyfacts response is relevant to a DCF valuation. The pipeline filters to valuation-relevant tags and handles the fact that companies use different tags for the same concept (e.g., `Revenues` vs `RevenueFromContractWithCustomerExcludingAssessedTax`). The tag selection logic is documented in each per-filing `_raw.json` file — every extracted value includes the source tag, period, and SEC accession number for full traceability. ## LTM computation Trailing-twelve-month figures are computed differently depending on the line item type: * **Income statement items** (revenue, operating income, etc.): `Annual + Current Bridge Quarters − Prior Year Bridge Quarters` * **Balance sheet items** (assets, debt, equity): Most recent quarter-end snapshot (no summing) * **Derived items** (book value of equity, effective tax rate): Computed from the assembled components This mirrors how Damodaran assembles LTM data in his spreadsheet. # Expert Mode Source: https://valuation-101.com/docs/expert-mode Full control over every DCF assumption — for experienced analysts. ## What is Expert Mode? Expert mode gives you full control over every assumption in the valuation. The plugin presents industry benchmarks and distribution data, but you make every call: which ERP method to use, what growth rate to project, whether to capitalize R\&D, how to handle operating leases. ## When to use it * You have a specific investment thesis and want the numbers to reflect it * You disagree with industry defaults and want to override them * You're doing a detailed write-up and need to justify every input ## What you'll be asked At each phase, the plugin presents the available options with context: 1. **Cost of capital method** — Detailed (bottom-up CAPM), Industry Average, or Distribution 2. **ERP source** — manual input, country of incorporation, operating regions, or implied 3. **Earnings guidance review** — extracted forward guidance from the latest earnings call, presented alongside LTM defaults for you to accept, modify, or reject 4. **Revenue growth** — start value (year 1), end value (year 10 target), and convergence curve type (e.g., exponential decay, S-curve) 5. **Operating margin** — start value, target margin, and convergence curve type 6. **Sales-to-capital ratio** — start value, industry target, and convergence curve type 7. **Cost of capital convergence** — initial WACC, terminal cost of capital, and curve type 8. **R\&D capitalization** — whether to treat R\&D as investment (adjusts EBIT and invested capital) 9. **Operating lease conversion** — whether to convert leases to debt equivalents 10. **Failure probability** — bond-rating-based or age-based corporate failure rate 11. **9 default assumption overrides** — terminal ROIC, NOL carryforward, reinvestment lag, tax convergence, risk-free rate override, terminal growth override, trapped cash ## Typical session time 10–15 minutes per valuation, depending on how much you want to explore the data at each step. # Feeling Lucky Source: https://valuation-101.com/docs/feeling-lucky One-click valuation using sensible defaults — get an intrinsic value in ~2 min ## What is Feeling Lucky? Feeling Lucky runs the entire valuation pipeline with sensible defaults — no questions asked. You get an intrinsic value per share in about 2 min, then you can drill into any assumption and tweak it. ## When to use it * You want a quick sanity check on a stock price * You're screening multiple companies and need rough values fast * You want to see the full output before deciding what to customize ## How forecasts work The DCF model projects four variables over a 10-year horizon. For each variable, Feeling Lucky auto-selects three things: a **start value** (year 1), an **end value** (year 10 target), and a **convergence curve** that controls the transition shape between them. ### The four forecast variables | Variable | Start value (Year 1) | End value (Year 10) | Curve selection logic | | -------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | | **Revenue growth** | Earnings guidance (if available), else LTM growth rate | Industry 5-year average growth | Auto-classified based on gap size and growth trajectory | | **Operating margin** | Earnings guidance (if available), else LTM EBIT margin | Earnings guidance long-term target (if available), else industry average | Auto-classified based on current vs. target gap | | **Sales-to-capital ratio** | Company's current ratio (LTM revenue / invested capital) | Industry average | Auto-classified; S-curve applied when current ratio is very far from industry | | **Cost of capital** | WACC from cost-of-capital phase (industry average method) | Risk-free rate + base ERP | Auto-classified based on WACC premium over terminal | ### Convergence curves Rather than assuming a simple linear transition, the plugin selects from [six curve shapes](/lib/curve-shapes) that model how real companies evolve: | Curve | When it's auto-selected | | -------------------- | -------------------------------------------------------------------- | | Exponential Decay | High-growth company decelerating as market saturates | | Standard S-Curve | Company with a moat — holds current level before converging | | Rapid Deceleration | Very large gap between start and target, fast normalization expected | | Linear | Moderate, steady convergence | | Delayed Deceleration | Strong near-term visibility (e.g., backlog-driven revenue) | | Step-Down | Rare auto-selection; typically chosen manually in Expert mode | The curve selection is rule-based — it considers the direction (ascending vs. descending), the magnitude of the gap, and the company's recent trajectory. ## Other defaults | Assumption | Default logic | | ---------------------- | ---------------------------------------------------------------- | | Cost of capital method | Industry average WACC | | Earnings guidance | Auto-fetched from latest earnings call transcript (if available) | | R\&D capitalization | Auto-detect: capitalizes if R\&D > 5% of revenue | | Lease conversion | Auto-detect: converts if operating leases > 10% of assets | | Failure probability | Bond-rating-based if rated, age-based otherwise | ## After the quick valuation Once you see the result, you can: * **Tweak any assumption** — "What if year 1 growth is 15% instead of 12%?" * **Change a curve shape** — "Use an S-curve for margins instead of linear" * **Switch to Expert mode** — re-run with full control over all four variables * **Run diagnostics** — Damodaran's 6-step sanity check * **Generate a report** — `.docx` with full breakdown ## Typical session time \~60 seconds for the initial valuation, plus whatever time you spend tweaking afterward. # Getting Started Source: https://valuation-101.com/docs/getting-started Install the Valuation101 plugin and run your first DCF valuation in under 5 minutes. ## Prerequisites * [Claude Desktop](https://claude.ai/download) (with Cowork mode enabled) * An internet connection (for SEC EDGAR data fetching) ## Install the plugin Launch Claude Desktop, Navigate to the plugin marketplace and search for **Valuation101**. Click **Install**. Switch to the Cowork tab. Choose a folder where you'd like your Valuation outputs to be saved. Then Type "Value Apple" in the chat. If the plugin responds by identifying Apple Inc. (AAPL), you're set. ## Your first valuation Once installed, just start a conversation. Here are some ways to trigger a valuation: ``` "Value Apple" "What's NVDA worth?" "Run a DCF on Microsoft" "How much is Tesla's stock worth intrinsically?" ``` The plugin will ask you to choose a mode: | Mode | Best for | Time | | ----------------- | ------------------------------------- | --------- | | **Feeling Lucky** | Quick answer with sensible defaults | \~2 min | | **Novice** | Learning DCF with guided explanations | 15–20 min | | **Expert** | Full control over every assumption | 10–15 min | Start with **Feeling Lucky** to see the full pipeline in action, then re-run in Expert mode to refine assumptions. ## Next steps Understand the pipeline in detail Browse all 19 skills # How a Valuation is Performed Source: https://valuation-101.com/docs/how-it-works The 8-phase FCFF pipeline from company name to intrinsic value per share. ## How is it built? The plugin is a bundle of 19 skills backed by a deterministic Python library of 12 modules: * **Skills** handle the conversation — they know what to ask, when to fetch data, and how to present results. This includes fetching earnings call transcripts for management guidance, computing trailing financials, and generating case study write-ups. * **Python library** (`lib/`) handles the math — WACC computation, DCF projection, convergence curve shapes, terminal value, equity bridge, option valuation, and failure rate estimation * **Data pipeline** fetches live SEC EDGAR XBRL data, so valuations use real financial statements, not stale estimates Every calculation is auditable. The plugin logs every input, intermediate value, and output to a run transcript so you can trace any number back to its source. ## The pipeline Valuation101 follows the same logical flow as Damodaran's fcffsimpleginzu spreadsheet, broken into 8 phases. Each phase is handled by one or more skills, and the output of each phase feeds into the next. When running in Novice or Expert mode, Claude will ask for your inputs and in Lucky mode it blazes through all phases to produce an output. ```mermaid theme={null} graph TD P1[Phase 1: Company Identification] --> P2[Phase 2: Filing Discovery] P2 --> P3[Phase 3: Data Collection] P3 --> P4[Phase 4: Financial Assembly] P4 --> P5[Phase 5: Cost of Capital] P5 --> P5b[Phase 5.5: Earnings Guidance] P5b --> P6[Phase 6: Growth & Profitability] P6 --> P7[Phase 7: DCF Model] P7 --> OUT[Value per Share] ``` *** ## Phase 1: Company Identification **Skill:** [company-identifier](/skills/company-identifier) Resolves a company name or ticker to a confirmed identity — full legal name, ticker, CIK number, exchange, and sector. Uses SEC EDGAR search and web verification. **Output:** Confirmed company identity with CIK for API calls. *** ## Phase 2: Filing Discovery **Skill:** [identify-required-statements](/skills/identify-required-statements) Determines which SEC filings are needed based on the company's fiscal calendar and the valuation date. Identifies the primary 10-K, prior-year 10-K, and any bridge 10-Q filings needed for LTM computation. **Output:** `statements_required_{date}.json` — a structured list of every filing the pipeline needs. *** ## Phase 3: Data Collection **Skills:** [pull-raw-data](/skills/pull-raw-data) → [parse-raw-data-to-filings](/skills/parse-raw-data-to-filings) Downloads the company's full XBRL fact set from SEC EDGAR (a 5–15 MB JSON file containing every fact ever filed), then parses it into structured per-filing JSON files — one for each 10-K and 10-Q identified in Phase 2. Intermediate outputs include a key inventory (`company-facts-keys.json`) and one CSV per XBRL tag for debugging. **Output:** Per-filing `_raw.json` files with every valuation-relevant field extracted. *** ## Phase 4: Financial Assembly **Skills:** [last-twelve-months](/skills/last-twelve-months) + [last-10-k](/skills/last-10-k) Assembles the financial inputs Damodaran's spreadsheet needs: * **LTM (Column B):** Trailing-twelve-month figures computed by combining the most recent 10-K with bridge quarter 10-Qs. For income statement items: `Annual + Current Quarter(s) − Prior Year Quarter(s)`. For balance sheet items: most recent quarter-end snapshot. * **Last 10-K (Column C):** The most recent completed annual filing — used for year-over-year comparison and as the base for certain calculations. **Output:** `ltm_{date}.json` and `last_10k_{date}.json` — mapped directly to Damodaran Input sheet cells B11–B23 and C11–C23. *** ## Phase 5: Cost of Capital **Skill:** [cost-of-capital](/skills/cost-of-capital) Computes the Weighted Average Cost of Capital (WACC) using three methods: 1. **Detailed** — bottom-up: unlevered beta → re-lever → CAPM cost of equity + synthetic rating → cost of debt → WACC 2. **Industry Average** — uses Damodaran's industry average cost of capital directly 3. **Distribution** — shows where the company falls on the sector-wide WACC distribution Also handles operating lease and R\&D adjustments if applicable ([lease-converter](/skills/lease-converter), [r-and-d-converter](/skills/r-and-d-converter)). **Output:** WACC (%), cost of equity, cost of debt, and capital structure weights. *** ## Phase 5.5: Earnings Guidance **Skill:** [earnings-guidance](/skills/earnings-guidance) Fetches the most recent earnings call transcript and extracts management's forward-looking guidance on revenue and operating margins. When available, this guidance overrides LTM-derived defaults in the next phase — giving the model a more informed starting point, especially for companies undergoing rapid change. The skill searches company IR pages, financial media, and SEC filings for transcripts, then uses structured LLM extraction to pull revenue (year 1 + long-term) and margin (year 1 + long-term) guidance with confidence ratings. **Output:** `guidance-Q{N}-{YYYY}.json` with structured guidance values and raw management quotes. This phase is optional. If no transcript is found or no usable guidance is extracted, the pipeline proceeds with LTM-derived defaults in Phase 6. *** ## Phase 6: Growth & Profitability **Skill:** [growth-and-profitability](/skills/growth-and-profitability) Sets up the four forecast variables that drive the 10-year projection. For each variable, the skill determines a **start value** (year 1), an **end value** (year 10 target), and a **convergence curve** that controls the transition shape: | Variable | Start value | End value | Curve controls | | ---------------------- | ------------------------------- | --------------------------------- | -------------------------------------------- | | Revenue growth | LTM growth or earnings guidance | Industry 5-year average | How quickly growth decelerates | | Operating margin | LTM margin or earnings guidance | Industry average or guided target | How margins expand or compress | | Sales-to-capital ratio | Company's current ratio | Industry average | How reinvestment efficiency evolves | | Cost of capital | Initial WACC | Risk-free rate + ERP | How risk premium declines as company matures | The [curve shapes library](/lib/curve-shapes) offers six convergence types (exponential decay, S-curve, linear, rapid deceleration, delayed deceleration, step-down) to model how real companies evolve. When [earnings guidance](/skills/earnings-guidance) is available from Phase 5.5, it overrides LTM-derived start and end values. Industry benchmarks and distribution statistics are presented to help calibrate each assumption. **Output:** Four 10-year schedules (one per variable) plus curve metadata, fed directly into the DCF engine. *** ## Phase 7: DCF Model **Skill:** [fcff-model](/skills/fcff-model) The core engine. Takes all prior outputs and runs: 1. **10-year FCFF projection** — year-by-year revenue, EBIT, after-tax operating income, reinvestment, and free cash flow 2. **Terminal value** — perpetuity growth model using a stable growth rate and terminal cost of capital 3. **Discounting** — present value of projected FCFFs + terminal value at WACC 4. **Equity bridge** — operating value → subtract debt → add cash → subtract employee options → divide by shares outstanding → **value per share** Optional adjustments via [employee-options](/skills/employee-options) and [failure-rate](/skills/failure-rate). **Output:** Estimated value per share, full projection table, and equity bridge breakdown. *** ## After the model Three additional skills can run post-valuation: * [**diagnostics**](/skills/diagnostics) — Damodaran's 6-step sanity check: is the growth reasonable? Do the margins converge? Is reinvestment consistent with growth? * [**valuation-report**](/skills/valuation-report) — generates a formatted `.docx` report with all inputs, projections, and the equity bridge * [**case-study-generator**](/skills/case-study-generator) — generates a Mintlify MDX case study page with data tables, convergence charts, and narrative commentary for the docs site ## Next steps Detailed documentation for every skill How SEC EDGAR data flows through the system # Interpreting Results Source: https://valuation-101.com/docs/interpreting-results How to read, evaluate, and act on a Valuation101 output. ## The output at a glance The main deliverable is an Excel workbook saved to your selected folder as `TICKER-valuation-YYYY-MM-DD-NNN.xlsx` (for example, `AAPL-valuation-2026-04-04-001.xlsx`). Open it to explore the full model — everything from raw financial data to the final value per share lives in this single file. The workbook contains one primary sheet with the valuation output, a second with diagnostics, and the rest are supporting data sheets that feed into the model. ### Valuation Output sheet This is the sheet you'll spend the most time in. | Section | What you'll find | | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Assumptions** (top) | Base-year revenues and EBIT, tax rates, revenue growth, operating margin, sales-to-capital, and cost of capital — each with a start value, end value, and convergence curve | | **10-year projections** (middle) | Year-by-year revenue, EBIT, after-tax operating income, reinvestment, FCFF, and discount factors | | **Equity bridge** (bottom) | Operating asset value → subtract debt, minority interests, and option value → add cash and non-operating assets → equity value per share | | **Chart panel** (top-right) | Four convergence charts showing how revenue growth, operating margin, sales-to-capital, and cost of capital transition from year 1 to year 10 | ### Diagnostics sheet The diagnostics sheet runs Damodaran's 6-step sanity check — stable growth reasonableness, ROIC vs. cost of capital, reinvestment consistency, terminal value as a percentage of total value, and more. This is the quickest way to spot red flags before trusting the headline number. ### Supporting sheets | Sheet | Purpose | | ----------------------- | ------------------------------------------------------------------------------------------------------------------ | | **Validation** | Trailing 12-month financials from SEC XBRL filings with cross-checks against the prior-year 10-K | | **Cost of Capital** | Full WACC build-up — beta, equity risk premium, cost of equity, synthetic credit rating, cost of debt, and weights | | **CurveData** | Hidden sheet with pre-computed alpha coefficients that power the convergence curves | | **IndustryAvg\_US** | \~97 US industry benchmarks (margins, ROIC, growth, leverage, multiples) | | **IndustryAvg\_Global** | Same structure for global industries | | **CountryERP** | Equity risk premiums for \~190 countries | | **SyntheticRating** | Interest coverage → credit rating lookup tables for estimating cost of debt | The chat will also surface the headline numbers — estimated value per share, current market price, and implied upside or downside — so you can see the result without opening the file. ## What to look for ### Are the convergence curves realistic? Each forecast variable transitions from its year 1 value to a year 10 target using a [convergence curve](/lib/curve-shapes). Check that the curve shapes tell a plausible story. An **exponential decay** on revenue growth implies rapid deceleration — sensible for a hyper-growth company. An **S-curve** on operating margins implies a moat-protected period before convergence begins. If the curves look wrong, the year-by-year projections will be off even if the start and end values are reasonable. ### Is the growth rate reasonable? Compare the year 1 revenue growth rate and the year 10 target against the company's historical growth and the industry average. A 25% year 1 growth rate for a mature utility company should raise flags; the same rate for a high-growth SaaS company might be conservative. ### Do margins converge sensibly? The model transitions current operating margins to a target margin over 10 years via the selected curve. Check that the target margin is realistic for the industry and that the convergence path makes sense — early-stage companies may need an S-curve (delayed expansion), while a company at peak margins may need exponential decay. ### Is reinvestment consistent with growth? The sales-to-capital schedule determines how much the company must reinvest to grow, and how that efficiency changes over time. If year 1 shows high growth with a very high S/C ratio (low reinvestment per dollar of growth), the value may be overstated. Compare the S/C convergence target against the industry average. ### Does the terminal value dominate? In a well-calibrated DCF, the terminal value typically accounts for 50–70% of total firm value. If it's above 85%, the valuation is essentially a bet on what happens after year 10 — consider adjusting the curve shapes to shift more value into the projection period. ## Damodaran's diagnostic checklist The [diagnostics](/skills/diagnostics) skill runs 6 automated checks on every valuation — use it to catch common errors before taking action. ## What a DCF does NOT tell you * **Timing** — a stock can be undervalued for years before the market agrees * **Catalysts** — intrinsic value doesn't predict what will make the price move * **Precision** — treat the output as a range, not a point estimate. Small changes in WACC or growth can shift the value by 20–30% Run the valuation twice with different assumptions (optimistic and pessimistic) to get a range rather than a point estimate # Damodaran's FCFF Methodology Source: https://valuation-101.com/docs/methodology The academic framework behind every calculation in Valuation101. ## The FCFF approach Free Cash Flow to Firm (FCFF) valuation estimates what a company is worth by projecting its future cash flows and discounting them to the present. It answers: "If I could buy this entire business today, what should I pay?" The approach comes from Aswath Damodaran's [fcffsimpleginzu spreadsheet](https://pages.stern.nyu.edu/~adamodar/), which implements a two-phase DCF model: 1. **High-growth phase** (years 1–10): Revenue, margins, and reinvestment transition from current levels to stable-state targets 2. **Terminal phase** (year 11+): The company grows at a stable rate in perpetuity ## The valuation equation ``` V(firm) = Σ [ FCFF(t) / (1 + WACC)^t ] + Terminal Value / (1 + WACC)^10 t=1..10 ``` Where: * **FCFF(t)** = Free Cash Flow to Firm in year t * **WACC** = Weighted Average Cost of Capital * **g(stable)** = Stable growth rate (typically the risk-free rate) ## From firm value to equity value The DCF gives you the value of the entire firm (debt + equity). To get to equity value per share: ``` Operating value of the firm (PV of FCFFs + terminal value) − Debt (book value of interest-bearing debt) + Cash and short-term investments − Value of employee stock options (Black-Scholes) × (1 − probability of failure) ÷ Shares outstanding = Estimated value per share ``` ## Key assumptions Every DCF comes down to four forecast variables and a handful of structural assumptions. Valuation101 makes these explicit. ### Forecast variables Each variable is defined by a **start value** (year 1), an **end value** (year 10 target), and a **convergence curve** from the [curve shapes library](/lib/curve-shapes) that controls the 10-year transition: | Variable | Start value | End value | Curve controls | | ---------------------- | ------------------------------- | --------------------------------- | ------------------------------------- | | Revenue growth | LTM growth or earnings guidance | Industry 5-year average | How quickly growth decelerates | | Operating margin | LTM margin or earnings guidance | Industry average or guided target | How margins expand or compress | | Sales-to-capital ratio | Company's current ratio | Industry average | How reinvestment efficiency evolves | | Cost of capital | Initial WACC | Risk-free rate + ERP | How risk premium declines at maturity | ### Structural assumptions | Assumption | What it means | Where it comes from | | ---------------------- | ----------------------------------- | ------------------------------------------- | | Cost of capital (WACC) | Discount rate for future cash flows | CAPM + synthetic rating + capital structure | | Stable growth rate | Long-run growth in perpetuity | Risk-free rate (capped at GDP growth) | | Terminal ROIC | Whether excess returns persist | Default: ROIC converges to cost of capital | | Failure probability | Risk of corporate default | Bond-rating-based or age-based | Damodaran's key insight: the *story* about a company should drive the *numbers*, not the other way around. Are you valuing Apple as a mature cash cow or a growth company reinventing healthcare? The story changes every assumption. ## Further reading * [Damodaran's Valuation course (NYU Stern)](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/webcastvalonline.htm) * [The Little Book of Valuation](https://pages.stern.nyu.edu/~adamodar/) * [fcffsimpleginzu spreadsheet](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/spreadsh.htm) # Novice Mode Source: https://valuation-101.com/docs/novice-mode Guided DCF walkthrough with explanations at every step — learn by doing. ## What is Novice Mode? Novice mode walks you through every step of the FCFF valuation with plain-English explanations. Each concept is introduced before you're asked to make a decision, and the plugin explains why each input matters and how it affects the final value. ## When to use it * You're learning DCF valuation for the first time * You want to understand what's happening inside the model, not just the output * You're preparing for a finance course or interview ## What's different from Expert Mode The same 19 skills run in the same order — the math is identical. The difference is how the conversation flows: | Aspect | Expert | Novice | | --------------- | ------------------------------------- | ------------------------------------------------- | | Explanations | Minimal — just data and options | Full — what each concept means and why it matters | | Recommendations | Shows benchmarks, you choose | Suggests defaults with reasoning | | Pace | Fast — assumes you know the framework | Deliberate — teaches as it goes | | Output | Numbers-focused | Story + numbers | ## Typical session time 15–20 minutes. The extra time comes from reading the explanations, not from additional data collection. # Valuation101 — Value Any Company in a Conversation Source: https://valuation-101.com/docs/index A conversational Discounted Cash Flow (DCF) intrinsic valuation tool that values companies using only free public domain data. Talk to the model; it does the math.
# What is Valuation101? Valuation101 is a Claude plugin that implements a DCF valuation through natural conversation. It follows the methodologies made famous by Aswath Damodaran, NYU's Dean of Valuation \[1]. The plugin fetches financial data for the company being valued from the SEC, computes Cost of Capital, forecasts revenue and operating margins using earnings guidance, calculates free cash flows, and finally returns an intrinsic value per share — all while explaining every step.
Install the plugin and run your first valuation in under 5 minutes Real completed company valuations with full breakdowns and commentary The 8-phase FCFF pipeline from ticker to intrinsic value The academic framework behind every calculation
## How it works Say "Value Apple" or "What's Tesla worth?" — the plugin identifies the company and fetches live SEC EDGAR data. 19 skills run in sequence: pulling data directly from the SEC, computing trailing-twelve-month financials, estimating Cost of Capital, projecting growth, and running the DCF. You receive a value per share with a full breakdown — revenue projections, margin convergence, reinvestment rates, and terminal value. Every number is auditable. ## Built on Damodaran's methodology Every formula in this plugin maps directly to a cell in Aswath Damodaran's [fcffsimpleginzu spreadsheet](https://pages.stern.nyu.edu/~adamodar/pc/fcffsimpleginzu.xlsx). See his [video](https://youtu.be/kyKfJ_7-mdg?si=9fTj1FduHuST2Cc6) for clarification. The math is implemented in a tested Python library, so calculations are deterministic and auditable — the AI handles the conversation, and judgement regarding when to manually override a tool, it doesn't do the arithmetic. ## Three modes for every skill level One-click valuation using sensible defaults. Get an intrinsic value in \~2 minutes, then tweak. Guided walkthrough with explanations at every step. Learn DCF valuation by doing one. Full control over every assumption. You choose the ERP method, set growth rates, override industry averages. ## For AI agents This documentation is optimized for LLM consumption. Agents can access: * [`/llms.txt`](/llms.txt) — Curated index of all documentation pages * Structured frontmatter on every skill page with machine-parseable `inputs`, `outputs`, and `depends_on` fields ## Follow along Weekly valuations, methodology deep-dives, and plugin updates on [Substack](https://valuation101.substack.com). **Disclaimer** — Valuation101 is not affiliated with, endorsed by, or connected to Aswath Damodaran or NYU Stern in any way. The plugin is built by an independent developer using Damodaran's publicly available spreadsheets and teachings as a foundation. Where the plugin deviates from Damodaran's methodology — most notably in using S-curve convergence schedules rather than simple linear transitions for forecast variables — it does so in letter, not in spirit. The goal is always the same: arrive at a defensible intrinsic value through transparent, assumption-driven cash flow modelling. # Adjustments Source: https://valuation-101.com/docs/lib/adjustments R&D capitalization and operating lease conversion for the DCF model. ## R\&D capitalization: `lib/rd_converter.py` Capitalizes R\&D expenses from operating expenses into a research asset, adjusting EBIT and invested capital. This is Damodaran's standard treatment for companies where R\&D is a true investment rather than a recurring cost. ### `capitalize_rd()` **Parameters:** * `rd_expenses` — list of R\&D expenses by year (most recent first, typically 3–10 years) * `amortization_life` — useful life of R\&D in years (looked up by industry, typically 2–10 years) * `tax_rate` — marginal tax rate **Returns:** * `research_asset` — capitalized value of unamortized R\&D * `amortization` — current year's amortization expense * `ebit_adjustment` — add back R\&D, subtract amortization (net effect on EBIT) * `tax_benefit` — tax shield on the R\&D adjustment **Data source:** `rd_amortization_by_industry.json` provides the amortization life by Damodaran industry classification. *** ## Operating lease conversion: `lib/lease_converter.py` Converts operating lease commitments into a debt equivalent by computing the present value of future lease payments, then adjusts debt, EBIT, and invested capital accordingly. ### `convert_operating_leases()` **Parameters:** * `lease_commitments` — future lease payments by year (years 1–5 + beyond year 5) * `lease_expense` — current year's operating lease expense * `pretax_cost_of_debt` — discount rate for lease obligations **Returns:** * `debt_value` — present value of lease commitments (added to debt) * `depreciation` — implied depreciation on the lease asset * `ebit_adjustment` — add back lease expense, subtract depreciation (net effect on EBIT) * `asset_value` — right-of-use asset to add to invested capital The skill automatically checks whether leases are already capitalized under ASC 842 / IFRS 16. If so, no conversion is needed and the skill skips. # Cost of Capital Source: https://valuation-101.com/docs/lib/cost-of-capital WACC computation engine implementing Damodaran's three methods. ## Module: `lib/cost_of_capital.py` Implements the three WACC computation methods from Damodaran's Cost of Capital worksheet. ## Key functions ### `wacc_detailed()` Bottom-up WACC from first principles: unlevered beta → re-lever → CAPM → synthetic rating → cost of debt → weighted average. ### `wacc_industry()` Looks up industry average cost of capital from Damodaran's reference dataset. ### `wacc_distribution()` Returns the company's WACC percentile within its industry — useful for sanity-checking the detailed estimate. ### `synthetic_rating()` Maps interest coverage ratio to a bond rating and default spread using Damodaran's synthetic rating table. ### `relever_beta()` Re-levers an unlevered beta for a specific debt/equity ratio and tax rate. # Curve Shapes Source: https://valuation-101.com/docs/lib/curve-shapes Six convergence curve types that control how forecast variables transition from current to terminal values over 10 years. ## Module: `lib/curve_shapes.py` Controls the shape of convergence for the four forecast variables (revenue growth, operating margin, sales-to-capital ratio, cost of capital) as they transition from current values to terminal/stable values over the 10-year projection period. ## Why curves matter A linear fade from 50% revenue growth to 3% tells a very different story than an S-curve that holds high growth for 3 years before dropping sharply. The curve shape encodes your belief about *when* and *how quickly* a company's performance normalizes. ## The six curve types | Curve | Shape | Best for | | ---------------------- | ------------------------------------- | -------------------------------------------------------- | | `exponential_decay` | Fast initial decline, gradual tail | High-growth companies decelerating as market saturates | | `linear_fade` | Constant rate of change each year | Steady, predictable convergence | | `s_curve` | Flat early → rapid middle → flat late | Companies with a moat that delays competitive pressure | | `step_down` | Discrete drop at a specific year | Margin cliff events (e.g., patent expiry, contract loss) | | `delayed_deceleration` | Holds near start value, then drops | Companies with strong near-term visibility | | `stable` | No change — flat line | Already-mature companies where the variable doesn't move | ## Key functions ### `exponential_decay(start, end, n_years)` Generates an exponentially decaying series from `start` to `end` over `n_years`. The rate of change is fastest in year 1 and slows over time. ### `s_curve(start, end, n_years, inflection=0.5)` Generates an S-shaped (logistic) transition. The `inflection` parameter (0–1) controls where the steepest part of the curve falls — 0.3 means rapid change early, 0.7 means the transition is delayed. ### `linear_fade(start, end, n_years)` Generates a straight-line interpolation from `start` to `end`. ### `step_down(start, end, n_years, step_year)` Holds at `start` until `step_year`, then drops to `end` and stays flat. ### `delayed_deceleration(start, end, n_years, hold_years=3)` Holds near `start` for `hold_years`, then decays exponentially to `end`. ### `stable(value, n_years)` Returns a flat series at the given `value` for all years. ## How curves are selected In **Expert mode**, the user can choose a curve type for each variable. In **Feeling Lucky** mode, the plugin uses rule-based classification that considers the company's growth trajectory, industry norms, and the gap between current and target values. A future [LLM-based classifier](/skills/overview#experimental) is planned to incorporate narrative and competitive context. The `populate_curve_data.py` utility module takes a curve type, start value, end value, and year count, and generates the full 10-year schedule that feeds into the DCF engine. # Data Loader Source: https://valuation-101.com/docs/lib/data-loader Load Damodaran's reference datasets efficiently — returns only the relevant row instead of the full file. ## Module: `lib/lookup.py` Loads and queries the reference datasets used throughout the valuation. Designed for token efficiency — returns only the single relevant row (\~200 tokens) instead of loading full files (\~35K tokens). ## Key functions ### `get_industry()` Look up industry averages for a given industry name and region. **Parameters:** * `industry_name` — canonical Damodaran industry name (e.g., "Software (Internet)") * `region` — `'US'` or `'Global'` **Returns:** Dictionary with `revenue_growth_5y`, `pretax_operating_margin`, `sales_to_capital`, `aftertax_roc`, `cost_of_capital`, `beta`, `std_dev`. ### `get_distribution()` Look up quartile distributions for an industry (Q1, median, Q3). **Parameters:** * `industry_name` — canonical Damodaran industry name **Returns:** Nested dictionary with distribution stats for `revenue_growth_3y`, `pretax_operating_margin`, `sales_to_capital`. Returns `None` if distribution data is not available for the industry. ### `get_country_erp()` Look up equity risk premium for a given country. **Parameters:** * `country` — country name (e.g., "United States", "India") **Returns:** Dictionary with `equity_risk_premium`, `country_risk_premium`, `rating`. ### `get_industry_by_ticker()` Look up which Damodaran industry a ticker belongs to. **Parameters:** * `ticker` — stock ticker symbol **Returns:** Industry name string. ## Reference data | File | Contents | Size | Refresh cycle | | ------------------------------------ | --------------------------------------------------------------- | ------ | ---------------- | | `country_erp.json` | Country equity risk premiums (192 countries) | 43 KB | January (annual) | | `industry_averages_us.json` | US industry stats (96 industries): growth, margins, betas, ROIC | 85 KB | January (annual) | | `industry_averages_global.json` | Global equivalents | 86 KB | January (annual) | | `input_stat_distributions.json` | Quartile distributions for benchmarking | 87 KB | January (annual) | | `indname_us.json` | \~6,000 US companies → industry classification | 1.9 MB | January (annual) | | `synthetic_rating_spreads.json` | ICR → rating → default spread tables | 3.7 KB | Infrequent | | `rating_default_probabilities.json` | Moody's/S\&P cumulative default rates | 1.7 KB | Infrequent | | `bls_survival_rates.json` | Corporate failure rates by sector + age | 1.5 KB | Infrequent | | `rd_amortization_by_industry.json` | R\&D useful life by industry (2–10 years) | 3.2 KB | Infrequent | | `wacc_distribution_percentiles.json` | WACC decile distribution by region | 1.4 KB | Infrequent | | `xbrl_ticker_overrides.json` | Manual XBRL tag overrides for edge cases | 1.7 KB | As needed | All datasets are sourced from [Damodaran's data pages](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/data.html) (January 2026 update). # DCF Engine Source: https://valuation-101.com/docs/lib/dcf-engine FCFF projection, terminal value calculation, equity bridge, and present value discounting. ## Module: `lib/dcf_engine.py` The core computation engine for the FCFF valuation model. Accepts pre-computed 10-year schedules from the [curve shapes library](/lib/curve-shapes) and produces a complete valuation. ## Key function ### `dcf_valuation()` The main entry point. Runs the full DCF: 10-year projection, terminal value, and equity bridge. **Schedule inputs** (from [growth-and-profitability](/skills/growth-and-profitability) via [curve\_shapes.py](/lib/curve-shapes)): * `growth_schedule` — 10-element list of revenue growth rates (year 1–10) * `margin_schedule` — 10-element list of operating margins (year 1–10) * `s2c_schedule` — 10-element list of sales-to-capital ratios (year 1–10) * `coc_schedule` — 10-element list of cost of capital rates (year 1–10) **Base year financials** (from LTM): * `revenue`, `ebit`, `book_equity`, `book_debt`, `cash` * `minority_interests`, `non_operating_assets` * `shares_outstanding`, `stock_price` * `effective_tax_rate`, `marginal_tax_rate`, `riskfree_rate` **Adjustment inputs** (optional): * `total_option_value`, `has_options` — from [employee-options](/skills/employee-options) * R\&D and lease adjustment deltas — from [r-and-d-converter](/skills/r-and-d-converter) and [lease-converter](/skills/lease-converter) **9 structural overrides** (default assumption toggles): * Terminal cost of capital, terminal ROIC, failure probability, reinvestment lag, tax convergence, NOL carryforward, risk-free rate override, growth rate override, trapped cash **Returns:** Dictionary containing yearly projections (10 years + terminal), terminal value, PV of cash flows, equity bridge, value per share, stock price, and price-as-percentage-of-value. ## How schedules flow through When schedules are provided, they take precedence over the legacy scalar inputs: ``` growth_schedule → Revenue growth rates (rows D26:M26) margin_schedule → Operating margins (rows D28:M28) s2c_schedule → Sales-to-capital ratios (rows D35:M35) coc_schedule → Cost of capital rates (rows D36:M36) ``` If no schedules are provided, the engine falls back to linear interpolation from legacy scalar inputs (e.g., `revenue_growth_next_year`, `revenue_growth_years_2_5`). This ensures backward compatibility with older runs. ## Terminal value computation ### `compute_terminal_growth_rate()` Priority: user growth override → user risk-free override → current risk-free rate. ### `compute_terminal_cost_of_capital()` Priority: user stable CoC override → risk-free override + base ERP → current risk-free + base ERP. ### `compute_terminal_tax_rate()` If tax convergence override is on, stays at effective tax rate. Otherwise converges to industry average effective tax rate (preferred) or marginal rate. ### `compute_terminal_roic()` If override is on, uses user-specified ROIC. Otherwise ROIC converges to cost of capital (no excess returns in perpetuity). ## Equity bridge ### `equity_bridge()` Converts operating value to equity value per share. See [equity bridge documentation](/lib/equity-bridge) for the full walkthrough. # Failure Rate Source: https://valuation-101.com/docs/lib/failure-rate Estimate the probability of corporate failure using bond ratings or company age. ## Module: `lib/failure_rate.py` Estimates the cumulative probability that a company fails (defaults) over the 10-year projection period. This probability is used to adjust the final DCF value downward. ## How it's applied $\text{Adjusted value} = \text{DCF value} \times (1 - \text{failure probability}) + \text{distress proceeds} \times \text{failure probability}$ Distress proceeds are typically estimated as a percentage of book value (default: 50% of book assets, though this varies by industry). ## Key functions ### `failure_rate_by_rating(rating, horizon=10)` Uses historical cumulative default rates from Moody's and S\&P, indexed by credit rating. **Parameters:** * `rating` — synthetic or actual credit rating (e.g., "BBB", "B+", "CCC") * `horizon` — years over which to measure default probability (default: 10) **Returns:** Cumulative default probability as a decimal. ### `failure_rate_by_age(company_age, sector)` Uses Bureau of Labor Statistics business survival data, indexed by company age and sector. **Parameters:** * `company_age` — years since founding or incorporation * `sector` — broad industry sector **Returns:** Estimated failure probability over 10 years. ## Which method to use | Situation | Recommended method | | ------------------------------------------------------------------- | ----------------------------------------------------------- | | Company has a credit rating or sufficient data for synthetic rating | `failure_rate_by_rating` | | Company is young, unrated, or pre-revenue | `failure_rate_by_age` | | Company is a large, stable, investment-grade firm | Failure probability is typically near zero — can be skipped | ## Data sources * `rating_default_probabilities.json` — Moody's/S\&P historical cumulative defaults by rating over 1–10 year horizons * `bls_survival_rates.json` — US Bureau of Labor Statistics corporate failure rates by sector and age (5-year, 10-year) # Option Value Source: https://valuation-101.com/docs/lib/option-value Dilution-adjusted Black-Scholes valuation for employee stock options. ## Module: `lib/option_value.py` Values outstanding employee stock options using a dilution-adjusted Black-Scholes model. The resulting value is subtracted from equity in the DCF equity bridge. ## Why dilution adjustment matters Standard Black-Scholes assumes exercising one option doesn't affect the stock price. But when employees exercise millions of options, new shares are issued, diluting existing shareholders. The dilution-adjusted model accounts for this by reducing the per-option value based on the ratio of options to total shares. ## Key functions ### `option_value(stock_price, strike, maturity, volatility, risk_free, dividend_yield, shares, options_count)` Computes the total value of all outstanding employee options. **Parameters:** * `stock_price` — current market price per share * `strike` — weighted average exercise price * `maturity` — weighted average years to expiration * `volatility` — annualized stock price volatility (standard deviation) * `risk_free` — risk-free rate * `dividend_yield` — annual dividend yield * `shares` — shares outstanding (basic) * `options_count` — number of options outstanding **Returns:** Total option value (float) to subtract from equity. ### `dilution_factor(shares, options_count)` Computes the dilution adjustment: `shares / (shares + options)`. ### `black_scholes_call(S, K, T, r, sigma, q)` Standard Black-Scholes call option pricing (before dilution adjustment). ## Data source Option data (count, weighted average strike, weighted average maturity) is extracted automatically during the [parse-raw-data-to-filings](/skills/parse-raw-data-to-filings) phase from XBRL tags and saved to `options_flag.json` in the ticker cache. If no option data is found in XBRL filings, the equity bridge skips the option deduction. # Python Library Overview Source: https://valuation-101.com/docs/lib/overview The deterministic math engine behind Valuation101 — 12 pure Python modules, no AI dependencies. ## Architecture The Python library in `lib/` handles all mathematical computations. It is intentionally separated from the conversational layer (skills) so that: * **Every calculation is deterministic** — same inputs always produce the same outputs * **Everything is testable** — unit tests validate against Damodaran's reference spreadsheet * **No AI in the math** — the AI handles conversation; Python handles arithmetic ## Core modules | Module | Purpose | Key functions | | -------------------------------------------- | -------------------------------------------------------------- | --------------------------------------------------------------- | | [dcf\_engine.py](/lib/dcf-engine) | FCFF projection, terminal value, discounting, equity bridge | `dcf_valuation()`, `fcff_waterfall()`, `equity_bridge()` | | [cost\_of\_capital.py](/lib/cost-of-capital) | WACC computation (3 methods), beta levering, synthetic ratings | `wacc_detailed()`, `wacc_industry_avg()`, `wacc_distribution()` | | [curve\_shapes.py](/lib/curve-shapes) | 6 convergence curve types for forecast variables | `exponential_decay()`, `s_curve()`, `linear_fade()` | | [option\_value.py](/lib/option-value) | Dilution-adjusted Black-Scholes for employee options | `option_value()`, `dilution_factor()`, `black_scholes_call()` | | [failure\_rate.py](/lib/failure-rate) | Default probability by bond rating or company age | `failure_rate_by_rating()`, `failure_rate_by_age()` | | [rd\_converter.py](/lib/adjustments) | R\&D capitalization into research asset | `capitalize_rd()` | | [lease\_converter.py](/lib/adjustments) | Operating lease to debt conversion | `convert_operating_leases()` | | [lookup.py](/lib/data-loader) | Industry and country reference data lookups | `get_industry()`, `get_distribution()`, `get_country_erp()` | ## Utility modules | Module | Purpose | | ------------------------ | ---------------------------------------------------------------------- | | populate\_curve\_data.py | Generate 10-year forecast schedules from curve type + start/end values | | add\_forecast\_charts.py | Insert convergence charts into the valuation Excel workbook | | upgrade\_template\_v2.py | Schema migrations for the spreadsheet template | | check\_cache.py | Validate cache integrity (files present, dates, sizes) | ## Standalone execution The plugin can run the full pipeline without any AI interaction via `lucky_pipeline.py`: ```bash theme={null} python3 lucky_pipeline.py --ticker NVDA --date 2026-03-13 --output runs/NVDA_test/ ``` This triggers company identification, data fetching, LTM computation, WACC, growth assumptions, and DCF — all pure Python math. Output is a completed valuation spreadsheet with JSON results. ## Testing All modules are tested against the Almarai example pre-loaded in Damodaran's fcffsimpleginzu spreadsheet. Additional tests use real NVDA data to verify the SEC EDGAR pipeline end-to-end. ```bash theme={null} python -m pytest tests/ -v ``` Test coverage includes: WACC computation, DCF projection, curve shapes, LTM bridging, last-10-K extraction, failure rates, lease conversion, option valuation, R\&D capitalization, and SEC API fetching. # Case Study Generator Source: https://valuation-101.com/docs/skills/case-study-generator Generate a Mintlify MDX case study page from a completed FCFF valuation run — with data tables, convergence charts, and narrative commentary. ## What it does Generates a publication-ready case study for the [Valuation101 docs site](/case-studies/case-study-guide) from a completed valuation run. Each case study is both a demonstration of the plugin's capabilities and a teaching tool that walks readers through every phase of the valuation. This skill is **standalone** — it is never called by the fcff orchestrator. Invoke it directly after completing a valuation. ## Two-pass workflow Case studies are built in two passes: 1. **Pass 1 — Scaffold:** A Python script reads the valuation spreadsheet and generates an MDX file with all data tables pre-populated and narrative markers (`{/*NARRATIVE: section_name */}`) where commentary belongs. 2. **Pass 2 — Narrate:** The AI reads the scaffold, replaces every narrative marker with company-specific commentary, generates SVG convergence charts, searches for reference links, and updates the docs site configuration. ## Data source The valuation spreadsheet (`.xlsx`) is the **single source of truth** for all numbers. If a `_manual_override.xlsx` variant exists in the run directory, it is preferred — it contains the user's final adjustments. ## Prerequisites A completed valuation run with a spreadsheet present in the run directory: * `{TICKER}-valuation-{DATE}-{SEQ}.xlsx` (base), or * `{TICKER}-valuation-{DATE}-{SEQ}_manual_override.xlsx` (preferred) The spreadsheet must have been last saved in Excel so that formula cells have cached results readable by openpyxl. ## Case study structure Every case study follows the same section structure (matching the [CoreWeave example](/case-studies/coreweave)): 1. Introduction and manual overrides 2. Company identification and industry mapping 3. Required filings 4. Trailing twelve-month financials (with data gap analysis) 5. Shares outstanding 6. Tax rates 7. Cost of capital (beta, cost of equity, cost of debt, WACC) 8. Forecasts (guidance review, revenue growth, operating margin, sales-to-capital, cost of capital convergence) 9. Employee stock options 10. DCF model output (projection table, terminal value, PV breakdown, equity bridge) 11. The verdict (bear case, bull case) 12. Diagnostic flags 13. What this case study demonstrates 14. References ## Convergence charts Four SVG charts are generated per case study, showing the 10-year convergence curves for each forecast variable: * Revenue growth (exponential/linear decay) * Operating margin (S-curve or linear expansion) * Sales-to-capital ratio (step-down or linear convergence) * Cost of capital (exponential decay from WACC to terminal) Charts use data points directly from the spreadsheet's 10-year projection schedule. ## How to use ``` "Generate a case study for NVDA" "Create case study for CoreWeave" "Add Tesla to the case studies" ``` The skill will find the latest completed run, confirm the spreadsheet with you, generate the scaffold, write the narrative, create charts, and update `docs.json` automatically. # Company Identifier Source: https://valuation-101.com/docs/skills/company-identifier Resolve a company name or ticker to a confirmed identity with CIK, exchange, and sector. ## What it does Takes a company name ("Apple"), ticker ("AAPL"), or informal reference ("the iPhone company") and resolves it to a confirmed identity using SEC EDGAR search and web verification. ## Output | Field | Example | | --------------- | ---------- | | Legal name | Apple Inc. | | Ticker | AAPL | | CIK | 0000320193 | | Exchange | NASDAQ | | Sector | Technology | | Fiscal year end | September | ## How it works 1. Searches SEC EDGAR's full-text company search for the input 2. Cross-references with exchange listings to confirm the ticker 3. Presents the match to the user for confirmation before proceeding 4. Handles edge cases: multiple matches, delisted companies, ADRs, dual-listed stocks ## Edge cases * **Ambiguous names** — "Amazon" could be Amazon.com Inc. or Amazon Group Ltd. The skill presents options and asks the user to confirm. * **Name changes** — companies that have renamed (e.g., Facebook → Meta) are resolved via SEC EDGAR's historical records. * **Non-US companies** — currently supports US-listed companies only (those with SEC filings). This skill has no Python library component — it's pure conversation + web search. All other skills depend on the CIK it produces. # Cost of Capital Source: https://valuation-101.com/docs/skills/cost-of-capital Compute the Weighted Average Cost of Capital (WACC) using Damodaran's three methods. ## What it does Computes WACC using three independent methods, mirroring the Cost of Capital worksheet in Damodaran's fcffsimpleginzu spreadsheet. ## Method 1: Detailed (bottom-up) Builds WACC from first principles in 5 stages: ### Stage 1: Beta Start with an **unlevered beta** from Damodaran's industry averages, then re-lever for the company's capital structure: ``` β(levered) = β(unlevered) × [1 + (1 − t) × (D/E)] ``` ### Stage 2: Cost of Equity (CAPM) ``` Cost of Equity = Risk-free rate + β × ERP ``` Four ERP sources available: manual input, country of incorporation, operating regions, or implied. ### Stage 3: Cost of Debt Uses a **synthetic rating** based on interest coverage ratio (ICR): ``` ICR = EBIT / Interest Expense → Rating → Default Spread → Cost of Debt ``` The synthetic rating table maps ICR ranges to bond ratings and corresponding default spreads. ### Stage 4: Capital Structure Market-value weights: * Equity = shares × current price * Debt = book value of debt (approximation for market value) ### Stage 5: WACC ``` WACC = (E / (E+D)) × r(e) + (D / (E+D)) × r(d) × (1 − t) ``` ## Method 2: Industry Average Looks up the company's industry in Damodaran's dataset and returns the industry average cost of capital directly. ## Method 3: Distribution Shows where the company's WACC falls on the industry-wide distribution (percentile ranking). Useful for sanity-checking the detailed estimate. # Diagnostics Source: https://valuation-101.com/docs/skills/diagnostics Run Damodaran's 6-step diagnostic checklist to sanity-check the valuation output. ## What it does Runs Damodaran's 6-step diagnostic checklist on the completed valuation. Flags inconsistencies so you can catch errors before acting on the result. ## The 6 checks 1. **Revenue growth vs. market size** — Is the projected revenue plausible given the total addressable market? 2. **Margin convergence** — Does the target margin make sense for the industry? Is the convergence path reasonable? 3. **Reinvestment consistency** — Is the sales-to-capital ratio consistent with the growth assumption? Higher growth requires more reinvestment. 4. **Risk and cost of capital** — Does the WACC reflect the company's actual risk profile? Is it converging to a reasonable stable-state WACC? 5. **Terminal value proportion** — What fraction of total value comes from the terminal value? Above 85% is a warning sign. 6. **Price vs. value** — How does the intrinsic value compare to the current market price? Large gaps warrant a second look at assumptions. # Earnings Guidance Source: https://valuation-101.com/docs/skills/earnings-guidance Extract forward-looking management guidance from the most recent earnings call transcript to override LTM-derived defaults. ## What it does Fetches and parses the most recent earnings call transcript to extract management's forward-looking guidance on revenue and operating margins. When guidance is available, it provides a better starting point for DCF assumptions than extrapolating historical trends. This skill runs as **Phase 5.5** — after cost of capital and before growth & profitability. It is optional: if no transcript is found or no usable guidance is extracted, the pipeline proceeds with LTM-derived defaults. ## Why earnings guidance matters Historical financials tell you where a company has been. Earnings guidance tells you where management expects it to go. For companies undergoing rapid change — high-growth tech, turnarounds, recent IPOs — the gap between past performance and forward expectations can be enormous. When management provides explicit guidance, the plugin uses the **conservative end of any range** as the default starting point, which the user can then adjust. ## What it extracts The skill looks for guidance on four forecast variables: | Variable | Example guidance | How it's used | | ---------------------------- | ------------------------------------------- | --------------------------------------------------- | | Revenue — Year 1 | "We expect FY2026 revenue of `$`12–13B" | Overrides the Year 1 revenue growth rate in the DCF | | Revenue — Long-term | "Exit run-rate of `$`17–19B" | Informs year 10 revenue growth target | | Operating margin — Year 1 | "Adjusted operating income of `$`900M–1.1B" | Overrides Year 1 margin assumption | | Operating margin — Long-term | "25–30% long-term margin target" | Overrides the Year 10 target margin | Two additional variables are stored for reference but not currently used in the pipeline: * **Sales-to-capital** — CapEx guidance, useful for cross-checking reinvestment assumptions * **Cost of capital** — refinancing commentary, interest rate improvements ## How it works From `statements_required`, identify the most recent filing by fiscal period end and map it to the corresponding earnings call quarter (e.g., 10-K with FY end 12/31/2025 → Q4-2025). Look for an existing `guidance-Q{N}-{YYYY}.json` in the ticker cache. If found, load and return it — no fetch needed. Search for the transcript using a priority cascade: company IR website, Motley Fool, Investing.com, SEC 8-K exhibit. Fetches and filters the transcript to the most relevant 5,000–8,000 tokens (prepared remarks + forward-looking Q\&A). An LLM prompt extracts guidance for each variable, including raw quotes, inferred numerical values, inference method, and confidence rating. Two files are saved: a `.json` file (consumed by the pipeline) and a `.md` file (human-readable with raw quotes and reasoning). ## Inference methods Management rarely says "our revenue will be exactly X." The skill handles several patterns of guidance: | Pattern | Example | Method | | ------------------------ | ------------------------------------------------------- | ------------------------------ | | Direct annual guidance | "Revenue of `$`12–13B for FY2026" | `direct_guidance` | | Growth rate applied | "Approximately 140% growth" | `growth_rate_applied` | | Exit run-rate | "Exit run-rate of `$`17–19B" + Q1 guidance | `exit_run_rate_interpolation` | | Quarterly sum | Per-quarter guidance that sums to annual | `quarterly_sum` | | Derived from adjusted OI | "Adj. operating income `$`900M–1.1B" ÷ revenue guidance | `derived_from_adj_oi_guidance` | | Direct margin percentage | "25–30% long-term margin target" | `direct_guidance` | Each extraction includes a confidence rating (high, medium, or low) so downstream skills can weight it appropriately. ## Mode behavior | Mode | Behavior | | ----------------- | --------------------------------------------------------------------------------------------------------- | | **Expert** | Presents extracted guidance alongside industry benchmarks. User can accept, modify, or reject each value. | | **Novice** | Presents guidance with explanations of what it means and how it was derived. | | **Feeling Lucky** | Runs silently — applies guidance automatically with no user interaction. | ## Output Two files are saved per extraction to the ticker cache: * `guidance-Q{N}-{YYYY}.json` — structured data consumed by [growth-and-profitability](/skills/growth-and-profitability) and the [lucky pipeline](/lib/overview) * `guidance-Q{N}-{YYYY}.md` — annotated markdown with raw management quotes, inference reasoning, and confidence ratings ## Edge cases | Scenario | Behavior | | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | | No transcript found | Logs a warning and returns `None`. Pipeline proceeds with LTM-only defaults. | | Transcript found but no revenue guidance | Saves JSON with null revenue values. LTM default is used. | | Guidance is adjusted (excludes SBC) | Flags the adjustment type. User can decide whether to use GAAP or adjusted figures. | | Low confidence extraction | Flagged in output. In Expert mode, user is asked to confirm. In Lucky mode, used but caveated in the transcript. | # Employee Options Source: https://valuation-101.com/docs/skills/employee-options Compute the value of outstanding employee stock options using dilution-adjusted Black-Scholes. ## What it does Determines whether the company has outstanding employee stock options and, if so, computes their total value using dilution-adjusted Black-Scholes. The resulting value is subtracted from equity in the DCF equity bridge, reducing the estimated value per share. ## Why it matters Employee stock options represent a claim on equity that existing shareholders must share. Ignoring them overstates the value per share. The dilution-adjusted Black-Scholes model accounts for this by valuing the options and deducting them before dividing by shares outstanding. # Failure Rate Source: https://valuation-101.com/docs/skills/failure-rate Estimate the probability of corporate failure and adjust the intrinsic value accordingly. ## What it does Estimates the probability that the company will fail (go bankrupt) before the projected cash flows materialize. The DCF value is then adjusted: `Adjusted value = DCF value × (1 − failure probability)`. ## Two methods **Bond-rating-based:** Uses historical default rates by bond rating from Damodaran's dataset. If the company has a bond rating (or synthetic rating from the cost-of-capital skill), the historical 10-year cumulative default rate for that rating class is used. **Age-based:** Uses Bureau of Labor Statistics (BLS) business survival data. Younger companies have higher failure rates. Used when no bond rating is available. # FCFF Orchestrator Source: https://valuation-101.com/docs/skills/fcff Orchestrate the complete end-to-end FCFF intrinsic valuation — from company name to value per share. ## What it does The orchestrator skill that runs the full valuation pipeline. It coordinates all other skills in the correct order, passing outputs between them. ## Execution flow 1. [company-identifier](/skills/company-identifier) — resolve the company 2. [identify-required-statements](/skills/identify-required-statements) — determine needed filings 3. [pull-raw-data](/skills/pull-raw-data) — fetch XBRL data 4. [parse-raw-data-to-filings](/skills/parse-raw-data-to-filings) — extract per-filing data 5. [last-twelve-months](/skills/last-twelve-months) — compute LTM financials 6. [last-10-k](/skills/last-10-k) — extract annual comparison data 7. [r-and-d-converter](/skills/r-and-d-converter) — capitalize R\&D (if applicable) 8. [lease-converter](/skills/lease-converter) — convert leases (if applicable) 9. [cost-of-capital](/skills/cost-of-capital) — compute WACC 10. [earnings-guidance](/skills/earnings-guidance) — extract management guidance from latest earnings call 11. [growth-and-profitability](/skills/growth-and-profitability) — set 4 forecast variables with convergence curves 12. [fcff-model](/skills/fcff-model) — run the DCF 13. [employee-options](/skills/employee-options) — value options (if applicable) 14. [failure-rate](/skills/failure-rate) — adjust for distress 15. [diagnostics](/skills/diagnostics) — sanity check ## Mode behavior | Mode | Conversation style | User decisions | Time | | ------------- | ----------------------------------- | --------------------------- | --------- | | Expert | Data + options, minimal explanation | Every assumption | 10–15 min | | Novice | Full explanations at each step | Guided with recommendations | 15–20 min | | Feeling Lucky | Silent execution with defaults | None (review after) | \~60 sec | # FCFF Model Source: https://valuation-101.com/docs/skills/fcff-model Run the core DCF engine — 10-year FCFF projection, terminal value, and equity bridge — producing estimated value per share. ## What it does The core DCF engine. Takes all prior outputs — including the four 10-year forecast schedules from [growth-and-profitability](/skills/growth-and-profitability) — and runs the full FCFF valuation, producing an estimated value per share. ## The three stages ### Stage 1: 10-year FCFF projection The engine consumes four pre-computed schedules (each a list of 10 values, one per year) generated by the [curve shapes library](/lib/curve-shapes): | Schedule | Controls | Source | | ----------------- | ------------------------------- | --------------------------------------------------- | | `growth_schedule` | Revenue growth rate per year | Start → end via selected curve type | | `margin_schedule` | Operating margin per year | Start → end via selected curve type | | `s2c_schedule` | Sales-to-capital ratio per year | Start → end via selected curve type | | `coc_schedule` | Cost of capital per year | Initial WACC → terminal CoC via selected curve type | For each year 1–10, the engine computes: | Line item | Computation | | ---------------- | --------------------------------------------------------- | | Revenue | Prior year × (1 + growth\_schedule\[t]) | | Operating margin | margin\_schedule\[t] | | EBIT | Revenue × operating margin | | Tax rate | Effective tax rate, converging to terminal tax by year 10 | | After-tax EBIT | EBIT × (1 − tax rate), with NOL shielding if applicable | | Reinvestment | Δ Revenue / s2c\_schedule\[t] | | **FCFF** | **After-tax EBIT − reinvestment** | | PV(FCFF) | FCFF / cumulative discount factor at coc\_schedule\[t] | Because the schedules are curve-shaped rather than linearly interpolated, the projection captures realistic convergence patterns — e.g., exponential growth deceleration or S-curve margin expansion. ### Stage 2: Terminal value ``` TV = FCFF(11) / (WACC(stable) − g(stable)) ``` Where: * **FCFF(11)** = year 11 free cash flow (at stable growth) * **WACC(stable)** = cost of capital at maturity (risk-free rate + base ERP, or user override) * **g(stable)** = stable growth rate (typically ≤ risk-free rate) ### Stage 3: Equity bridge ``` PV of year 1–10 FCFFs + PV of terminal value = Operating value of the firm − Debt − Minority interests + Cash + Non-operating assets − Employee stock options value × (1 − probability of failure) ÷ Shares outstanding = Estimated value per share ``` ## Default assumption overrides Beyond the four forecast schedules, the model accepts 9 toggles for structural assumptions (terminal cost of capital, terminal ROIC, failure probability, reinvestment lag, tax convergence, NOL carryforward, risk-free rate override, growth rate override, trapped cash). In Expert mode, all 9 are presented for user override. In Novice and Lucky modes, Damodaran's standard defaults are used. ## Python engine The math is implemented in [`lib/dcf_engine.py`](/lib/dcf-engine) — a pure Python module with no AI dependencies. It accepts both pre-computed schedules (from the curve library) and legacy scalar inputs (for backward compatibility). Every intermediate value is logged to the run transcript for auditability. # Growth & Profitability Source: https://valuation-101.com/docs/skills/growth-and-profitability Set the four forecast variables that drive the 10-year DCF projection — each with a start value, end value, and convergence curve. ## What it does Collects and validates the four forecast variables that drive the 10-year FCFF projection. For each variable, the skill determines a **start value** (year 1), an **end value** (year 10 target), and a **convergence curve type** that controls the transition shape. The [curve shapes library](/lib/curve-shapes) then generates a full 10-year schedule that is passed directly to the DCF engine. ## The four forecast variables | Variable | Start value (Year 1) | End value (Year 10) | What it controls | | -------------------------- | -------------------------------------- | --------------------------------------------- | ------------------------------------------ | | **Revenue growth** | LTM growth rate (or earnings guidance) | Industry 5-year average growth | Top-line trajectory and deceleration shape | | **Operating margin** | LTM EBIT margin (or earnings guidance) | Industry average (or guided long-term target) | Profitability convergence path | | **Sales-to-capital ratio** | Company's current ratio | Industry average | Reinvestment efficiency evolution | | **Cost of capital** | Initial WACC from Phase 5 | Risk-free rate + base ERP | Risk premium decline as company matures | Each variable transitions from start to end over 10 years using one of [six convergence curve types](/lib/curve-shapes): | Curve | Shape | Typical use | | -------------------- | --------------------------------- | -------------------------------------------------------- | | Exponential Decay | Fast initial change, gradual tail | Revenue growth decelerating as market saturates | | Standard S-Curve | Flat → rapid → flat | Margins expanding after moat-protected growth phase | | Rapid Deceleration | Very fast convergence | Large gap between current and target, fast normalization | | Linear | Constant rate of change | Steady, predictable transitions | | Delayed Deceleration | Holds near start, then drops | Strong near-term visibility (backlog-driven) | | Step-Down | Flat then discrete jump | Margin cliffs (patent expiry, contract loss) | ## How schedules interact The four 10-year schedules together determine every line in the projection: * **Revenue(t)** = Revenue(t−1) × (1 + growth\_schedule\[t]) * **EBIT(t)** = Revenue(t) × margin\_schedule\[t] * **Reinvestment(t)** = ΔRevenue / s2c\_schedule\[t] * **FCFF(t)** = EBIT(t) × (1 − tax\_rate) − Reinvestment(t) * **PV(FCFF)** = FCFF(t) / (1 + coc\_schedule\[t])^t ## Earnings guidance integration When [earnings guidance](/skills/earnings-guidance) is available from Phase 5.5, it overrides LTM-derived defaults: | Variable | With guidance | Without guidance | | ------------------------ | ----------------------------------------- | ------------------ | | Revenue growth — start | Implied growth from guided dollar revenue | LTM growth rate | | Operating margin — start | Guided year 1 margin | LTM EBIT / Revenue | | Operating margin — end | Guided long-term target (if given) | Industry average | In **Expert mode**, guided values are presented alongside industry benchmarks — the user can accept, modify, or reject each one. In **Lucky mode**, guidance is applied automatically. ## Industry benchmarks For each variable, the skill shows how the company compares to its industry: | Metric | Company (LTM) | US Avg | Global Avg | Q1 | Median | Q3 | | ------------------------ | ------------- | ------ | ---------- | -- | ------ | -- | | Revenue growth | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | Pre-tax operating margin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | Sales-to-capital ratio | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ROIC | ✓ | ✓ | ✓ | — | — | — | Sources: Damodaran Jan 2026 industry averages (US and Global), Input Stat Distributions (Global). Company actuals computed from LTM SEC filings. ## Mode behavior | Mode | How variables are set | | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Expert** | Full benchmark table shown, then all four variables presented with start/end/curve defaults. User overrides any values or curve types. | | **Novice** | Two story questions: "How fast will this company grow?" and "How profitable will it be?" Responses are mapped to the four variables using industry quartiles. Curves auto-selected. | | **Feeling Lucky** | Fully automatic — start values from LTM or guidance, end values from industry targets, curves auto-classified. Zero questions asked. | ## Curve auto-classification In Feeling Lucky and Novice modes, curve types are selected automatically based on: * **Direction**: ascending (margin expansion) vs. descending (growth deceleration) * **Gap magnitude**: how far the start value is from the target * **Company trajectory**: recent trend direction and velocity * **Industry context**: whether the company is far outside industry norms For example, a company with 168% LTM revenue growth converging to a 29% industry average would get an **Exponential Decay** curve, while a company with very low sales-to-capital ratio (0.17x vs. 1.35x industry) would get an **S-Curve** to model gradual efficiency improvement. ## Validation After determining the schedules (in any mode), the skill flags unusual values: very high year 1 growth rates, negative target margins, very low or very high sales-to-capital ratios, or curves that imply implausible trajectories. In Expert mode, all flags require confirmation. In Lucky mode, flags are noted but the pipeline proceeds. ## Output The skill saves `growth_assumptions.json` to the run directory, containing: * The four 10-year schedules (`growth_schedule`, `margin_schedule`, `s2c_schedule`, `coc_schedule`) * Curve type selections and metadata * Start/end values with source annotations (LTM, guidance, industry) * Industry benchmarks for comparison * Legacy scalar fields maintained for backward compatibility # Identify Required Statements Source: https://valuation-101.com/docs/skills/identify-required-statements Determine which SEC filings (10-K and 10-Q) are needed for the DCF valuation based on the valuation date. ## What it does Determines which SEC filings are needed for the valuation based on the company's fiscal calendar and the valuation date. Returns a structured JSON file listing every 10-K and 10-Q the pipeline must process. ## Output structure ```json theme={null} { "company": "NVDA", "valuation_date": "2026-02-22", "fiscal_year_end": "01-26", "statements_required": [ { "statement_type": "10-K", "fiscal_period_end": "2025-01-26", "role": "primary" }, { "statement_type": "10-K", "fiscal_period_end": "2024-01-28", "role": "prior_year" }, { "statement_type": "10-Q", "fiscal_period_end": "2025-10-26", "role": "bridge" }, { "statement_type": "10-Q", "fiscal_period_end": "2024-10-27", "role": "bridge_prior" } ], "bridge_quarters_needed": true } ``` ## Why bridge quarters matter If the valuation date falls after the most recent 10-K, the model needs trailing-twelve-month (LTM) figures. These are computed by adding recent quarter data to the annual and subtracting the prior year's equivalent quarters. The `bridge` and `bridge_prior` filings make this calculation possible. ## Edge cases * **Valuation date = 10-K filing date** — no bridge quarters needed; LTM equals the annual * **Fiscal year doesn't end in December** — the skill correctly handles non-calendar fiscal years (e.g., Apple's September FYE) * **Recent IPO** — if fewer than 4 quarters of data exist, the skill flags this and adjusts # Last 10-K Source: https://valuation-101.com/docs/skills/last-10-k Extract financial data from the most recent annual 10-K filing for Damodaran's Input sheet column C. ## What it does Reads the primary annual 10-K `_raw.json` file directly — no bridging or summing required. Extracts the same financial fields as the LTM skill but from the most recent completed annual filing. This provides the year-over-year comparison data that Damodaran's spreadsheet uses in column C. ## Output fields | Field | Damodaran cell | Description | | --------------------- | -------------- | ----------------------------- | | revenues | C11 | Annual revenue | | operating\_income | C12 | Annual operating income | | interest\_expense | C13 | Annual interest expense | | book\_value\_equity | C14 | Year-end shareholders' equity | | book\_value\_debt | C15 | Year-end total debt | | cash | C18 | Year-end cash | | shares\_outstanding | C19 | Year-end diluted shares | | current\_stock\_price | C20 | Price at fiscal year end | # Last Twelve Months Source: https://valuation-101.com/docs/skills/last-twelve-months Compute trailing-12-month financials from SEC filings for Damodaran's Input sheet column B. ## What it does Combines annual 10-K data with quarterly 10-Q bridge filings to produce trailing-twelve-month figures. The output maps directly to column B of Damodaran's fcffsimpleginzu Input sheet. ## LTM computation logic **Income statement items** (revenue, operating income, interest expense, etc.): ``` LTM = Annual (10-K) + Current Bridge Quarter(s) − Prior Year Bridge Quarter(s) ``` **Balance sheet items** (total debt, cash, shares outstanding, etc.): ``` LTM = Most recent quarter-end snapshot (no summing) ``` **Derived items** (book value of equity, effective tax rate): ``` Computed from the assembled components ``` ## Output fields | Field | Damodaran cell | Description | | --------------------- | -------------- | ---------------------------------------- | | revenues | B11 | Total revenue (LTM) | | operating\_income | B12 | Operating income / EBIT (LTM) | | interest\_expense | B13 | Interest expense (LTM) | | book\_value\_equity | B14 | Shareholders' equity (latest) | | book\_value\_debt | B15 | Total interest-bearing debt (latest) | | cash | B18 | Cash and short-term investments (latest) | | shares\_outstanding | B19 | Diluted shares outstanding | | current\_stock\_price | B20 | Market price per share | | effective\_tax\_rate | B21 | Computed from provision / pre-tax income | # Lease Converter Source: https://valuation-101.com/docs/skills/lease-converter Convert operating lease commitments into debt equivalents, adjusting EBIT, debt, and invested capital. ## What it does Converts operating lease commitments into debt equivalents using Damodaran's approach. This adjusts the company's debt, EBIT, and invested capital to reflect the economic reality of lease obligations. ## When to use Auto-detected in Feeling Lucky mode when operating lease right-of-use assets exceed 10% of total assets. Most companies now capitalize leases under ASC 842/IFRS 16, but the adjustment may still be needed for consistency with Damodaran's framework. # Skills Overview Source: https://valuation-101.com/docs/skills/overview All 19 skills in the Valuation101 plugin — with dependency graph, inputs, outputs, and execution order. ## The skill graph Valuation101 is composed of 19 skills that execute in a defined order. Each skill has explicit inputs, outputs, and dependencies. ```mermaid theme={null} graph TD CI[company-identifier] --> IRS[identify-required-statements] IRS --> PRD[pull-raw-data] PRD --> PRTF[parse-raw-data-to-filings] PRTF --> LTM[last-twelve-months] PRTF --> L10K[last-10-k] LTM --> COC[cost-of-capital] L10K --> COC LTM --> RD[r-and-d-converter] LTM --> LC[lease-converter] RD --> COC LC --> COC COC --> EG[earnings-guidance] EG --> GAP[growth-and-profitability] GAP --> FM[fcff-model] FM --> EO[employee-options] FM --> FR[failure-rate] EO --> FM FR --> FM FM --> DX[diagnostics] FM --> VR[valuation-report] FM --> CSG[case-study-generator] ``` ## Skill inventory ### Data Collection (Phase 1–3) | Skill | Purpose | Inputs | Outputs | | -------------------------------------------------------------------- | ----------------------------------------- | --------------------------------------- | --------------------------------- | | [company-identifier](/skills/company-identifier) | Resolve name/ticker to confirmed identity | Company name or ticker | CIK, ticker, legal name, sector | | [identify-required-statements](/skills/identify-required-statements) | Determine which SEC filings are needed | Ticker, valuation date, fiscal calendar | `statements_required_{date}.json` | | [pull-raw-data](/skills/pull-raw-data) | Download XBRL data from SEC EDGAR | CIK | `companyfacts.json` | | [parse-raw-data-to-filings](/skills/parse-raw-data-to-filings) | Parse raw JSON into per-filing extracts | `companyfacts.json`, statements list | `_raw.json` per filing | | [last-twelve-months](/skills/last-twelve-months) | Compute trailing-12-month financials | Per-filing `_raw.json` files | `ltm_{date}.json` | | [last-10-k](/skills/last-10-k) | Extract most recent annual financials | Primary 10-K `_raw.json` | `last_10k_{date}.json` | ### Valuation Engine (Phase 4–6) | Skill | Purpose | Inputs | Outputs | | ------------------------------------------------------------ | ------------------------------------------------ | --------------------------------------- | ---------------------------------------------- | | [cost-of-capital](/skills/cost-of-capital) | Compute WACC (3 methods) | LTM data, industry data, risk-free rate | WACC %, cost of equity, cost of debt | | [earnings-guidance](/skills/earnings-guidance) | Extract forward guidance from earnings calls | Ticker, statements required | Revenue and margin guidance JSON | | [growth-and-profitability](/skills/growth-and-profitability) | Set 4 forecast variables with convergence curves | LTM data, industry benchmarks, guidance | 10-year schedules for growth, margin, S/C, CoC | | [fcff-model](/skills/fcff-model) | Run the DCF engine | All prior outputs + assumptions | Value per share, projection table | ### Adjustments (Optional) | Skill | Purpose | When used | | ---------------------------------------------- | ----------------------------------- | ---------------------------------------- | | [r-and-d-converter](/skills/r-and-d-converter) | Capitalize R\&D into research asset | R\&D > 5% of revenue | | [lease-converter](/skills/lease-converter) | Convert operating leases to debt | Material operating leases | | [employee-options](/skills/employee-options) | Value outstanding stock options | Company has employee options outstanding | | [failure-rate](/skills/failure-rate) | Estimate probability of failure | All companies (adjusts final value) | ### Output (Phase 7+) | Skill | Purpose | Inputs | Outputs | | ---------------------------------------------------- | ----------------------------- | ------------------------------- | ------------------------------ | | [fcff](/skills/fcff) | Orchestrate the full pipeline | Company name + mode | End-to-end valuation | | [diagnostics](/skills/diagnostics) | Sanity-check the valuation | Completed valuation output | 6-point diagnostic report | | [valuation-report](/skills/valuation-report) | Generate formatted report | Completed valuation output | `.docx` report | | [case-study-generator](/skills/case-study-generator) | Generate docs site case study | Completed valuation spreadsheet | `.mdx` case study + SVG charts | ### Experimental | Skill | Purpose | Status | | -------------- | ------------------------------------------------------ | ---------------------------------------- | | llm-classifier | LLM-based curve type classifier for forecast variables | Placeholder — rule-based fallback in use | ## For AI agents Every skill page includes structured frontmatter with machine-parseable fields: ```yaml theme={null} skill_id: cost-of-capital phase: 5 inputs: [LTM data, industry averages, risk-free rate] outputs: [WACC (%), cost of equity, cost of debt, weights] depends_on: [last-twelve-months, last-10-k] feeds_into: [growth-and-profitability, fcff-model] ``` Access [`/llms.txt`](/llms.txt) for a curated index or [`/llms-full.txt`](/llms-full.txt) for the complete documentation in a single file. # Parse Raw Data to Filings Source: https://valuation-101.com/docs/skills/parse-raw-data-to-filings Transform the raw XBRL companyfacts.json into structured per-filing JSON files for downstream valuation skills. ## What it does Produces three artifacts in sequence: 1. **company-facts-keys.json** — a full inventory of every XBRL tag available for the company, with metadata (taxonomy, units, observation count) 2. **csv/ folder** — one CSV per valuation-relevant XBRL tag, showing all reported observations across all filings 3. **Per-filing \_raw\.json files** — one per 10-K or 10-Q in the required statements list, each containing every relevant financial field as a single unsummed value with its source tag, period, and accession number ## Why per-filing extraction matters The raw companyfacts.json contains thousands of observations across dozens of filings. This skill filters to just the filings the valuation needs and extracts exactly one value per financial concept per filing — resolving tag ambiguity, handling dimensional data, and ensuring no double-counting. ## Tag ambiguity resolution Companies use different XBRL tags for the same concept. For example, revenue might appear as: * `Revenues` * `RevenueFromContractWithCustomerExcludingAssessedTax` * `RevenueFromContractWithCustomerIncludingAssessedTax` The extraction logic selects the most appropriate tag based on recency, specificity, and consistency with other filings. Every extracted value records its source tag for traceability. # Pull Raw Data Source: https://valuation-101.com/docs/skills/pull-raw-data Download the company's full XBRL fact set from SEC EDGAR. ## What it does Fetches the company's complete XBRL fact set from the SEC EDGAR API. This is a single large JSON file containing every financial fact the company has ever reported across all filings. ## API endpoint ``` GET https://data.sec.gov/api/xbrl/companyfacts/CIK{padded_cik}.json ``` Required header: `User-Agent: ValuationPlugin admin@example.com` ## Caching The fetched file is cached at `data/cache/{TICKER}/companyfacts.json`. A companion file `companyfacts_fetched.txt` records the fetch timestamp. The cache is refreshed if older than 24 hours. If the cache is fresh, this skill is skipped entirely — no API call is made. ## Output size Typical response sizes: 5–15 MB depending on the company's filing history. Large, long-listed companies (e.g., GE, Apple) may exceed 20 MB. # R&D Converter Source: https://valuation-101.com/docs/skills/r-and-d-converter Capitalize R&D expenses into a research asset, adjusting EBIT and invested capital for the DCF model. ## What it does Treats R\&D spending as investment rather than operating expense. This is Damodaran's standard adjustment for companies with material R\&D — it increases reported EBIT (and invested capital) to better reflect the company's true earning power and asset base. ## When to use Auto-detected in Feeling Lucky mode when R\&D exceeds 5% of revenue. In Expert mode, the user decides. ## The adjustment 1. Capitalize recent R\&D expenses over an amortization period (typically 3–5 years depending on industry) 2. Create a "research asset" = sum of unamortized R\&D 3. Adjust EBIT: add back current R\&D expense, subtract amortization of the research asset 4. Adjust invested capital: add the research asset to book value # Valuation Report Source: https://valuation-101.com/docs/skills/valuation-report Generate a professional .docx valuation report from a completed FCFF valuation run. ## What it does Generates a multi-chapter Word document (`.docx`) summarizing the complete valuation. Includes an executive summary, input assumptions, projection tables, equity bridge, and diagnostic findings. ## Report sections 1. **Executive TLDR** — company, valuation date, estimated value per share, current price, implied upside/downside 2. **Company overview** — identity, sector, fiscal year, filing dates used 3. **Financial snapshot** — LTM and last 10-K data in tabular form 4. **Cost of capital** — WACC breakdown with all three methods shown 5. **Growth assumptions** — the four value drivers with industry context 6. **10-year projection** — year-by-year revenue, EBIT, FCFF table 7. **Equity bridge** — operating value to equity value per share 8. **Diagnostics** — the 6-point checklist results 9. **Appendix** — data sources, XBRL tags used, cache timestamps