QUESTIONSTAR
Methodology·November 11, 2026·24 min read

Cross-tabulation: how to read and test a contingency table

How do I read a cross-tabulation correctly, and which percentages do I need?

For practitioners
Cross-tabulation: a woven grid of peach, lilac and yellow threads, a red knot sits at one of the crossings

How to read a cross-tabulation: row or column percentages, the chi-square test, Cramér's V, small cells and third variables. With a calculator and an example.

A cross-tabulation shows how the answers to one question are distributed across the groups of a second question. You read it correctly when you calculate the percentages within the groups you want to compare: if the groups are in the columns, those are column percentages (Malhotra and Birks 2007, p. 517; Jacob et al. 2019, p. 248). The chi-square test checks whether the differences are larger than would be expected from random sampling variation, and Cramér's V shows how strong the relationship is.

This article answers five questions in order:

  1. What is a cross-tabulation, and what goes in the rows and columns?
  2. Row percentages or column percentages: which do you need?
  3. Is the difference due to chance, and how strong is it?
  4. What do you do when cells are too small, also with anonymity in mind?
  5. When does a third variable mislead you?

Cross-tabulations are among the tools I use most often when I analyze customer surveys. And I often see them misread. The arithmetic is rarely the problem. Usually the percentages were calculated in the wrong direction, and "half of the chat users are between 30 and 49" turns into "people aged 30 to 49 prefer chat". Those are two different statements. The following sections show you how to keep them apart.

Cross-tabulation calculator

Enter, paste or upload frequencies from 2 × 2 to 6 × 6. You get column, row and total percentages, expected frequencies, chi-square, the p-value and Cramér's V. Everything is calculated in your browser.

Input
Rows \ Columns

Please check: every cell must contain a frequency, not the answer code of a single person.

Enter your frequencies, paste a table or load a file.

The calculation runs entirely in your browser. Your numbers never leave your device.

How to use the calculator. Enter your frequencies, that is, the number of people in each combination, not percentages. You can also copy the table from Excel and paste it, or upload an Excel or CSV file. From an Excel file, the calculator reads the first sheet. Labels in the first row and column can be kept. If the values in a total row or total column match the sums of the other rows or columns, the calculator excludes it, shows a notice and lets you undo the exclusion. If a row labeled "Total" doesn't match the numbers, it asks you what to do. Use a finished frequency table with 2 × 2 to 6 × 6 cells, not raw data with one row per respondent and not percentages. You get column, row and total percentages, the expected frequencies, chi-square with degrees of freedom and p-value, and Cramér's V. If an expected frequency is below 5, a warning appears. The calculation runs entirely in your browser, and your numbers never leave your device. The sections below explain how to interpret the results.

What is a cross-tabulation?

A cross-tabulation, also called a contingency table or crosstab for short, describes two (or more) variables at the same time. The categories of one variable are crossed with the categories of the other, and each cell counts how many respondents gave exactly this combination (Malhotra and Birks 2007, p. 516). My course "Principles of Survey Research" puts it this way: "Cross-tabulations summarize the joint distribution of two (or more) discrete variables in a table" (Marx 2026, slide 177).

The margins hold the row and column totals. They show nothing new: they are exactly the frequency distributions of the two individual questions (Malhotra and Birks 2007, p. 516; Schumann 2019, p. 196). Only the inside of the table is new, and that's where the relationship is.

Typical questions a cross-tabulation answers:

  • Does satisfaction differ between departments or locations?
  • Is the preferred contact channel related to age?
  • Do new customers rate the service differently than regular customers?
  • Do students in different fields have different reasons for choosing their university?

Cross-tabulations are so common in practice because people without statistical training understand them too, and because they're easy to act on (Malhotra and Birks 2007, p. 516). They suit categorical variables with few categories, that is, nominal and ordinal data. Which statistic fits which level of measurement is explained in the article on levels of measurement. For a cross-tabulation, you group metric variables such as age in years into classes.

