All discussion of the RCI that I've seen takes the SD in the derivation (see next) as a fixed value.

That's fine if you are using the RCI to tell you what interval for would embrace 95% of change scores were all change only down to measurement unreliability.

However, if you are using an RCI from other data then the SD is a sample estimate of a populatiion value you are assuming is the population from which the original RCI was computed and from which your data come.

If so, we should recognise that that RCI you are using as referential has sampling inaccuracy so should really be seen as a plausible range for the RCIas it comes from a sample so the SD feeding into the equation will have a CI around it. (So will the reliability but that CI is generally very tight for most measures.) What I have done to create this 'plausible interval' around the RCI is to compute the CI for the referential SD and use the upper and lower limits for the SD to compute upper and lower limits for the RCI. Where n is quite small the interval can be rather large!/n/n

Computational background

Ignore this next bit if you don't like equations!

The CI around an observed SD

The formula for CI around an observed SD in R code is from:

SD * sqrt(n - 1) / sqrt(qchisq(1 - ((1 - ci) / 2), n - 1))


SD * sqrt(n - 1) / sqrt(qchisq((1 - ci) / 2, n - 1))

Typesetting that with MathJax is not beautiful but is:

$$SD * \sqrt{\frac{n-1}{qchisq((1 - (1 - ci) / 2), (n-1)}}$$


$$SD * \sqrt{\frac{n-1}{qchisq((1 - ci) / 2, (n-1)}}$$

where 'qchisq(p, df)' is the quantile of the chisquare function for that df (degrees of freedom, i.e. n - 1)

Maths of the RCI

This exactly as in my shiny app RCI1 As in that app, this uses the function getRCIfromSDandAlpha() in my CECPfuns R package but the maths is trivial and straight out of the original work on the RCI.

The equation is:

SD * sqrt(2) * sqrt(1 - rel) * qnorm(1 - (1 - ci) / 2)

Again the MathJax typesetting of the equation is a bit ugly:

$$SD*\sqrt{2}*\sqrt{1-rel}*qnorm(1 - \frac{(1 - ci)}{2})$$

where 'SD' is the SD you input, 'rel' the reliability you input and 'ci' the inclusion interval you wanted, usually .95, i.e. 95% and 'qnorm' is the quantile of the standard Gaussian/Normal distribution for that ci.

So if you asked for the usual 95% interval that simplifies to this:


because 1.96 is the value of the standard Gaussian that maps to 95% inclusion


If you have the raw item data and n > 20 I recommend you compute the Cronbach alpha internal reliability for your own data. I will put up an app to compute that for raw item data when I can.

Next please ...

Unless you are very familiar with it, please now go to the 'Background' tab and read the information there.

App created by Chris Evans PSYCTC.org licenced under a Creative Commons, Attribution Licence-ShareAlike Please respect that and put an acknowledgement and link back to here if re-using anything from here.

Background and related resources

This shiny app is one of a growing number in, my shiny server
They complement:

There is a form if you want to contact me: so do please use that if you think there is anything wrong here or anything that could be improved.

There is also now an Email announcement list, never updating more than monthly, where I will put up developments of new apps here, a summary of updates to the glossary and new posts in the Rblog. You can sign up for that here.