What is Kaufman Efficiency Ratio?
Kaufman Efficiency Ratio (often shortened to KER or “efficiency ratio”) is a numerical measure of how efficiently price moves from one point to another over a selected time window. The core idea is simple: it compares the distance between the start and end of the window to the sum of the distances traveled along the way.
If price moves smoothly in one direction, the “net” change is large relative to the “total” back-and-forth movement, so KER tends to be higher. If price chops around and returns toward its starting level, the total movement can still be large while the net change is small, so KER tends to be lower.
In forex, the ratio is calculated from a time series of prices (for example, the instrument’s closing prices, or another consistent price series) taken at regular intervals. You can then compare KER values across time windows, or track whether KER rises or falls during different market conditions.
How does Kaufman Efficiency Ratio work?
KER is based on two quantities computed over the same lookback period:
- Net change: the absolute difference between the price at the end of the window and the price at the beginning of the window.
- Total movement: the sum of absolute price changes between consecutive bars inside that window.
A common way to express the ratio is:
- Efficiency Ratio = Net Change / Total Movement
Important assumptions for any calculation
- You choose a lookback length (the number of bars in the window).
- You use a consistent price series (e.g., closes), and prices are in the same units (e.g., the instrument’s quote price).
- You compute absolute values and sum distances across consecutive intervals.
Material implication (without treating it as a signal) Because the denominator includes all intermediate movement, KER becomes a way to quantify “directional cleanliness.” It is best understood as an indicator of how price traveled, not as a promise of future returns.
Evidence or example you can verify
Here is a worked example with explicit assumptions, using a made-up price path and regular bars. Assume we compute KER over 4 intervals using consecutive closes.
Let the prices across the window be: 100 → 102 → 101 → 103.
- Net change = |103 − 100| = 3
- Total movement = |102 − 100| + |101 − 102| + |103 − 101| = 2 + 1 + 2 = 5
- KER = 3 / 5 = 0.60
Now compare that with a more choppy path over the same window: 100 → 102 → 99 → 101.
- Net change = |101 − 100| = 1
- Total movement = |102 − 100| + |99 − 102| + |101 − 99| = 2 + 3 + 2 = 7
- KER = 1 / 7 ≈ 0.14
With the same lookback length and the same definition, the smoother, more directional path produced a higher KER than the choppy path.
You can independently verify this by applying the same formula to your chosen historical data and checking that the ratio reacts primarily to the amount of back-and-forth movement inside the window.
Limitations and risks
KER’s behavior is simple, but its practical interpretation has limitations:
- Lookback sensitivity: Changing the window length can materially change KER values. A market move that looks efficient on a short window might look inefficient on a longer one.
- Price-source sensitivity: Different platforms may provide different price fields (for example, close vs. bid/ask mid, or different bar construction). KER depends on the exact series used.
- Failure mode under regime changes: In periods where volatility and microstructure change, what counts as “efficient movement” can shift. KER can therefore rise or fall due to changing noise levels rather than a stable directional regime.
- Edge cases: If total movement is zero (all consecutive prices equal), the ratio becomes undefined because you would divide by zero. Implementations typically need a rule for this case.
- No guarantee of future outcomes: A higher or lower KER value describes past movement efficiency within the window. Historical relationships to future results do not ensure future predictability.
Verification and next questions to consider
To verify KER for your own use, recompute it from raw price data using the same lookback period and a clearly defined price series. Then test how results change when you vary:
- the lookback length,
- the bar timeframe,
- and the chosen price field.