Sharpe Stability Ratio (SSR)
A signal-to-noise measure of how consistently a strategy delivers risk-adjusted performance over time. FolioLab computes it from the Sharpe ratios of non-overlapping windows and tests it with a one-sided Student t-test.
Introduced by Bajo Traver and Rodríguez Domínguez (2026) as the temporal-consistency complement to the Sharpe Ratio (SR), the Probabilistic Sharpe Ratio (PSR), and the Deflated Sharpe Ratio (DSR).
Overview & Motivation
The Sharpe Ratio compresses an entire return history into a single scalar. Two strategies with identical full-sample may nevertheless differ sharply in their temporal profile: one might deliver steady excess returns across every subperiod, while the other concentrates its gains in a small number of favourable episodes interspersed with mediocrity. This distinction is economically material for due diligence, ongoing monitoring, capital allocation, and performance-fee design, but the classical SR cannot resolve it.
The Probabilistic Sharpe Ratio (PSR) of Bailey and López de Prado (2012) adjusts the SR for finite-sample uncertainty under non-Normal returns, answering "is this Sharpe ratio statistically credible at this frequency over this sample?". The Deflated Sharpe Ratio (DSR) corrects for cross-sectional selection bias arising from multiple testing across strategy candidates. Both metrics evaluate performance at a single temporal aggregation; neither quantifies how risk-adjusted returns evolve within the sample period.
The Sharpe Stability Ratio (SSR) closes this gap. It measures the Sharpe ratio over many subperiods and defines stability as the ratio of the mean subperiod Sharpe ratio to its dispersion. High SSR indicates persistent risk-adjusted performance across subperiods; low SSR reveals episodic outperformance concentrated in short-lived favourable windows.
The original paper uses overlapping rolling windows. Adjacent rolling windows share observations, which induces strong mechanical autocorrelation in the rolling SR sequence even when the underlying returns are independent. The paper corrects for this with a heteroskedasticity- and autocorrelation-consistent (HAC) long-run variance. FolioLab does not use that correction. It computes the SSR on non-overlapping windows instead, because the HAC test gave a p-value that was too small. The Mathematical Formulation section explains why.
Setup & Notation
Excess returns
Let denote portfolio returns and the corresponding risk-free rates. Excess returns are
The process is assumed strictly stationary and -mixing - a regularity condition satisfied by standard return models including AR, GARCH, and Markov-switching processes. The original paper uses this condition for the consistency of its HAC variance estimator and for its moving-block bootstrap.
FolioLab subtracts one cash series for the whole run: is what cash earned over day 's interval at the run's annual risk-free rate, accrued by calendar day, so a Monday carries three days. The rate itself is one value for the run, not a separate rate for each day. The default window is one year of the run's own trading days, about 246 on an Indian run and 252 on a US run.
Full-sample Sharpe ratio
The classical (point-in-time) Sharpe ratio over is
The annualized Sharpe is , where is the number of observations per year ( for daily, for weekly, for monthly).
Rolling performance process
For a window length , define the rolling mean and rolling sample variance
The corresponding rolling Sharpe ratio and the rolling performance process are
The choice of is a smoothing decision analogous to bandwidth selection in nonparametric estimation: shorter windows produce noisy, high-variance Sharpe estimates, while longer windows yield smoother but more averaged-out dynamics. The window must be long enough for the Central Limit Theorem to justify approximate normality of local Sharpe-type estimators.
Our backend uses paper-aligned fixed defaults - no adaptive shrinkage:
- Daily data: is one trading year of the run's own sessions, on a US run and about 246 on an Indian run.
- Monthly data (): (three years), the value used in the original paper's empirical analysis.
- Other frequencies: defaults to (one calendar year of observations).
The rolling process above is the paper's definition. FolioLab splits the series into non-overlapping windows of the same length instead. With windows that end on the last observation, the window Sharpe ratios are
The earliest observations do not fill a whole window, so the calculation does not use them. A window with zero volatility is dropped.
When the history holds fewer than three whole windows, SSR is reported as unavailable rather than estimated from a shorter window. This is deliberate: a partial-window SSR is harder to interpret and easier to over-trust than an explicit "insufficient data" verdict.
Mathematical Formulation
Mechanical autocorrelation from overlapping windows
Consecutive rolling windows share observations, creating mechanical overlap that induces strong serial dependence even when the underlying returns are i.i.d. For rolling means, Proposition 3.1 in the original paper shows that the autocorrelation function of the rolling sequence satisfies
Because the rolling Sharpe is a smooth function of the rolling mean and rolling standard deviation, the delta-method linearization
transfers the same first-order autocorrelation structure to , with higher-order remainder terms vanishing as . For , this implies - adjacent rolling Sharpe observations are nearly perfectly correlated by construction.
Why FolioLab does not use the HAC long-run variance
The paper estimates the long-run variance of the rolling process, which accounts for all autocovariances,
with the Newey and West (1987) Bartlett-kernel estimator and an Andrews (1991) bandwidth :
FolioLab used this estimator before, with the bandwidth capped at . The cap is not conservative. Adjacent windows share observations, so the autocovariances of stay large out to lag . A cap of is far below on every practical history (35 lags on 1,260 rolling observations, against ), so it cuts off most of that dependence. The long-run variance was then too small, and in a simulation it was about 6.3 times too small. In a simulation of daily return series with a true Sharpe ratio of zero, the test rejected at the 5% level in 24% to 40% of cases.
A larger bandwidth does not repair the test. A series of rolling values holds only about independent blocks, and a HAC estimate from so few blocks is biased downward and noisy. A bandwidth of still rejected in 22% to 34% of cases.
Inference on non-overlapping windows
FolioLab therefore computes the SSR on the non-overlapping window Sharpe ratios defined in Setup & Notation. The windows do not overlap, so their Sharpe ratios are close to independent, and no HAC correction or bandwidth is necessary. With the mean and the sample standard deviation of the window Sharpe ratios:
The SSR is reported only when . With two windows the test has one degree of freedom, a one-sided 5% critical value of 6.31, and a standard deviation from a single difference.
Runs computed before this change
The p-value has been anti-conservative on runs that FolioLab computed with the earlier overlapping-window HAC test. Those runs keep their stored values. A run records the test it used in ssr_p_value_method, and only student_t_non_overlapping_windows is the current test. The reports and the results page show the values of an earlier run with no verdict.
Sharpe Stability Ratio
Let denote the population mean of the window Sharpe ratios and their standard deviation. The structural Sharpe Stability Ratio is
For hypothesis testing relative to a required Sharpe benchmark , the inferential (benchmark-centered) form is
The benchmark represents the required efficiency level. The choice serves as the natural baseline (and, as shown in the elasticity analysis below, eliminates divergences in economically relevant regions). High SSR requires both (i) superior average performance relative to the benchmark and (ii) low temporal dispersion of window Sharpe ratios. Two strategies with identical ex-post can display markedly different SSR values: a stable strategy attains high SSR; an episodic strategy whose window Sharpe oscillates sharply attains low SSR despite comparable aggregate performance.
Annualization convention. Our backend constructs on the annualized Sharpe scale by multiplying the per-period window Sharpe by . The user-supplied benchmark is therefore also interpreted on the annualized scale (e.g. means "require an annualized Sharpe of 0.5"). The SSR ratio itself is invariant under this rescaling because numerator and denominator are scaled identically - so the t-statistic, p-value, and verdict are all unchanged. The annualization only fixes the scale on which , , and are reported.
What the API field ssr returns. The default ssr field on the Sharpe inference payload reports the benchmark-centered form , since this is the quantity the t-test is built on. The structural form is exposed in parallel as ssr_structural, and ssr_centered mirrors ssr for explicitness. When the two forms coincide.
Scale. is the standard deviation of one-window Sharpe ratios, not a long-run standard deviation per rolling observation. SSR values are therefore on a different scale from the paper's overlapping-window definition and from FolioLab runs computed before this change. Compare SSR values only between runs that use the same method.
Statistical Inference
The paper's asymptotic test
Under stationarity and mixing, Theorems 3.1 to 3.3 of the original paper show that the HAC variance is consistent and that converges to a standard Normal under the boundary null, as . On a practical history the rolling series holds only a few independent blocks, so that limit is far away, and the Mathematical Formulation section shows the size this gave.
The test FolioLab runs
On the non-overlapping window Sharpe ratios, the inferential statistic is
The one-sided p-value for against is
where is the Student t distribution with degrees of freedom. This is the one-sample t-test on the window Sharpe ratios.
What the p-value assumes. The Student t reference is exact if the window Sharpe ratios are independent and Normal with a common variance. Each window Sharpe ratio averages returns, so it is close to Normal. A Sharpe ratio does not scale with volatility, so a volatility regime that changes between windows leaves the window variances close to equal. For unequal variances, the t-test stays conservative at two-sided levels up to 8.3% (Bakirov and Székely, 2006; Ibragimov and Müller, 2010). That result does not cover this test exactly, because a one-sided 5% test uses the critical value of a two-sided 10% test.
Size in simulation. In seeded simulations of 2,000 to 4,000 series per case, the rejection rate at 5% under a true null stayed between 4.3% and 5.7%. The cases were daily returns with 3 to 20 windows from iid Normal, Student t(4), GARCH(1,1) and AR(1) processes and from nonzero benchmarks, and monthly returns with . These simulations are the evidence for the 5% level.
The p-value remains approximate. The test does not correct dependence that lasts longer than one window, or the small-sample bias of a Sharpe ratio. With few windows the test also has low power: against a true annualized Sharpe of 1.0, it rejected in about 32% of cases with 3 windows and about 90% with 10.
Moving-block bootstrap (finite-sample inference)
Asymptotic approximations may be unreliable under the strong autocorrelation induced by overlapping windows. The original paper therefore proposes a moving-block bootstrap (MBB) - Künsch (1989), Hall et al. (1995) - that resamples contiguous blocks of the original return series, reconstructs bootstrap return paths, and recomputes for each replicate . Block length is selected via the Politis and White (2004) automatic procedure, which adapts to the autocorrelation structure of each series. The bootstrap p-value for the one-sided test against is
FolioLab does not run this bootstrap. It reports the Student t p-value on non-overlapping windows that the previous section defines.
Three complementary one-sided tests
The original framework formalizes three distinct hypothesis tests, each with an asymptotic or a bootstrap p-value. FolioLab runs only the first, with the Student t-test on non-overlapping windows:
- Mean window performance vs. benchmark. against . Test statistic . This is the test exposed by our API; the verdict on the SSR card reports its one-sided -value at .
- SSR exceeds a stability threshold . against .
- Pairwise stability comparison. against , with a joint block bootstrap that preserves cross-sectional dependence between the two return series.
Sensitivity & Economic Channels
Treating , , and as continuously varying, SSR admits clean partial derivatives that map to three distinct economic channels.
Partial derivatives
Improvements in average performance translate into SSR gains proportionally to the inverse of temporal dispersion: when instability is low, temporal stability acts as a performance amplifier. Reducing raises SSR nonlinearly, so high-SSR strategies benefit more in absolute terms from stability improvements than low-SSR strategies.
Total differential
The total differential decomposes SSR changes into three economic channels:
The performance channel reflects improvements in average window Sharpe; the exigence channel captures changes in the required benchmark; the stability channel reflects variations in temporal dispersion.
Elasticities
The unit-elasticity result for is striking: a 1% increase in temporal dispersion produces a 1% decrease in SSR regardless of or . SSR penalizes instability in a scale-invariant manner. The performance and benchmark elasticities both diverge as , which motivates the choice in empirical applications: at zero benchmark, and , eliminating divergence in economically relevant regions.
Iso-SSR curves: the performance–stability trade-off
For a fixed benchmark , level sets of SSR satisfy
where is the SSR level. Iso-SSR curves are upward-sloping straight lines in space with slope : an increase in temporal instability of one unit must be compensated by additional units of average window Sharpe to maintain constant SSR. This is the SSR counterpart of the mean–variance trade-off encoded in the classical SR.
How SSR Sits Among SR, PSR, and DSR
The four metrics target distinct dimensions of Sharpe-ratio inference and are designed to be used together. They answer different questions and apply different adjustments.
| Metric | Question | Dimension | Adjustment |
|---|---|---|---|
| SR | Ex-post risk-adjusted return? | Point-in-time level | Mean–variance trade-off |
| PSR | Statistically credible at this sample? | Point-in-time level | Higher moments + effective sample size |
| DSR | Did I cherry-pick from many trials? | Cross-sectional selection bias | Number of trials + cross-strategy dependence |
| SSR | Stable across time? | Time-series consistency | Dispersion of non-overlapping window Sharpe ratios |
A strategy can score well on SR, PSR, and DSR yet exhibit low SSR - the aggregate looks credible while the time series is lumpy. Conversely, a strategy with high SSR but low DSR may be temporally consistent yet cross-sectionally over-fit. The four dimensions are complementary; SSR fills the unconditional temporal-stability axis that none of the others address.
Interpretation
SSR is dimensionless. Both numerator and denominator are expressed in units of the window Sharpe ratio, so the ratio itself does not depend on annualization or observation frequency. Inference is performed on the studentized statistic , which under the null approximately follows a Student t distribution with degrees of freedom - so SSR magnitudes should be interpreted alongside the t-statistic, the number of windows and the one-sided p-value rather than against absolute thresholds borrowed from the SR literature.
Our application surfaces a verdict on the inferential test against . The PDF report shows the verdict in full, and the results page shows a short badge:
| One-sided p-value | Verdict | Badge | Interpretation |
|---|---|---|---|
| Mean window Sharpe above SR* at the 5% level (approximate t-test) | Significant at 5% | The test rejects the null that the mean window Sharpe equals the benchmark. The 5% level is approximate, as Statistical Inference states. | |
| Not significant at 5% (p-value from 0.05 to 0.20) | Not significant at 5% | The test does not reject at 5%. The data do not show that the mean window Sharpe is above the benchmark. | |
| Not significant (p-value 0.20 or more) | Not significant | The test does not reject. A failure to reject does not show that the strategy is episodic: with few windows the test has low power. | |
| Run from the earlier test | No verdict: the earlier SSR test is not size-correct | No verdict | The run stored the overlapping-window HAC test, whose p-value is anti-conservative. Its values show without a verdict. |
| Insufficient data | Insufficient data | Fewer than three non-overlapping windows. |
These p-value thresholds are application-level conventions, not part of the original paper. The test needs at least three whole windows, which translates into underlying observations: 756 trading days (three years) for the daily default of a US run (about 738 on an Indian run), or 108 months (nine years) for the monthly default. Below this, the SSR card displays an "Insufficient data" verdict rather than an unreliable estimate.
Advantages & Limitations
Advantages
- Distinguishes skill from luck over time: separates genuinely stable risk-adjusted performance from aggregate Sharpe ratios driven by short-lived favourable episodes.
- Orthogonal to PSR and DSR: evaluates a temporal dimension that point-in-time credibility and selection-bias corrections cannot capture.
- No overlap dependence: the windows do not overlap, so the mechanical autocorrelation of rolling windows does not enter the test. Dependence in returns that lasts longer than one window is not corrected.
- Scale-invariant penalisation: unit elasticity with respect to means SSR reacts symmetrically to instability across all magnitude ranges.
- Closed-form test: a one-sided Student t-test with no bandwidth to choose, and no parametric model required for the underlying returns.
- Cheap to compute: one Sharpe ratio for each window and one t-test.
Limitations
- Window choice matters: shorter produces noisier window Sharpe estimates; longer smooths over potentially informative regime changes.
- Requires sufficient history: SSR needs at least three whole windows, about three years of daily data. With few windows the test has low power, so a high true Sharpe ratio can still fail to reject.
- Cannot identify regime shifts: SSR is an unconditional stability metric and complements - rather than replaces - conditional, regime-switching performance models.
- Approximate p-value: the Student t reference assumes independent, close-to-Normal window Sharpe ratios. Long-lasting dependence and the bias of a sample Sharpe ratio are not corrected.
- Not a substitute for selection-bias correction: a high-SSR strategy can still be the result of running thousands of trials. SSR should be paired with DSR when a strategy was selected from many candidates.
- Not the paper's estimator: the original paper uses overlapping windows with a HAC variance or a moving-block bootstrap. FolioLab SSR values are on a different scale, and the oldest observations that do not fill a whole window are not used.
- Earlier runs: runs computed with the earlier overlapping-window HAC test keep an anti-conservative p-value. They show no verdict.
References
- Bajo Traver, M., & Rodríguez Domínguez, A. (2026). "The Sharpe Stability Ratio: Temporal Consistency of Risk-Adjusted Performance." SSRN Working Paper No. 6344658. ssrn:6344658.
- Newey, W. K., & West, K. D. (1987). "A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix." Econometrica, 55(3), 703-708. doi:10.2307/1913610.
- Andrews, D. W. K. (1991). "Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation." Econometrica, 59(3), 817-858. doi:10.2307/2938229.
- Bakirov, N. K., & Székely, G. J. (2006). "Student's t-Test for Gaussian Scale Mixtures." Journal of Mathematical Sciences, 139(3), 6497-6505.
- Ibragimov, R., & Müller, U. K. (2010). "t-Statistic Based Correlation and Heterogeneity Robust Inference." Journal of Business & Economic Statistics, 28(4), 453-468.
- Künsch, H. R. (1989). "The Jackknife and the Bootstrap for General Stationary Observations." The Annals of Statistics, 17(3), 1217-1241. doi:10.1214/aos/1176347265.
- Politis, D. N., & White, H. (2004). "Automatic Block-Length Selection for the Dependent Bootstrap." Econometric Reviews, 23(1), 53-70. doi:10.1081/ETC-120028836.
- Lo, A. W. (2002). "The Statistics of Sharpe Ratios." Financial Analysts Journal, 58(4), 36-52. doi:10.2469/faj.v58.n4.2453.
- Bailey, D. H., & López de Prado, M. (2012). "The Sharpe Ratio Efficient Frontier." Journal of Risk, 15(2), 3-44. doi:10.21314/JOR.2012.255.
- Bailey, D. H., & López de Prado, M. (2014). "The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality." The Journal of Portfolio Management, 40(5), 94-107. doi:10.3905/jpm.2014.40.5.094.
- Sharpe, W. F. (1994). "The Sharpe Ratio." The Journal of Portfolio Management, 21(1), 49-58. doi:10.3905/jpm.1994.409501.
Not investment advice. Past performance is not indicative of future results.