UK-based online statistics and data analysis support for USA, UK, and international clients. No exams, no impersonation, no fabricated data.
Paired-measurement agreement analysis

Limits of Agreement: 7 Essential Steps, Formula, Confidence Intervals and Worked Example

The limits of agreement method estimates how far two paired measurements can differ for an individual. This complete guide explains the Bland–Altman limits of agreement formula, confidence intervals for the mean bias and both limits, assumptions, interpretation, a verified G3 minus G2 example, and reproducible workflows in Python, R, SPSS and Excel.

649 paired observationsG3 − G2 differences95% agreement limitsConfidence intervalsPython + R + SPSS + Excel
Mean bias0.3359
Lower limit−2.1695
Upper limit2.8413
Pairs649
Quick answer

G3 is about 0.34 points higher than G2 on average, but individual differences are much wider.

For 649 complete G2–G3 pairs, the difference was defined as G3 − G2. The mean difference, or bias, was 0.3359 grade points, with a 95% confidence interval from 0.2374 to 0.4344. The difference standard deviation was 1.2782, producing classical 95% limits of agreement from −2.1695 to 2.8413.

The average bias is statistically different from zero, t(648) = 6.695, p < .001. That test addresses the average paired difference only. The limits of agreement address the more important individual-level question: how different might G2 and G3 be for one student?

Decision requires a practical margin: the limits can be called acceptable only when a subject-matter threshold was chosen before examining the data. Statistical significance of the bias does not decide whether the observed agreement is educationally acceptable.
1

What do limits of agreement measure?

A direct estimate of individual disagreement, not merely association or average change.

Limits of agreement describe the interval within which most differences between two measurements on the same unit are expected to fall. They are usually presented with a Bland–Altman plot, but the numerical estimates and their uncertainty remain useful even when the immediate task is a table, report or software cross-check.

The individual-level question

Suppose the same student has a second-period grade G2 and a final grade G3. A correlation can show whether high G2 scores tend to accompany high G3 scores, but it cannot show whether the two values are close enough to be used interchangeably. The limits of agreement method works with the paired difference for every student.

In this analysis the signed difference is G3 − G2. A positive difference means G3 is higher; a negative difference means G3 is lower. The mean of these differences estimates systematic bias. Their standard deviation estimates the ordinary person-to-person variation around that bias.

What the limits do not prove

The interval does not prove that two methods, occasions or raters are interchangeable. It does not replace an externally justified acceptable-difference margin. It also does not test whether the two measurements have the same correlation, variance or reliability coefficient.

Use the Bland–Altman plot guide when the visual pattern is the main focus, intraclass correlation when a reliability coefficient is needed, and a paired-samples analysis when the research question is limited to the average change.

Agreement and association are different. A very high Pearson correlation can coexist with poor limits of agreement when one measurement is consistently shifted or scaled relative to the other. Conversely, a restricted range can weaken correlation even when paired measurements are close.

Bias

The mean paired difference. It estimates systematic direction and size of average disagreement.

Random disagreement

The standard deviation of paired differences. It determines how widely individual differences vary around the bias.

Agreement interval

Bias ± 1.96 difference SD under the classical normal-difference model. It targets approximately 95% of individual differences.

2

When should limits of agreement be used?

Use the decision logic before calculating a bias, p-value or plot.

Use limits of agreement when every observational unit has two measurements that are meaningfully paired and the scientific question is how closely those measurements agree. The method is commonly applied to two devices, two raters, two laboratory assays, two occasions, or two scoring procedures.

Two paired values?

Each student, patient, device or specimen must contribute one value from each method or occasion.

Same scale?

The two measurements should use the same units or a defensible transformation to a common scale.

Individual agreement?

The question must concern the size of within-pair differences, not only the average difference.

Acceptable margin?

Define what difference would be practically tolerable before judging the limits.

Stable pattern?

Check whether bias or spread changes across the measurement magnitude.

Appropriate applications

Comparing a new instrument with an established reference method.
Assessing test–retest differences for the same participants.
Evaluating two raters when both use the same numerical scale.
Checking whether an automated score agrees with a human score.
Quantifying G3 versus G2 change for individual students.

Situations requiring another design

Independent groups with no one-to-one pairing.
Three or more repeated methods without a repeated-measures extension.
Binary or nominal outcomes where numerical differences have no meaning.
A pure mean-change question, better handled with a paired t-test or paired confidence interval.
A reliability-only question where ICC is the chosen estimand.
Practical acceptability comes first. A hospital, laboratory, school or engineering team must specify the maximum clinically, educationally or technically acceptable difference. Without that criterion, the limits of agreement can be estimated accurately but cannot be declared acceptable or unacceptable.
3

Limits of agreement assumptions: six conditions to check

The method is simple to calculate but not assumption-free.

The classical limits of agreement assumptions concern the paired design, independence between units, the distribution of differences, and stability of the bias and spread across the measurement range. These conditions are more relevant than testing each raw measurement for normality.

Correct pairing

G2 and G3 must belong to the same student. A single row mismatch can create artificial disagreement and distort every result.

