Skip to content

Returns (Period-over-Period)

Period-over-period returns of an upstream series. method = simple gives percentage change; method = log gives log returns. Edge-first and chainable. Wired to more than one Price Factor, it fans out to per-ticker by_symbol results.

How to use

  1. Connect an upstream price series.
  2. Choose method = simple | log.
  3. Output series feeds momentum / z-score / risk blocks.

Core formulas

simple:  r_t = P_t / P_{t-1} − 1
log:     r_t = ln(P_t / P_{t-1})
r_0 = None ;  r_t = None if P_{t-1} == 0 or NaN

Assumptions & applicability

Assumptions: equidistant periods; prices > 0 for log returns; chronological series.

Applicability: any asset class / frequency; ≥ 2 observations.

Out of scope: total-return / dividend adjustment, currency conversion.

Known limitations

  1. First value is None (no prior period).
  2. Simple vs. log are not interchangeable — pick deliberately.
  3. Zero prior price → None at that step.
  4. Distinct from growth_rate_series (reversed order + abs denominator, no log).

References

Campbell, Lo & MacKinlay (1997), The Econometrics of Financial Markets, ch. 1.

Golden Test

tests/golden/fixtures/tier1/compute_returns/ — 1e-12 absolute, independent numpy reference, 2026-05-25 passing.

Changelog

  • 1.0.0 (2026-05-25) — Promoted Draft → Active; golden added; required fields completed.

Verifiable intelligence for the decisions that demand scrutiny.