A practical guide to power analysis with G*Power

If you’ve ever had to answer the question “how many participants do I need?” for an ethics application, a grant, or a pre-registration, you’ve needed a power analysis. This page is a practical, example-driven walkthrough of how to do that using G*Power, a free program built by researchers at Heinrich Heine University Düsseldorf. It’s not the only power analysis tool out there, but it’s free, it covers most of the designs psychologists and health researchers actually run, and once you know your way around its interface it’s genuinely quick to use.

This guide started life as a much longer resource I found useful early in my career, hosted for years at mormonsandscience.com and preserved on the Wayback Machine. I used that as a starting point and used Claude (Anthropic’s AI assistant) to help rewrite, reorganise, and expand it with new worked examples throughout. I hope it keeps the “soul” of the original and is still useful!

I’ve checked this over, but with a page this long covering this many tests, something may have slipped through. If you spot an error — a wrong formula, a step that doesn’t match your version of G*Power, anything — please email me and I’ll fix it.

Contents

G*Power sorts its tests by statistical machinery (“test family”), which is efficient once you know it but not how most people first think about their design. This table gives you both routes in: find your test by what it’s usually called, or by which G*Power family it lives in, then click through.

Test Usually filed under G*Power family Quick example
Correlation: bivariate normal model Correlation Exact tests (or t-tests) study hours vs exam score
Point-biserial correlation Correlation Exact tests (or t-tests) test score by pass/fail group
Two independent correlations Correlation z-tests correlation strength, two cohorts
One sample vs a known proportion Proportions Exact tests symptom rate vs population rate
Two independent proportions (Fisher’s exact) Proportions Exact tests pass rate, two teaching methods
Two dependent proportions (McNemar’s) Proportions Exact tests before/after symptom change
Sign test Proportions Exact tests more improved than worsened?
Independent-samples t-test Means / t-tests t-tests treatment vs control means
Paired-samples t-test Means / t-tests t-tests pre- vs post-intervention scores
One-sample t-test Means / t-tests t-tests sample IQ vs population norm
Mann-Whitney U Means / t-tests t-tests non-parametric group comparison
Chi-square goodness of fit Chi-square χ² tests observed vs expected category counts
Multiple regression — overall model Regression F-tests (or Exact) do 4 predictors explain an outcome?
Multiple regression — one predictor’s contribution Regression F-tests does adding one more predictor help?
Logistic regression Regression z-tests does BMI predict mortality?
Poisson regression Regression z-tests does dose change an event rate?
One-way ANOVA ANOVA F-tests scores across three seating positions
Factorial (two-way) ANOVA ANOVA F-tests condition × gender on test scores
Repeated measures — between-subjects effect ANOVA F-tests drug vs placebo across visits
Repeated measures — within-subjects effect ANOVA F-tests change across three time points
Repeated measures — interaction ANOVA F-tests does change over time differ by group?
Hotelling’s T² — one group Multivariate F-tests several paired differences at once
Hotelling’s T² — two groups Multivariate F-tests several outcomes, two groups at once
MANOVA — global effects Multivariate F-tests therapy type across five outcomes

Why bother with power analysis?

Statistical power is the probability that your study will correctly detect an effect, given that the effect genuinely exists. A study with 80% power has an 80% chance of finding a real effect of the size you’ve specified, and a 20% chance of missing it (a Type II error, or false negative).

Two failure modes matter here. An underpowered study is likely to miss real effects, and worse, if it does find something “significant” the effect size estimate tends to be inflated and unreliable. An overpowered study can flag trivially small effects as statistically significant, even when they have no practical or clinical relevance. Neither is a great use of anyone’s time or a participant’s goodwill, which is why most ethics boards, journals, and funders now expect a justified sample size before you collect a single data point.

Commercial packages (PASS, nQuery, SPSS SamplePower) do this well but cost real money. Free online calculators exist too, but most only handle a handful of simple designs. G*Power sits in a useful middle ground: free, actively maintained, and capable of handling everything from a simple correlation to repeated-measures ANOVA and logistic regression.

Downloading it: the current version is available directly from the developers’ page at Düsseldorf, for Windows and Mac.

A disclaimer worth repeating from the original guide this is based on: no guide can promise the numbers G*Power gives you are perfectly correct for your exact design. Where you can, cross-check unfamiliar calculations against a second source (an R package, a colleague, a published table) before you commit to a sample size in a pre-registration.

How G*Power is organised

Every calculation in G*Power follows the same basic shape, which is worth understanding before you touch any specific test:

  1. Test family — a broad category (t-tests, F-tests, χ² tests, z-tests, exact tests).
  2. Statistical test — the specific design (e.g. “Means: Difference between two independent means”).
  3. Type of power analysis — almost always you’ll want A priori: compute required sample size, given alpha, power, and effect size. (The other options work backwards — e.g. computing achieved power for a sample size you already have, which is useful after the fact but shouldn’t be used to justify a sample size you were always going to collect anyway.)
  4. Effect size — the expected size of whatever you’re trying to detect. Where possible, G*Power has a “Determine” button that opens a small calculator so you can enter means, standard deviations, correlations, or proportions directly and let it compute the standardised effect size for you, rather than you having to compute it by hand.
  5. α (alpha) and power — conventionally 0.05 and 0.80, though check what your field, supervisor, or journal expects. Pre-registered confirmatory studies often use higher power (0.90 or 0.95).

