Lemma
math, backwards
the hook · time is money, literally

How do you put a price on a stream of money over time?

Someone offers you $100 a year for ten years. Someone else offers $1,000 right now. Which is worth more? The naïve answer (“they’re both $1,000!”) is wrong, because of one observation: $100 a year from now is less than $100 today — you could have invested today’s dollar and held more by next year. Reversing that move — discounting — turns a future amount into its present-day equivalent. Then you add up all the discounted amounts. Integration adds money across time. Discounting makes future money smaller before adding it.

Future money has to be discounted before it can be added.

Widget — Present value
PV (continuous)$10.55
undiscounted total$15.00
PV (annual)$10.29
perpetuity (T → ∞)$20.00
$0.50$1.00051015202530time t (years)rate ($/yr)no-discount (c)T = 15
c = $1/yr (constant)
The blue curve is what each future dollar is worth today — c · e^(−rt). The dashed gray line is the undiscounted rate (a dollar a year, forever). The shaded green region between them and the time axis, from 0 to T, is the present value of the stream: PV = (c/r)(1 − e^(−rT)). Drag r from 0 to 20%: at r = 0 the curve is the gray line — no discount, PV equals the undiscounted total. At r = 20% the curve plummets — the same $1/yr stream is worth far less today. As T grows the area approaches the perpetuity limit c/r; once T is past 5/r or so, extending the horizon barely adds anything. *Distant money discounts away.*
the arc
1

A future dollar is not a present dollar

If today’s dollar can be invested at rate r and grow to 1+r1 + r in one year (or to ere^r with continuous compounding from the logarithm module), then $1 next year is equivalent to 1/(1+r)1/(1 + r) today. That’s the simplest possible calculation. Two payments make the same logic compound: $1 two years from now is 1/(1+r)21/(1 + r)² today; $1 t years from now is 1/(1+r)t1/(1 + r)^t today.

The factor 1/(1+r)t1/(1 + r)^t — or its continuous cousin e(rt)e^(−rt) — is the . It shrinks with t (more time, more discount) and shrinks faster as r grows (higher interest, more aggressive discount). The whole module is one product and one sum: future cash × discount factor, summed across all the future moments money arrives.

2

A discrete stream — coupons, salaries, rent

Real arrive in discrete pieces. A bond pays $100 every year for N years. A salary pays every two weeks. Rent every month. For each piece, compute its present value separately, then add them all up:

PV=Σi=1NCi/(1+r)(ti)PV = Σ_{i=1}^N C_i / (1 + r)^(t_i)

For a constant C paid annually for N years at rate r, the geometric sum has a closed form: PV=C(1(1+r)(N))/rPV = C · (1 − (1+r)^(−N)) / r — but the concept is just “discount each one, add them all up.” A spreadsheet does this naturally; the formula is for paper.

The widget shows a $1/year stream. At r = 5%, the first ten years contribute about $7.72 of PV; the next ten add about $4.74 more (much less); past 30 years, additional payments contribute almost nothing. Distant money discounts away — a fact that matters when valuing very long streams (mortgages, pensions, perpetuities, eternity).

import math

# Discrete: pay $C every year for N years, discount at rate r per year.
# PV = sum_{i=1..N} C / (1 + r)^i
def pv_discrete(C, r, N):
    return sum(C / (1 + r)**i for i in range(1, N + 1))

# At r = 5%, $1/year for 10 years is worth less than $10 today.
[pv_discrete(1, 0.05, N) for N in (1, 5, 10, 20)]
# → [0.95, 4.33, 7.72, 12.46]
# Past 20 years, additional payments contribute almost nothing — distant
# money discounts away, no matter the cash flow's nominal size.
3

Continuous compounding — the exponential takes over

When payments arrive faster — monthly, daily, every second — the discrete sum becomes a continuous integral, and the discount factor 1/(1+r)t1/(1+r)^t smooths into e(rt)e^(−rt). Why an exponential? Take the log of (1+r/n)(nt)(1 + r/n)^(n·t) as compounding frequency n grows: ntlog(1+r/n)rtn·t · \log(1 + r/n) → r·t, so (1+r/n)(nt)e(rt)(1 + r/n)^(n·t) → e^(r·t). The logarithm module’s identity surfaces here directly — continuous growth and continuous discount are inverses of one another, and both live in the exponential.

The continuous discount factor e(rt)e^(−rt) matches the discrete factor at large n, but it’s easier to integrate than to sum, because of the closed form for exponential antiderivatives (from the integration module). For pricing real instruments — bonds, dividends, mortgages — both versions are used; the choice depends on whether your payments arrive in lumps or smoothly.

# Continuous version: discount factor is e^(-r*t), which is what
# 'continuous compounding' gives in the limit of (1 + r/n)^(n*t) as n → ∞.
# Why exponential? log of (1 + r/n)^(n*t) = n*t * log(1 + r/n) → r*t,
# so (1 + r/n)^(n*t) → e^(r*t). The log module's identity surfaces here
# directly: continuous discount = inverse of continuous growth.

