The quarterly valuation cycle is a necessary evil. You know the drill: pulling five years of historical financials from three different systems, normalizing working capital line items, reconciling depreciation schedules against the fixed asset register, and then defending your WACC assumptions to a board that has already made up its mind. The average analyst spends 14 to 18 hours on a single discounted cash flow model, and most of that time is not spent on analysis—it is spent on data wrangling, formula auditing, and formatting. The result is a model that is technically correct but analytically shallow, because you ran out of time before you could stress-test the terminal value or run scenario sensitivities.
Claude Code changes that equation. Instead of asking you to build the model cell by cell, it acts as a senior modeling associate that can read your source files, extract the relevant line items, construct the projection logic, and flag inconsistencies before you ever hit “calculate.” More importantly, it does not replace your judgment—it amplifies it. You still set the assumptions, you still choose the growth rates, and you still own the output. But the mechanical 80% of the work—the extraction, the normalization, the formula construction, the audit trail—gets compressed into minutes. This is not about automating away the analyst; it is about automating away the drudgery so you can spend your time on the 20% that actually moves the valuation.
The prompts below are structured to give you a repeatable workflow. The first one builds the historical normalization and projection skeleton. The second one handles the WACC calculation and sensitivity output. Both follow the “anatomy of a prompt” format that forces Claude to read your files, ask clarifying questions, and produce an execution plan before touching a single cell. That discipline is what turns a generic chatbot interaction into a defensible, audit-ready modeling process.
Why Most AI Valuation Prompts Fail
The typical prompt—”build me a DCF”—fails for three reasons. First, it lacks context. Claude cannot see your chart of accounts, your depreciation policy, or your debt schedule. Second, it lacks constraints. Without a success brief, you get a generic 5-year projection with a 10% discount rate and a perpetuity growth rate that you would never use. Third, it lacks a feedback loop. The best models are iterative; they require a back-and-forth where you push back on assumptions and Claude recalculates. The structured prompts below solve all three problems by forcing a pre-execution dialogue.
First, read these files completely before responding:
[historical_financials.xlsx] — raw income statement, balance sheet, and cash flow statement for the last 5 fiscal years
[fixed_asset_register.csv] — depreciation schedules and asset additions by year
[working_capital_policy.md] — company-specific assumptions on DSO, DPO, and inventory turns
Here is a reference for what I want to achieve:
[Upload a sample normalized financial model as markdown, or describe a typical projection template with explicit line items for revenue, COGS, operating expenses, D&A, and working capital changes]
Here’s what makes this reference work:
[Each line item is clearly labeled with a formula reference; historical years are separated from projection years; every assumption (growth rate, margin, capex % of revenue) is in a single assumptions block, not scattered across the sheet]
Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: A normalized 5-year historical model plus a 5-year projection skeleton, structured as a single table with clear column groupings
Recipient’s reaction: They should be able to trace any number back to the source file in under 30 seconds
Does NOT sound like: A generic template with hardcoded growth rates; no hidden assumptions; no circular references
Success means: The model reconciles to the source financials within a 0.5% tolerance and flags any line item that does not match
My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.
Give me your execution plan (5 steps max) before you begin.
Bridging to the WACC and Sensitivity Layer
Once the projection skeleton is in place, the next bottleneck is the cost of capital. Most teams default to a historical beta and a static risk-free rate, which is fine for a back-of-the-envelope check but dangerous for a board-level decision. Claude Code can pull the capital structure from your normalized balance sheet, calculate levered and unlevered betas, and then stress-test the WACC across a range of equity risk premia and debt costs. The prompt below focuses on that output—and, crucially, it asks for a sensitivity table that shows how the enterprise value moves with WACC and terminal growth. That is the output your CFO actually wants to see.
First, read these files completely before responding:
[normalized_model.xlsx] — the output from the previous step, with historical and projected financials
[capital_structure.md] — current debt and equity balances, credit rating, and any recent debt issuances
[market_data.csv] — risk-free rate, equity risk premium, and peer company betas for the last 3 months
Here is a reference for what I want to achieve:
[Upload a sample WACC calculation and a 5×5 sensitivity matrix showing EV as a function of WACC (8% to 12%) and terminal growth (1% to 3%)]
Here’s what makes this reference work:
[The WACC is broken into explicit components (cost of equity via CAPM, after-tax cost of debt, market-value weights); the sensitivity table is formatted with the base case highlighted; every input is sourced and labeled]
Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: A WACC calculation with a full audit trail, plus a 5×5 sensitivity table in markdown
Recipient’s reaction: They should see the range of outcomes and immediately understand which two variables drive the most value
Does NOT sound like: A single-point WACC with no context; no unexplained adjustments to beta; no circularity between WACC and capital structure
Success means: The WACC is within 50 basis points of our internal estimate, and the sensitivity table clearly shows the EV range from the 10th to 90th percentile
My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.
Give me your execution plan (5 steps max) before you begin.
Practical Tips for Running These Prompts
The most common mistake is skipping the clarifying question phase. When Claude asks “Do you want the beta levered or unlevered?” or “Should the terminal value use a perpetuity growth or an exit multiple?”—do not just answer “yes.” These questions are your opportunity to inject your professional judgment. If you are a controller, you might prefer the exit multiple approach because it is easier to defend in an audit. If you are a CFO, you might want the perpetuity growth because it aligns with your long-term strategic plan. Answer those questions deliberately, and the output will reflect your thinking, not a generic average.
A second tip: use the “Does NOT sound like” field aggressively. If you have seen bad DCF models—and you have—describe them. Say “does not sound like a model where depreciation is a plug number” or “does not sound like a WACC that ignores the current yield on our outstanding bonds.” Claude uses that negative space to avoid the lazy shortcuts that plague spreadsheet models. Finally, after you get the first output, do not accept it as final. Run a second pass asking Claude to “audit this model for circular references and formula errors.” That extra 10 minutes will save you from presenting a model that has a hidden link to a deleted sheet.
Start with the first prompt on a small, non-critical business unit. Get comfortable with the back-and-forth. Once you see how the normalized model reconciles to your source data, you will never go back to manual extraction. Then scale to the full company, and use the sensitivity table as the centerpiece of your next board pack.
Published on 10 August 2026 on growwithgpt.com