Once you’ve filled these in, click Calculate and G*Power returns the required total sample size (and, for unequal group designs, the split between groups).

Where do effect sizes come from?

This is usually the hardest part, and G*Power can’t answer it for you. Your options, roughly in order of preference:

Cohen’s conventions, since you’ll want them repeatedly:

Effect size index Small Medium Large Used for
d 0.20 0.50 0.80 Mean differences (t-tests)
r 0.10 0.30 0.50 Correlations
w 0.10 0.30 0.50 Chi-square (goodness of fit)
f 0.10 0.25 0.40 ANOVA (univariate)
f² 0.02 0.15 0.35 Multiple regression, factorial ANOVA
g Proportions (binomial) — effect size is just the difference between the two proportions, no fixed benchmarks

A quick caveat on that table: Cohen himself proposed these as a last resort for when nothing better was available, not as fixed standards, and a growing body of work argues they’re a poor fit for psychology specifically. Published effect sizes in social and personality psychology tend to cluster well below Cohen’s “medium,” which means these benchmarks can undersell effects that are actually meaningful, or oversell precision that isn’t there. Funder and Ozer (2019, Advances in Methods and Practices in Psychological Science) argue for recalibrated benchmarks based on what psychology research actually produces, and stress that a “small” effect can still matter a great deal depending on context. Gignac and Szodorai (2016, Personality and Individual Differences) make a similar case specifically for correlational individual-differences research, suggesting smaller anchor points than Cohen’s for r. Treat the table above as a shared vocabulary, not a target — a literature-based estimate will always beat a convention.

Correlational designs

Correlation: bivariate normal model

What it tests: whether a correlation coefficient is significantly different from zero (or from some other specified value), for two continuous variables.

Worked example: you expect a correlation of r = 0.35 between hours of sleep the night before an exam and next-day memory performance, and want to know how many participants would let you detect that reliably.

Step by step:

  1. Test family: Exact — Statistical test: Correlation: Bivariate normal model. (The t-tests family has an equivalent test that gives the same answer; use whichever your software defaults to.)
  2. Type of power analysis: A priori.
  3. Tail(s): choose two unless you have a strong directional hypothesis and are willing to defend it (e.g. you’re confident sleep can only help, never hurt, memory) — then choose one.
  4. Correlation ρ H1: enter 0.35 directly. There’s no “Determine” calculator needed here — the correlation is the effect size.
  5. α err prob: 0.05.
  6. Power (1 − β err prob): 0.80.
  7. Correlation ρ H0: leave at 0, unless you’re testing your sample’s correlation against some other specific benchmark value (e.g. “is our correlation of 0.35 significantly higher than a previously published correlation of 0.20?” — in which case enter 0.20 here instead).
  8. Click Calculate. For this example, you’ll need in the region of 63 participants.

Reading the output: G*Power also reports the noncentrality parameter and critical r — you can ignore these unless you’re writing them into a stats-heavy methods section; the number you actually want is Total sample size.

Point-biserial correlation

What it tests: whether a correlation coefficient is significantly different from zero, for the specific case where one variable is continuous and the other is a two-level category — for example, correlating a continuous anxiety score with a binary group membership (clinical vs non-clinical).

Worked example: you expect a point-biserial correlation of r = 0.30 between a continuous test score and a binary pass/fail outcome.

Step by step:

  1. Test family: Exact (or t-tests, equivalent) — Statistical test: Correlation: Bivariate normal model. G*Power doesn’t have a separate “point-biserial” option; the underlying maths is identical to the ordinary bivariate correlation test, you’re just interpreting one variable as a 0/1 grouping.
  2. Tail(s): choose two unless you have a specific directional hypothesis you’re prepared to defend, in which case one.
  3. Correlation ρ H1: if you’ve been given (or have estimated) r directly, enter it as-is (0.30). If instead you have a squared value — a coefficient of determination, r² = 0.09 — click Determine, enter 0.09 under “Coefficient of determination ρ²,” and let G*Power take the square root for you.
  4. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  5. Click Calculate.

This test is mathematically equivalent to an independent-samples t-test on the same data — if you already know your two group means and SDs, you may find the independent-samples t-test walkthrough below more intuitive to work through, and it will return the same sample size.

Two independent correlations

What it tests: whether a correlation observed in one independent group differs significantly from a correlation observed in a second, separate group.

Worked example: does the correlation between hours of revision and exam grade differ between first-year and final-year students? You expect r = 0.54 in the final-year group and r = 0.40 in the first-year group.

