How to Report an ANCOVA in APA 7

In short

An ANCOVA takes two lines and most manuscripts write one. The adjusted effect carries its degrees of freedom, its p and its partial eta squared —F(2, 92) = 16.73, p < .001, η²p = .27— and the covariate gets a line of its own, F(1, 92) = 82.67, p < .001, η²p = .47, with the pooled within-groups slope, B = 0.62, SE = 0.07. Then come the estimated marginal means with their standard errors (8.42, 9.43 and 12.24, each with SE = 0.48), not the means in your descriptives table, because the adjusted means are what that F compared. The assumption everyone skips is homogeneity of regression slopes: you fit the covariate × factor interaction, report it —F(2, 90) = 2.19, p = .118, η²p = .05— and only then drop it. And if the groups were not randomized, none of this repairs a baseline imbalance: with a covariate whose reliability is .80, the adjustment recovers four fifths of the gap it was meant to close.

Most ANCOVAs that reach a reviewer arrive as a single sentence: an F, a p, and the means from the descriptives table. The covariate is missing, the adjusted means are missing, and so is the assumption that decides whether the model made sense at all. This is which numbers go in, in what order, and why homogeneity of regression slopes is not a formality. The write-up of the same test without a covariate is in reporting an ANOVA in APA 7.

The two lines every ANCOVA needs

Numbers first. Ninety-six adults with mild to moderate depression randomized to three arms —CBT, behavioral activation and a waiting list—, 32 per arm, with the PHQ-9 measured at intake (the covariate) and again at 12 weeks (the outcome). The adjusted effect of arm was F(2, 92) = 16.73, p < .001, η²p = .27, 90% CI [.13, .37]. The numerator degrees of freedom are the usual k − 1 = 2; the denominator ones are N − k − 1 = 92, with that extra unit spent on the covariate.

That missing degree of freedom is the quickest way to spot an ANCOVA written up from the wrong output. On these data a one-way ANOVA would report F(2, 93); the ANCOVA reports F(2, 92), and one more goes for every additional covariate you add. If your Results section says the analysis adjusted for baseline severity and the error degrees of freedom match the plain ANOVA, one of those two statements is false, and anyone who has run the model will see it on the first read.

The covariate is a result, not plumbing, and it needs a sentence of its own: F(1, 92) = 82.67, p < .001, η²p = .47, with the pooled within-groups slope B = 0.62, SE = 0.07, t(92) = 9.09. Notice that the square root of that F is the slope's t, √82.67 = 9.09: with one degree of freedom the two tests are the same test, and checking that they match is a free way of confirming you copied the right row. The slope also tells the reader what the adjustment is doing —0.62 points of 12-week PHQ-9 for every point of baseline— and no p value carries that.

Saying what the covariate bought you is worth a clause. Here the error sum of squares fell from 1310 in the unadjusted analysis to 690 once baseline severity was modeled, and the effect size for arm went from η²p = .15 —F(2, 93) = 7.96, p < .001— to η²p = .27 without a single data point changing. In a randomized trial that is the whole point of the analysis: the same effect with a smaller error term and more power. How the index itself is written, upright and with no leading zero, is in how to report partial eta squared in APA 7.

Estimated marginal means, not the means in your descriptives table

An estimated marginal mean is the mean the model predicts for each group in a participant sitting at the grand mean of the covariate, which here is a baseline PHQ-9 of 14.83. The arithmetic fits on one line: behavioral activation had an observed 12-week mean of 9.60 and a baseline mean of 15.10, a quarter of a point above the grand mean, so its adjusted mean is 9.60 − 0.62 × (15.10 − 14.83) = 9.43. That arm started slightly worse than average, and the model credits it for the handicap it began with.

What goes in the paper is the adjusted mean with its standard error: CBT 8.42 (SE = 0.48), behavioral activation 9.43 (SE = 0.48), waiting list 12.24 (SE = 0.48). A 95% confidence interval instead of the standard error is equally acceptable and often more useful; what is not acceptable is a bare number. The three standard errors are identical to two decimals, and that is not a coincidence: they inflate as a group's covariate mean moves away from the grand mean, and here randomization kept the three baselines within half a point of each other. In a non-randomized study with arms genuinely separated on the covariate, those standard errors spread out, and the spread is the model telling you it is extrapolating.

