Indicators · Momentum oscillators
ROCR (rate of change ratio): growth factors and relative strength
What ROCR measures, why a ratio is the natural form for chaining returns and comparing a stock with the market, a Boeing versus SPY example, and Finabase’s ROCR.
On this page
ROCR, the "rate of change ratio," divides today's close by the close n bars ago. A reading of 1.08 means price is 8% higher than n bars ago; 0.95 means 5% lower; exactly 1 means unchanged. It carries the same information as the Rate of Change (ROC): percentage momentum and how to read it and ROCP (rate of change percentage): returns as fractions, expressed as a growth factor instead of a percentage or a fraction.
Why have a third version? Because ratios behave well under the two operations traders most often need: chaining periods together, which means multiplying, and comparing one instrument with another, which means dividing. This guide shows ROCR on Boeing's 2026 chart, then uses it to measure how Boeing did against the S&P 500 ETF over the same windows, the essence of relative strength.
What ROCR measures
ROCR answers "how many times larger is the price now than n bars ago?"
| ROCR | Meaning | ROC equivalent |
|---|---|---|
| 1.25 | 25% higher | +25 |
| 1.00 | Unchanged | 0 |
| 0.80 | 20% lower | −20 |
| 0.50 | Half the price | −50 |
The ratio form has one quirk worth noticing: it is bounded below by zero but unbounded above. A stock can at worst lose everything (ROCR 0) but can double, triple or more (2, 3, …). On a log scale, gains and losses of the same proportion become symmetrical: 2.0 and 0.5 are equally far from 1.
TA-Lib also provides ROCR100, the same ratio times 100, so that 108 means 8% higher. Finabase charts the plain ratio.
The formula
A worked example on Boeing
On March 24, 2026, Boeing (BA) closed at $196.42. Twelve sessions earlier, on March 6, it had closed at $231.11.
| Step | Calculation | Result |
|---|---|---|
| ROCR (12) | 196.42 ÷ 231.11 | 0.850 |
Finabase's chart shows 0.85, Boeing's lowest 12-day ratio of the year: the stock was worth 85% of what it had been worth two and a half weeks earlier.
Three weeks later, on April 15, Boeing closed at $223.93 against $190.52 twelve sessions before: a ROCR of 1.175, displayed as 1.18, the highest of the year.
Relative strength: dividing ratios
A falling stock in a falling market and a falling stock in a rising market are different situations. To separate the stock's own move from the market's, divide its ROCR by a benchmark's ROCR over exactly the same dates. Here is Boeing against the SPDR S&P 500 ETF (SPY):
| Window ending | BA ROCR (12) | SPY ROCR (12) | BA ÷ SPY | Reading |
|---|---|---|---|---|
| Mar 24, 2026 | 0.850 | 0.971 | 0.875 | Boeing fell 12.5% more than SPY |
| Apr 15, 2026 | 1.175 | 1.104 | 1.065 | Boeing beat SPY by 6.5% |
| Oct 29, 2026 | 0.926 | 0.989 | 0.936 | Boeing lagged SPY by 6.4% |
In mid-April, Boeing's raw ROCR said "up 17.5%," which looks like a dramatic recovery. Relative to SPY it was up 6.5%: most of the move came from a broad market rally (SPY gained 10.4% over the same 12 sessions). The relative ratio is the cleaner measure of how the stock itself was doing.
Robert Levy's 1967 study in the Journal of Finance ranked stocks by exactly this kind of ratio of price to its past level and found that the strongest tended to keep outperforming for a while, an early piece of evidence for momentum investing.
ROCR on a real chart: Boeing 2025–2026
Boeing fell from $200.08 to $172.65 over the year, about 14%, after a high of $254.35 on January 27, 2026 and a low of $165.01 on October 28. Its ROCR (12) was below 1 on 145 sessions and above 1 on 97 (the remaining 9 rounded to exactly 1.00 on the chart's display).
The dashed relative line in the figure usually sits below the plain ROCR when the market is rising and above it when the market is falling. The gap between them is the market's own 12-day move.
Ratios and logarithms
Ratios have one more convenient property: their logarithms add. The natural log of a ROCR, ln(ROCR), is the log return over the window, and log returns over consecutive windows sum to the log return of the whole period. Boeing's two windows below illustrate it: ln(0.850) + ln(1.140) = −0.163 + 0.131 = −0.032, and ln(0.969) = −0.032.
Log returns are also symmetrical in a way that ratios are not. A rise to 1.25 and a fall to 0.80 cancel exactly (1.25 × 0.80 = 1), and their logs are +0.223 and −0.223. On a log-scaled ROCR chart, an equal distance above and below 1 represents an equal proportional move, which is why long-term relative-strength charts are usually drawn on a log scale.
How traders use ROCR
Relative strength. Divide ROCRs, as above, to rank stocks against an index, a sector against the market, or two stocks against each other. Values above 1 mean outperformance over the window.
Chaining returns. Multiply consecutive ratios for the total. Boeing fell from $231.11 on March 6 to $196.42 on March 24 (a ratio of 0.850), then rose to $223.93 on April 15 (223.93 ÷ 196.42 = 1.140). The product, 0.850 × 1.140 = 0.969, is exactly 223.93 ÷ 231.11: nearly six weeks of drama for a net change of about −3%.
Threshold rules. Some systems express breakouts as ratios: "price at least 1.10 times its level 20 bars ago."
As a momentum line. On a chart, ROCR behaves like ROC with its zero line moved to 1.
Pitfalls and limitations
Same limits as ROC. Two closes decide each value; big days echo when they leave the window.
Neutral is 1. Thresholds and crossings must use 1, not 0. A rule written for ROC will not work on ROCR unchanged.
Display precision. Finabase shows values of 1 and above with two decimals (and values below 1 with three), so readings from about 0.9995 up to 1.005 can appear as exactly 1.
Comparison table
| Study | Neutral value | Chains by | Compares by | Example (8% gain) |
|---|---|---|---|---|
| ROC | 0 | Not directly | Subtraction (approximate) | 8.0 |
| ROCP | 0 | (1 + r) products | Subtraction (approximate) | 0.08 |
| ROCR | 1 | Multiplication | Division (exact) | 1.08 |
| MOM | 0 | Addition (dollars) | Not comparable | $ change |
How Finabase calculates and scores ROCR
Finabase computes ROCR with TA-Lib's ROCR function on closing prices. A new ROCR study defaults to 12
periods and is drawn in its own panel.
ROCR (12) appears in the technical gauge on the symbol page with its latest value and carries no Buy or Sell rule, so it always counts as neutral. Finabase does not compute the relative ratio for you on the chart; divide the two ROCR values yourself, or use the comparison tab.
Frequently asked questions
What is the difference between ROCR and ROC?
ROCR is a ratio centred on 1 (1.08 = up 8%); ROC is a percentage centred on 0 (8.0 = up 8%). They contain the same information.
What is ROCR100?
The ratio multiplied by 100, centred on 100. A ROCR100 of 92 means 8% lower than n bars ago. Finabase charts the plain ratio.
How do I measure relative strength with ROCR?
Divide the stock's ROCR by the benchmark's ROCR for the same window. Above 1, the stock outperformed; below 1, it underperformed.
Summary
ROCR expresses the rate of change as a growth factor centred on 1. That makes chaining periods a matter of multiplying and comparing instruments a matter of dividing. Boeing's 2026 chart shows why the second matters: a dramatic-looking 1.18 in April was mostly the market rising, and relative to SPY the stock gained 6.5%. Use ROCR when you need to combine or compare returns, and remember that its neutral line is 1.
Sources and further reading
- Robert A. Levy, “Relative Strength as a Criterion for Investment Selection,” Journal of Finance, vol. 22, no. 4 (1967)
- TA-Lib — ROCR and ROCR100 function reference
- Finabase chart data — BA and SPY daily bars, 2025-10-30 to 2026-10-29, ROCR computed by Finabase