Step by step:

  1. Test family: z-tests — Statistical test: Correlation: Two independent Pearson r’s.
  2. Tail(s): one or two, depending on whether you predicted which group would show the stronger correlation in advance.
  3. Effect size q: click Determine. Enter the two expected correlations — Correlation ρ1 = 0.54 (final-year), Correlation ρ2 = 0.40 (first-year) — then click Calculate and transfer to main window. G*Power converts the two correlations into Cohen’s q, the effect size this test actually uses (it’s the difference between the Fisher-z transformed correlations, not the raw difference between the r values).
  4. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  5. Allocation ratio N2/N1: if you expect an equal number of participants in each group, leave this at 1. If, say, you expect twice as many first-year as final-year students, set it to 2.
  6. Click Calculate.

Comparing proportions

Family: Exact tests, in most cases.

One sample vs a known proportion

What it tests: the binomial test — whether a proportion observed in your sample differs from a known or hypothesised population proportion. It’s especially appropriate (rather than an approximate z-test) when either n×p or n×(1−p) is small, which is common with rare outcomes.

Worked example: the population rate of a particular symptom in the general population is 2% (p = 0.02). You suspect the rate is elevated to 5% (p = 0.05) in people with a specific risk factor, and want to know how many people with that risk factor you’d need to sample to detect the difference.

Step by step:

  1. Test family: Exact — Statistical test: Proportion: Difference from constant.
  2. Tail(s): two, unless you’re only interested in detecting an increase specifically, in which case one.
  3. Effect size g: click Determine. Enter P1 (the H0 proportion, 0.02) and P2 (the H1/alternative proportion, 0.05), choose one of the “Calc P2 from…” methods offered (they’re equivalent — pick whichever inputs you have), synchronise the values, then calculate. G*Power returns g = 0.03 here (simply P2 − P1 in this simple case).
  4. α: 0.05. Power: since this concerns a potentially under-detected risk factor, you might reasonably push power to 0.90.
  5. Constant proportion: this should already be filled in as the H0 proportion (0.02) — check it matches P1 from the Determine step.
  6. Click Calculate.

Two independent proportions

What it tests: Fisher’s exact test — comparing two proportions measured in two separate, independent groups. Good for comparing pass rates, response rates, or diagnosis rates between groups, and appropriate for both prospective designs and retrospective designs where you’re extracting a fixed number of cases per group from records.

Worked example: based on department records, 85% of students pass a statistics module when it’s taught by staff from the psychology department, versus an expected 95% pass rate when it’s taught by staff from the mathematics department. How many students (split across the two teaching conditions) would you need to detect that difference?

Step by step:

  1. Test family: Exact — Statistical test: Proportions: Inequality, two independent groups (Fisher’s exact test).
  2. Tail(s): one or two depending on whether the direction is predicted.
  3. Proportion 1: 0.85. Proportion 2: 0.95. (No need for the Determine calculator here — enter both proportions directly into the main window.)
  4. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  5. Click Calculate.

Two dependent proportions

What it tests: McNemar’s test — comparing two proportions from the same people measured twice on a binary outcome (before/after, or two raters, or two conditions in a within-subjects design).

Worked example: you measure whether patients report a symptom (yes/no) before and after a course of treatment. You expect the following pattern of outcomes across patients:

After: symptom present After: symptom absent
Before: symptom present 0.55 (no change) 0.30 (improved)
Before: symptom absent 0.05 (worsened) 0.10 (no change)

The cells that matter for McNemar’s test are the discordant pairs — people whose status flipped between the two measurements: 0.30 improved and 0.05 worsened, for a total of 0.35 discordant.

Step by step:

  1. Test family: Exact — Statistical test: Proportions: Inequality, two dependent groups (McNemar’s test).
  2. Tail(s): one if you specifically expect more improvement than worsening (as here), two if either direction would be theoretically interesting.
  3. Odds ratio: the ratio of the two discordant proportions — here, 0.05 / 0.30 ≈ 0.167 (or, taking the reciprocal, 0.30 / 0.05 = 6.0 — either way round gives you the same required sample size).
  4. Proportion of discordant pairs: 0.30 + 0.05 = 0.35.
  5. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  6. Click Calculate.

Sign test

What it tests: a special case of the one-sample binomial test, restricted to asking whether a proportion differs from exactly 50% — useful for simple “did more people improve than get worse” questions where you’re not tracking the magnitude of change, just its direction.

Worked example: you introduce a new revision technique and want to know how many students you’d need to show that significantly more than half improved their grade (as opposed to declined or stayed the same). You expect 70% of students to show improvement.

Step by step:

  1. Test family: Exact — Statistical test: Proportion: Sign test.
  2. Tail(s): two if the true rate could plausibly be either above or below 50%; one if you’re only interested in detecting an improvement.
  3. Effect size g: calculated directly as (expected proportion − 0.50). Here, g = 0.70 − 0.50 = 0.20. You can type this straight in, no Determine calculator needed.
  4. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  5. Click Calculate.