Independent units

Pairs should be independent across students. Clustered observations within classes, schools, families or devices may need multilevel agreement methods.

Meaningful difference

Subtraction must make scientific sense. Both measurements must use the same scale, units and direction.

Difference distribution

The classical 1.96 multiplier assumes the paired differences are approximately normal, especially in their tails.

Constant bias

The average difference should not change materially as the pair mean increases. A trend suggests proportional bias.

Constant spread

The variability of differences should be reasonably similar across low and high measurement magnitudes.

The current differences are not normal. The SPSS diagnostics report Shapiro–Wilk W = 0.685, p < .001, skewness = −3.031, and kurtosis = 19.487. The histogram and Q–Q plot show a discrete central concentration with a long negative tail. Classical limits are still reported because they are the prespecified analysis, but the limitation must remain visible.

What should be normal?

Normality concerns the paired differences, not G2 and G3 separately. Testing the raw variables can answer the wrong question. Review the normal distribution, the Shapiro–Wilk test, and histogram interpretation when documenting this assumption.

With n = 649, formal normality tests have high power, but the current deviation is not a trivial large-sample rejection: the skewness, kurtosis, minimum of −9 and visible tail pattern are substantively strong.

What can be done?

When non-normality arises from a meaningful multiplicative structure, a log transformation may stabilize spread. When the outcome is discrete and bounded, transformation may not solve the problem. Alternatives include empirical quantile limits, robust limits, bootstrap confidence intervals, stratified analysis, or a regression-based method.

Outliers should be investigated through data lineage and subject-matter review, not automatically deleted. See outlier detection for a structured workflow.

4

Questions, hypotheses and decisions for limits of agreement

Separate average bias, individual disagreement and practical acceptability.

Limits of agreement are primarily an estimation method. The central deliverables are the bias, lower limit, upper limit and confidence intervals. A hypothesis test for zero mean bias can be added, but it does not test overall agreement.

Questions answered by the analysis

Average biasIs G3 systematically higher or lower than G2 on average?
Individual disagreementHow far apart can G3 and G2 be for most individual students?
PrecisionHow uncertain are the estimated bias and the two agreement limits?
Proportional biasDoes the signed difference change as the average grade increases?
AcceptabilityDo the limits fall inside a prespecified practical margin?

Formal bias hypothesis

H0: μd = 0

The population mean difference is zero.

H1: μd ≠ 0

The population mean difference is not zero.

For G3 − G2, the observed result is t(648) = 6.695, p < .001. The mean bias is therefore statistically different from zero. This conclusion is separate from the width of the limits.

Agreement is not the null hypothesis

Failing to reject zero bias would not prove good agreement. Two measurements can have no average bias and still differ widely for individuals. Likewise, a small statistically significant bias can coexist with narrow and practically acceptable limits when the sample is large.

The practical question should be written as an interval comparison: are both estimated limits, and preferably their confidence intervals, contained within the prespecified acceptable region?

Equivalence requires margins

A formal equivalence analysis must define lower and upper acceptable boundaries before the data are examined. The confidence interval for bias can then be compared with a mean-bias equivalence margin, while the confidence intervals for the limits can be compared with individual-difference margins.

Do not convert a nonsignificant p-value into evidence of equivalence. See confidence intervals and statistical power for the logic behind precision-based decisions.

Worked-analysis conclusion

The source workbook states a null hypothesis that the G2–G3 bias is zero and the population agreement interval is acceptably narrow. The first component is testable from the paired differences and is rejected. The second component cannot be decided statistically without a supplied definition of “acceptably narrow.” The correct report therefore gives the exact limits and asks readers to compare them with the practical tolerance relevant to the grade scale.

5

Limits of agreement formula and confidence intervals

A complete calculation from paired differences to uncertainty around both boundaries.

The classical limits of agreement formula begins with one signed difference per pair. The choice of direction must remain unchanged throughout the analysis because reversing the subtraction reverses the bias and swaps the signs of both limits.

Step 1: calculate each paired difference and pair mean

di = G3i − G2i

A positive value means the final grade is higher. A negative value means it is lower.

mi = (G2i + G3i) / 2

The pair mean is used on the horizontal axis of a Bland–Altman plot and in proportional-bias diagnostics.

Step 2: estimate bias and difference variation

Bias = d̄ = (1/n) ∑ di

The current bias is 0.335901 grade points.

sd = √[∑(di − d̄)2 / (n − 1)]

The current difference standard deviation is 1.278245.

Step 3: calculate the classical 95% limits

Lower LoA = d̄ − 1.96sd

0.335901 − 1.96(1.278245) = −2.169458.

Upper LoA = d̄ + 1.96sd

0.335901 + 1.96(1.278245) = 2.841261.

Confidence interval for bias

SE(d̄) = sd/√n
CIbias = d̄ ± t.975,n−1 SE(d̄)

With n = 649, SE(d̄) = 0.0501755 and t = 1.96363. The 95% confidence interval is 0.237375 to 0.434428.

Confidence intervals for the limits