Pairwise comparisons run on the adjusted means, with a correction, and each one carries a difference, a standard error, a test and an interval. With Bonferroni across the three contrasts: the waiting list scored 3.82 points above CBT (SE = 0.68, t(92) = 5.58, p < .001, 95% CI [2.15, 5.49]) and 2.81 points above behavioral activation (SE = 0.68, t(92) = 4.10, p < .001, 95% CI [1.14, 4.48]), while the two active arms did not differ, 1.01 (SE = 0.68, t(92) = 1.47, p = .435, 95% CI [−0.66, 2.68]). Say which correction you used and whether the intervals carry it too; an adjusted p sitting next to an unadjusted interval is a mismatch reviewers do notice.

Report the unadjusted descriptives as well, in the table, and do not swap one set for the other halfway through. The pattern that costs a revision is an ANCOVA F in the text followed by the raw group means, so the reader tries to reconstruct the comparison from numbers the test never saw. If the adjusted and unadjusted means come apart noticeably, that distance is a finding: say how far apart the groups were on the covariate and how much the adjustment moved.

Homogeneity of regression slopes: the assumption everyone skips

ANCOVA fits one slope for every group. The homogeneity of regression slopes assumption says that is defensible: that the relationship between covariate and outcome is the same in each arm. If it is not, there is no single adjusted difference to report, because the gap between groups depends on where you stand on the covariate —large for the severely depressed, small or reversed for the mildly depressed— and averaging that into one number describes nobody.

Testing it is a model you fit once and then throw away. You run the ANCOVA with the covariate × factor interaction in it, look at that term, and refit without it. In the example, the baseline by arm interaction was not significant, F(2, 90) = 2.19, p = .118, η²p = .05, so a common slope was retained. The denominator degrees of freedom are 90 rather than 92 because the interaction spends two more, and there you have another arithmetic check on whether the test was really run: an interaction reported on 92 error degrees of freedom was not.

A non-significant interaction is not evidence that the slopes are parallel, and this is where the assumption turns into paperwork. With 32 per arm the test has little power to detect anything but a large difference in slopes, so p = .118 with η²p = .05 is weak reassurance rather than a clean pass. Report the effect size alongside the p value and plot the three within-group regression lines: a figure showing three near-parallel lines convinces a reader, and a non-significant interaction does not.

When the slopes really do differ, dropping the interaction is the wrong move, because the interaction is the finding. Three honest routes: report the group difference at chosen values of the covariate (a baseline PHQ-9 of 10, 15 and 20, say), use the Johnson-Neyman procedure (Johnson & Neyman, 1936) to state the range of covariate values over which the groups differ, or reframe the analysis as moderation and present it that way. In R, emmeans::emtrends() gives the per-group slopes and their contrasts; SPSS will fit the interaction through GLM syntax even though the menus do not offer it.

For the normality of the residuals, the guide to the Shapiro-Wilk test explains what W and p tell you and what they do not.

The assumptions that decide whether the covariate belongs in the model

The covariate has to be measured before the intervention, or be something the intervention cannot touch. Adjusting for a variable measured after allocation and affected by treatment —working alliance at session six, adherence, an intermediate symptom score— removes part of the effect you are trying to estimate, and the adjusted difference comes out smaller than it is. Baseline severity, age and sex are safe; anything recorded once treatment has started is not, unless you can argue it was left untouched.

The relationship between covariate and outcome has to be linear, and it has to be linear within each group, not just in the pooled scatterplot. Pooled data can look beautifully straight while one arm curves; the model then adjusts the wrong amount for that arm, and the residual plot is where it shows. Plot the outcome against the covariate with one panel per group before you fit anything: it takes a minute and it also shows you the slopes you are about to assume are equal.

In a randomized trial the covariate is independent of the factor by design, and that is precisely what makes baseline adjustment legitimate and worth doing: adjusting for the baseline value of the outcome gives more power than analyzing change scores, and it is the usual recommendation for trial analysis (Vickers & Altman, 2001; Van Breukelen, 2006). What you should not do there is test the baseline difference between arms and report its p value. In a randomized trial that difference is chance by construction, so the test answers a question whose answer is already known, and a significant one is a false positive you then over-read.

