Definition: what Kaufman Efficiency Ratio is measuring
Kaufman Efficiency Ratio (often shortened to KER) is a technical indicator designed to describe how directly price moved over a recent time window. In plain terms, it asks whether movement from the start of the window to the end of the window happened with relatively little back-and-forth, or whether price wandered around.
KER is typically framed as an “efficiency” measure:
- If price travels from one level to another with minimal opposing movement, the movement is considered more “efficient.”
- If price oscillates heavily and often reverses direction while still ending near where it started, the movement is considered less “efficient.”
Because it is based on a price series and a chosen lookback window, KER describes the past portion of that series. It does not, by itself, guarantee any future behavior.
The core model: inputs and the sequence of the calculation
The exact implementation varies slightly across platforms, but the mechanism follows the same structure: compare net movement to total movement within the window.
A common formulation uses a lookback length N and a price series (for example, closing prices, or sometimes another field such as midpoint, depending on the provider).
Step 1: pick the lookback window and data
Assumptions you must make explicit before computing KER:
- Price input: which series is used (e.g., close-to-close).
- Lookback length (N): how many bars/candles are included.
- Bar alignment: whether N counts include the starting bar and ending bar consistently.
If you change these choices, KER values will change even for the same chart.
Step 2: compute the net movement over the window
Net movement is the absolute change between the first and last prices in the window.
Conceptually:
- Let Pstart be the price at the beginning of the window.
- Let Pend be the price at the end of the window.
- Net movement is abs(Pend − Pstart).
This term captures the “distance” between where price started and where it finished.
Step 3: compute the total movement over the window
Total movement represents how much the price moved over the same window when you add up the absolute step-by-step changes.
Conceptually:
- Over the N-bar window, consider consecutive prices: P1→P2, P2→P3, …
- Compute abs(Pi − P(i−1)) for each step.
- Sum those absolute step changes to get total movement.
This term captures the amount of back-and-forth motion, because reversals still contribute positively through absolute values.
Step 4: form the ratio (efficiency)
KER is computed as:
- Efficiency Ratio = Net movement ÷ Total movement
Interpretation of the ratio follows from the math:
- Net movement is never larger than total movement when total movement is computed from absolute step changes over the same interval.
- Therefore, the ratio is often bounded between 0 and 1 in standard implementations.
Step 5: handle edge cases
A material limitation is the division-by-zero risk.
- If total movement equals zero (for example, if all consecutive prices are identical in the selected window), then Net movement is also typically zero and the ratio is undefined.
- Different platforms handle this differently (for example, returning zero, NaN, or holding the previous value).
To verify KER on your side, you need to know how your platform handles this situation.
Evidence through a worked example (with explicit assumptions)
Below is an example designed to show the mechanism, not to predict outcomes.
Assumptions
- Price input: closing prices.
- Lookback window N = 4 bars.
- We have five consecutive closes (because steps exist between consecutive bars):
- P0 = 1.2000
- P1 = 1.2010
- P2 = 1.1990
- P3 = 1.2020
- P4 = 1.2030
Step A: net movement
- Pstart = P0 = 1.2000
- Pend = P4 = 1.2030
- Net movement = abs(1.2030 − 1.2000) = 0.0030
Step B: total movement
Sum absolute step moves:
- abs(P1 − P0) = abs(1.2010 − 1.2000) = 0.0010
- abs(P2 − P1) = abs(1.1990 − 1.2010) = 0.0020
- abs(P3 − P2) = abs(1.2020 − 1.1990) = 0.0030
- abs(P4 − P3) = abs(1.2030 − 1.2020) = 0.0010
Total movement = 0.0010 + 0.0020 + 0.0030 + 0.0010 = 0.0070
Step C: ratio
- KER = 0.0030 ÷ 0.0070 ≈ 0.4286
What this indicates in mechanical terms:
- Even though price ended higher than it started, there were notable reversals along the way (captured by the larger total movement). Hence the efficiency ratio is moderate rather than near 1.
Material limitations and failure modes
KER is useful as a descriptive measure, but it has limitations that matter for independent verification.
1) Sensitivity to the chosen lookback length (N)
Because both net movement and total movement are computed over N bars, changing N alters the ratio. In some conditions, a shorter window may show “efficient” movement simply because there is less time for reversals to accumulate; a longer window may show the opposite.
2) Dependence on the price series and bar construction
Different platforms may compute KER using different price fields (for example, close, typical price, or another transformation). Also, bar aggregation (timeframe changes) changes the observed step moves.
This means you cannot compare KER values across providers without confirming that the underlying input series and window definition match.
3) Range-bound or noisy markets can produce misleading interpretations
In range-bound conditions, prices may oscillate around a level and still drift slightly over a window. Total movement will grow quickly due to repeated reversals, so KER can remain low even when there is a small net change.
Conversely, in a steadily trending sequence, absolute step moves may mostly align with net direction, pushing KER higher.
The key point: KER reflects how “direct” motion was in that window, not the future profitability of any action.
4) Undefined or unstable values when total movement is zero
As noted, if total movement is zero over the lookback window, the ratio becomes undefined. Even if a platform provides a fallback value, that behavior affects verification.
5) Market structure and costs are not included
KER is computed purely from historical price steps. It does not include transaction costs, bid/ask spreads, slippage, or execution constraints. So mechanical “efficiency” of price movement does not automatically translate into implementable results.
How to verify KER on your side
Because KER is formula-based, you can independently verify it by recomputing it on the same bars your chart uses.