SE(LoA) = sd √[1/n + 1.962/[2(n−1)]]
CIlimit = LoA ± t.975,n−1 SE(LoA)

The standard error for each limit is 0.0857952. The lower-limit CI is approximately −2.337928 to −2.000988, and the upper-limit CI is approximately 2.672791 to 3.009731.

Three different intervals are present. The bias confidence interval describes uncertainty in the average difference. The limits of agreement describe individual differences. The confidence intervals around the limits describe uncertainty in the estimated boundaries. Review confidence interval formulas and margin of error before labeling these quantities.
QuantityFormulaCurrent resultInterpretation
Bias0.335901Average G3 − G2 difference.
Difference SDsd1.278245Variation of individual paired differences.
Lower limitd̄ − 1.96sd−2.169458Lower classical boundary for about 95% of differences.
Upper limitd̄ + 1.96sd2.841261Upper classical boundary for about 95% of differences.
Bias CId̄ ± tSE(d̄)0.237375 to 0.434428Precision of the estimated average bias.
Limit SEsd√[1/n + 1.96²/[2(n−1)]]0.085795Sampling uncertainty of either limit.
6

Limits of agreement worked example: G3 versus G2

A complete paired-grade calculation with transparent variable coding.

This worked limits of agreement example uses G2 and G3 from 649 student records. G2 is the second-period grade and G3 is the final grade. The example treats them as two paired occasions on the same numerical grading scale.

Variables used

RoleVariableDefinition
First measurementG2Second-period grade.
Second measurementG3Final grade.
DifferenceG3 − G2Positive means improvement; negative means decline.
Magnitude(G2 + G3)/2Average grade used to evaluate proportional bias.
UnitStudentOne independent pair per student.

Data preparation rules

Retain G2 and G3 from the same source row.
Confirm both columns are numeric and use the same grade scale.
Remove a row only when either member of the pair is missing.
Create the signed difference before computing any summary.
Keep the subtraction direction visible in every table and figure.
Valid pairs649No missing paired values
Mean G211.5701Second-period grade
Mean G311.9060Final grade
Mean pair value11.7381SD = 3.0091

Observed difference frequencies

The discrete grade scale produces only 13 distinct differences. Exact agreement occurred for 287 students (44.2%). G3 exceeded G2 by one point for 234 students (36.1%), while G3 was one point lower for 56 students (8.6%). These three values alone account for 577 of the 649 pairs.

G3 − G2FrequencyPercentMeaning
−9 to −3132.0%Large declines, including the long negative tail.
−230.5%Two-point decline.
−1568.6%One-point decline.
028744.2%Exact numerical agreement.
+123436.1%One-point increase.
+2477.2%Two-point increase.
+3 to +691.4%Larger increases.
Why the mean bias is positive: increases of +1 are much more common than declines of −1. The small number of extreme negative values pull the mean downward and create strong negative skew, but they do not reverse the overall positive average difference.
7

Limits of agreement results and exact interpretation

Verified estimates, confidence intervals, coverage and diagnostics.

The exact limits of agreement results combine estimation, a separate bias test, diagnostics and empirical coverage. Every result below is cross-checked across the Excel workbook and the Python, R and SPSS outputs.

Primary agreement result

−2.17 to 2.84

Classical 95% limits

Under the classical model, most individual G3 − G2 differences are expected between about 2.17 points lower and 2.84 points higher. The interval is asymmetric around zero because the average bias is positive.

Calculation audit

n pairs649
Bias0.3359013867
Difference SD1.2782447804
Lower limit−2.1694583829
Upper limit2.8412611564
Limit SE0.0857951724
Result componentEstimate95% confidence intervalInterpretation
Mean bias0.3359010.237375 to 0.434428G3 is higher than G2 by about one-third of a point on average.
Lower agreement limit−2.169458−2.337928 to −2.000988Lower boundary for individual G3 − G2 differences.
Upper agreement limit2.8412612.672791 to 3.009731Upper boundary for individual G3 − G2 differences.
Bias testt = 6.695df = 648, p < .001The average difference is statistically different from zero.
Mean–difference relationr = 0.253p < .001Differences become more positive as the average grade increases.

Empirical coverage

Twenty-two of the 649 observed differences fall outside the estimated classical limits. Therefore, 627 pairs (96.61%) are inside and 3.39% are outside. This sample proportion is close to, but not required to equal, 95% because the boundaries are estimated from the same data and the differences are discrete and non-normal.

Coverage alone is not a sufficient diagnostic. A model can include approximately 95% of observations while still showing proportional bias, heteroscedasticity or clinically unacceptable width.

Distribution summary

The difference median is 0, the IQR is 1, the minimum is −9, and the maximum is 6. Skewness is −3.031 and kurtosis is 19.487. These values confirm a central spike with unusually heavy tails.

Use skewness, kurtosis, range, and interquartile range together. No single descriptive measure fully represents the agreement pattern.

Do not conclude interchangeability from the p-value. The bias test is significant because the estimate is precise in a large sample. Interchangeability depends on whether differences from roughly −2.17 to +2.84 points are acceptable for the intended use.
8

