Financial ModelingAdvanced8 min read

DCF Valuation Model Step-by-Step in Google Sheets

Build a 7-tab DCF valuation model in Google Sheets from scratch — WACC, UFCF projections, terminal value, and a sensitivity table. Real SaaS example with formulas.

This guide walks you through building a complete DCF valuation model in Google Sheets from scratch — 7 linked tabs, a $42.8M LTM-revenue SaaS target, WACC derivation, unlevered free cash flow projections through Year 5, terminal value, and a two-variable sensitivity table producing an enterprise value range. By the end you'll have a model you can drop in front of a banker or an IC without apologizing for it.

What You'll Need

  • Google Sheets access (free tier works)
  • Comfortable with cross-tab references and array formulas
  • A target company with at least 2 years of actuals (or public SaaS comps as a proxy)
  • Comparable company betas from a data source (Capital IQ, Damodaran's site, or Bloomberg)
  • Basic familiarity with three-statement modeling — this guide doesn't explain what EBITDA is

Step-by-Step Guide

1

Design Your DCF Model Tab Architecture

Before a single formula goes in, map the tab structure. A DCF valuation model lives or dies by how cleanly inputs flow into outputs — one circular reference or hard-coded number buried in a formula and the audit trail breaks.

  • Assumptions** — all drivers in one place: revenue growth rates, margin targets, tax rate, CapEx/revenue, NWC assumptions, WACC inputs
  • Revenue** — top-line build, segmented if the business warrants it
  • P&L** — EBITDA bridge from revenue down to NOPAT
  • UFCF** — unlevered free cash flow derivation from NOPAT
  • WACC** — cost of capital calculation with source citations
  • DCF** — discounting engine, PV of FCFs, terminal value, bridge to equity value
  • Sensitivity** — two-variable data table across WACC and terminal growth rate

Pro Tip

Color-code your tabs. Blue for inputs (Assumptions), grey for calculation tabs (Revenue, P&L, UFCF, WACC), green for outputs (DCF, Sensitivity). Anyone opening the file for the first time will immediately know where to look.
2

Lock Down the Assumptions Tab

The Assumptions tab is the single source of truth. Hard-code nothing in calculation tabs. If you're ever copy-pasting a number between tabs instead of referencing Assumptions!, stop.

For this model — a SaaS company with $42.8M LTM revenue, 72% gross margin, and 18% EBITDA margin — the core driver block looks like this:

DriverY1Y2Y3Y4Y5
Revenue growth28%24%20%16%13%
Gross margin72.0%72.5%73.0%73.5%74.0%
EBITDA margin18.0%20.5%23.0%25.0%26.5%
CapEx / Revenue3.2%3.0%2.8%2.5%2.3%
NWC / Revenue8.5%8.5%8.5%8.5%8.5%
Tax rate25%25%25%25%25%

SaaS CapEx benchmarks typically run 1–4% of revenue for pure software businesses, per Meritech Capital's annual public SaaS benchmarks — anything above that usually signals hardware or data center spend worth breaking out separately.


    Pro Tip

    Add a "Check" column at the far right of every assumption block using =IF(SUM(B3:F3)<>1,"⚠ sum error","✓") for margin and percentage rows that should sum to a specific value. Your future self will thank you.
    3

    Build Revenue and P&L Projections

    Revenue projects forward from LTM actuals. The formula structure in Revenue!C4 (Year 1 revenue):

    =Revenue!B4 * (1 + Assumptions!$C$5)
    

    Where B4 is LTM revenue ($42.8M) and Assumptions!$C$5 is the Y1 growth rate. Years 2–5 follow the same pattern, each referencing the prior year's revenue cell and the corresponding column in Assumptions.

    P&L flows directly from Revenue:

    ='Revenue'!C4                                     ← Total Revenue
    ='Revenue'!C4 * Assumptions!C7                    ← Gross Profit (gross margin %)
    ='Revenue'!C4 * Assumptions!C9                    ← EBITDA (EBITDA margin %)
    =P&L!C8 - SUMIFS('Revenue'!C:C,'Revenue'!A:A,"D&A")  ← EBIT
    =P&L!C9 * (1 - Assumptions!$B$12)                ← NOPAT
    

    At $42.8M LTM, Y1 revenue comes to $54.8M (28% growth). EBITDA at 18% margin is $9.9M. Keep D&A on the P&L tab and feed it into the UFCF tab — it flows back as a non-cash add-back.


      Pro Tip

      Add a row at the bottom of P&L that checks Revenue - COGS - OpEx - EBITDA = 0. A non-zero result means something isn't flowing correctly. Catch it here before it corrupts the DCF outputs.
      4

      Calculate UFCF for the DCF Valuation

      Unlevered free cash flow is the engine of the DCF valuation. Build it from NOPAT, not from net income — you want the pre-debt, pre-tax-shield cash generation.

      UFCF = NOPAT
           + D&A
           - CapEx
           - Change in NWC
      

      In Google Sheets, with Year 1 in column C:

      =P&L!C10                                              ← NOPAT
      +P&L!C11                                              ← D&A add-back
      -(Revenue!C4 * Assumptions!C11)                       ← CapEx (% of revenue)
      -(Revenue!C4 * Assumptions!$B$13 - Revenue!B4 * Assumptions!$B$13)  ← ΔNWC
      

      Working that through the SaaS example:

      Y1Y2Y3Y4Y5
      NOPAT$5.6M$8.5M$12.2M$16.0M$19.7M
      D&A$2.7M$3.1M$3.5M$3.9M$4.3M
      CapEx($1.8M)($2.0M)($2.3M)($2.5M)($2.7M)
      ΔNWC($1.0M)($0.9M)($0.8M)($0.7M)($0.6M)
      UFCF$7.1M$8.7M$12.6M$16.7M$20.7M

      UFCF growing from $7.1M in Y1 to $20.7M in Y5 reflects operating leverage kicking in as the margin profile expands — exactly what you'd expect in a scaling SaaS business with relatively fixed cost structure.


        Pro Tip

        Cross-check your UFCF margin (UFCF / Revenue) against public SaaS comps. If it's running 30%+ in Year 1 for a sub-$100M company, something is wrong with your margin or CapEx assumptions.
        5

        Build the WACC Tab

        WACC deserves its own tab because the inputs are defensible claims, not made-up numbers. Every line should be sourced.

        The CAPM formula for cost of equity (Sharpe 1964, extended by Fama-French 1992):

        Ke = Rf + β × ERP
        

        For this model as of April 2026:

        ComponentValueSource
        Risk-free rate (Rf)4.35%10-yr UST yield, April 2026
        Equity risk premium (ERP)4.60%Damodaran January 2026 (pages.stern.nyu.edu/~adamodar)
        Unlevered beta (βu)1.12Median SaaS comparable set, re-levered to target
        Re-levered beta (βL)1.18Hamada equation: βL = βu × (1 + (1-t) × D/E)
        Cost of equity (Ke)9.78%
        Pre-tax cost of debt (Kd)6.50%Investment-grade SaaS term loan proxy
        After-tax cost of debt4.88%Kd × (1 - 25%)
        Target D/(D+E)10%
        WACC10.1%

        The WACC formula in Sheets:

        =WACC!C5*(1-WACC!C12) + WACC!C9*WACC!C12
        

        Where C5 is Ke, C9 is after-tax Kd, and C12 is the debt weight. At 10.1% WACC, you're discounting a SaaS business that's growing 13–28% annually — that's within the range you'd see from most buy-side models in 2026.


          Pro Tip

          Run the WACC at ±100bps as a sanity check before building the sensitivity table. If your EV moves less than 10% on a 200bps WACC swing, your terminal value assumptions are too conservative and are swamping the DCF math.
          6

          Discount Cash Flows and Calculate Terminal Value

          With UFCF projections and WACC established, the DCF tab does three things: discount the projection-period cash flows, calculate terminal value, and bridge to equity value.

          Discount factors use the mid-year convention (cash flows received throughout the year, not at year-end):

          =1 / (1 + WACC!$C$14) ^ (col - 0.5)
          

          Present value of FCFs:

          =SUMPRODUCT(UFCF!C4:G4, DCF!C5:G5)
          

          Terminal value using the Gordon Growth Model:

          =UFCF!G4 * (1 + Assumptions!$B$20) / (WACC!$C$14 - Assumptions!$B$20)
          

          At a 3.0% terminal growth rate and 10.1% WACC, terminal value on $20.7M Y5 UFCF comes to $295.7M. Discounted back 4.5 years: $190.6M PV of TV.

          The full bridge:

          ItemValue
          PV of projection-period FCFs$43.3M
          PV of terminal value$190.6M
          Enterprise value$233.9M
          Less: net debt($22.1M)
          Equity value$211.8M
          Shares outstanding14.7M
          Implied share price$14.41

          Terminal value represents approximately 81.5% of enterprise value — well within the 77–83% range typical for high-growth SaaS businesses at this stage, per standard DCF convention.


            Pro Tip

            If TV/EV exceeds 90%, you either have too low a discount rate, too high a terminal growth rate, or your near-term cash flows are being suppressed by heavy reinvestment. Any of those warrant scrutiny from whoever reviews the model.
            7

            Complete the Valuation Model with Sensitivity Analysis

            A single-point DCF output is a false precision problem. The sensitivity table is where the model becomes defensible — and where you show the range instead of hiding behind one number.

            In Google Sheets, use a two-variable data table (not a native feature, so you build it with array formulas). Set up a grid with WACC across the top row and terminal growth rate down the left column, then reference the EV formula:

            WACC axis (row 3, columns C–G): 8.5%, 9.3%, 10.1%, 10.9%, 11.7%

            Terminal growth axis (column B, rows 4–8): 1.5%, 2.0%, 2.5%, 3.0%, 3.5%

            Each cell in the grid recalculates EV using the intersection values:

            =UFCF_Y5 * (1 + tg) / (wacc - tg) / (1 + wacc)^4.5 + PV_FCFS_adj
            

            The resulting EV sensitivity table (in $M):

            8.5%9.3%10.1%10.9%11.7%
            1.5%$198.4$180.2$165.1$152.3$141.4
            2.0%$211.7$191.5$174.8$160.7$148.7
            2.5%$227.3$204.8$186.2$170.6$157.2
            3.0%$245.9$220.4$199.4$182.1$167.0
            3.5%$268.3$239.2$215.4$195.8$178.8

            The base case sits at $199.4M enterprise value. The full range across reasonable assumptions runs $141.4M to $268.3M — a spread that reflects actual uncertainty rather than false precision around a single number.

            For the board pack or IC memo, show the shaded center band (±1 step on each axis) as your "central range" and the full grid in the appendix.


              Pro Tip

              Add conditional formatting to the sensitivity table — green for values above your target purchase price, red below. Takes 90 seconds and makes the output immediately readable in a deck without anyone having to do arithmetic.

              Wrapping Up

              The model above gives you a structured, auditable DCF that hangs together across 7 tabs, flows cleanly from a single assumptions block, and produces an EV range rather than a false-precision point estimate. The architecture — Assumptions → Revenue → P&L → UFCF → WACC → DCF → Sensitivity — scales to more complex targets without rewiring.

              The one thing this static model can't do on its own is stay current. LTM actuals drift the moment a new quarter closes, and re-entering numbers manually is where errors creep in. If you're refreshing this model quarterly for a board pack or running it across a portfolio, ModelMonkey can wire your Google Sheets directly to your accounting system so the actuals update automatically and the sensitivity table always reflects current numbers — try it free for 14 days.


              Frequently Asked Questions

              What discount rate should I use for a SaaS DCF?

              For a software company in 2026, most practitioners land between 9% and 13% WACC depending on company size, leverage, and beta. Small-cap, high-growth SaaS tends toward the higher end (11–13%) because the beta is elevated and the risk-free rate has stayed above 4% since 2023. Mid-market SaaS at scale ($50M+ ARR, positive EBITDA) typically warrants 9–11%. Build your WACC from components using Damodaran's current ERP rather than guessing — his January 2026 implied ERP for the US market is 4.60% (pages.stern.nyu.edu/~adamodar).

              How much of enterprise value should terminal value represent in a DCF?

              For most growing businesses, 60–80% of enterprise value comes from terminal value — this is expected, not a model flaw. For high-growth SaaS (15%+ near-term growth), TV/EV often runs 75–85% because the near-term UFCF margins are suppressed by reinvestment. If TV/EV exceeds 90%, scrutinize your terminal growth rate and near-term margin assumptions. If it's below 60%, your projection-period cash flows may be unrealistically high or your terminal growth rate too low.

              What terminal growth rate is defensible for a SaaS business?

              Most analysts use 2.0–3.5%, anchored to long-run nominal GDP growth. Using anything above 4% is hard to defend in a board or syndicate context because it implies the business eventually grows faster than the economy indefinitely. For a company with strong retention economics and an expanding TAM, 3.0–3.5% is defensible. For a mature, slower-growing SaaS business, 2.0–2.5% is more appropriate. The sensitivity table matters precisely because reasonable people can disagree on this number by 100–150bps.

              How do I handle D&A in the UFCF calculation?

              D&A is a non-cash charge that reduces EBIT (and therefore NOPAT) but doesn't represent a cash outflow, so it gets added back in the UFCF bridge: UFCF = NOPAT + D&A - CapEx - ΔNWC. The critical point is that CapEx represents the actual cash reinvestment, while D&A approximates the accounting charge for prior-period investment. Over a long horizon, CapEx and D&A should converge — if your model has CapEx consistently well below D&A, that's an implicit assumption that the asset base is shrinking, which is worth flagging.

              Should I use a mid-year or end-of-year convention for discounting?

              Mid-year convention (discount factor = 1 / (1 + WACC)^(year - 0.5)) is more accurate for businesses that generate cash throughout the year rather than in a single lump at year-end. End-of-year is simpler and more conservative. Most PE and investment bank DCFs use mid-year convention — the difference in EV can run 3–5% at typical discount rates, which is material enough to matter when you're defending a specific bid price or valuation range.