The residual assumptions belong to the model, not to the raw outcome: normality of the ANCOVA residuals and similar residual variance across groups, checked on the residuals once the covariate is in. Keep covariates few and pre-specified, because every one you add after looking at the data is a researcher degree of freedom, and with three or four of them and 32 per arm the adjusted means start extrapolating into regions where you have no data. The full checklist, with what to do when each check fails, is in how to verify statistical assumptions.

When ANCOVA does not fix a non-randomized imbalance

Lord (1967) laid the problem out in a page and it has not been solved since. Take two groups that already differ at the start, measure them again later, and analyze the data two defensible ways: compare change scores, and run an ANCOVA on the follow-up with the baseline as the covariate. The two can give opposite answers on the same numbers. Nothing in the data decides between them, because each one assumes something different about what would have happened to each group without the intervention, and that assumption lives outside the file. If the groups were formed by randomization the question never arises; if they were not, choosing ANCOVA is choosing a causal model, and it should be argued rather than defaulted to.

Measurement error makes the adjustment fall short, and the arithmetic is easy to follow. A covariate with a reliability of .80 produces an observed slope attenuated to 80% of the true one. If two groups differ by 4 points on that covariate and the true slope is 0.70, the adjustment that would equate them is 2.80 points; the model applies 4 × (0.70 × .80) = 2.24 and leaves 0.56 points of the original imbalance untouched, pointing in the same direction as the bias you set out to remove. No psychological measure has perfect reliability, so that residual bias is always present in observational comparisons: the less reliable the covariate, the more of it survives.

Two further mechanisms finish the job. Groups selected for scoring high or low on something regress toward the mean at the second measurement whether or not anything is done to them, and an ANCOVA on the follow-up cannot separate that drift from a treatment effect. And the model adjusts for the covariate you measured, not for the reason the groups differ: if a clinic-referred group and a community-recruited group differ in severity, they also differ in chronicity, comorbidity, help-seeking and a dozen things nobody recorded, and the phrase "adjusted for baseline severity" quietly implies the rest went with it.

What to write instead is short. In a non-randomized design, report the adjusted analysis, say plainly that it is not a causal estimate, and put the unadjusted result beside it so the reader can see how far the adjustment moved things. Miller and Chapman (2001) is the standard citation for the failure mode: using ANCOVA to remove a group difference on a variable that is part of what defines those groups does not produce the comparison you wanted, it produces a comparison of people who do not exist. Prefer "adjusted for baseline severity" to "controlling for baseline severity", and never write that the groups were made equivalent.

The paragraph, ready to copy

Here it is with the numbers from the example: "Baseline PHQ-9 scores were comparable across arms (CBT: M = 14.80, SD = 4.14; behavioral activation: M = 15.10, SD = 4.22; waiting list: M = 14.60, SD = 4.08). The baseline by arm interaction was not significant, F(2, 90) = 2.19, p = .118, η²p = .05, so a common regression slope was assumed. Baseline severity predicted 12-week PHQ-9, F(1, 92) = 82.67, p < .001, η²p = .47, B = 0.62, SE = 0.07. With baseline severity held at its grand mean (14.83), arm had a significant effect on 12-week PHQ-9, F(2, 92) = 16.73, p < .001, η²p = .27, 90% CI [.13, .37]. Estimated marginal means were 8.42 (SE = 0.48) for CBT, 9.43 (SE = 0.48) for behavioral activation and 12.24 (SE = 0.48) for the waiting list. Bonferroni-corrected comparisons placed the waiting list 3.82 points above CBT, 95% CI [2.15, 5.49], t(92) = 5.58, p < .001, and 2.81 points above behavioral activation, 95% CI [1.14, 4.48], t(92) = 4.10, p < .001; the two active arms did not differ, 1.01, 95% CI [−0.66, 2.68], t(92) = 1.47, p = .435." Six sentences, and no reasonable question left for a reviewer to ask.

The table carries what the paragraph cannot: one row per arm with the unadjusted M and SD at baseline and at follow-up, then the estimated marginal mean with its standard error or interval, and a final block with the three pairwise differences and their intervals. The note says three things —which covariate, at what value the adjusted means were computed, and which correction the comparisons carry—: "Note. Estimated marginal means are adjusted for baseline PHQ-9 at its grand mean (14.83). Pairwise comparisons use the Bonferroni correction. η²p = partial eta squared." If you need the effect size from an F and its degrees of freedom without reopening the output, the effect size calculator will give it to you.