You can build a cross-tabulation from two questions in any analysis program: in QUESTIONSTAR as a "Crosstab" report, in Excel as a PivotTable with one variable in the rows, the other in the columns and the count as the value. The software does the arithmetic. Two decisions remain yours: what goes in the rows and columns, and which percentages you read.

Here is the basic layout, using the example from this article:

under 3030-4950 and olderTotal
Chatcellcellcellrow total
Emailcellcellcellrow total
Phonecellcellcellrow total
Totalcolumn totalcolumn totalcolumn totaln

What goes in the rows, and what in the columns?

Before you set up a cross-tabulation, answer one question: which variable explains which? The independent variable defines the groups you compare, such as age groups, departments or customer types. The dependent variable is the outcome you compare across those groups, such as contact channel, satisfaction or purchase intention.

For the layout, there's a clear convention: the independent variable goes in the table header, that is, in the columns, and the dependent variable goes down the side, that is, in the rows. You then calculate percentages by column and compare across the rows (Jacob et al. 2019, p. 248). The general rule behind it: percentages are computed in the direction of the independent variable, across the dependent variable (Malhotra and Birks 2007, p. 517).

You can also arrange the variables the other way around, for example when your groups wouldn't fit on the page otherwise. Then you calculate row percentages and compare down the columns. What matters is not where the groups are, but that the 100% applies within each group you want to compare.

It isn't always clear what is cause and what is effect. A simple question helps: which variable was determined first, or which one can't be changed by the other? Age may determine the contact channel, but the contact channel doesn't determine age. Malhotra and Birks show this with a table whose percentages run in the wrong direction: it would suggest that heavy internet use turns people into men (Malhotra and Birks 2007, p. 517).

Sometimes the reverse direction is exactly what you need, for example when you want to describe the respondents who selected a particular answer. More on that in the example below.

Row percentages or column percentages: the most common mistake

Absolute numbers in a cross-tabulation are hard to compare because the groups are almost never the same size (Schumann 2019, p. 196). Percentages solve that, but there are three kinds:

Type of percentageBase (= 100%)Question it answersComparison
Type of percentageColumn percentagesColumn totalHow are the answers distributed within a group in the column?across the rows, between the columns
Type of percentageRow percentagesRow totalWho are the respondents who selected the answer in this row?down the columns, between the rows
Type of percentageTotal percentagesn (all respondents)What share of all respondents has this combination?rarely useful for comparing groups

Worked example: contact channel by age group

Let's look at an invented example. An online retailer asks 400 customers which channel they prefer for contacting customer service. The age group is the independent variable and goes in the columns. You can check all the numbers of the example in the calculator above (button "Load example").

Frequencies:

Contact channelunder 3030-4950 and olderTotal
Contact channelChat405010100
Contact channelEmail3011050190
Contact channelPhone104060110
Contact channelTotal80200120400

Column percentages (each age group = 100%):

Contact channelunder 3030-4950 and older
Contact channelChat50.0%25.0%8.3%
Contact channelEmail37.5%55.0%41.7%
Contact channelPhone12.5%20.0%50.0%
Contact channelBase80200120

Row percentages (each contact channel = 100%):

Contact channelunder 3030-4950 and olderBase
Contact channelChat40.0%50.0%10.0%100
Contact channelEmail15.8%57.9%26.3%190
Contact channelPhone9.1%36.4%54.5%110

Both tables are calculated correctly. They answer different questions.

The row percentages say: of the 100 people who prefer chat, half are between 30 and 49 years old. If you conclude from this that people aged 30 to 49 are especially fond of chat, you're wrong. The middle group is simply the largest: 200 of the 400 respondents belong to it. That's why it accounts for many people in almost every row.

The column percentages answer the question the retailer actually has: which contact channel does each age group prefer? Among those under 30, half prefer chat, compared with a quarter of those aged 30 to 49 and 8.3% of those 50 and older. The gap between the two younger groups is 25 percentage points. Conversely, half of those 50 and older prefer the phone.

The row percentages are still useful for planning the service. If you want to know which audience the chat channel has to be built for, you ask who uses it: nine out of ten chat users are under 50. Here, the question is about the composition of the group that prefers chat. Schumann's example is the campaign strategist who wants to know the makeup of a party's electorate: both directions are legitimate, and which one fits depends on the question (Schumann 2019, pp. 197-198).

