LDBD
/
All terms
Scoring

Log Return

A return expressed as the natural log of the price ratio, ln(1+r). Its defining property is that log returns are additive across time — the daily ones sum to the period total.

Formula

r = (new price − old price) / old price          simple return
log return = ln(1 + r) = ln(new price / old price)

// time-additive (log returns just add up)
ln(P2/P0) = ln(P1/P0) + ln(P2/P1)

// LDBD directional log return
g = (up ? +1 : −1) × ln(1 + return_pct)
   (g = 0 if the prediction is void or return_pct ≤ −1)

There is more than one way to state a return. The simple return everyone knows is (new price − old price) ÷ old price: $100 growing to $110 is +10%. The log return writes that same move as the natural log of the price ratio, ln(110/100) = ln(1.10) ≈ +9.53%. For small moves the two are almost identical; the gap only widens as the move gets large.

The main reason to bother with logs is that they add up over time. Sum the daily log returns and you get the log return for the whole period, exactly. Simple percentages don't behave this way. A stock that rises 10% one day and falls 10% the next feels like a wash, but it actually lands at 1.1 × 0.9 = 0.99, down 1%. In log terms you add +0.0953 and −0.1054 to get −0.0101 — still a loss, but arrived at by plain addition. That additivity is what makes it clean to chain many periods, or many predictions, together and average them.

LDBD takes one more step and scores the directional log return. The sign depends on whether the call was right: nail an up move or a down move and the magnitude of the log return becomes a positive score; get the direction wrong and that same magnitude flips negative. Written out, g = (up ? +1 : −1) × ln(1 + return_pct), and g is set to 0 when the move is too small to count as valid or the asset falls to −100% or worse.

Example

A stock going from $100 to $110 is +10% simple, or ln(1.10) ≈ +0.0953 (about +9.53%) in logs. Predict up and g = +0.0953; predict down and g = −0.0953. And a +10% day followed by a −10% day comes to +0.0953 + (−0.1054) = −0.0101 in logs, which is exactly ln(0.99).

How LDBD uses it

The directional log return g is the atomic unit of LDBD scoring. Every time a prediction resolves, its g is computed and then used two ways. One is the cumulative score (Σg × 100), a running track-record number that simply sums them. The other is the headline rate: each g is divided by its holding period in years to annualize it, those are summed, and the total is divided by the sample count plus K=100, then multiplied by 100. When a move is under ±0.05% it is voided and g is set to 0, and an extreme drop to −100% or beyond is also clamped to g=0.

FAQ

When do log and simple returns actually diverge?

Barely at all for small moves — a +1% return is 0.01 simple versus ln(1.01) ≈ 0.00995, effectively the same. They pull apart on big swings. A −50% loss is ln(0.5) ≈ −0.693, and recovering it takes a +100% gain (ln 2 ≈ +0.693). Log returns capture that asymmetry as equal-and-opposite magnitudes, so gains and losses accumulate more honestly.

Why does LDBD score in log returns?

To line a one-day call up next to a one-year call, you have to add performance across different holding periods and put it on an annual basis — and log returns are additive over time, so that math doesn't break. LDBD accumulates the directional log return g into a secondary cumulative score (Σg × 100), then divides each g by its holding period to annualize it and averages the result into the headline rate.

Related terms