The method
Lu et al. (2016) treat agreement as two one-sided tests: the upper confidence limit of the upper limit of agreement must fall below the maximum allowed difference δ, and the lower confidence limit of the lower limit must fall above −δ. With expected mean difference μ, SD σ and z = 1.96 for 95% limits:
SE = σ × √(1/n + z²/(2(n − 1))) (eqs. 1–2)
τ₁ = (δ − μ − zσ)/SE and τ₂ = (δ + μ − zσ)/SE
β₁ and β₂ are the probabilities that a non-central t variable with n − 1 degrees of freedom and non-centrality τ₁ or τ₂ falls below t₁₋α/₂,ₙ₋₁ (eqs. 3–4), and power = 1 − (β₁ + β₂) (eq. 5). The calculator finds the smallest n whose power reaches your target. The non-central t distribution is computed with Lenth's (1989) algorithm AS 243.
Choosing the inputs
The mean and SD of the differences should come from a pilot study or a published validation of a similar device. The wearable accuracy tables list published bias and limits of agreement for heart rate, HRV, SpO2 and sleep, and the SD can be recovered from published limits as (upper − lower)/(2 × 1.96). The maximum allowed difference is a clinical or practical judgement and must be set before the study. The required n rises steeply as δ approaches |μ| + 1.96σ, and no sample size works once δ is below that.
How it compares with the paper
The calculator reproduces R's SimplyAgree::blandPowerCurve, which implements the same equations, to seven decimal places of power. For the paper's worked example (μ = 0.001167, σ = 0.001129, δ = 0.004, α = 0.05, 80% power) it returns 79 pairs with 80.2% power. The paper reports 83, and its Table 1 values run 1–3 higher than the smallest n that meets equation 5, because the paper starts from an iterative approximation (its equation 6) and steps upward. Either way the power at the paper's n is above the target, so 83 is a slightly conservative choice.