Which percentages do I need?

Decision tree. First question: do you want to compare groups? No, if you want to describe the respondents who selected a particular answer: percentages within that group. Yes leads to the second question: are the groups in the columns? Yes gives column percentages and a comparison across the rows. No gives row percentages and a comparison down the columns. Side note: total percentages are rarely useful for comparing groups.

Question 1Do you want to compare groups (for example, age groups)?
Percentages within that groupif you want to describe the respondents who selected a particular answer (row percentages in the usual layout)
Question 2Are the groups in the columns?
Row percentagesgroups in the rows: then compare down the columns
Column percentagesthen compare across the rows

Total percentages (base: all respondents) are rarely useful for comparing groups.

The 100% belongs in the group you want to compare. Based on Malhotra and Birks 2007, p. 517, and Jacob et al. 2019, p. 248.

How do you read and interpret a cross-tabulation correctly?

With the right percentages, half the work is done. Five habits help with the other half:

  1. Compare in the opposite direction. If you calculated percentages by column, compare across the rows: one answer, different groups (Jacob et al. 2019, p. 248). If you compare within a column ("in the group under 30, chat is more popular than the phone"), you only describe one group, not a relationship.
  2. Show the base. Under each column, give the number of respondents the percentages refer to. 50% of 8 people is something different from 50% of 800. Percentages in a cross-tabulation without a base can't be judged.
  3. Speak in percentage points. The share for chat drops from 50% to 25%, which is a difference of 25 percentage points. "25 percent less" would be wrong here, because in relative terms the share has fallen by half.
  4. Handle missing answers deliberately. The table usually includes only people who answered both questions. Anyone who gave no answer to one of the two drops out. State that number, and check whether "don't know" belongs in the table as a row of its own or outside it as a missing answer.
  5. A relationship is not a cause. A cross-tabulation shows that two characteristics vary together, not why. For causes, you need a suitable research design (Malhotra and Birks 2007, p. 521).

The table itself should be understandable without the text: with a heading and with a footer that states the total N and the relevant statistical measures (Jacob et al. 2019, pp. 248-249). One sentence on the direction of the percentages ("column percentages, base: respondents per age group") spares readers the most common misreading. How to choose tables and charts for a report is covered in the article Analyzing online survey results.

Multiple-response questions are read a little differently. If respondents may tick several contact channels, you calculate percentages based on the people in the group, not on the number of selections: "48 of 80 respondents under 30 select chat, that's 60.0%." The percentages in a column can then add up to more than 100%. In this case you don't run a chi-square test on the whole table, because the same person appears in several rows. What you can test is each answer option on its own, as a table of "selected" and "not selected" by group. With two groups that's a 2 × 2 table, with three groups a 2 × 3 table.

A note on ordinal variables such as age classes or satisfaction levels: the chi-square test in the next section treats all categories as nominal and doesn't use their order. For ordered categories there are separate measures such as gamma or Kendall's tau (Malhotra and Birks 2007, pp. 524-525).

Is the difference due to chance? The chi-square test in brief

Even when there is no relationship in the population, a sample almost never shows exactly equal shares in all groups. The chi-square test checks whether the deviations are larger than would be expected from random sampling variation. The null hypothesis is: no relationship between the two variables (Malhotra and Birks 2007, p. 521). The detailed step-by-step calculation is in the article The chi-square test.

The test compares each cell with the value you would expect if the variables were independent. Together, these expected frequencies form the table of expected values under independence (Schumann 2019, pp. 202-203). For each cell:

E = \frac{\text{row total} \cdot \text{column total}}{n} \qquad \chi^2 = \sum_{\text{all cells}} \frac{(O - E)^2}{E} \qquad df = (r - 1)(c - 1)

Here O is the observed frequency, E the expected frequency, r the number of rows and c the number of columns (Malhotra and Birks 2007, pp. 521-522; Schumann 2019, p. 205).