Comparing means (t-tests)

Family: t-tests.

Independent-samples t-test

What it tests: the workhorse comparison — whether the means of two independent, unrelated groups differ (e.g. a treatment group against a control group, or two naturally occurring groups).

Worked example: you expect a control group to average 100 on some outcome measure, and a treatment group to average 108, with a shared standard deviation of 15 in both groups.

Step by step:

  1. Test family: t-tests — Statistical test: Means: Difference between two independent means (two groups).
  2. Tail(s): two, unless direction is genuinely certain in advance.
  3. Effect size d: click Determine. Two sub-methods are offered:
    • n1 = n2 (balanced design, the common case): enter the mean for group 1 (100) and group 2 (108), then a single SD for group 1 and a single SD for group 2 (15 and 15 — the test assumes equal variances, so if you don’t have good reason to expect different SDs, use the same value for both).
    • n1 ≠ n2 (if you already know your groups won’t be balanced): enter the two means and a single pooled “SD within each group” instead. Click Calculate and transfer to main window — this example works out to d ≈ 0.53.
  4. α: 0.05. Power: 0.80.
  5. Allocation ratio N2/N1: leave at 1 for equal group sizes; otherwise set it to the ratio you actually expect (e.g. 2 if group 2 will be twice the size of group 1 — recruiting a rarer clinical group alongside a larger convenience-sampled control group is a common reason for this).
  6. Click Calculate. This example needs roughly 57 participants per group (114 total) for a balanced design.

Paired-samples t-test

What it tests: the same participants (or matched pairs) measured under two conditions, or at two time points.

Worked example: you measure mood before and after a brief mindfulness intervention. You expect a pre-intervention mean of 46 (SD 5.1) and a post-intervention mean of 50 (SD 5.8), with a correlation of roughly 0.5 between each person’s pre- and post-scores (people who start relatively low tend to stay relatively low, even if everyone improves somewhat).

Step by step:

  1. Test family: t-tests — Statistical test: Means: Difference between two dependent means (matched pairs).
  2. Tail(s): two, unless the direction of change is certain in advance (here, you might reasonably argue for one-tailed if you’re confident the intervention can only help, not harm, mood).
  3. Effect size dz: click DetermineFrom group parameters. Enter the pre-intervention mean and SD (46, 5.1), the post-intervention mean and SD (50, 5.8), and the expected correlation between the two sets of scores (0.5). Click Calculate and transfer to main window.
  4. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  5. Click Calculate.

Note that the higher the correlation between your two measurements, the smaller the required sample size — a paired design “spends” some of its statistical efficiency on how consistent people are with themselves, which is exactly why repeated-measures designs are popular when you can use them.

One-sample t-test

What it tests: whether a single sample’s mean differs from a known or established population value.

Worked example: the published population mean IQ score is 100 (SD 15). You want to know whether a sample of postgraduate students has a significantly different average — you expect their mean to be around 110.

Step by step:

  1. Test family: t-tests — Statistical test: Means: Difference from constant (one sample case).
  2. Tail(s): two, unless you’re specifically only interested in detecting that the sample scores higher (or lower) than the population.
  3. Effect size d: click Determine. Enter the mean under H0 (100, the population value) and the mean under H1 (110, your expected sample mean), and the standard deviation (15). Click Calculate and transfer to main window.
  4. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  5. Click Calculate.

A minor technical note carried over from the original guide this is based on: by convention, once your expected sample size climbs past about 30, a t-test and a z-test give near-identical answers, because the t-distribution converges on the normal distribution as degrees of freedom increase. If you know your population SD precisely (rather than estimating it) and expect a reasonably large sample, running this as a t-test is still a perfectly reasonable and slightly more conservative choice.

Mann-Whitney U

What it tests: the non-parametric alternative to the independent-samples t-test (also called the Wilcoxon rank-sum test), for when your outcome is continuous but you can’t reasonably assume normality — for instance, a skewed reaction-time measure, or a count-like outcome that doesn’t meet parametric assumptions. It is not the right choice for genuinely ordinal data (e.g. a 5-point Likert item) — G*Power’s implementation assumes an underlying continuous distribution.

Worked example: you want to compare reaction times (known to be positively skewed) between two independent groups, expecting a mean of 450ms (SD 90) in group 1 and 500ms (SD 90) in group 2.

Step by step:

  1. Test family: t-tests — Statistical test: Means: Wilcoxon-Mann-Whitney test (two groups).
  2. Tail(s): choose two unless you have a specific directional hypothesis you’re prepared to defend, in which case one.
  3. Parent distribution: choose the shape that best matches your outcome — G*Power offers several (Normal, Logistic, several skewed options); for a mildly skewed reaction-time measure, a lognormal or similar option is more honest than assuming Normal.
  4. Effect size: click Determine. Choose n1 = n2 if you’re planning equal group sizes (enter the mean and SD for each group — 450/90 and 500/90 here) or n1 ≠ n2 if you already know the groups won’t be balanced (enter the two means and a single pooled SD). Click Calculate and transfer to main window.
  5. α err prob: 0.05. Power: 0.80. Allocation ratio N2/N1: leave at 1 for equal group sizes, or set it to whatever ratio you actually expect.
  6. Click Calculate.