Limits of agreement in Python: complete calculation and charts

A transparent calculation with exact confidence intervals and diagnostics.

A reproducible limits of agreement Python workflow should calculate the paired differences, bias, sample difference SD, classical limits, confidence intervals, empirical coverage and diagnostics. The code below keeps all formulas visible rather than relying on a single black-box function.

Python / pandas / SciPyimport numpy as np
import pandas as pd
from scipy import stats

df = pd.read_csv("dataset.csv")
pairs = df[["G2", "G3"]].dropna().copy()
pairs["mean_pair"] = pairs[["G2", "G3"]].mean(axis=1)
pairs["difference"] = pairs["G3"] - pairs["G2"]

n = len(pairs)
bias = pairs["difference"].mean()
sd_diff = pairs["difference"].std(ddof=1)
loa_low = bias - 1.96 * sd_diff
loa_high = bias + 1.96 * sd_diff

tcrit = stats.t.ppf(0.975, n - 1)
se_bias = sd_diff / np.sqrt(n)
se_limit = sd_diff * np.sqrt(1/n + 1.96**2/(2*(n-1)))

bias_ci = (bias - tcrit*se_bias, bias + tcrit*se_bias)
low_ci = (loa_low - tcrit*se_limit, loa_low + tcrit*se_limit)
high_ci = (loa_high - tcrit*se_limit, loa_high + tcrit*se_limit)

outside = ((pairs["difference"] < loa_low) |
(pairs["difference"] > loa_high)).sum()

Expected Python values: n = 649, bias = 0.335901, SD = 1.278245, lower limit = −2.169458, upper limit = 2.841261, bias CI = 0.237375 to 0.434428, and 22 observed differences outside the limits.
Python Primary metrics for limits of agreement

Python Primary metrics for limits of agreement

The primary metrics panel summarizes all 649 pairs, the G3 minus G2 mean bias of 0.3359, the difference standard deviation of 1.2782, and the classical 95% limits from −2.1695 to 2.8413. Read this first because every later table and confidence interval must reconcile to these values.

Python Paired differences for G2 and G3

Python Paired differences for G2 and G3

The paired-difference display keeps the direction G3 − G2 visible. Positive values mean the final grade is higher than the second-period grade, negative values mean it is lower, and zero represents exact agreement. Most observations are concentrated at −1, 0, or +1, but a small number of large negative differences create the long left tail.

Python Agreement limits with confidence intervals

Python Agreement limits with confidence intervals

This figure separates the estimated bias from the lower and upper agreement boundaries and adds uncertainty around each estimate. The bias confidence interval is 0.2374 to 0.4344; the approximate confidence interval for the lower limit is −2.3379 to −2.0010, and the approximate confidence interval for the upper limit is 2.6728 to 3.0097.

Python Difference distribution summary

Python Difference distribution summary

The distribution summary shows a median difference of 0, an interquartile range of 1, a minimum of −9, and a maximum of 6. The strong negative skew and heavy tails explain why the normality diagnostics require explicit discussion instead of a routine statement that assumptions were satisfied.

Python Verified limits of agreement result summary

Python Verified limits of agreement result summary

The verified result card reconciles Python, R, SPSS, and Excel. The independent implementations agree on n = 649, bias = 0.335901, lower limit = −2.169458, upper limit = 2.841261, and the standard error of each limit = 0.085795.

Python validation checks

Assert that every retained row has both G2 and G3.
Verify that reversing the subtraction reverses all signs.
Use ddof = 1 for the sample standard deviation.
Use a t critical value for confidence intervals.
Reconcile displayed rounding with full-precision stored values.

Python diagnostics

Calculate the correlation between pair mean and difference, inspect a scatterplot, summarize the difference distribution, and review outlying rows. In this dataset, r = 0.253 with p < .001, so the difference is not completely independent of measurement magnitude.

A regression-based Bland–Altman extension may be preferable when that trend is scientifically meaningful.

9

Limits of agreement in R: formulas, confidence intervals and charts

Base R reproduces the complete verified analysis without hidden defaults.

The limits of agreement in R can be reproduced with base functions. The workflow below deliberately calculates every component so the R output can be reconciled with Python, SPSS and Excel.

R / base statsdf <- read.csv("dataset.csv")
d <- na.omit(df[c("G2", "G3")])

d$mean_pair <- rowMeans(d[c("G2", "G3")])
d$difference <- d$G3 - d$G2

n <- nrow(d)
bias <- mean(d$difference)
sd_diff <- sd(d$difference)
loa_low <- bias - 1.96 * sd_diff
loa_high <- bias + 1.96 * sd_diff

tcrit <- qt(.975, df = n - 1)
se_bias <- sd_diff / sqrt(n)
se_limit <- sd_diff * sqrt(1/n + 1.96^2/(2*(n-1)))

bias_ci <- bias + c(-1, 1) * tcrit * se_bias
low_ci <- loa_low + c(-1, 1) * tcrit * se_limit
high_ci <- loa_high + c(-1, 1) * tcrit * se_limit