For the cell chat × under 30, we expect 100 · 80 / 400 = 20 people under independence. We observe 40. This cell contributes (40 − 20)² / 20 = 20.0. The cell phone × 50 and older contributes even more: expected 33, observed 60, contribution 22.1. Summed over all nine cells, the result is:

StatisticContact channel example (n = 400)
StatisticChi-square70.97
StatisticDegrees of freedom(3 − 1) · (3 − 1) = 4
Statisticp-value< 0.001
StatisticSmallest expected frequency20

The p-value says: if age and contact channel were independent among the customers, a chi-square of 70.97 or more would be extremely unlikely. The relationship is statistically significant. In the report, you might write: "The preferred contact channel is related to the age group (χ² = 70.97, df = 4, p < 0.001, Cramér's V = 0.30, n = 400)." The next section explains what Cramér's V is.

Keep three things in mind. First, the test works only with absolute frequencies (Malhotra and Birks 2007, p. 523). Use the original frequencies wherever possible. You can recover frequencies from percentages only if you know the base, and rounded percentages may not yield a unique set of whole-number counts. That's why the calculator above expects frequencies too. Second, each person may appear in the table only once, so the observations must be independent (Malhotra and Birks 2007, p. 523). Multiple-response questions, where one person can tick several contact channels, therefore don't fit this test directly (see above). Third, the test strictly speaking assumes a random sample. In practice, it's applied even when this assumption isn't met (Schumann 2019, p. 195, n. 5). In that case, word your result more cautiously.

How strong is the relationship? Cramér's V

Significant doesn't mean strong. The chi-square test only tells you whether the data are compatible with the assumption "no relationship". Its test statistic depends directly on the sample size: "doubling all the values in the cross-tabulation doubles χ²", while the relationship itself stays the same (Marx 2026, slide 202). For strength, you need a separate measure.

A frequently used one is Cramér's V (Schumann 2019, p. 213). It relates chi-square to the sample size and the size of the table:

V = \sqrt{\frac{\chi^2}{n \cdot \min(r - 1,; c - 1)}}

V lies between 0 (no relationship) and 1 (perfect relationship) (Malhotra and Birks 2007, p. 524). For a 2 × 2 table, V equals the phi coefficient (Schumann 2019, p. 213). For our example:

V = √(70.97 / (400 · 2)) ≈ 0.298, rounded 0.30

For interpretation, my course gives a rule of thumb: "Values > 0.30 are considered substantial" (Marx 2026, slide 205). At 0.298, our value sits right at this threshold. The slide also warns that V depends on the table dimensions and that values from different studies can't simply be compared with one another.

How much the table size matters becomes clear from the thresholds you read most often: 0.1 for a small, 0.3 for a medium and 0.5 for a large effect. They come from Cohen and apply to his measure w (Cohen 1988, pp. 224-225). w equals V only when the smaller side of the table has two categories. Otherwise w = V · √(min(r − 1, c − 1)) (Cohen 1988, p. 223). For our 3 × 3 table, that gives w = 0.298 · √2 ≈ 0.42, a medium to large effect by Cohen's thresholds. So the larger min(r − 1, c − 1) is, the larger the value of w that corresponds to the same V.

So don't apply such rules of thumb mechanically. Whether a 25 percentage point difference in chat preference matters to the retailer depends on its practical importance, not on the second decimal place.

A thought experiment shows that V stays unchanged when all frequencies are scaled by the same factor. Compare the original example with a version in which all cell counts are doubled (n = 800) and with a single location that has only 40 respondents and exactly the same percentages.

n = 400n = 40 (same percentages)n = 800 (everything doubled)
Chi-square70.977.10141.95
df444
p-value< 0.0010.131< 0.001
Cramér's V0.2980.2980.298

The pattern is the same three times, but the test result isn't. For n = 40, the calculation gives p = 0.131, and because five expected frequencies are below 5, even this p-value isn't reliable (more on that in the section Small cells). The lesson holds in both directions: in large samples even a weak relationship becomes significant, and in small ones a clear relationship can go undetected. So report the p-value, V and the percentages together. Malhotra and Birks look at strength only after a significant test (Malhotra and Birks 2007, p. 525). Jacob et al. go further: the measure of association should always be reported, the significance level only if you want to infer from a random sample to the population (Jacob et al. 2019, p. 249).