def discount_continuous(t, r):
    return math.exp(-r * t)

[(t, round(discount_continuous(t, 0.05), 4)) for t in (0, 1, 5, 10, 30)]
# → [(0, 1.0), (1, 0.9512), (5, 0.7788), (10, 0.6065), (30, 0.2231)]
# 30 years out at 5% — a future dollar is worth ~22 cents today.
4

A continuous cash flow — the integral takes over

A cash flow rate c(t)c(t) says: in a tiny time slice dtdt at time tt, you receive c(t)dtc(t) · dt dollars. The undiscounted total over [0, T] is the integral 0Tc(t)dt∫_0^T c(t) dt. To get present value, discount each tiny slice as it arrives, then add (integrate) — the future money has to be made smaller before it can be summed:

PV=0Tc(t)e(rt)dtPV = ∫_0^T c(t) · e^(−rt) dt

For the simplest case — constant cash flow rate c over [0, T], constant rate r — the integral is closed-form: PV=(c/r)(1e(rT))PV = (c/r) · (1 − e^(−rT)). The widget shades this area on its plot; drag rr and TT and watch the answer move. Two limits matter. r0r → 0: no discount, PVcTPV → c · T (just the undiscounted total). TT → ∞: a perpetuity, PVc/rPV → c / r — the famous formula every finance textbook starts with.

# Continuous cash flow at rate c (dollars/year) over [0, T]:
# PV = ∫_0^T c · e^(-r*t) dt = (c/r) * (1 - e^(-r*T))
# For r → 0, the limit is c*T (no discount). For T → ∞, the limit is
# c/r — the perpetuity formula. Both are readable from the closed form.
def pv_continuous(c, r, T):
    if abs(r) < 1e-9:
        return c * T
    return (c / r) * (1 - math.exp(-r * T))

# Compare a $1/year stream's PV under different (r, T):
[(r, T, round(pv_continuous(1, r, T), 2))
 for r in (0.02, 0.05, 0.10) for T in (10, 30, 100)]
# → [(0.02, 10, 9.06),  (0.02, 30, 22.55),  (0.02, 100, 43.23),
#    (0.05, 10, 7.87),  (0.05, 30, 15.54),  (0.05, 100, 19.87),
#    (0.10, 10, 6.32),  (0.10, 30, 9.50),   (0.10, 100, 9.99)]
# At 10% the perpetuity limit is c/r = 10. At 100 years we're already
# at $9.99 — basically the limit. *5/r is roughly when extending
# matters less than the next decimal place.*
5

The 5/r rule — distant money barely matters

The closed form (c/r)(1e(rT))(c/r)(1 − e^(−rT)) hides one of finance’s most useful rules of thumb. The factor 1e(rT)1 − e^(−rT) reaches 99% of its perpetuity limit at rT=ln(100)4.6r·T = \ln(100) ≈ 4.6, or roughly T5/rT ≈ 5/r. So at r = 10%, the perpetuity limit is essentially reached after 50 years; at r = 5%, it takes 100 years; at r = 2%, it takes 250 years. Once you are past 5/r, extending the horizon barely adds anything.

This is why infinite-life valuations (perpetuities, real estate, sovereign debt) and very-long-life valuations (insurance reserves, climate damage, multi-generation projects) are not that different at typical discount rates. The future just isn’t worth that much in present-value terms. The whole intergenerational-economics debate is about whether r itself should differ across generations — because the answer to “what does a benefit 200 years from now cost us today?” is almost entirely a choice of r, not a choice of c.

now break it

Same total cash, very different present value. Consider three streams, each totaling $120,000: (a) $1,000 every month for 10 years; (b) $120,000 all at once at year 10; (c) $120,000 all at once today. At r=5%r = 5\%: PV of (c) is $120,000, PV of (a) is $94,281, PV of (b) is $72,786. Same nominal total, three different prices. Timing matters as much as magnitude — and the discount rate amplifies the difference. Lottery winners “winning $10M” are usually quoted the undiscounted sum across 20-30 years; the lump-sum option is always smaller, and that’s not the lottery cheating — it’s the present-value calculation honest.

6

Sensitivity — how PV moves when the rate moves

Up to here, rr has been a number you set. In practice it is a number that moves — central banks change it, markets re-price it, your view on it shifts. The natural next question is: if rr shifts by a small amount Δr\Delta r, how much does PV move? That is a question about a derivative — specifically PV/r\partial PV / \partial r, the slope of PV viewed as a function of rr.

For the continuous case PV=0Tc(t)ertdtPV = \int_0^T c(t) · e^{-rt} dt, differentiating under the integral sign gives

PV/r  =  0Ttc(t)ertdt\partial PV / \partial r \; = \; -\int_0^T t · c(t) · e^{-rt} dt