R rounding rule: preserve full precision for calculations and round only in the final reporting table. Prematurely rounding the bias or difference SD can create visible disagreement across software even when all implementations are correct.
R Primary metrics for limits of agreement

R Primary metrics for limits of agreement

The primary metrics panel summarizes all 649 pairs, the G3 minus G2 mean bias of 0.3359, the difference standard deviation of 1.2782, and the classical 95% limits from −2.1695 to 2.8413. Read this first because every later table and confidence interval must reconcile to these values.

R Paired differences for G2 and G3

R Paired differences for G2 and G3

The paired-difference display keeps the direction G3 − G2 visible. Positive values mean the final grade is higher than the second-period grade, negative values mean it is lower, and zero represents exact agreement. Most observations are concentrated at −1, 0, or +1, but a small number of large negative differences create the long left tail.

R Agreement limits with confidence intervals

R Agreement limits with confidence intervals

This figure separates the estimated bias from the lower and upper agreement boundaries and adds uncertainty around each estimate. The bias confidence interval is 0.2374 to 0.4344; the approximate confidence interval for the lower limit is −2.3379 to −2.0010, and the approximate confidence interval for the upper limit is 2.6728 to 3.0097.

R Difference distribution summary

R Difference distribution summary

The distribution summary shows a median difference of 0, an interquartile range of 1, a minimum of −9, and a maximum of 6. The strong negative skew and heavy tails explain why the normality diagnostics require explicit discussion instead of a routine statement that assumptions were satisfied.

R Verified limits of agreement result summary

R Verified limits of agreement result summary

The verified result card reconciles Python, R, SPSS, and Excel. The independent implementations agree on n = 649, bias = 0.335901, lower limit = −2.169458, upper limit = 2.841261, and the standard error of each limit = 0.085795.

R numerical reconciliation

The R results should match the verified ledger to ordinary floating-point precision. The Excel workbook reports absolute differences of zero for the bias, bias confidence limits, limit standard error and n; the lower and upper limits differ only by about 9.8 × 10−15 because of binary floating-point representation.

R diagnostic extensions

Use cor.test(d$mean_pair, d$difference) for the mean–difference association, shapiro.test() only with awareness of its sample-size limitations, and graphical diagnostics for the full pattern. For discrete grades, empirical quantiles and bootstrap procedures can be added as sensitivity analyses.

10

Limits of agreement in SPSS: workflow and verified output

Transform the paired values, estimate bias and examine the agreement assumptions.

The limits of agreement SPSS workflow begins by creating the pair mean and signed difference. SPSS can then provide descriptives, a bias test, a mean–difference correlation, a scatterplot, a histogram and Q–Q diagnostics. The classical limits and confidence intervals are calculated from the verified formulas.

SPSS transformations and summaries

SPSS syntaxCOMPUTE loa_difference = G3 - G2.
COMPUTE loa_mean = (G2 + G3) / 2.
EXECUTE.

DESCRIPTIVES VARIABLES=loa_difference loa_mean
/STATISTICS=MEAN STDDEV VARIANCE MIN MAX.

T-TEST /TESTVAL=0
/VARIABLES=loa_difference
/CRITERIA=CI(.95).

SPSS diagnostics

SPSS syntaxCORRELATIONS
/VARIABLES=loa_mean loa_difference
/PRINT=TWOTAIL NOSIG
/MISSING=PAIRWISE.

GRAPH
/SCATTERPLOT(BIVAR)=loa_mean WITH loa_difference.

EXAMINE VARIABLES=loa_difference
/PLOT=HISTOGRAM NPPLOT
/STATISTICS=DESCRIPTIVES.

SPSS outputVerified valueMeaning
Difference mean0.3359Average G3 − G2 bias.
Difference SD1.27824Variation used to construct the limits.
One-sample t6.695, df = 648, p < .001Bias differs from zero.
Bias CI0.2374 to 0.4344Precision of the mean difference.
Mean–difference correlation0.253, p < .001Evidence of magnitude-related bias.
Shapiro–Wilk0.685, p < .001Strong departure from normal differences.
SPSS output must be interpreted, not merely pasted. The significant t test does not represent the limits of agreement result. The scatterplot, difference distribution and prespecified acceptable margin remain essential to the agreement conclusion.

The complete uploaded SPSS report contains 649 rows, the G3 − G2 difference, pair mean, descriptives, one-sample test, correlation and normality diagnostics. Its final verification ledger reports the same bias and limits as the other software implementations.

11

Limits of agreement in Excel: worked formulas and audit trail

A transparent workbook that reproduces every verified metric.

The worked limits of agreement Excel workbook is formula-driven and separates source data, row calculations, final metrics, diagnostics and reporting. It is designed as an audit trail rather than a one-cell answer.

Recommended workbook structure

SheetPurposeKey content
GuideMethod documentationDesign, variables, formula, alpha and reproducibility notes.
Data_InputOriginal paired valuesUnchanged G2 and G3 columns.
WorkingRow-level calculationsPair mean, difference and squared difference.
CalculationsMetric ledgern, bias, lower limit, upper limit, CIs and verified references.
DiagnosticsQuality checksAssumptions, row count and scope.
ReportingFinal comparisonWorkbook results, verified results and absolute differences.