Expect the required sample size to come out a little higher than the equivalent parametric t-test — typically single-digit percentage points more, depending on the parent distribution you chose — which is the price of not needing the normality assumption.

Chi-square: goodness of fit

Chi-square goodness of fit

What it tests: whether the pattern of observed frequencies across a set of categories differs from an expected (theoretical or null) distribution across those same categories.

Worked example: you run a study with four experimental conditions and intended to randomise participants equally across them (25% each). After data collection, you want to check whether your actual achieved split — say 30%, 20%, 35%, and 15% — represents a problematic deviation from the intended equal allocation, and how many participants you’d need for that check to have adequate power.

Step by step:

  1. Test family: χ² tests — Statistical test: Goodness-of-fit tests: Contingency tables.
  2. Effect size w: click Determine. Number of cells (categories): 4.
    • Under P(H0), enter the expected proportion for each category. Since you intended an equal split, click Equal p(H0) and G*Power fills in 0.25 for all four.
    • Under P(H1), enter the proportions you actually expect/observed: 0.30, 0.20, 0.35, 0.15. If you have raw frequencies rather than proportions, enter those instead and click Normalise p(H1) to convert them. There’s also an auto-calculate last cell option if you’d rather not compute the final proportion by hand (it just makes the column sum to 1.0).
    • Click Calculate and transfer to main window.
  3. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  4. Df: this is filled in automatically as (number of categories − 1) — here, 3. Double check it matches what you’d expect.
  5. Click Calculate.

A limitation worth flagging: G*Power’s χ² routines cover goodness-of-fit but not the classic two-variable “test of independence” contingency-table χ² (e.g. a 2×3 crosstab between gender and preferred condition) — for that, you’d typically use a dedicated crosstab power calculator, or estimate it via simulation.

Regression and prediction

Multiple regression — overall model

What it tests: whether a set of predictor variables, taken together, significantly predicts an outcome variable — the omnibus test of R² for the whole model.

Worked example: you’re building a model with four predictors (say, working memory capacity, prior GPA, test anxiety, and hours of sleep) predicting exam performance, and want to know how many participants you’d need to detect that the model as a whole explains a significant proportion of variance.

Step by step:

  1. Test family: F-tests (or Exact, both work) — Statistical test: Linear multiple regression: Random model.
  2. Tail(s): one or two (most regression omnibus tests are run one-tailed in practice, since R² can’t meaningfully be negative, but check what your software/supervisor expects).
  3. Effect size H1 p² (R² under the alternative hypothesis): click Determine. You have two options:
    • Direct entry: if you already have an expected R² from a pilot or the literature, just type it in.
    • From predictor correlations (more rigorous, and worth doing if you can): choose this option, enter the number of predictors (4), click Specify matrices, then under the “Corr between predictors and outcome” tab enter each predictor’s expected correlation with the outcome (e.g. working memory r = .30, prior GPA r = .45, anxiety r = −.25, sleep r = .20), and under the “Corr between predictors” tab enter the expected correlations between the predictors themselves (predictors that overlap a lot with each other add less unique explanatory power — this matrix is where that gets accounted for). Accept the values, click Calculate R², and transfer it to the main window.
  4. H0 p²: leave at 0 (the null hypothesis is that the predictors explain no variance).
  5. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  6. Number of predictors: 4.
  7. Click Calculate.

Multiple regression — one predictor’s contribution

What it tests: rather than the whole model, whether one specific predictor adds meaningfully to a model that already contains the others — the test behind each individual regression coefficient’s significance, and the one you’ll usually care about more than the omnibus test once you have a specific hypothesis about a particular variable.

Worked example: you have three predictors (P1, P2, P3) of an outcome Y, and specifically want to know whether P3 contributes above and beyond P1 and P2. You expect the correlations between each predictor and the outcome to be r(P1,Y) = .23, r(P2,Y) = .16, and r(P3,Y) = .24, and the correlations between the predictors themselves to be r(P1,P2) = .20, r(P1,P3) = .45, r(P2,P3) = .31.

Step by step:

  1. Test family: F-tests — Statistical test: Linear multiple regression: Fixed model, R² increase.
  2. Effect size f²: click Determine. You can enter R² directly if you already have it (G*Power converts using f² = R² / (1 − R²)), or, more rigorously, choose From predictor correlations, enter the number of predictors (3), click Specify matrices, and fill in two matrices: under “Corr between predictors and outcome,” enter each predictor’s correlation with Y (.23, .16, .24); under “Corr between predictors,” enter the correlations between the predictors themselves (P1–P2 = .20, P1–P3 = .45, P2–P3 = .31). Accept the values, then click Calculate effect size and transfer it to the main window.
  3. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  4. Number of predictors: 3 (the total in the model, including the one you’re specifically testing).
  5. Number of tested predictors: 1 (you’re testing the unique contribution of P3 alone).
  6. Click Calculate.

