The advantage of open-source software is that when the manual's vague or ambiguous, you can check the code (the disadvantage is that you often have to). In R just inputting the name of a function returns its source code. So for a two-tailed (`tside=2`), single-sample (`tsample = 1`), unpaired t-test; at significance level `sig.level`, with sample size `n`, the power to detect effects of size `d` is given by:— nu <- (n - 1) * tsample qu <- qt(sig.level/tside, nu, lower = FALSE) pt(qu, nu, ncp = sqrt(n/tsample) * d, lower = FALSE) + pt(-qu, nu, ncp = sqrt(n/tsample) * d, lower = TRUE) `qt` & `pt` are the respective quantile & cumulative distribution functions for the t-distribution provided in the `stats` package. As you can see, they're supplied with the correct no. degrees of freedom `nu`. It's worth noting that the probability of rejecting the null hypothesis because of a negative observed t-statistic is included in the total probability of rejecting the null hypothesis for a specified positive effect. This is negligible in high-powered experiments; but, as you suggest the ones you're interested in aren't, you may want to separate out the chance of inferring an effect in the wrong direction. I don't propose to go through every function in the `pwr` package, but e.g. the power analysis for tests comparing proportions depend on the Gaussian approximation to the binomial distribution, & would not therefore be all that accurate for for experiments with very small sample sizes. Simulation would be a better approach in this case. It's somewhat tangential, but I'd question the applicability of the 'big', 'middle-sized', & 'little' effect size classification to manufacturing. If you increase the precision of a measurement system, say, why should a 'little' effect become 'big'? Effect sizes of practical significance are better stipulated according to engineering or financial criteria.