Core Excel formulas

Excel formulasDifference: =B2-A2
Pair mean: =AVERAGE(A2:B2)
Bias: =AVERAGE(DifferenceRange)
Difference SD: =STDEV.S(DifferenceRange)
Lower limit: =Bias-1.96*DifferenceSD
Upper limit: =Bias+1.96*DifferenceSD
SE bias: =DifferenceSD/SQRT(n)
SE limit: =DifferenceSD*SQRT(1/n+1.96^2/(2*(n-1)))

Confidence interval formulas

Excel formulast critical: =T.INV.2T(0.05,n-1)
Bias CI low: =Bias-tCritical*SEBias
Bias CI high: =Bias+tCritical*SEBias
Lower LoA CI low: =LowerLimit-tCritical*SELimit
Lower LoA CI high:=LowerLimit+tCritical*SELimit
Upper LoA CI low: =UpperLimit-tCritical*SELimit
Upper LoA CI high:=UpperLimit+tCritical*SELimit
Verified Excel result: the workbook reproduces the bias, limits and sample size exactly. The only nonzero comparison values are approximately 9.77 × 10−15 for the lower and upper limits, which is harmless floating-point precision rather than an analytical discrepancy.
Do not use STDEV.P; the analysis estimates population agreement from a sample.
Do not calculate the SD of G2 and G3 separately and substitute it for the difference SD.
Do not remove negative differences or use absolute differences.
Do not mix rounded displayed cells with full-precision formulas.
Keep the acceptable-difference margin in a separate labeled input cell.
12

Limits of agreement compared with correlation, ICC and paired tests

Choose the statistic that answers the research question.

Limits of agreement answer a different question from correlation, paired mean tests and reliability coefficients. A complete analysis often reports more than one statistic, but each quantity must retain its own interpretation.

MethodMain questionCurrent roleMain limitation
Limits of agreementHow wide are individual paired differences?Primary agreement estimate.Requires a practical tolerance and stable difference pattern.
Bland–Altman plotHow do differences behave across magnitude?Visual companion to the numerical limits.Visual impression alone does not quantify uncertainty.
Pearson correlationDo the two measurements vary together?Association or proportional-bias diagnostic.High correlation does not imply close agreement.
Paired t testIs the mean difference zero?Bias significance test.Does not measure individual disagreement.
Intraclass correlationHow much variation is between rather than within units?Relative or absolute reliability coefficient.Depends on sample heterogeneity and ICC specification.
Effect sizeHow large is an average standardized change?Optional mean-change summary.Not an agreement boundary.

Limits of agreement versus confidence interval

A confidence interval around the bias estimates uncertainty in the population mean difference. The limits of agreement estimate the distribution of individual differences. Their numerical widths can be very different because they answer different questions.

In this example, the bias CI is only about 0.20 points wide, while the agreement interval spans about 5.01 points. The average bias is estimated precisely, yet individual differences remain much more variable.

Limits of agreement versus prediction interval

Both concepts describe future variation, but they arise from different models. Classical limits are based on the distribution of paired differences. A regression prediction interval conditions on predictors and includes uncertainty in a modeled outcome. Regression-based agreement limits are appropriate when bias or spread changes with magnitude.

Use complementary statistics deliberately. Reporting correlation, ICC and limits of agreement together can be useful when association, reliability and absolute individual disagreement all matter. It becomes misleading when one statistic is used as proof of another construct.
13

Limits of agreement diagnostics and sensitivity checks

Evaluate proportional bias, spread stability, tails, outliers and coverage.

A defensible limits of agreement analysis requires more than drawing three horizontal lines. The diagnostics below test whether one constant bias and one constant spread reasonably summarize the full measurement range.

Proportional bias

Correlate or regress the difference on the pair mean. The current r = 0.253, p < .001 indicates that differences become more positive at higher average grades.

Heteroscedasticity

Examine whether the vertical spread of differences changes across the horizontal axis. A funnel pattern suggests transformation or magnitude-specific limits.

Tail behavior

Inspect the histogram, Q–Q plot, skewness and kurtosis. The current long negative tail challenges the normal-limit model.

Influential pairs

Trace large differences back to source rows. Confirm that they are genuine observations before considering sensitivity analyses.

Empirical coverage

Count observations outside the limits and examine where they occur. Here 22 pairs, or 3.39%, are outside.

Subgroup stability

Check whether agreement changes by meaningful subgroups when this was prespecified and sample sizes support it.

Current proportional-bias finding

The mean–difference correlation is statistically significant. This does not automatically invalidate the analysis, but it means a single constant bias may oversimplify the relationship. At low average grades, the most extreme differences are negative; at higher average grades, differences are more often zero or positive.

A regression line for difference versus mean, with magnitude-dependent prediction limits, would provide a useful sensitivity analysis. The classical fixed limits should remain reported as the prespecified primary result.

