Introduction
The DCF model is the most important valuation model in investment banking, and building it correctly requires both technical skill and analytical discipline. This article covers the practical best practices for constructing a DCF in Excel that is reliable (the output accurately reflects the assumptions), auditable (any reviewer can trace the logic), and defensible (the assumptions are documented and the sensitivity range is transparently presented).
The conceptual framework for the DCF is covered in Walk Me Through a DCF. This article focuses on the execution: how to actually build the model so that it works correctly and can withstand scrutiny.
Starting Point: The Three-Statement Model
A DCF model is not a standalone exercise. It sits on top of a three-statement model that provides the projected income statement, balance sheet, and cash flow statement. The three-statement model supplies the line items needed to calculate unlevered free cash flow: EBIT, D&A, CapEx, and changes in working capital.
Step 1: Extract Unlevered Free Cash Flow
From the three-statement model, build a dedicated DCF section (or tab) that calculates UFCF for each projection year:
Each component should link directly to the three-statement model (not be re-entered manually). EBIT comes from the income statement, D&A from the depreciation schedule or income statement, CapEx from the investing section of the cash flow statement, and working capital changes from the balance sheet (or the working capital schedule).
Practical Notes
- Use the marginal tax rate, not the effective rate, for the EBIT x (1-t) calculation. The effective rate reflects historical tax items; the marginal rate reflects the ongoing tax burden. For US companies, use approximately 25-27% (21% federal + state taxes).
- Be explicit about SBC treatment. Decide whether to add back stock-based compensation to UFCF (most common in tech) or leave it as an expense. Document the choice in the assumptions tab.
- Verify UFCF reasonability. Calculate UFCF as a percentage of revenue and as a percentage of EBITDA (the "UFCF conversion ratio"). Compare to historical trends and peer companies. If the projected UFCF conversion ratio is dramatically different from history, investigate why.
Choosing the Projection Period Length
The projection period should extend until the company reaches a steady state where revenue growth, margins, and capital intensity have normalized to sustainable long-term levels. This is the point at which the terminal value assumption (constant growth forever) becomes a reasonable approximation.
For mature, stable companies (consumer staples, utilities, diversified industrials), a 5-year projection period is typically sufficient because the business is already near steady state. Revenue growth is modest and predictable, margins are stable, and capital intensity is well-established.
For high-growth companies (technology, biotech, high-growth consumer), a 7-10 year projection period may be necessary to capture the full growth trajectory. A SaaS company growing at 30% annually will not be at steady state in 5 years; the projections need 7-10 years to model the deceleration from high growth to mature growth (and the corresponding margin expansion from operating leverage). Using only 5 years would force the terminal value to embed an unrealistically high growth rate or would dramatically understate the value by applying a mature growth rate to a company still in its high-growth phase.
For cyclical companies, the projection period should capture at least one full business cycle (typically 5-7 years). If the company is currently at a cyclical peak, the projections should model the downturn and recovery before reaching the steady-state terminal year. Starting the terminal value from a peak-cycle year overstates the company's normalized cash flow.
Step 2: Calculate WACC
Build the WACC calculation on a dedicated section of the DCF tab or on its own tab:
- Risk-free rate: Pull the current 10-year Treasury yield. Document the date.
- Beta: Use the peer group median unlevered beta, relevered at the target's capital structure. Show the peer group betas and the unlevering/relevering calculation.
- Equity risk premium: Use the bank's standard ERP or document the source (Damodaran implied ERP, historical average).
- Cost of debt: Use the yield on the company's existing long-term debt (or the yield for the company's credit rating if no public debt exists).
- Capital structure weights: Use market values (share price x diluted shares for equity; book value approximation for debt).
Step 3: Calculate Terminal Value (Both Methods)
Build both terminal value methods and display them side by side:
Perpetuity Growth Method
Show the perpetuity growth rate assumption (typically 2-3%) and calculate the implied exit multiple as a cross-check (TV / final year EBITDA).
Exit Multiple Method
Show the exit multiple assumption (sourced from current peer group trading comps) and calculate the implied perpetuity growth rate as a cross-check.
- Terminal Value Cross-Check
The practice of calculating the implied exit multiple from the perpetuity growth method (or the implied growth rate from the exit multiple method) to verify that both terminal value approaches produce internally consistent results. If the perpetuity growth method implies an exit multiple of 25x in a sector that trades at 10-12x, the growth rate is likely too aggressive. If the exit multiple method implies a perpetuity growth rate of 5%, the exit multiple is likely too high. This cross-check is a required quality control step in every DCF model.
Step 4: Discount and Sum
Apply the mid-year convention to discount each year's UFCF and the terminal value to present value:
- Explicit period cash flows: discount exponents of 0.5, 1.5, 2.5, etc.
- Terminal value: discount exponent at the end of the projection period (or at the mid-year of the final period, depending on convention)
Sum the present values to arrive at implied enterprise value. Display the breakdown clearly:
- PV of explicit period cash flows (sum of discounted Years 1-5 or 1-10 UFCFs)
- PV of terminal value (discounted terminal value)
- Total implied enterprise value (sum of the two)
- Terminal value as a percentage of total (this should typically be 60-80%; if it exceeds 85%, flag it as a sensitivity risk)
Use XNPV for Precision
For models where the valuation date does not align with fiscal year-end (which is most of the time), Excel's XNPV function provides more precise discounting than the standard NPV formula because it accounts for the exact number of days between the valuation date and each cash flow date.
Step 5: Bridge to Equity Value Per Share
Apply the EV bridge using current balance sheet data (not projected):
Use diluted shares calculated via the treasury stock method at the current share price.
Step 6: Build Sensitivity Analysis
Create sensitivity tables using Excel's Data Table functionality:
- WACC vs. Terminal Growth Rate: For the perpetuity growth terminal value
- WACC vs. Exit Multiple: For the exit multiple terminal value
- Revenue Growth vs. EBITDA Margin: For operating assumption sensitivity
These tables should be prominently displayed on the output tab and should clearly highlight the base case cell.
Common DCF Modeling Mistakes
| Mistake | Impact | Prevention |
|---|---|---|
| Using levered FCF with WACC | Understates value (double-counts debt cost) | Always match UFCF with WACC |
| Hard-coding values in formulas | Creates "magic numbers" invisible to reviewers | All inputs flow from assumptions tab |
| Terminal growth rate > long-term GDP | Implies company grows larger than the economy | Cap at 2-3% for developed markets |
| No sensitivity analysis | False precision in a single-point estimate | Always present WACC and TV sensitivity grids |
| Using effective tax rate | Distorts UFCF with temporary tax items | Use marginal tax rate (25-27% for US) |
| Ignoring the mid-year convention | Understates value by ~3-5% | Apply mid-year discounting as default |
| No terminal value cross-check | No validation that TV assumptions are consistent | Calculate implied multiple AND implied growth rate |
The WACC Construction in Excel: Practical Detail
The WACC section of the DCF model should be organized as a clear, self-contained calculation block where each input is visible and sourced. The standard layout:
Cost of Equity Section:
| Input | Value | Source |
|---|---|---|
| Risk-free rate | 4.30% | 10-year UST yield, 03/18/2026 |
| Equity risk premium | 5.50% | Damodaran implied ERP, Jan 2026 |
| Raw beta (Bloomberg, 2yr weekly) | 1.25 | Bloomberg, as of 03/18/2026 |
| Adjusted beta (Blume) | 1.17 | (2/3 x 1.25) + (1/3 x 1.0) |
| Peer median unlevered beta | 0.95 | See peer beta tab |
| Target D/E for relevering | 0.45x | Current market cap / book debt |
| Relevered beta | 1.27 | 0.95 x (1 + 0.75 x 0.45) |
| Cost of equity | 11.29% | 4.30% + 1.27 x 5.50% |
Each input references a specific source cell or external data point. The beta section should include a supporting schedule showing each peer company's levered beta, D/E ratio, unlevered beta, and the median calculation, so a reviewer can trace the entire derivation.
Cost of Debt Section: The cost of debt is typically the yield to maturity on the company's longest-dated unsecured bond, adjusted for tax. For companies without public debt, use the yield on bonds of comparable credit quality and maturity.
WACC Assembly: The final WACC formula combines equity weight x cost of equity + debt weight x after-tax cost of debt. All weights use market values. The result is displayed prominently with the individual components visible above it.
- XNPV (Excel Function)
An Excel function that calculates the net present value of a series of cash flows occurring at specific dates, rather than at evenly spaced intervals. Unlike the standard NPV function (which assumes cash flows occur at the end of each period), XNPV accounts for the exact number of days between the valuation date and each cash flow. In DCF models, XNPV is more precise for mid-period valuations (when the valuation date falls in the middle of a fiscal year) and for quarterly models. The syntax is =XNPV(rate, values, dates), where the rate is the annual WACC, values are the cash flows (including the terminal value), and dates are the specific dates on which each cash flow is assumed to occur.
Presenting the DCF Output
The DCF output tab should be designed for an MD or client to read without any explanation. The standard layout includes:
Headline output: Implied enterprise value, implied equity value, and implied share price, clearly labeled with the base case assumptions (WACC, terminal method, terminal growth rate or exit multiple).
Football field data: The DCF-implied range (from the sensitivity analysis) formatted for direct placement on the football field chart. This typically shows the low, midpoint, and high of the sensitivity range for both the perpetuity growth and exit multiple methods.
Key assumption summary: A condensed version of the assumptions tab showing the most important inputs (revenue CAGR, terminal year EBITDA margin, WACC, terminal growth rate, exit multiple) so the reader can immediately see what drives the output.
Terminal value breakdown: The split between explicit period value and terminal value, expressed both in dollar terms and as a percentage of total. If terminal value exceeds 85% of total, the output should include a note flagging this as above the typical range.
Quality Control Before Presenting
Before any DCF is presented to an MD, client, or investment committee, the analyst should run a systematic quality control check:
Formula audit: Use Excel's Trace Precedents and Trace Dependents tools (or the F2 key) to verify that key cells reference the correct inputs. Spot-check 5-10 formulas across different sections to confirm they are correct and consistent.
Reasonableness checks: Compare the implied enterprise value to the company's current market capitalization. If the DCF implies a value 3x the current market cap, either the model is wrong or the market is dramatically undervaluing the company. Both are possible, but the former is more likely. Compare the implied EV/EBITDA from the DCF to the peer group trading multiple. If the DCF implies 25x for a company whose peers trade at 10-12x, the projections or discount rate may be off.
Stress test: Change two or three key assumptions to extreme but plausible values (revenue growth drops to 0%, WACC increases by 200 bps, exit multiple compresses by 2 turns) and verify that the model still produces reasonable, non-error outputs. A model that breaks (produces #REF!, #DIV/0!, or extreme values) under stress has fragility issues that must be fixed.
Peer comparison: If possible, compare the DCF output to a DCF built by a different analyst on the same company (from a prior engagement or from equity research). Significant divergences should be investigated and explained.
Print preview: View the output and sensitivity tabs in Print Preview mode to verify they will print cleanly on standard paper sizes. Many pitchbook slides are ultimately printed from or based on these tabs, and formatting issues that are invisible on-screen become obvious when printed.
Version Control and Model Handoff
Investment banking models are rarely built and used by the same person. An analyst builds the model, an associate reviews it, a VP presents the output, and the model may be updated multiple times as assumptions change during the deal process. Proper version control is essential:
File naming: Use a consistent naming convention that includes the company name, model type, version number, and date. For example: "CompanyX_DCF_v3_20260318.xlsx." Never use "final" in the file name (there is never a final version in an active deal).
Change log: Maintain a log on the cover tab documenting what changed in each version, who made the change, and why. "v3: Updated revenue projections per client feedback from 03/15 meeting; reduced 2027 growth from 10% to 8%."
Backup before major changes: Before making significant structural changes to the model (adding a new scenario, restructuring the terminal value calculation), save a backup copy. This allows you to revert if the changes introduce errors.
Locking completed sections: Once the three-statement model is balanced and verified, consider protecting those tabs (Excel's Protect Sheet function) to prevent accidental changes. This is particularly important when multiple team members are working in the same file.


