February 18, 2026

How to Calculate Discount Factors: Formula, Examples & Live Data

Table of Contents

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.

Year 2% 4% 6% 8% 10%
10.98040.96150.94340.92590.9091
20.96120.92460.89000.85730.8264
30.94230.88900.83960.79380.7513
40.92380.85480.79210.73500.6830
50.90570.82190.74730.68060.6209
60.88800.79030.70500.63020.5645
70.87060.75990.66510.58350.5132
80.85350.73070.62740.54030.4665
90.83680.70260.59190.50020.4241
100.82030.67560.55840.46320.3855

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:

A B
1DateDiscount Factor
22027-12-31=BlueGamma.DISCOUNT_FACTOR("SOFR", A2)
32028-12-31=BlueGamma.DISCOUNT_FACTOR("SOFR", A3)
42029-12-31=BlueGamma.DISCOUNT_FACTOR("SOFR", A4)
52030-12-31=BlueGamma.DISCOUNT_FACTOR("SOFR", A5)
62031-12-31=BlueGamma.DISCOUNT_FACTOR("SOFR", A6)

With today's live SOFR data, this returns:

Date Discount Factor
31 Dec 20270.9408
31 Dec 20280.9109
31 Dec 20290.8804
31 Dec 20300.8496
31 Dec 20310.8185

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:

Date SOFR (USD) SONIA (GBP) 3M EURIBOR (EUR)
31 Dec 20270.94080.93960.9625
31 Dec 20280.91090.90740.9407
31 Dec 20290.88040.87470.9178
31 Dec 20300.84960.84190.8942
31 Dec 20310.81850.80890.8698
31 Dec 20320.78730.77590.8449
31 Dec 20330.75630.74300.8196
31 Dec 20340.72580.71030.7942
31 Dec 20350.69570.67820.7688
31 Dec 20360.66620.64660.7434

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:

A B C D
1DateCash Flow ($)Discount FactorPresent Value ($)
22027-12-311,000,000=BlueGamma.DISCOUNT_FACTOR("SOFR", A2)=B2*C2
32028-12-311,000,000=BlueGamma.DISCOUNT_FACTOR("SOFR", A3)=B3*C3
42029-12-311,000,000=BlueGamma.DISCOUNT_FACTOR("SOFR", A4)=B4*C4
52030-12-311,000,000=BlueGamma.DISCOUNT_FACTOR("SOFR", A5)=B5*C5
62031-12-311,000,000=BlueGamma.DISCOUNT_FACTOR("SOFR", A6)=B6*C6
7NPV=SUM(D2:D6)

With today's live SOFR rates, the model returns:

Date Cash Flow ($) Discount Factor Present Value ($)
31 Dec 20271,000,0000.9408940,815
31 Dec 20281,000,0000.9109910,886
31 Dec 20291,000,0000.8804880,448
31 Dec 20301,000,0000.8496849,619
31 Dec 20311,000,0000.8185818,460
NPV4,400,228

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:

Year Cash Flow ($) Discount Factor (5% flat) Present Value ($)
11,000,0000.9524952,381
21,000,0000.9070907,029
31,000,0000.8638863,838
41,000,0000.8227822,702
51,000,0000.7835783,526
NPV4,329,477

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.