— the same integral as PV, except each cash-flow slice is multiplied by an extra tt. Far-future money contributes more to the sensitivity. Define the modified duration D=(PV/r)/PVD = -(\partial PV / \partial r) / PV. Then a small rate move predicts a price move by linearization:

ΔPV    DPVΔr\Delta PV \;\approx\; -D · PV · \Delta r

A 10-year zero-coupon bond has D10D \approx 10; a 1% rise in rates predicts about a 10% drop in price. A 2-year bond has D2D \approx 2; the same rate move predicts only about 2%. Duration is a derivative of price with respect to rate, normalized — and it is what the bond market uses to price interest-rate risk every day.

The same shape runs the Greeks in option pricing — Δ\Delta is Price/S\partial \text{Price} / \partial S, Γ\Gamma is the second derivative, Θ\Theta is Price/t\partial \text{Price} / \partial t, V\mathcal{V} is Price/σ\partial \text{Price} / \partial \sigma. Every financial instrument has a family of sensitivities — partial derivatives of the price with respect to each input. The word derivative in “financial derivative” and the word derivative in calculus are the same word for a deep reason: the instrument’s price is the derivative of something else, and its risk is captured by its own derivatives.

Integration adds money across time. Discounting makes future money smaller before adding it. Future cash c(t)c(t) times the discount factor e(rt)e^(−rt), integrated from now to the horizon, is what every cash-flow stream is worth today. From bond prices to mortgage amortization to perpetuities — same identity, different c(t).

exercises · 손으로 풀기
1$100 in one yearno calculator

The discount rate is r=5%r = 5\%. What is the present value of $100 received exactly one year from now? Use the discrete formula PV=C/(1+r)tPV = C / (1 + r)^t.

2why bigger r = smaller distant value

A future $100 arrives in 10 years. Compute the present value at r=2%r = 2\%, r=5%r = 5\%, and r=10%r = 10\%. Why does the same future amount become so much smaller as r grows?

3constant cash flow as areano calculator

A friend will pay you $1,000 per year, continuously, for 10 years. The discount rate is r=5%r = 5\%. Without computing the integral exactly, sketch the discounted cash-flow curve 1000e(0.05t)1000 · e^(−0.05·t) over [0, 10] and use the area under that curve as your PV. (The widget at c = \1/yrsaystheareais says the area is `7.87`; scale up.)

4the evil one · same total, same value?

Two offers, same nominal total of $10,000: (a) $1,000 per year for 10 years; (b) $10,000 all at once at year 10. At r=5%r = 5\%, which has the higher present value? Predict before computing. Then compute both and explain.

why this isn't taught this way

Finance courses introduce present value as a list of memorizable formulas — annuities, perpetuities, bond prices, mortgage payments — usually before the student has integrated anything. Calculus courses introduce integration as area under curves, usually before the student has discounted anything. They are the same arithmetic. Lemma puts the integral 0Tc(t)e(rt)dt∫_0^T c(t) e^(−rt) dt next to the discrete sum so the reader can see what the textbook formulas are: special cases of one identity. The annuity formula is constant c, finite T, discrete; the perpetuity formula is constant c, T → ∞, continuous; bond pricing is step-function c at coupon dates, finite T. None of these need their own theorem — they need the same identity with a different c(t).

glossary · used on this page · 3
present value·현재가치
What a future payment is worth _right now_. A dollar received in a year is worth less than a dollar in hand: the recipient could have invested today's dollar at rate `r` and held `1 + r` (or `e^r` for continuous compounding) by next year. Reversing that — _discounting_ — answers "how much do I need today to match `$1` in a year?". Notation: `PV = C / (1 + r)^t` for one payment of `C` after `t` years (discrete), or `PV = C · e^(−rt)` for continuous compounding. For a stream of payments — bond coupons, dividends, salaries, insurance flows — present value sums (or integrates) each future amount times its discount factor. The unit of all of finance pricing.
discount factor·할인계수
The multiplier that converts a future amount into a present amount. For one payment after `t` years at rate `r`: discrete-compounding factor is `1 / (1 + r)^t`; continuous-compounding factor is `e^(−rt)`. Both shrink as `t` grows — money far in the future is worth less today — and both shrink faster when `r` is bigger. The factor is _unit-free_ (a number between 0 and 1), so multiplying a dollar amount by it gives a dollar amount. The whole present-value calculation is "future cash × discount factor, summed across time."
cash flow·현금흐름
A schedule of money in (positive) and money out (negative) over time. Discrete cash flows are a list of amounts at specified dates: `C_1` at `t_1`, `C_2` at `t_2`, …. Continuous cash flows are a _rate_: `c(t)` dollars per unit time, so the amount received in a small interval `dt` is `c(t) dt`. Bond coupons are discrete; payroll seen at the second granularity is essentially continuous; rent is borderline. The distinction matters for valuation — discrete sums become continuous integrals when payment frequency is high. Either way, a stream's worth today is the _present value_ of the stream — each entry discounted to time 0 and added up.