Statistics for Traders #4: what the tool's p25 and p75 columns actually tell you (and why they're not the same as ±1σ)
On the NFP big_beat EURUSD 15m bucket, the tool reports the median at −34.5 pips. Half the observed prints landed between −52.5 and −16.2 pips. The other half stretched from −124.3 to +8.9. Both numbers describe the same 14 prints, and both matter — for different reasons.
This is Stats for Traders #4. Stats #1 covered z-scores for sizing the surprise. Stats #2 covered standard deviation for describing noise. Stats #3 covered sample size and confidence intervals for the median. This one covers percentiles— specifically the p25 and p75 columns the tool exposes on every bucket — and why they’re the right way to describe FX distributions with fat tails.
The bucket table, with p25 and p75
![Horizontal box-and-whisker chart. Five rows, one per NFP surprise bucket on EURUSD 15m. Each row shows the bucket's p25-to-p75 range as a filled coral bar (the interquartile range), the median as a small vertical tick inside it, and thin outer whiskers extending from p25 to min and from p75 to max. Rows top to bottom: big_miss n=10 IQR [-11.3, +52.3] median +11.6, whiskers -30 to +107; small_miss n=37 IQR [+2.0, +49.7] median +12.1, whiskers -62 to +138; in_line n=87 IQR [-18.0, +19.9] median -2.7, whiskers -105 to +86; small_beat n=47 IQR [-47.2, +5.7] median -28.5, whiskers -124 to +32; big_beat n=14 IQR [-52.5, -16.2] median -34.5, whiskers -124 to +9. The IQR bars are noticeably narrower than the whisker ranges on every bucket — a visual reminder that the extreme outer moves are much wider than the typical middle-half.](/insights/stats-for-traders-percentiles/iqr.png)
| Bucket | n | min | p25 | median | p75 | max | IQR |
|---|---|---|---|---|---|---|---|
| big_miss | 10 | −30.0 | −11.3 | +11.6 | +52.3 | +106.5 | 63.7 |
| small_miss | 37 | −62.0 | +2.0 | +12.1 | +49.7 | +137.7 | 47.7 |
| in_line | 87 | −104.8 | −18.0 | −2.7 | +19.9 | +86.0 | 37.9 |
| small_beat | 47 | −123.9 | −47.2 | −28.5 | +5.7 | +31.7 | 52.8 |
| big_beat | 14 | −124.3 | −52.5 | −34.5 | −16.2 | +8.9 | 36.3 |
Every row has the same shape: the middle-50% band (IQR) is substantially narrower than the outer bands. On big_beat, the IQR is 36 pips wide but the min-to-max range is 133 pipswide — roughly a 4× difference. That’s the “fat tail” showing up in observed data.
What the IQR actually captures
The interquartile range is exactly what its name says: the range from the 25th percentile to the 75th percentile. For a sorted sample of 14 values, p25 is (roughly) the 3rd-4th smallest and p75 is (roughly) the 10th-11th smallest. Fifty percent of the observed values fall inside the IQR, twenty-five percent fall below p25, and twenty-five percent fall above p75.
Sorted by 15-minute move, the fourteen NFP big_beat prints on EURUSD run:
−124.3 ← min (Nov 2015) −84.4 −63.8 −52.5 ← p25 (Nov 2013) −52.4 −41.8 −38.9 −30.2 −23.5 −22.7 −14.0 −13.6 −6.6 +8.9 ← max (Feb 2019)
Median = the middle observation (between the 7th and 8th sorted value, so −34.55). p25 = the 3rd or 4th sorted value (−52.5). p75 = the 10th or 11th sorted value (−16.2). Nothing about the underlying distribution needed to be assumed to get those numbers — they’re just the sorted sample.
Why not ±1σ?
Standard deviation is the more familiar spread measure, and Stats #2 walked through it in detail. But standard deviation squares every distance from the mean, which makes it very sensitive to outliers. The −124.3 pip observation in November 2015 (a print of 271k vs 181k expected — a modest z of only +1.59, but the market reacted dramatically) inflates the standard deviation of the big_beat bucket substantially more than it moves the p25.
Standard deviation also assumes something normal-ish is happening underneath — that the “typical spread” is roughly symmetric around the mean, and that 68%of observations sit within one standard deviation of the mean. FX move distributions in tail buckets are neither normal nor symmetric. The IQR doesn’t assume either.
A useful comparison. If the big_beat bucket were normal, the IQR would be exactly 1.35σ(that’s the constant relating the two spread measures for a normal distribution). It’s a rule of thumb: divide the IQR by 1.35 to get an implied σ, or multiply σ by 1.35 to get an implied IQR. When those two numbers disagree, that gap is the distribution telling you it’s not normal.
How to use this at the sizing table
Two practical reads.
The IQR is your “expect this” band. Half of the historical big_beat prints on this bucket landed between −52 pips and −16 pips. If you take a directional position on the release, that’s the range your realised P&L is most likely to sit inside. A profit target near the p25 (−52p for a short) has roughly a 50% probability of being hit before the price mean-reverts; a stop placed inside the IQR (say at −8p in the wrong direction) has a similarly-high probability of being tripped.
The min/max is your “plan for this” band. The −124.3pmin is a real observation from a real NFP big_beat. It happened once in fourteen prints (~7%). If the specific print you’re trading looks like the November 2015 one — a huge single-day move that overshoots the median-based expectation — you need to have thought about that in advance, because it will happen roughly one time in fifteen. A well-sized position doesn’t rely on the median to hold; it survives an outer-decile print.
The tool exposes both — that’s the point
Every News Impact Explorer bucket exposes p25, median, and p75 as three separate columns, alongside min and max. That’s five percentile-based numbers per bucket, no distributional assumption, no mean-and-standard-deviation summary that could get skewed by one outlier release. Read all five columns together and you have a much more honest picture of the observed distribution than any single number could give you.
Small-n caveat from Stats #3 still applies to every percentile the tool reports: p25 on n=14 is the 3rd- or 4th-smallest value, and swapping in one different observation can move it substantially. Treat the tail-bucket percentiles the same way you treat tail-bucket medians — directionally useful, magnitudinally soft.
Open the NFP EURUSD bucket table → Free forever. No signup. No email required.