Logistic regression

What it tests: whether a predictor variable significantly predicts a binary (yes/no) outcome, with or without other covariates in the model. G*Power handles this slightly differently depending on whether your predictor of interest is continuous or dichotomous (two-category) — the mechanics below cover both.

Worked example (continuous predictor): you’re testing whether body mass index (BMI) predicts a binary health outcome. The population mean BMI is 30 (SD 3). You expect the probability of the outcome to be 0.15 for someone at the mean BMI, rising to 0.25 for someone one SD above the mean (BMI = 33).

Step by step:

  1. Test family: z-tests — Statistical test: Logistic regression.
  2. Tail(s): choose two unless you have a specific directional hypothesis you’re prepared to defend, in which case one.
  3. Click the Options tab at the bottom of the window — you can enter your effect size as either an odds ratio, or as two probabilities (the latter is usually the more intuitive route, so that’s what’s shown here).
  4. Pr(Y=1|X=1) H1: the probability of the outcome one SD above the mean of your predictor — 0.25.
  5. Pr(Y=1|X=1) H0: the probability of the outcome at the mean of your predictor — 0.15.
  6. R² other X: the proportion of variance in your main predictor (BMI) explained by any other covariates in the model. If BMI is your only predictor, enter 0. If, say, two moderately-associated covariates are also in the model (each correlating with BMI at around r = 0.50), enter 0.50² = 0.25. The stronger your covariates overlap with your predictor of interest, the more this inflates your required sample size.
  7. X distribution: Normal (appropriate for a continuous predictor like BMI). X param μ = 0, X param σ = 1 (these describe the standardised predictor and rarely need changing).
  8. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  9. Click Calculate.

Worked example (dichotomous predictor): the same logic applies if your predictor is itself binary — for instance, testing whether smoking status (yes/no) predicts the same health outcome, with an expected probability of 0.18 among smokers and 0.06 among non-smokers. The only changes: set X distribution to Binomial, and set X param π to the expected proportion of your sample who are smokers (e.g. 0.50 for a roughly balanced sample).

Either way, G*Power also lets you enter the effect size directly as an odds ratio via the Determine button on the Options tab, computed from the same two probabilities using OR = [P1×(1−P2)] / [P2×(1−P1)] — useful if a paper you’re basing your estimate on reports an odds ratio rather than raw probabilities.

Poisson regression

What it tests: whether a predictor influences the rate of an event over some period of exposure (time, patient-days, trials), rather than a binary yes/no outcome. Appropriate when your outcome is a count that can happen repeatedly and roughly independently (e.g. number of migraine episodes, number of workplace incidents) — not for outcomes where one event precludes or heavily influences the next.

Worked example: you’re testing whether a 1mg increase in a drug dose changes the rate of a treatment-related side effect. Based on existing data, you expect a baseline rate of 13 events per 30 patient-days in the absence of treatment, and expect each 1mg dose increase to raise the event rate by 25% (i.e. a rate ratio of 1.25).

Step by step:

  1. Test family: z-tests — Statistical test: Poisson regression.
  2. Exp(B1): the expected rate ratio per one-unit increase in your predictor — 1.25 here (a 25% increase; a protective effect would instead be entered as something below 1, e.g. 0.80 for a 20% decrease).
  3. Base rate Exp(B0): worked out in three steps — (1) choose a unit of exposure (here, days); (2) choose a length for that unit (30 days); (3) work out how many events you’d expect per that unit in the absence of treatment (13). The base rate is then 13/30 ≈ 0.433.
  4. Mean exposure: how long, in your chosen unit, each participant will actually be followed up. This interacts with your total required sample size — for a fixed total number of “participant-days” of data, following fewer people for longer, or more people for less time, are roughly interchangeable, so if recruitment is your bottleneck rather than study duration, extending the follow-up period per participant can meaningfully reduce the number of participants you need.
  5. R² other X: as with logistic regression, the proportion of variance in your predictor explained by other covariates (0 if there are none).
  6. X distribution: Normal for a continuous predictor (dose, as here) or Binomial for a dichotomous one (e.g. treatment yes/no), in which case you’d also set X param π to the expected proportion receiving treatment.
  7. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  8. Click Calculate.

ANOVA designs

Family: F-tests.

One-way ANOVA

What it tests: whether the means of three or more independent groups differ — the omnibus test that tells you something differs somewhere, before you move on to any planned contrasts or post-hoc tests to work out where.

Worked example: you’re comparing exam scores across three teaching methods (lecture-based, flipped-classroom, and self-paced online), each taught to a separate group of students. You expect a shared within-group SD of 8, with group means of 65 (lecture), 70 (flipped), and 68 (online).