Current normality finding

The difference distribution has skewness −3.031, kurtosis 19.487 and Shapiro–Wilk p < .001. The histogram and Q–Q plot show deviations that are not limited to a minor imperfection.

Robust or empirical quantile limits can be reported alongside classical limits. Bootstrap intervals can also reflect non-normal sampling behavior, although a bootstrap does not automatically correct a poor structural model.

Common diagnostic mistake: deleting extreme differences until the histogram looks normal changes the population being described. Investigate errors, document exclusions based on external rules, and show a sensitivity analysis when legitimate extremes strongly influence the limits.
ProblemDiagnostic signPossible response
Proportional biasDifference trend across pair meanRegression-based bias and limits.
Increasing spreadFunnel-shaped plotLog transformation or variance model.
Strong non-normalitySkewed histogram and curved Q–Q plotRobust, empirical or bootstrap sensitivity analysis.
Discrete outcomeHorizontal bands and repeated differencesReport frequency table and interpret scale granularity.
Clusters or repeatsMultiple pairs per unit or siteMixed-effects agreement method.
14

How to interpret limits of agreement correctly

Translate the interval into the original unit without overstating interchangeability.

Correct limits of agreement interpretation begins with the subtraction direction, reports the bias and limits in the original unit, and compares the interval with a practical tolerance. The percentage “95%” is a model-based long-run target, not a guarantee for every future sample.

Plain-language interpretation

On average, the final grade G3 is 0.34 points higher than the second-period grade G2. For an individual student, however, G3 can reasonably be about 2.17 points lower to 2.84 points higher than G2 under the classical model.

The difference is not constant across all grade magnitudes, and the distribution contains a long negative tail. Therefore, the interval should be read as a useful overall summary with explicitly stated limitations rather than a perfect description of every student.

What 95% means

If the population difference distribution were stable and approximately normal, about 95% of individual paired differences would fall between the population agreement limits. The estimated sample limits are uncertain, which is why confidence intervals around both boundaries are reported.

The statement does not mean there is a 95% probability that a fixed observed difference lies inside the interval, and it does not mean the methods agree 95% of the time within an externally meaningful tolerance.

Bias decision

The bias CI excludes zero and the paired t test is significant. G3 is systematically higher on average.

Width decision

The limits span 5.0107 points. Acceptability depends on the prespecified grade-difference margin.

Model decision

Non-normality and proportional bias support sensitivity analyses in addition to the classical limits.

Example practical rule: if a school defined ±1 grade point as the maximum acceptable individual difference, the observed limits would be too wide. If ±3 points were acceptable, the point estimates would nearly fit, but the upper-limit confidence interval extends slightly above +3. A final decision must use the real policy threshold, not a threshold selected after viewing the results.

Direction reversal

If the difference were defined as G2 − G3, the bias would be −0.335901, the lower limit would be −2.841261, and the upper limit would be 2.169458. The width and substantive agreement are unchanged, but the wording reverses.

Rounding

Use enough decimals to preserve the grade scale and statistical precision. Reporting 0.34, −2.17 and 2.84 is usually readable. Keep full precision in downloadable files and calculations.

15

How to report limits of agreement in APA style

A complete result paragraph, table and reporting checklist.

A complete limits of agreement report states the measurement order, sample size, subtraction direction, bias, difference SD, limits, confidence intervals, diagnostics and practical criterion. It should not report only a p-value or only a plot.

APA-style result paragraph

Agreement between second-period grade (G2) and final grade (G3) was evaluated using the Bland–Altman limits of agreement method for 649 paired observations. Differences were calculated as G3 − G2. The mean difference was 0.34 points (SD = 1.28), 95% CI [0.24, 0.43], indicating that G3 was slightly higher on average. The estimated 95% limits of agreement were −2.17, 95% CI [−2.34, −2.00], and 2.84, 95% CI [2.67, 3.01]. The mean difference was statistically different from zero, t(648) = 6.70, p < .001. The difference was positively associated with the pair mean, r = .25, p < .001, and the difference distribution was strongly non-normal; therefore, the fixed normal-theory limits should be interpreted with caution and compared with a prespecified acceptable grade-difference margin.

Minimum reporting checklist

Name both measurements and their order.
State the signed difference definition.
Report n, bias and difference SD.
Report both agreement limits.
Report confidence intervals for bias and limits.
Describe proportional bias and distribution diagnostics.
State the practical acceptable-difference threshold.

Recommended table columns

MetricEstimate95% CI
Bias0.33590.2374, 0.4344
Lower LoA−2.1695−2.3379, −2.0010
Upper LoA2.84132.6728, 3.0097
Use “fail to reject” only for the bias hypothesis test. The main agreement result is an estimated interval, so describe its width and precision. Avoid writing “the null hypothesis of agreement was accepted.”
16

Limits of agreement PDF, SPSS and Excel downloads

Verified files for replication, teaching and reporting.

Download the verified limits of agreement reports and worked workbook. Each file corresponds to the same G3 − G2 analysis and has been checked against the common result ledger.