Besides V, there are other measures such as the contingency coefficient C and lambda (Malhotra and Birks 2007, pp. 523-524). For everyday work, V is enough. Name the measure in your report (Jacob et al. 2019, p. 249). A large V, however, says nothing about how the variables are related (Malhotra and Birks 2007, p. 524). Only the percentages show that.

What do you do about small cells?

In cross-tabulations from surveys, small cells are more the rule than the exception. With each additional category the number of cells grows, and with each additional variable it multiplies (Malhotra and Birks 2007, p. 521). A 6 × 6 table has 36 cells. Small cells cause two different problems: a statistical one and a data protection one.

Expected frequencies below 5

The chi-square test relies on an approximation that breaks down when expected frequencies are very small. The textbooks state the rule strictly: chi-square should not be calculated if the expected frequency in any cell is below 5 (Malhotra and Birks 2007, p. 523). Schumann requires the expected frequencies in all cells to be greater than 5 (Schumann 2019, p. 206). The rule refers to the expected values, not the observed ones. An observed zero isn't a problem as long as the expected value in that cell is large enough.

For larger tables, a milder rule of thumb is common: at most 20% of the cells with expected frequencies below 5, and none below 1 (Cochran 1954). The calculator above and the report in QUESTIONSTAR point out small cells according to the strict rule.

In the example of the location with 40 respondents, five of the nine expected frequencies are below 5, the smallest at 2.0. In such a case, the calculator above shows a warning, and the p-value is not reliable. What you can do:

MeasureWhen it makes senseWhat to keep in mind
MeasureCombine categorieswhen related categories can meaningfully be combined, such as two adjacent age groups or email and chat as "written"Schumann speaks of "suitable" combining (Schumann 2019, p. 206, n. 18): the categories should be conceptually related
MeasureDrop a rare categorywhen it plays no role for the questionstate in the report how many people are missing
MeasureCollect more cases or pool groupswhen an analysis by subgroups is plannedbelongs in the planning before fieldwork
MeasureFisher's exact testfor 2 × 2 tables with small numbersThe calculator above shows it as soon as the warning appears. See also limits of the chi-square test

For 2 × 2 tables or cells below 10, Malhotra and Birks additionally recommend a correction factor (Malhotra and Birks 2007, p. 523). This is Yates' continuity correction. In their example, it lowers chi-square from 3.333 to 2.133, so the result becomes more cautious.

Combining categories helps, but not always enough. If we combine chat and email into "written" in the location example, two of six cells stay below 5. If we also combine the two younger age groups, we get a 2 × 2 table with an expected frequency of 3.3. If you run the test anyway, you get p = 0.037, with the correction factor p = 0.089, and with Fisher's exact test p = 0.056. So the result depends on which method you use, and that's exactly when it isn't robust. Never keep combining categories until a test turns significant.

The best solution therefore comes before fieldwork. Möhring and Schlütz cite a simple planning rule from Friedrichs, who recommends at least 10 to 15 cases per cell, because the cases are never evenly distributed. For a cross-tabulation of two variables with six categories each, that is, 36 cells, this gives 360 respondents at 10 per cell or 540 at 15 per cell (Friedrichs 1999, p. 146, cited in Möhring and Schlütz 2019, p. 36). If you already know at the planning stage that you want to analyze by department and age group, work backward this way. For whole subgroups you want to report on, Jacob et al. give 20 to 25 cases as a rule of thumb (Jacob et al. 2019, p. 72). You'll find more on planning in the article on calculating sample size.

Small cells: how to proceed