Step by step:

  1. Test family: F-tests — Statistical test: ANOVA: Fixed effects, omnibus, one-way.
  2. Effect size f: click DetermineEffect size from means. Enter the number of groups (3), a single shared “SD within each group” (8 — one-way ANOVA assumes homogeneity of variance, so there’s only one SD to enter), and the three group means (65, 70, 68). Enter your expected sample size per group, or use the Equal n shortcut if you’re planning equal group sizes (e.g. enter 40 and click it). Click Calculate and transfer to main window.
  3. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  4. Number of groups: should already show 3 from the effect-size step — check it matches.
  5. Click Calculate.

Factorial (two-way) ANOVA

What it tests: the main effects and interaction in a design crossing two (or more) categorical predictors — e.g. teaching method × prior attainment band on exam scores.

Worked example: a 2 (gender: male, female) × 3 (teaching method: lecture, flipped, online) design on exam scores. You want power to detect the interaction between gender and teaching method, and expect it to represent a small-to-moderate proportion of variance (partial η² ≈ 0.04).

Step by step:

  1. Test family: F-tests — Statistical test: ANOVA: Fixed effects, special, main effects and interactions.
  2. Effect size f: click DetermineDirect. Enter your expected partial η² (0.04 here) — the proportion of variance in the outcome explained by the effect you’re powering, over and above the other effects in the model. Rough conventions: small ≈ .01, medium ≈ .06, large ≈ .14 (note these differ from Cohen’s f benchmarks in the earlier table — don’t mix the two up). Click Calculate and transfer to main window.
  3. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  4. Numerator df — this is the part people most often get wrong, because it depends on exactly which effect you’re powering:
    • Main effect of teaching method (3 levels): df = 3 − 1 = 2.
    • Main effect of gender (2 levels): df = 2 − 1 = 1.
    • The gender × teaching method interaction (our example): df = (3 − 1) × (2 − 1) = 2.
  5. Number of groups: the product of all factor levels — here, 2 genders × 3 methods = 6.
  6. Click Calculate.

Repeated measures — between-subjects effect

What it tests: in a design with repeated measurements over time (or condition), the effect of a between-groups factor — i.e. does the overall level differ between groups, averaged across the repeated measurements.

Worked example: 40 patients in a trial have a symptom score recorded at three follow-up visits (1, 2, and 3 months). Twenty receive an active treatment, twenty a placebo. You want power for the treatment-vs-placebo difference, averaged across the three visits, expecting group means of 35 (treatment) and 31 (placebo), a shared within-group SD of 8, and a moderate correlation of 0.5 between each patient’s scores across visits.

Step by step:

  1. Test family: F-tests — Statistical test: ANOVA: Repeated measures, between factors.
  2. Effect size f: click DetermineEffect size from means. Number of groups: 2 (treatment, placebo). SD within each group: 8. Means: enter each group’s mean averaged across all repeated measurements (35, 31). Size: 20 per group (or use Equal n). Click Calculate and transfer to main window.
  3. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  4. Number of groups: 2.
  5. Number of measurements: 3 (the three follow-up visits).
  6. Correlation among repeated measures: 0.5 — this should generally be moderate-to-high, since a given patient’s scores across visits tend to be more similar to each other than to another patient’s scores.
  7. Click Calculate.

Repeated measures — within-subjects effect

What it tests: the effect of the repeated factor itself — e.g. does the outcome change significantly across the three visits, regardless of treatment group.

Worked example: 40 patients in a drug trial (20 treatment, 20 placebo) have a symptom score recorded at three follow-up visits. This time you want power to detect change over time itself (the main effect of visit, regardless of group), expecting this effect to represent a moderate proportion of variance (partial η² ≈ 0.06).

Step by step:

  1. Test family: F-tests — Statistical test: ANOVA: Repeated measures, within factors.
  2. Effect size f: click DetermineDirect, enter partial η² = 0.06 directly (small ≈ .02, medium ≈ .06, large ≈ .14). Click Calculate and transfer to main window.
  3. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  4. Number of groups: 2 if there’s still a between-subjects factor in the design (as here); enter 1 if there is no between-groups factor at all.
  5. Number of measurements: 3.
  6. Correlation among repeated measures: 0.5 — this should generally be moderate-to-high, since a given patient’s scores across visits tend to be more similar to each other than to another patient’s scores.
  7. Nonsphericity correction ε: leave at 1.0 if you’re comfortable assuming sphericity holds (that the variances of the differences between every pair of time points are roughly equal); if you have reason to expect it’s violated, use a lower value as a more conservative estimate (the theoretical floor is 1 divided by (number of measurements − 1)).
  8. Click Calculate.

Repeated measures — interaction

What it tests: whether the pattern of change across the repeated measurements differs between your between-subjects groups — the classic “does the shape of the change over time differ by group” question, and often the effect people actually care about most in this kind of design.

Worked example: does the trajectory of symptom scores across the three visits differ between the treatment and placebo groups (rather than both groups simply changing at the same rate)? You expect this interaction to represent a small-to-moderate effect (partial η² ≈ 0.04).

