Pivot Points: The Exact Formulas, and What the Levels Contained
Pivot points are seven price levels derived from one previous bar. No smoothing, no window, no parameter to tune — three numbers go in and seven come out, and every platform that draws them is doing the same short piece of arithmetic.
Which short piece varies, though, and that is where the trouble starts. This page gives the exact formulas our trading indicators engine computes, sets them beside the three rival schemes, and measures what 346,928 real daily bars did against the levels they were handed.
What pivot points actually are
Yesterday produced a high, a low and a close. The pivot is their mean, and the six levels around it are simple reflections of that mean through yesterday's extremes.
Our detector batch_pivot_points writes them as follows, where ph, pl and pc are the prior bar's high, low and close:
P = (ph + pl + pc) / 3R1 = 2P − plandS1 = 2P − phR2 = P + (ph − pl)andS2 = P − (ph − pl)R3 = ph + 2(P − pl)andS3 = pl − 2(ph − P)
Bar zero emits nothing on all seven outputs, because there is no prior bar to read. Everything after it is fully defined, and the module carrying it is documented as strictly causal — no level on this page can see the bar it is drawn across.
The four schemes, and why the name is not enough
Ask four platforms for "R1" and you can get four numbers. The set above is the classic or floor pivot, and it is the only one in the crate.
Woodie weights the close double: P = (ph + pl + 2pc) / 4, then the same reflections. Fibonacci keeps the classic pivot and places its levels at 0.382, 0.618 and 1.000 of the prior range. Camarilla abandons the pivot for its levels entirely, hanging them off the prior close at pc ± range × 1.1 / 12 and successively wider divisors.
Measured on the same 346,928 bars, those are not variations in taste. The classic S1–R1 band held a whole day on 26.9% of bars and Woodie's on 27.5%, which is near enough to call the same instrument. Fibonacci's narrower pair held 11.2%. Camarilla's, a median 1.30% of price wide against classic's 7.10%, contained just 0.1%. A rule tested against one and traded against another is not a rule.
The band is yesterday's range, moved
Subtract S1 from R1 and the pivot cancels: (2P − pl) − (2P − ph) is ph − pl, precisely.
I checked it on every bar rather than trusting the algebra, and the largest disagreement across 346,928 days was 7.276e-12 — floating point, not arithmetic. So the band whose containment everybody quotes is the previous day's range, re-centred on twice the pivot. Woodie has the same width for the same reason, which explains why the two scored within 0.6 points of each other.
That reframes the headline number. Asking whether a day stays inside S1 and S1's mirror is close to asking whether a day fits inside its predecessor — the inside day question — and strict inside days ran 18.2% on these bars. The re-centring buys 8.7 points over a rule that lets the band sit exactly where yesterday's range sat.
How often the levels actually contain price
Containment is the claim, so containment is what I scored, against a null designed to isolate placement from width.
For each level pair I asked whether the day's whole range stayed inside it, then asked the same of a band of identical width centred on the previous close — which, on a venue that never closes, is exactly where the bar opens. The pivot's placement has to beat that or it is contributing nothing.
- S1 to R1 kept price inside it on 26.9% of bars, where the width-matched control managed 27.6%
- S2 to R2 scored 66.3% against a control reading of 68.7%
- S3 to R3 reached 85.1%, narrowly under the 85.5% its null returned
All three came in below the naive band. Not dramatically — 0.7, 2.4 and 0.4 points — but consistently, on a third of a million days, and in the direction nobody advertises. Shifting the previous range by twice the pivot makes it slightly worse at containing tomorrow than leaving it centred on the open.
Does price touch the pivot at all?
It does, on 79.6% of days, and that number is worth far less than it looks.
Here is the comparison that deflates it. On the same bars, price touched the previous close on 98.9% of days — which is nearly a tautology, since a 24/7 market opens where it closed. The pivot sits a median 1.04% of price away from that open, so reaching it is mostly a statement about daily range, not about the level attracting anything.
The outer levels behave the way arithmetic says they should: R1 was reached on 41.1% of days and S1 on 41.8%, R2 and S2 on about 17%, R3 and S3 on roughly 7%. Read that as a distribution of daily ranges expressed in units of yesterday's range. It is a decent volatility ruler. Nothing in it says price stopped there.
Where pivot points fail
Reversal is the claim that dies hardest, so I tested it directly.
Take every day that reached R1. Did it close back below? On 142,938 such days, 54.6% did. That sounds like resistance working. Now put a line the same distance above the open, derived from no pivot at all, and ask the same question: 54.6%, on 147,902 days. The two agree to the decimal. R1 rejects advances at exactly the rate any line that far from the open rejects them.
The bias reading fares no better. Days closing above the pivot resolved 45.7% long on a symmetric 5% bracket over five days; days closing below resolved 45.9%; every eligible bar resolved 45.8%. Three numbers, one tenth of a point apart, on 320,035 observations. The sample's sub-50% base rate is the crypto drawdown of this period showing through, and it is exactly why an unconditional comparison belongs next to every win rate — without it, 45.7% reads like a losing signal instead of an inert one.
I've kept them on my own charts anyway, for one reason that survives all of the above: a pivot ladder is a shared coordinate system. When I need to describe where price sat to somebody looking at a different chart, "just under R2" is precise and free.
Frequently asked questions
How are pivot points calculated?
The classic set uses only the prior bar. P = (ph + pl + pc) / 3, then R1 = 2P − pl, S1 = 2P − ph, R2 = P + (ph − pl), S2 = P − (ph − pl), R3 = ph + 2(P − pl), S3 = pl − 2(ph − P).
Which pivot point type is best? None of them separated from a width-matched null here, and they differ enormously from each other — Camarilla's inner band contained 0.1% of days against classic's 26.9%. Pick one and never quote a statistic measured on another.
Do pivot points work? As support and resistance, not on this evidence: R1 turned price back at the same rate as an arbitrary line the same distance from the open. As a volatility scale and a shared vocabulary, they are genuinely useful.
What timeframe should pivot points use? Whatever bar you compute them from is the session they describe. Daily bars give daily levels, which is the standard and what was measured here; a VWAP has the same boundary problem from the other direction.
Are pivot points better than moving averages? They fail differently, which is the only useful comparison. Pivots read one bar and lag by nothing; a moving average cross reads hundreds and lags accordingly, and a candlestick pattern reads shape rather than level.
This is educational material, not financial advice. Every figure here was measured on past bars, past behavior generalizes poorly to future bars, and trading carries real risk of loss — size any position so that being wrong stays survivable.