Five steps. Plan: before fieldwork, allow for 10 to 15 cases per cell. Check: expected frequencies below 5? Combine: merge conceptually related categories. Check again: Fisher's exact test for 2 by 2, otherwise don't report the p-value as reliable and describe the percentages. Protect: apply the minimum cell size in reports and check whether overlapping tables could identify individuals.

  1. PlanBefore fieldwork: note the planned cross-tabulations and allow for about 10 to 15 cases per cell
  2. CheckLook at the expected frequencies: is one below 5?
  3. CombineCombine conceptually related categories, drop rare unimportant ones
  4. Check againIf that still isn't enough: Fisher's exact test for 2 × 2, otherwise don't report the p-value as reliable and describe the percentages
  5. ProtectApply the minimum cell size in reports and check whether overlapping tables could identify individuals

Small cells are a statistical problem and a data protection problem. Both are best solved at the planning stage.

Small cells and anonymity

Small cells also affect anonymity. A cross-tabulation that breaks results down by department and age group can make a single person visible. If the cell "Accounting, over 60" contains a 1, everyone in a small organization knows whose answer that is.

In a case study on employee surveys, respondents assumed that managers could work backward from the percentages to who had answered what, even though reports were only available from five participants (Wiertalla 2013, pp. 186-187). Linke advises producing reports only once a minimum number of participants has been reached, and checking whether individuals can be identified by comparing reports that cover overlapping groups. A high threshold, such as ten, comes at a price: small teams then only see the results of the unit above them (Linke 2018, p. 62). With cross-tabulations, this can happen quickly: results broken down by department and results broken down by age may together point to a single respondent.

In practice, this means:

  • Before the analysis, set a minimum number per cell or per group and stick to it in all reports.
  • Combine small groups before you pass a table on, not only when someone asks.
  • Ask for only as many demographic characteristics as you really need for the analysis.

What this looks like in an employee survey as a whole is described in the article Employee survey.

Third variables: when a cross-tabulation misleads you

A cross-tabulation with two variables shows a relationship, but not whether a third variable is behind it. My course says: "Sometimes introducing a third variable can reveal …", followed by three cases: spurious relationships, hidden relationships and no change (Marx 2026, slide 179). Malhotra and Birks name refinement as a fourth case, in which the relationship remains but differs in strength between subgroups (Malhotra and Birks 2007, pp. 517-519).

The classic example of a spurious relationship comes from Malhotra and Birks (2007, p. 519): respondents with a college degree own an expensive car more often than respondents without one. If you separate by income, the difference disappears.

Share owning an expensive carCollege degreeNo college degree
Share owning an expensive carAll respondents32%21%
Share owning an expensive carLow income only20%20%
Share owning an expensive carHigh income only40%40%

The relationship with education arose only because respondents with a college degree are more often in the higher income group.

The opposite case, a hidden relationship, appears in an example about the desire to travel abroad. In both age groups, under 45 and over 45, 50% want to travel abroad. Separated by gender, a pattern appears that was invisible in the overall table: among men, the desire to travel falls with age from 60% to 40%, and among women it rises from 35% to 65% (Malhotra and Birks 2007, p. 520).

So the simplest check is to set up the table separately for each category of the third variable (Schumann 2019, pp. 120-121). That requires two things: you have to suspect the third variable, and you have to have collected it (Schumann 2019, p. 121). Deciding which third variables to consider is therefore part of questionnaire planning, not something to leave until the analysis. And even if a relationship disappears when you control for a third variable, survey data alone can't tell you whether the third variable causes both characteristics or mediates between them (Schumann 2019, p. 123).

Simpson's paradox

A third variable misleads you most when it reverses the result. This case is known as Simpson's paradox (after Simpson 1951). An invented example: a retailer compares customer satisfaction in its online shop and in its store, with 300 respondents each.

Customer typeOnline: satisfiedStore: satisfied
Customer typeRegular customers45 of 50 = 90%215 of 250 = 86%
Customer typeNew customers150 of 250 = 60%28 of 50 = 56%
Customer typeAll together195 of 300 = 65%243 of 300 = 81%

In both customer groups, the online shop does better, by four percentage points each. In the overall table, it's 16 points behind. Both are calculated correctly. The reason: in the online shop, 83% of the respondents are new customers, in the store only 17%, and new customers are clearly less satisfied in both channels. The overall comparison therefore mixes differences between the channels with differences in the composition of their customers.