Four sentences worth deleting on sight: an ANCOVA reported without its covariate, adjusted means reported without a standard error or interval, "the analysis controlled for baseline differences between the groups" in a study where nobody was randomized, and a slopes assumption declared met without the test appearing anywhere. If you are staring at the output and cannot tell which column is the adjusted mean or which F belongs in which sentence, paste it into the results interpreter and come out with the paragraph assembled.

Already drafted it? Paste your Results section into Review one section before it goes to your supervisor or the journal. You get the first thing a reviewer would object to, with your own sentence quoted.

Frequently asked questions

How do you report an ANCOVA in APA 7?

In two sentences at minimum. One for the adjusted effect, with its degrees of freedom, its p value and its partial eta squared —F(2, 92) = 16.73, p < .001, η²p = .27— and one for the covariate, F(1, 92) = 82.67, p < .001, η²p = .47, with the common slope B = 0.62. Then come the estimated marginal means with their standard errors and the pairwise comparisons with whichever correction you used. The error degrees of freedom are N − k − 1, one fewer than in an ANOVA on the same data.

How do you report estimated marginal means in APA style?

Estimated marginal means are the means the model predicts for each group in a participant sitting at the grand mean of the covariate, and they are what the ANCOVA F compared. Report each one with its standard error or a 95% confidence interval —8.42 (SE = 0.48)— never on its own, and state the covariate value at which they were computed. The observed means go in as well, but in the descriptives table, not mixed in with the adjusted contrasts.

What is the homogeneity of regression slopes assumption?

It is the requirement that the relationship between covariate and outcome be the same in every group, so that a single slope can adjust all of them. You check it by putting the covariate × factor interaction into the model and seeing whether it is significant: F(2, 90) = 2.19, p = .118, η²p = .05 in the worked example. If it holds, the interaction is dropped and the model without it is reported; if it does not, there is no single adjusted difference to report.

What do you do if homogeneity of regression slopes is violated?

Do not ignore it and do not carry on with the ANCOVA as though nothing happened. There are three routes: report the group difference at chosen values of the covariate, apply the Johnson-Neyman procedure to state the range of covariate values over which the groups differ, or treat the interaction as the result and present it as moderation. All three are honest; dropping the interaction because it is inconvenient is not.

Does ANCOVA control for baseline differences between non-randomized groups?

Not fully, and sometimes not at all. With a covariate whose reliability is .80 the slope is attenuated and the adjustment reaches only 80% of what is needed: on a 4-point imbalance with a true slope of 0.70, 0.56 points of bias are left untouched. On top of that sit regression to the mean and everything that separates the groups and nobody measured. Adjustment helps you describe, but it does not turn an observational comparison into an experiment (Miller & Chapman, 2001).

Should I report adjusted or unadjusted means after an ANCOVA?

Both, in different places. The observed means, with their standard deviations, go in the descriptives table; the adjusted means, with their standard errors, go next to the contrasts, because those are what the model compared. What you cannot do is report the ANCOVA F and pair it with the raw means: the reader would try to reconstruct the difference from numbers the test never used.

Does your Results paragraph support the adjustment it claims to have made?

Previum reads your results section the way a Q1 reviewer does and flags the covariate you never reported, the slopes assumption you never tested and the raw mean sitting where the adjusted one belongs — before a decision letter does it for you.

Review my manuscript

With the adjusted F and its degrees of freedom, the covariate on a line of its own, the estimated marginal means with their standard errors and the slopes interaction reported, your ANCOVA is written the way APA 7 expects. If the harder question comes earlier —whether the covariate you have can carry the comparison you want to make, or whether the design calls for something else entirely— that is better settled before the analysis than after: statistical consulting goes through the whole plan and puts in writing what each table has to report.

Cite this guide

Ciudad-Fernández, V. (2026, September 4). How to Report an ANCOVA in APA 7. Ciudad Science. https://analisisdedatospsicologia.com/en/blog/how-to-report-ancova-apa-7

Keep reading

All blog articles