Row means 15 and 15; column means 15 and 15. Both main effects have a sum of squares of EXACTLY zero, F = 0 and p = 1, while the interaction has F = 600 and p = 1.29e-11. Factor A raises the outcome by 10 at one level of B and lowers it by 10 at the other.
2 × 2 design, 4 replicates per cell, n = 16
Interaction F = 600.0000, p = 1.293e-11
The interaction is significant, so the main effects should not be read on their own: factor A's effect depends on which level of factor B you are at. Factor A gives F = 0.0000 (p = 1.000000) and factor B F = 0.0000 (p = 1.000000), and both of those numbers average over an effect that changes sign or size across the design.
The full two-way ANOVA table with three effect sizes per row
Source
SS
df
MS
F
p
η²
partial η²
ω²
Factor A
0.0000
1
0.0000
0.0000
1.000000
0.0000
0.0000
-0.0016
Factor B
0.0000
1
0.0000
0.0000
1.000000
0.0000
0.0000
-0.0016
A × B interaction
400.0000
1
400.0000
600.0000
1.293e-11
0.9804
0.9804
0.9772
Error
8.0000
12
0.6667
—
—
0.0196
0.5000
—
Interaction p
1.293e-11
read this first
Σ partial η²
0.9804
can exceed 1 — it partitions nothing
Σ η²
1.0000
always exactly 1 across all four rows
Error MS
0.6667
12 df
Cell means, which is where the interaction is visible
Cell means with row and column marginal means
B1
B2
Row mean
A1
10.0000
20.0000
15.0000
A2
20.0000
10.0000
15.0000
Col mean
15.0000
15.0000
15.0000
A main effect is a statement about a ROW mean or a COLUMN mean. When the cells inside a row disagree about the direction of the other factor’s effect, that marginal mean is an average of two opposite things.
Read the interaction before either main effect Balanced designs only, by design η² sums to 1; partial η² does not sum to anything
What this tool shows
Cell means of 10 and 20 in one row and 20 and 10 in the other give both main effects a sum of squares of exactly zero — F = 0, p = 1 — while the interaction has F = 600 and p = 1.29×10⁻¹¹. Reporting “no effect of A, no effect of B” there would be a complete misreading of a design where A raises the outcome by 10 at one level of B and lowers it by 10 at the other. The tool puts the interaction first for that reason.
The full source table: factor A, factor B, the interaction and error
Three effect sizes per row — η², partial η² and ω² — side by side
Cell means with row and column marginals, where an interaction is visible
The interaction reported before either main effect
Σ partial η², flagged when it exceeds 1 — because it partitions nothing
Unbalanced designs refused rather than computed under an unstated convention
Two factors Interaction first Three effect sizes Cell means shown
A significant interaction makes both main effects averages of different things.
Updated 12 September 2026 · Works in any browser, no installation
A two-way ANOVA splits the variation in an outcome into the part explained by factor A, the part explained by factor B, the part explained by their combination, and what is left over. The third of those is the interaction, and it is the one that determines whether the first two mean anything. It extends a one-way ANOVA by asking not just whether each factor matters but whether each factor’s effect depends on the other.
At a glance
Formula shown
SS_A = bn·Σ(row mean − grand mean)², SS_B = an·Σ(col mean − grand mean)², SS_cells = n·Σ(cell mean − grand mean)² and SS_AB = SS_cells − SS_A − SS_B. Error is the within-cell variation, on ab(n−1) df. Each effect is tested as MS_effect / MS_error against an F distribution. Everything here is orthogonal only when every cell has the same n — which is why an unbalanced design is refused rather than silently given one of the three competing "types" of sums of squares.
Scenario support
Factorial experiments in psychology, agriculture and manufacturing; dose crossed with treatment; teaching method crossed with student ability; any A/B test split by segment where the question is whether the effect differs by segment; and any design where two categorical factors were both manipulated.
Educational estimate
Planning support from the values you enter — not professional advice.
A significant interaction makes both main effects averages of different things
The tool’s first preset is the cleanest possible case, and it is exact rather than illustrative.
Cell means are 10 and 20 in row A1, and 20 and 10 in row A2. Both row means are 15. Both column means are 15. Both main-effect sums of squares are therefore exactly zero, and both F statistics are exactly zero with p exactly 1.
The interaction has F = 600 and p = 1.29×10⁻¹¹, with a partial eta squared of 0.9804. Almost all the variation in the experiment is real, structured, and invisible to both main effects.
“Factor A had no effect” would be false in the most concrete way. Factor A moves the outcome by ten units in one direction at B1 and ten in the other at B2. It has a large effect that happens to average to nothing.
So the reading order is interaction, then cell means, then main effects if they still apply. Where the interaction is non-significant the main effects mean what they appear to; where it is significant, the honest report is the cell means and a simple-effects analysis within each level.
η² partitions the variance; partial η² does not
The tool prints both because journals ask for partial eta squared and readers add it up, which is a mistake the two columns make visible.
η² = SS_effect ÷ SS_total, so across the three effects and the error it sums to exactly 1. It is a genuine partition of the variance.
Partial η² = SS_effect ÷ (SS_effect + SS_error), which removes the other factors from the denominator. Each value answers “of the variance this effect and error share, how much is the effect?” — a different question per row.
On the second preset the three partial values are 0.8780, 0.8333 and 0.7619, which sum to 2.4733. 247% of the variance. The three eta squared values sum to 0.9390, which is the share the effects actually account for.
Partial eta squared also depends on what else is in the model. Adding a third factor that soaks up error variance raises every existing partial eta squared without changing any effect, which makes it non-comparable across studies that fitted different models.
ω² is the bias-corrected version and is printed too. The omega squared calculator is where the size of that bias is measured.
Unbalanced designs are refused, on purpose
With equal cell sizes the three sums of squares are orthogonal: they add up to the between-cells total and do not depend on the order the factors enter the model. With unequal cell sizes none of that holds.
Type I sums of squares depend on the order you list the factors, so A then B and B then A give different answers for the same data.
Type II tests each main effect adjusting for the other but not for the interaction. Type III adjusts for everything including the interaction, and is what most software defaults to without saying so.
They disagree, sometimes about significance, and the choice is a modelling decision with a real argument behind each option — not something a calculator should make silently on your behalf.
This tool returns no result for an unbalanced design rather than picking one convention and reporting the number as if it were the answer.
What the F tests assume, and which assumption actually bites
Three assumptions are usually listed. They are not equally important, and the usual emphasis is close to backwards.
Independence matters most and is the least testable. Repeated measurements on the same subject break it completely, and no diagnostic on the residuals will reveal it — only knowing how the data was collected will. That design needs a repeated-measures ANOVA instead.
Equal variances matter when cells are unequal in size. With balanced cells the F test is remarkably robust to unequal variances; with unbalanced cells it is not, and the direction of the error depends on whether the large variance sits in the large or the small cell. A Levene test is the standard check.
Normality matters least. The F test is robust to moderate departures at reasonable cell sizes, and the central limit theorem does most of the work. Testing residuals for normality and abandoning the analysis on a significant result is usually an overreaction.
Outliers are the practical threat. One extreme value in one cell moves that cell mean, which moves the interaction, which changes how the whole table reads.
What to do after a significant interaction
The omnibus interaction says the effect of one factor depends on the other. It does not say how, and the follow-up is where the substantive finding lives.
Simple effects are the standard next step: test factor A separately within each level of factor B. That answers “where does A matter?” directly.
Each simple effect is another test, so the family-wise rate needs handling — a correction across the set, or a planned subset chosen before seeing the data.
An interaction plot is often the whole result. Non-parallel lines are a quantitative interaction; crossing lines are a qualitative one, and only the second reverses a recommendation.
Pairwise cell comparisons need a post-hoc procedure.Tukey HSD across all cells is the common choice; with unequal variances the Games-Howell test is the safer one.
Reporting a two-way ANOVA
Four things, and the first changes what the rest of the report can claim.
Report the interaction first, significant or not. A non-significant interaction is what licenses reading the main effects, so it belongs before them rather than after.
Give F with both degrees of freedom for every effect. “F(1, 12) = 600, p < 0.001” is checkable; a bare p-value is not.
Give the cell means, not only the marginals. They are the data, they are a small table, and they are the only way a reader can see what the interaction is.
Say which effect size you used and why. Partial eta squared is conventional and model-dependent; eta squared partitions the variance; omega squared corrects the bias in both. They are different numbers and the label is what makes them comparable.
Sources and methodology
References for factorial ANOVA and its effect sizes.
Method. Sums of squares are computed from the cell, row and column means directly and the interaction as the remainder after the main effects are taken out of the between-cells total, so the partition is exact and SS_A + SS_B + SS_AB + SS_error reproduces SS_total to machine precision on every input. The crossover preset is what makes the central claim checkable rather than illustrative: both main-effect sums of squares are identically zero, not merely small, because both marginal means equal the grand mean by construction. All three effect sizes are computed per row from the same table, so the sum of eta squared across every row is exactly 1 while the sum of partial eta squared across the three effects reaches 2.4733 on the second preset. Unbalanced cells, a single replicate, a single level of either factor and a ragged row all return no result. That engine is verified on every change against 96 assertions. The count and the per-case breakdown are published on the formula verification page.
Related calculators
Where this goes next:
One-Way ANOVAThe full F table with eta and omega squared, plus every pairwise gap — because a significant F says something differs and never says which, and ten groups tested pairwise carry a 90% false-positive rate.
Repeated Measures ANOVAGreenhouse-Geisser, Huynh-Feldt and Mauchly computed together, with the p-value under all four sphericity assumptions: the shipped example goes from 0.031895 to 0.085420.
Eta SquaredFour effect sizes with the denominator each one uses, and a measured table: with eight groups of six and no effect at all, 94.7% of datasets still give an eta squared above 0.05.
Omega SquaredThe bias-corrected effect size from a published F and its degrees of freedom, exactly zero when F is exactly 1 — because the correction subtracts precisely what chance contributes.
Tukey HSDEvery pairwise comparison after an ANOVA with simultaneous confidence intervals — and the studentized range integrated rather than interpolated from a table, so any group count, df and level works. At two groups the critical q is exactly √2 times the critical t.
Games-Howell TestEvery pair with its own standard error and Welch degrees of freedom, plus the measured cost of pooling: with all means equal Tukey fires 29.92% of the time in one variance pattern and 3.00% in another.
An educational tool. A significant interaction makes both main effects averages over conditions in which the effect differs — sometimes in sign — so the main-effect rows should not be read on their own; and this tool computes the balanced, orthogonal case only, because unbalanced designs require choosing between competing sums-of-squares conventions that give different answers.
Published a factorial ANOVA that reports the interaction before either main effect, with the full source table and three effect sizes on every row.
Built the page on a crossover that makes the point exactly rather than roughly: cell means of 10/20 and 20/10 give both main effects a sum of squares of EXACTLY zero — F = 0, p = 1 — while the interaction has F = 600 and p = 1.29e-11 with a partial eta squared of 0.9804. Reporting 'no effect of A' there would describe a design where A moves the outcome ten units up at one level of B and ten down at the other.
Printed eta squared and partial eta squared side by side, which makes their difference visible: on the second preset the three partial values sum to 2.4733 — 247% of the variance — while the eta squared values sum to 0.9390.
Refused unbalanced designs rather than silently picking one of the three competing sums-of-squares conventions, since Type I, II and III disagree and the choice is a modelling decision.
Verified that SS_A + SS_B + SS_AB + SS_error reproduces SS_total across 200 randomly generated designs, and that eta squared sums to exactly 1 across all four rows in 200 more.
Add this calculator to your site
Responsive embed — and private: nothing your visitors type leaves their browser.