Anyone who sees only the overall table could rate the online shop as clearly worse. Within both customer types, however, its satisfaction is four percentage points higher. Whether the separate tables or the combined table give the right answer in such cases depends on the role the third variable plays. No calculation can decide that. It takes subject knowledge.

Cross-tabulations in QUESTIONSTAR

In QUESTIONSTAR's reports, you create cross-tabulations directly, without exporting anything. The "Crosstab" report computes chi-square, degrees of freedom, the p-value and Cramér's V, plus phi, the contingency coefficient and lambda. In the report settings, you switch on row, column and total percentages ("Show Row Percentages", "Show Column Percentages", "Show Total Percentages") and the expected frequencies ("Show Expected Counts"). The video tutorial on reports shows how to create it, from minute 3:27. What else you'll find in the reports:

  • Hiding and grouping answer options: In the "Crosstab" report, you can hide and group answer options (video tutorial, from minute 1:57). This lets you combine categories with few responses before you interpret the table. Chi-square and Cramér's V are recalculated for the combined table.
  • Filters: With filters, you build an analysis for one specific group, such as a region or department. This is how you set up a cross-tabulation separately for each category of a third variable (see Third variables).
  • Export: You export charts and tables for your report, and the raw data as an SPSS, CSV or XLSX file for further analysis. The calculator above, by contrast, needs a finished frequency table and not a raw data export.
  • Anonymity: If "Anonymize IDs" is active in the privacy settings, QUESTIONSTAR shows reports and analyses only once ten questionnaires have been fully completed. Answers to questions marked as "Private question" also appear only from ten fully completed questionnaires (Help: Privacy). This threshold applies to the survey as a whole, not to each cell of a cross-tabulation. You set the minimum number per cell yourself, as described in the section Small cells and anonymity.

If an expected frequency is below 5, the report points it out. Switch on the expected frequencies to see which cells are affected.

Checklist: analyzing a cross-tabulation

  • Independent and dependent variable defined before the table is built.
  • Independent variable in the columns, column percentages calculated, compared across the rows (or consistently the other way around).
  • Direction of the percentages and the base stated in the heading or footer.
  • Differences worded in percentage points, not in percent.
  • Chi-square calculated only on absolute frequencies, each person in the table only once (for multiple-response questions, each option on its own).
  • Expected frequencies checked: if one is below 5, related categories meaningfully combined, Fisher's exact test used for a 2 × 2 table, or the p-value of the chi-square test not reported as reliable.
  • Cramér's V and the percentages reported alongside the p-value.
  • Minimum cell size set for reports, and tables covering overlapping groups checked for whether they could identify individuals.
  • Possible third variables already collected in the questionnaire, and the table checked separately by them.
  • Relationship not worded as a cause.

Frequently asked questions about cross-tabulation

What is a cross-tabulation?

A cross-tabulation, also called a contingency table, shows the joint distribution of two (or more) categorical variables. Each cell counts how many respondents gave a particular combination of answers, such as "under 30" and "chat". The margins hold the row and column totals. Cross-tabulations are the standard tool for showing differences between groups in a survey.

Row percentages or column percentages: which should I use?

You calculate percentages within the groups you want to compare, that is, in the direction of the independent variable. If the independent variable, for example the age group, is in the columns, those are column percentages, and you compare across the rows. Row percentages then answer a different question: who selected each answer?

Which variable goes in the rows, and which in the columns?

By the usual convention, the independent variable defines the groups and goes in the columns. The dependent variable is the outcome and goes in the rows. You then calculate percentages by column and compare across the rows. The reverse arrangement is possible, but then it requires row percentages.

What does Cramér's V tell you?

Cramér's V measures the strength of the relationship in a cross-tabulation, on a scale from 0 (no relationship) to 1 (perfect relationship) (Malhotra and Birks 2007, p. 524). If you multiply all cells by the same factor, V stays unchanged while chi-square grows with it. As a rule of thumb, values above 0.30 are considered substantial (Marx 2026, slide 205). With a larger min(r − 1, c − 1), the same V corresponds to a larger Cohen's w (Cohen 1988, p. 223). But V doesn't tell you how the variables are related. The percentages show that.

