Discount factors are one of the most fundamental building blocks in financial modelling. Whether you're constructing a DCF, pricing a bond, or valuing an interest rate swap, you need discount factors to convert future cash flows into present values.
This guide covers the discount factor formula, walks through step-by-step calculations, and shows you how to pull live, market-implied discount factors directly into Excel - across SOFR, SONIA, EURIBOR, and 30+ other rate indices.
What Is a Discount Factor?
A discount factor is a decimal number between 0 and 1 that represents the present value of £1 (or $1) received at a future date. It answers a simple question: what is a future cash flow worth today?
For example, if the 5-year discount factor is 0.85, then £1 received in five years is worth £0.85 today. The further into the future the cash flow, the smaller the discount factor - reflecting the time value of money and the opportunity cost of capital.
In a financial model, you apply a discount factor to each projected cash flow to calculate its present value. The sum of all discounted cash flows gives you the net present value (NPV) of an investment, project, or financial instrument.
The Discount Factor Formula
The standard discount factor formula is:
DF = 1 / (1 + r)n
Where:
You may also see this written with a negative exponent:
DF = (1 + r)−n
Both expressions are equivalent - they're just different ways of writing the same calculation. Use whichever you find more intuitive.
Continuous Compounding
In derivatives pricing and some fixed income applications, continuous compounding is used instead of discrete compounding. The formula becomes:
DF = e−r × t
Where e is Euler's number (~2.71828), r is the continuously compounded rate, and t is the time in years. This is the standard convention for pricing interest rate swaps and options.
How to Calculate a Discount Factor - Step by Step
Let's work through the calculation using a 5% annual discount rate.
Example 1: Single Period
To find the discount factor for a cash flow received in 1 year:
DF = 1 / (1 + 0.05)1 = 1 / 1.05 = 0.9524
This means £1 received in one year is worth £0.9524 today at a 5% discount rate.
Example 2: Multi-Period
For a cash flow received in 5 years at the same 5% rate:
DF = 1 / (1 + 0.05)5 = 1 / 1.2763 = 0.7835
£1 received in five years is worth only £0.78 today - a 22% reduction in value.
Calculating Present Value with a Discount Factor
Once you have the discount factor, present value is straightforward:
PV = Future Value × Discount Factor
If you expect to receive £500,000 in 5 years and the discount rate is 5%:
PV = £500,000 × 0.7835 = £391,763
The Mid-Year Convention
In many financial models, cash flows are assumed to arrive at the end of each period. But in practice, revenue and costs are spread throughout the year. The mid-year convention accounts for this by shifting the exponent back by half a period:
DF (mid-year) = 1 / (1 + r)n − 0.5
For year 1 at 5%: DF = 1 / (1.05)0.5 = 0.9759 (compared to 0.9524 with end-of-year timing)
This gives a higher present value, reflecting the assumption that cash flows arrive at the midpoint of each period rather than the end. The mid-year convention is standard in M&A and LBO models.
Discount Factor Table
The table below shows discount factors for common rates and time horizons. It's a useful reference for quick estimates and sanity-checking your model outputs.
At a 10% discount rate, a cash flow in 10 years is worth less than 39 pence on the pound today. At 2%, it retains over 82% of its value. The choice of discount rate has a dramatic impact on valuation - which is exactly why getting it right matters.
Discount Factor vs. Discount Rate
The discount factor and the discount rate are two sides of the same coin. The discount rate is the percentage return required per period. The discount factor is the resulting multiplier you apply to a future cash flow.
They have an inverse relationship: as the discount rate goes up, the discount factor goes down.
In practice, the more important question is: what rate should you use? That depends on the context:
Whichever rate you choose, the mechanics are the same: plug it into the discount factor formula, and multiply by the future cash flow.
From Textbook to Reality: Using Yield Curves
The examples above use a single, flat discount rate across all periods. Real-world financial modelling is more nuanced.
In practice, interest rates aren't flat - they vary by maturity. The 1-year rate might be 3.5%, while the 5-year rate is 3.6% and the 10-year rate is 4.0%. This term structure means each cash flow in your model should ideally be discounted at a rate appropriate for its maturity, producing a different discount factor for each period.
For USD-denominated cash flows, the standard benchmark is the SOFR (Secured Overnight Financing Rate) curve. For GBP, it's SONIA. For EUR, it's EURIBOR or ESTR.
Building these curves from raw market data - bootstrapping swap rates, handling day count conventions, interpolating between tenors - is complex. But the output is simple: a set of discount factors, one for each date in your model.
This is where tools like the BlueGamma Excel Add-in become useful. Instead of building and maintaining your own curve engine, you can pull live, market-implied discount factors directly into your spreadsheet.
Tutorial: Live Discount Factors in Excel
The BlueGamma Excel Add-in provides custom functions that return live market data directly in your cells. Here's how to use them for discount factors.
Getting a Single Discount Factor
To get the current SOFR discount factor for a specific date, type this into any cell:
=BlueGamma.DISCOUNT_FACTOR("SOFR", "2027-12-31")
This returns 0.9408 - the market-implied present value of $1 to be received on 31 December 2027, derived from today's live SOFR swap curve.
The function takes two required parameters:
You can also reference cells instead of hardcoding values, which makes your model dynamic:
=BlueGamma.DISCOUNT_FACTOR("SOFR", A2)
Where A2 contains the target date. Simply change the index string to switch currencies - for example, replace "SOFR" with "SONIA" or "3M EURIBOR".
Building a Full Discount Curve
To build a complete term structure, list your cash flow dates in one column and use the DISCOUNT_FACTOR function in the next column. Here's a typical layout:
With today's live SOFR data, this returns:
These values update automatically as market rates move. Change the index name in the formula, and the entire curve recalculates - no manual re-entry required.
Comparing Discount Factors Across Currencies
If your model involves cash flows in multiple currencies - a common scenario in cross-border project finance or multinational treasury - you can pull discount curves for each currency side by side:
=BlueGamma.DISCOUNT_FACTOR("SOFR", A2) → USD
=BlueGamma.DISCOUNT_FACTOR("SONIA", A2) → GBP
=BlueGamma.DISCOUNT_FACTOR("3M EURIBOR", A2) → EUR
Here's how the three major curves compare using today's market data:
A few things stand out. EUR discount factors are consistently higher than USD and GBP - reflecting the lower interest rate environment in the eurozone. SOFR and SONIA track closely but diverge slightly at longer maturities. These differences matter: the same stream of cash flows will have a materially different NPV depending on the currency and curve you use to discount it.
The BlueGamma Add-in supports 30+ indices including CORRA (CAD), TONA (JPY), BBSW (AUD), SARON (CHF), and many more.
Worked Example: Discounting Cash Flows with Real Market Data
Let's put it all together. Suppose you're modelling a project that generates $1,000,000 per year for five years, with cash flows arriving at each year-end starting December 2027. Here's how you'd set it up in Excel:
With today's live SOFR rates, the model returns:
How Does This Compare to a Flat Rate?
If you'd used a flat 5% discount rate instead of the market-implied SOFR curve, here's what you'd get:
The market-implied NPV is $70,751 higher than the flat-rate estimate - a 1.6% difference. That gap comes from the shape of the yield curve: the SOFR curve currently implies lower short-term rates and higher long-term rates than a flat 5% assumption. In a large transaction or portfolio, this difference compounds quickly.
Using market-implied discount factors gives you a valuation that reflects what the market actually expects, rather than an assumption you've chosen. It also means your model updates automatically as rates move - no manual overrides needed.
Other Useful Functions
Beyond DISCOUNT_FACTOR, the BlueGamma Add-in includes related functions that are useful in financial models:
All functions accept cell references, so you can build fully dynamic models that recalculate across currencies, tenors, and dates with a single input change.
Try It Yourself
The BlueGamma Excel Add-in gives you live discount factors for 30+ currencies directly in your spreadsheet - no curve-building required.
Get the Excel Add-in or book a call with our team to see how it fits into your workflow.



.png)