Step by step:

  1. Test family: F-tests — Statistical test: ANOVA: Repeated measures, within-between interaction.
  2. Effect size f: click DetermineDirect, enter partial η² = 0.04. Click Calculate and transfer to main window.
  3. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  4. Number of groups: 2 (treatment, placebo).
  5. Number of measurements: 3.
  6. Correlation among repeated measures: 0.5 — again, moderate-to-high is typical for genuinely repeated measures.
  7. Nonsphericity correction ε: 1.0 if you’re assuming sphericity holds; lower (down to 1 divided by (number of measurements − 1)) if you expect it’s violated and want a more conservative estimate.
  8. Click Calculate.

Multivariate designs

Family: F-tests.

These are the fiddliest tests in G*Power’s interface, because they ask you for a full covariance (or correlation) matrix between your outcome variables rather than a single number — worth double-checking your inputs against a second source before finalising a sample size based on one of these.

Hotelling’s T² — one group

What it tests: the multivariate analogue of a one-sample t-test — whether a vector of several related outcome means differs from a hypothesised set of values, testing all the outcomes jointly rather than running a separate t-test on each one (which would inflate your Type I error rate).

Worked example: in a small pre-post study, you measure two correlated outcomes (say, an anxiety score and a related avoidance-behaviour score) before and after an intervention, and want to test both pre-post difference scores jointly rather than with two separate paired t-tests. Based on a handful of pilot cases, the average pre-post differences look like this:

Pilot case Anxiety difference Avoidance difference
1 1 0
2 0 2
3 −1 1
4 1 1
Average 0.25 1.0

Step by step:

  1. Test family: F-tests — Statistical test: Hotelling’s T² — one group case.
  2. Effect size: click Determine. Under the Means (or groups/means matrix) tab, enter the average difference score for each outcome (0.25 for anxiety, 1.0 for avoidance).
  3. Switch to the Cov Sigma (covariance) tab, make sure “Covariances” is selected in the drop-down, and enter the variances and covariance of the two difference scores computed from your pilot data (this is just the ordinary variance-covariance matrix of your two “difference” columns).
  4. Click Calculate and transfer to main window.
  5. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  6. Response variables: 2 (the number of outcomes you’re testing jointly).
  7. Click Calculate.

Hotelling’s T² — two groups

What it tests: the same idea, extended to comparing two independent groups across several correlated outcomes simultaneously.

Worked example: comparing a treatment and control group on two correlated outcomes (Y1 and Y2) at once, where the two outcomes have variances of 1.00 and 2.50 respectively and a covariance of −0.75 between them (i.e. participants who score relatively higher on Y1 tend to score relatively lower on Y2).

Step by step:

  1. Test family: F-tests — Statistical test: Hotelling’s T² — two groups case.
  2. Effect size: click Determine. Enter the expected group means for each outcome, in each group, under the Means tab.
  3. Under the Cov Sigma tab, enter the variance-covariance matrix: Y1 variance = 1.00, Y2 variance = 2.50, Y1–Y2 covariance = −0.75.
  4. Click Calculate and transfer to main window.
  5. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  6. Allocation ratio N2/N1: the expected ratio of control-group to treatment-group sample size — enter 1 for equal-sized groups.
  7. Response variables: 2.
  8. Click Calculate.

MANOVA — global effects

What it tests: whether a single categorical grouping factor (with two or more levels) affects several outcome variables considered jointly — for example, testing whether therapy type affects a whole battery of outcome measures at once, rather than running a separate ANOVA per outcome and inflating your overall Type I error rate.

Worked example: comparing four therapy conditions (A, B, C, D) across five correlated outcome measures at once.

Step by step:

  1. Test family: F-tests — Statistical test: MANOVA: Global effects.
  2. Effect size f²: click Determine. Two routes are offered:
    • Direct entry of R² (if you have an overall multivariate R² estimate already, e.g. from a pilot): G*Power converts this to f² using f² = R² / (1 − R²).
    • From predictor correlations (more rigorous): enter the number of predictors, click Specify matrices, then fill in two matrices — the expected correlation between your grouping variable(s) and each outcome, and the expected correlations between the outcomes themselves — and let G*Power derive the effect size from those (the same approach used for multiple regression, if you want a fuller walkthrough of filling in this kind of matrix).
  3. Click Calculate and transfer to main window.
  4. α err prob: 0.05 (or whatever your field/journal expects). Power: 0.80, or 0.90–0.95 for confirmatory/pre-registered work.
  5. Number of groups: 4 (the four therapy conditions).
  6. Response variables: 5 (the five outcome measures).
  7. Click Calculate.

A few practical tips


This guide draws on the structure of a longer, now-archived resource originally published at mormonsandscience.com, preserved via the Wayback Machine. I used that as a starting point and worked with Claude (Anthropic’s AI assistant) to rewrite, reorganise, and expand it with new worked examples. I’ve checked it over, but if you spot an error anywhere on this page, please email me and I’ll get it fixed.