What do you do when expected frequencies are below 5?

In that case, by the strict textbook rule, the p-value of the chi-square test is not reliable (Malhotra and Birks 2007, p. 523). You can combine categories that are conceptually related, drop an unimportant rare category, or use Fisher's exact test for 2 × 2 tables. For planning, Friedrichs gives 10 to 15 cases per cell as a rule of thumb (Friedrichs 1999, p. 146, cited in Möhring and Schlütz 2019, p. 36). For larger tables, a milder rule of thumb is also common: at most 20% of the cells below 5 and none below 1 (Cochran 1954).

Is a significant relationship also a strong one?

No. Whether a relationship is significant depends heavily on the sample size. With many respondents, even a weak relationship becomes significant, and with few, a clear relationship may go undetected. So alongside the p-value, always report a measure of strength such as Cramér's V and the percentage differences.

What is Simpson's paradox?

In Simpson's paradox, the overall table shows a relationship in one direction, but the tables separated by a third variable show it in the other. The cause is that the groups are composed differently. If you suspect such a third variable, collect it and set up the cross-tabulation separately for each of its categories.

Sources

Cochran, W. G. (1954). Some Methods for Strengthening the Common χ² Tests. Biometrics, 10(4), 417-451.

Cohen, J. (1988). Statistical Power Analysis for the Behavioral Sciences (2nd ed.). Hillsdale, NJ: Lawrence Erlbaum Associates.

Friedrichs, J. (1999). Methoden empirischer Sozialforschung [Methods of empirical social research] (15th ed.). Opladen: Westdeutscher Verlag. In German. Cited in Möhring and Schlütz (2019), p. 36.

Jacob, R., Heinz, A. and Décieux, J. P. (2019). Umfrage. Einführung in die Methoden der Umfrageforschung [Surveys: an introduction to the methods of survey research] (4th ed.). Berlin/Boston: De Gruyter Oldenbourg. In German.

Linke, R. (2018). Mitarbeiterbefragungen optimieren. Von der Befragung zum wirksamen Management-Instrument [Optimizing employee surveys: from the survey to an effective management tool]. Wiesbaden: Springer Gabler. In German. DOI 10.1007/978-3-658-17722-5.

Malhotra, N. K. and Birks, D. F. (2007). Marketing Research. An Applied Approach (3rd European edition). Harlow: Pearson Education.

Marx, P. (2026). Principles of Survey Research. Online course, chapter 5, slides 177, 179, 202 and 205. QUESTIONSTAR. Course, chapter 5.

Möhring, W. and Schlütz, D. (2019). Die Befragung in der Medien- und Kommunikationswissenschaft. Eine praxisorientierte Einführung [Surveys in media and communication studies: a practical introduction] (3rd ed.). Wiesbaden: Springer VS. In German.

Schumann, S. (2019). Repräsentative Umfrage. Praxisorientierte Einführung in empirische Methoden und statistische Analyseverfahren [Representative surveys: a practical introduction to empirical methods and statistical analysis] (7th ed.). Berlin/Boston: De Gruyter Oldenbourg. In German.

Simpson, E. H. (1951). The Interpretation of Interaction in Contingency Tables. Journal of the Royal Statistical Society, Series B, 13(2), 238-241.

Wiertalla, K. (2013). Der Einsatz von Mitarbeiterbefragungen als Lerninstrument in Unternehmen. Dargestellt anhand des Praxisbeispiels der Mitarbeiterbefragung bei der Ingram Micro Distribution GmbH [Employee surveys as a learning tool in companies, illustrated by the employee survey at Ingram Micro Distribution GmbH]. Dissertation, University of Siegen. In German.

I hope your cross-tabulations always put the 100% where your question needs it.

Related articles:

Dr. Paul Marx

Author: Dr. Paul Marx
Dr. Paul Marx is the founder and Managing Director of QUESTIONSTAR and was a professor of marketing at the University of Siegen.