Verification standard: the four formats agree on n = 649, bias = 0.335901, lower limit = −2.169458, upper limit = 2.841261, bias CI = 0.237375 to 0.434428, and limit standard error = 0.085795.
17

Verification sources and reproducibility notes

How the values, formulas and diagnostics were cross-checked.

The analysis is grounded in the uploaded worked workbook, the SPSS output and the matching Python and R reports. The method terminology follows the standard Bland–Altman framework: signed paired differences, average bias, 95% limits and confidence intervals around estimated components.

Workbook verification

The Guide sheet documents the design, formula, variables, 649 source rows and alpha level. The Calculations and Reporting sheets compare Excel formulas with independently verified reference values.

SPSS verification

The SPSS output confirms the difference mean and SD, the one-sample bias test, the mean–difference correlation, the histogram, Q–Q plots and the strong normality departure.

Cross-software verification

Python, R, SPSS and Excel use the same subtraction direction and sample. Agreement to floating-point precision rules out transcription and formula-order errors.

18

Limits of agreement FAQs

Direct answers to calculation, interpretation, software and reporting questions.

These limits of agreement FAQs answer the search questions most likely to arise when calculating, interpreting and reporting Bland–Altman agreement limits.

What are limits of agreement?

Limits of agreement are estimated lower and upper boundaries for most individual differences between two paired measurements. Under the classical normal-difference model, they are the mean difference plus and minus 1.96 times the standard deviation of the differences.

How do I calculate 95 limits of agreement?

Calculate one signed difference per pair, find the mean and sample standard deviation of those differences, then compute mean difference − 1.96 SD and mean difference + 1.96 SD. Keep the subtraction direction consistent.

What do 95% limits of agreement mean?

They estimate an interval expected to contain about 95% of individual paired differences when the population difference distribution is stable and approximately normal. They do not state that the methods are acceptable.

Are limits of agreement the same as a confidence interval?

No. A confidence interval around the bias estimates uncertainty in the average difference. Limits of agreement describe individual differences. Confidence intervals can also be calculated around each estimated limit.

What is the bias in this example?

The mean G3 − G2 difference is 0.335901 points. Positive bias means G3 is higher than G2 on average.

What are the lower and upper limits in this example?

The classical lower limit is −2.169458 and the upper limit is 2.841261 grade points.

What are the confidence intervals for the limits?

The approximate 95% confidence interval for the lower limit is −2.337928 to −2.000988. The approximate interval for the upper limit is 2.672791 to 3.009731.

Is a significant mean difference evidence of poor agreement?

Not by itself. Statistical significance depends on bias size, variability and sample size. Agreement must be judged from the individual-difference limits and a practical acceptable margin.

Can correlation replace limits of agreement?

No. Correlation measures association, not closeness. Two measurements can correlate strongly while having large systematic bias or wide individual differences.

Why use the average of the two measurements on the x-axis?

The pair mean represents the measurement magnitude without privileging either method. Plotting difference against the mean helps reveal proportional bias and changing spread.

Do the raw measurements need to be normally distributed?

No. The classical assumption concerns the paired differences. G2 and G3 can each be non-normal while their differences are approximately normal, or the reverse.

Are the differences normal in this dataset?

No. Shapiro–Wilk W is 0.685 with p < .001, skewness is −3.031 and kurtosis is 19.487. The discrete difference distribution has a long negative tail.

How many observations fall outside the limits?

Twenty-two of 649 differences, or 3.39%, are outside the estimated classical limits. Six hundred twenty-seven, or 96.61%, are inside.

What does the positive mean–difference correlation mean?

The correlation of 0.253 indicates that G3 − G2 tends to become more positive as the average grade increases. This is evidence of proportional bias and supports a regression-based sensitivity analysis.

Can I reverse G3 minus G2?

Yes, but every sign reverses. Using G2 − G3 would produce bias −0.335901 and limits −2.841261 to 2.169458. The interval width and agreement quality are unchanged.

How do I calculate limits of agreement in Excel?

Create row-level difference and mean columns, use AVERAGE and STDEV.S for the differences, then calculate bias ± 1.96 SD. Use T.INV.2T and the standard-error formulas for confidence intervals.

Can SPSS calculate limits of agreement?

SPSS can create the difference and mean, provide descriptive statistics, test the bias, calculate correlation and produce diagnostic plots. The limits and their confidence intervals are then computed from the verified formulas.

What should I report in an article?

Report the measurement order, difference direction, n, bias, difference SD, both limits, confidence intervals, diagnostics and the prespecified acceptable margin. Include a plot when possible.

What if the spread increases with measurement magnitude?

Consider a log transformation when ratios are meaningful, or use regression-based limits that model magnitude-dependent variance. Show both primary and sensitivity results transparently.

Can nonsignificant bias prove interchangeability?

No. Interchangeability requires the entire individual-difference interval to be acceptably narrow. A mean bias near zero can coexist with very wide limits.

+

Related statistical guides

Continue with agreement, reliability, correlation and diagnostic methods.

Back to top ↑