Survey data cleaning in practice: break-offs, duplicates, speeders, straightlining, "don't know" and missing data. With rules, a worked example and a checklist.
Your analysis should include the cases that belong to the target group, appear only once and show that the respondent actually read the questions. Exclude test responses, duplicates and break-offs before the first key question. Exclude conspicuously fast or uniform cases only after a check, and only by rules you set before you knew the results. Don't count missing answers silently. Report them: every number in the report comes with the number of answers behind it (the base, n for short), and "don't know" counts as an answer, but not as a point on the scale.
This article answers five questions in order:
- What is survey data cleaning, and in what order do you proceed?
- Which cases count: break-offs, test responses, duplicates?
- How do you spot speeders (too fast), straightliners (always the same column) and implausible answers?
- What's the difference between "don't know" and a missing value, and what do you do with gaps?
- How do these decisions change percentages and means, and how do you report them?
In analyses from companies and universities, I see it every now and then: it isn't the single speeder that shifts the result, but the silent decision about which number you divide by. The worked example further down shows how large this effect can get. There, removing suspicious cases changes the share of satisfied customers by less than one percentage point, while the choice of base moves it between 55.2% and 64.4%, with the same data. The example is hypothetical, and the pattern isn't a general rule. That's why this article covers both: removing cases and choosing the base.
What is survey data cleaning?
Data cleaning is the step between export and analysis: you check the data set for cases that don't belong in it and for values that can't be right. That's necessary online too, because online surveys also produce wrong codes and respondents who give false answers by mistake or on purpose (Möhring and Schlütz 2019, p. 190). That German textbook sums up the most important rule in one sentence:
"It is very important to clean the data before the analysis and to document every step precisely, because the line between cleaning and data manipulation is a fine one." (Möhring and Schlütz 2019, p. 190, my translation)
Four working rules follow from this:
- Freeze the raw data. Export the complete data set once after the field period ends, save it with the date and don't change that file again.
- Work on a copy, and flag instead of deleting. Add a column for the reason for exclusion to your working copy. That keeps every step reversible. Remove details that could identify people, such as IP addresses (Möhring and Schlütz 2019, p. 190), and certainly before you hand the data to an AI assistant.
- Set the rules before you see results. If you look at the results first and then decide when someone was "too fast", it's easy to pick the threshold with the nicer result. Classifying a questionnaire as unusable can be subjective, and that biases the results (Malhotra and Birks 2007, p. 478). So write the rules down before the survey goes into the field.
- Log everything. The documentation includes a description of the cleaning and a copy of the rules (Schnell 2019, p. 420).
Start by reviewing the response frequencies for every question. They show you missing values, invalid codes and errors in the skip logic (Möhring and Schlütz 2019, p. 190). The order of the steps can differ from study to study (Leiner 2019, p. 248). This article uses the following order:
Eight steps of survey data cleaning, from setting the rules and checking cases to reporting the results.
- Set the rulesbefore the launch, in writing, with a date
- Freeze the raw dataexport once, save unchanged, work on a copy
- Review response frequenciesfrequencies for all questions: codes, filters, gaps
- Decide which cases to includetest responses, wrong target group, duplicates, break-offs
- Check suspicious casestoo fast, too uniform, contradictory
- Check individual values"don't know", empty, not asked, impossible values
- Determine the base per questioncount valid answers, choose how to handle gaps
- Reportcase flow, rules, result with and without exclusions
Rules first, analysis last. Based on Möhring and Schlütz 2019, pp. 190-191, and Leiner 2019, p. 248.
Which cases count? Break-offs, test responses, duplicates
Not part of the target group. A questionnaire is unusable if it comes from someone who wasn't supposed to take part, or if it arrived after the cut-off date (Malhotra and Birks 2007, p. 477). That includes your own test runs and, as a rule, the answers from the pretest.
Duplicates. The same person may only count once. With personal invitation links and the block on multiple completion switched on, each invitation can only be answered once. All you then need to check is whether someone appears twice in the invitation list. With an open link, there's no reliable marker. Clues are identical free-text answers, the same contact address, or long identical answer sequences within a short time. For short questionnaires, identical answers alone aren't enough. Decide in advance which record stays, for example the first complete one.
Break-offs: count them fully, partly or not at all?
What counts as a break-off or an incomplete interview, and how such cases enter the data set, is something you have to decide (Schnell 2019, p. 299), and you have to decide it before the launch, as described in the article on the response rate. Three rules are common:
| Rule | What counts | Advantage | Cost |
|---|---|---|---|
| RuleOnly questionnaires filled in to the end | whoever reached the last page | a uniform set of cases | all answers from people who broke off are lost. If they differ from the rest, the result shifts |
| RulePartial responses from the key question on | whoever reached the key question named in advance counts for every question they answered | more cases for the early questions, less selection | the base shrinks from question to question, and every number needs its own n |
| RuleEverything that was started | every record with at least one answer | the maximum number of cases | cases with only one answer are included too |
Leiner removes cases in which important questions are missing and considers the value of incomplete cases to be limited in most studies: they mainly help you detect self-selection and problematic questions (Leiner 2019, p. 248). That partial responses can count is shown by the standards of the professional association AAPOR: besides the strict response rate, they define one that includes partial interviews, but they don't settle once and for all where a break-off ends and a partial interview begins (AAPOR 2016, cited in Schnell 2019, p. 151).
I recommend deciding before the launch which page marks completion: after the questions you need for your goal, and before whatever is merely nice to have, such as the demographics at the end. Then the answers of those who leave after that point count as well. For analyses across several questions, use only the cases that answered all the questions involved.
In QUESTIONSTAR, you set this page in the editor, and by default the reports count only completed responses. In any case, check whether the people who broke off differ from the others. For that you need at least one characteristic that is asked early in the questionnaire, see demographics at the end. The worked example shows what such a comparison looks like.
How do you spot speeders, straightliners and implausible answers?
Some cases are complete, but their answers probably mean nothing. Three signs are common: too fast, too uniform, too contradictory. None of them is proof.
Speeders: how fast is too fast?
There's no universal completion-time threshold below which a response should be flagged as too fast. How long someone needs depends on the context: the length of the questionnaire, how familiar the topic is, and the situation, such as a lecture, a conference or a smartphone on the go. The literature doesn't prescribe a fixed threshold either. Leiner calls his cut-off a pragmatic recommendation (Leiner 2019, p. 242). Möhring and Schlütz advise checking conspicuously fast cases and removing them only when there are grounds for suspicion (Möhring and Schlütz 2019, p. 190), and they note that, according to more recent studies, the response quality of speeders doesn't differ markedly (Greszki et al. 2015, cited in Möhring and Schlütz 2019, p. 142, fn. 60).
Speeders are respondents with an extremely short response time (Möhring and Schlütz 2019, p. 142). The numbers that follow are a starting point for flagging cases, not for removing them.
Too fast compared with what? "Too fast" is a comparison: faster than people usually need for this questionnaire. So before you flag a case, you have to know how long people usually need. The obvious candidate would be the average of all completion times, that is, the mean. And the mean is exactly what misleads you here.
On a Saturday morning, ten neighbors go to the bakery on the corner for bread rolls. Nine are back home after ten minutes. The tenth runs into an old acquaintance outside the shop and doesn't get back for two hours. How long does it take to go to the bakery and back? Ten minutes, any of the neighbors would say. The average says 21 minutes, because it counts the tenth neighbor's two hours in full. None of the nine was out that long. If you measure the neighbors against this average, you even have to consider the nine conspicuously fast: they were back in less than half the time, although they walked at a perfectly normal pace.
Completion times in a survey behave in a similar way. Most people fill in the questionnaire in one go. A few are held up like the tenth neighbor: the phone rings, lunch gets in the way, the questionnaire stays open in the browser and is only submitted later. That's how individual questionnaires end up at several hours, and the average is regularly biased upward (Jacob et al. 2019, p. 122). If you measure against it, even respondents who took a perfectly normal amount of time look too fast.
So you need the time everyone at the bakery would have named: the time of the person standing in the middle when all of them line up in order of their times. This time is called the median. To be precise, the median is the middle value of a series sorted by size: there are as many times before it as after it. So at most half of the respondents were faster and at most half were slower. How far the fastest and the slowest are from the middle makes no difference to it. Whether the tenth neighbor comes back after two hours or after five, the median stays at ten minutes. That's what you want here: you're looking for what is usual, not for how long everyone took together. For completion time, the rule is therefore: the yardstick is the median, not the mean.
Here's how to do it with your own data. Take the completion times of the completed questionnaires, sort them from shortest to longest and read off the time in the middle. With an even number of questionnaires, the median lies halfway between the two middle times. In Excel, the MEDIAN function gives you the value without any sorting. Then compare each questionnaire with the median: divide the median by the time of that questionnaire. The result is the respondent's speed relative to the respondent in the middle: 1 means the same speed, and 2 means twice as fast.
Main rule: the index per page. In four studies, Leiner tested which indicators detect questionnaires that were deliberately filled in carelessly. Among those that need no additional questions, completion time performed best (Leiner 2019, p. 241). His relative speed index makes the same comparison as the table, only for each page separately: the median time of all respondents for that page is divided by the time the person needed for the page. Results above 3 count as 3, and the index is the average of these values across all pages (Leiner 2019, p. 236). An example with four pages: the page medians are 60, 150, 200 and 150 seconds. One person needs 10, 75, 100 and 75 seconds. Median divided by time gives 6, 2, 2 and 2. The 6 counts as 3, and the average of 3, 2, 2 and 2 is 2.25: that's this person's index. The cap limits the influence of a single page that someone clicked through in a few seconds. As a deliberately generous threshold, Leiner names 2.0, that is, on average twice as fast as the typical respondent: for these cases, he writes, you have to assume that the questions weren't read at all (Leiner 2019, p. 242). The per-page calculation requires that you have the time per page, and it has one advantage over the total time: someone who rushes through the questionnaire and is held up on one page can stand out in the index although the total time looks unremarkable.
Fallback rule if you only have the total time. In that case, calculate as in the table: flag cases that took less than half the median duration of the completed cases. Leiner tested the total time as well, and it detected careless cases about as well as the index (Leiner 2019, p. 238, Table 2). He doesn't name a threshold for the total time. Half the median is our own adaptation of his threshold of 2.0 to the total time. Reading time works as a rough cross-check: Zhang and Conrad assume 300 milliseconds per word for each question, and that's slower than the usual reading speed (Zhang and Conrad 2014, p. 129).
Flagging doesn't mean excluding yet. Remove a case only if it also shows a second sign and you know the context of the survey. Two objections to any automatic rule:
- A short time can be justified. Filters may have hidden large parts of the questionnaire, or someone knows the subject well and therefore answers quickly (Leiner 2019, p. 231). So compare only cases with the same filter path. For knowledge questions, time isn't a valid sign, and experienced internet users are faster without being careless (Leiner 2019, p. 242).
- Every cleaning step has side effects. If you remove cases that are probably meaningless, you always remove some valid ones as well, and completion time is related to characteristics such as political interest (Leiner 2019, p. 242).
In short: "too fast" means faster than usual, and what's usual is given by the median: the time of the respondent in the middle. The average doesn't work for this, because a few interrupted questionnaires pull it upward. A case is flagged with a per-page index above 2.0 or, as a fallback, with a total time below half the median. It's excluded only if it also shows a second sign and you know the context.
QUESTIONSTAR measures the time per page and for the whole questionnaire, but it doesn't remove anyone automatically. That's a deliberate decision: whether a fast response was careless or comes from someone who knows the topic well can only be judged by someone who knows the survey. You have that knowledge. The software doesn't.
Straightlining and other patterns in matrix questions
Straightlining means that someone clicks the same column in every row of a matrix question. Malhotra and Birks count such questionnaires among the possibly unusable ones. Their example: only 4s on a series of seven-point scales (Malhotra and Birks 2007, p. 477). Besides the straight line, there are diagonals and zigzag patterns (Leiner 2019, p. 231). Why the format invites this is covered under matrix questions.
In a study with around 5,800 respondents from a probability-based panel, respondents who sped through questions more often also straightlined in more matrix questions (Zhang and Conrad 2014, pp. 127-128, 131). So the two signs support each other.
A straight line alone proves little, though: someone who is equally satisfied with everything gives the same answer eight times and means it. The pattern only becomes informative when the matrix contains statements worded in opposite directions: someone who agrees equally with "The service is fast" and "I had to wait a long time" probably didn't pay attention to the content. Without such statements, straightlining even produces particularly consistent data and doesn't show up in consistency checks (Leiner 2019, p. 231). Acquiescence, where someone agrees with statements regardless of their content, produces the same picture (social desirability bias). For data cleaning, the difference is secondary: in both cases it remains unclear how much the answer says about the content.
Implausible and contradictory answers, nonsense in text fields
Consistency checks look for values outside the permitted range, logical contradictions and extreme values (Malhotra and Birks 2007, p. 486), for example when someone doesn't know a product and uses it frequently at the same time (Malhotra and Birks 2007, p. 487). Online, filters and input validation prevent much of this. What remains are number fields, combinations across several pages, and text fields with strings such as "asdf". Whether someone gave meaningful answers to open-ended questions is a useful additional sign for suspicious cases (Leiner 2019, p. 242).
Checks can also be built into the questionnaire, for example instructed-response items ("As a check, please select 5."). Möhring and Schlütz note that control questions can be problematic (Möhring and Schlütz 2019, p. 111). Leiner, by contrast, recommends scattering a few obviously nonsensical statements among the scale items. In a subsample, they detected careless cases better than completion time did, and instructed-response items did about equally well (Leiner 2019, pp. 241-242). There's no automatic procedure. Schumann writes about collecting grounds for suspicion: "When this is the case must ultimately be decided subjectively by the researcher. There are no fixed rules for it." (Schumann 2019, p. 58, my translation)
Decision table: problem, detection, rule
| Problem | How you recognize it | Rule (set in advance) |
|---|---|---|
| ProblemDuplicates | identical free-text answers or long answer sequences within a short time, same contact details. Hardly possible with personal links and the block on multiple completion | keep one record, for example the first complete one |
| ProblemBreak-offs | last question answered, completion status | define the completion page in advance: exclude responses that stop before it and keep those that stop after it |
| ProblemSpeeders | per-page index above 2.0. As a fallback, with the total time only: below half the median of the completed cases. In each case per filter path | flag and check. Exclude only with a second sign and with knowledge of the context |
| ProblemStraightlining, patterns | same column in every row of a matrix with statements worded in opposite directions, or in several matrices | flag. Without statements worded in opposite directions, not a reason for exclusion on its own |
| ProblemContradictions | incompatible pairs of answers, failed instructed-response item | flag and check. Exclude only with at least two signs and with knowledge of the context |
| ProblemImpossible single value, nonsense in a text field | value outside the possible range, random strings | set the value to "missing", exclude the case only if there are further signs |
According to Malhotra and Birks, excluding whole cases can make sense if one of these conditions applies: the share of affected cases is small (below 10%), the sample is large, the affected respondents don't differ noticeably from the rest, a large part of their answers is unusable, or answers to key questions are missing (Malhotra and Birks 2007, p. 478). If only a small part of a person's answers is affected, it's better to set individual values to "missing" (Malhotra and Birks 2007, p. 478).
"Don't know", "no answer" or really empty?
Not every cell without a scale value is a missing value. Schnell warns against lumping everything together as "missing values" and separates four forms: question not asked, not applicable, "don't know" and refusal (Schnell 2019, p. 46). Online, break-offs and skipped questions are added. "Don't know" responses are to be treated as answers (Möhring and Schlütz 2019, p. 190).
| What's in the data set | What it means | In the base for percentages based on scale ratings and for the mean? | How to report it |
|---|---|---|---|
| What's in the data setQuestion not asked (filter) | didn't concern the person | no | name the base: "only respondents who had contact with customer service" |
| What's in the data setNot reached (break-off) | stopped before it | no | as a break-off in the case flow |
| What's in the data setLeft empty | seen but not answered (item nonresponse) | no | number per question |
| What's in the data set"Don't know", "can't judge" | an answer: the basis for a judgment is missing | no, a share of its own | "124 of 526 couldn't judge it" |
| What's in the data set"Prefer not to answer" | an answer: refusal | no, a share of its own | separately from "don't know" |
Behind an empty cell there's often a filter. In the 2000 wave of ALLBUS, the German General Social Survey, the most common reason for a missing value was that the question hadn't been asked at all (Schnell 2019, p. 49). If you put such cells into the base, your calculation is wrong, as worked through under the right base.
"Don't know" isn't a point on the scale. The answer belongs neither in the mean nor in the base when you calculate the share choosing the highest scale points, for example the share of satisfied respondents (the top box, or the top-2 box when two points are combined, such as 4 and 5). When to offer it is covered in the article on the rating scale, and what happens when it's accidentally counted as the midpoint is worked through in the article on levels of measurement. You can't just leave the answer out either: a high share tells you something about the question or about the target group.
In the export, each form needs its own code. Missing answers get a code of their own in the data matrix. 9 or 99 is common, provided that this number can't be a valid value (Jacob et al. 2019, p. 241, fn. 2). In your statistics program, you mark such codes as missing so that they don't enter any mean (Möhring and Schlütz 2019, p. 191). And for frequency questions: if "zero" wasn't asked explicitly, you can no longer tell "zero times" from "no answer" later (Schnell 2019, p. 46).
Missing data: listwise deletion, pairwise deletion or imputation?
What remains are the real gaps: someone saw a question and didn't answer it. Many gaps in a single question point to a problem with the question rather than with the respondents. What matters is whether the values are missing at random or systematically (Möhring and Schlütz 2019, p. 190). Put differently: would those who skipped a question have answered differently from the rest? Statisticians distinguish three cases (Schnell 2019, p. 162). You'll come across their abbreviations in textbooks and reviewer reports.
| What's behind the gaps | Example | Consequence | Technical name |
|---|---|---|---|
| What's behind the gapsPure chance: skipping isn't related to anything | someone overlooked a row | smaller sample, no systematic bias | MCAR, "missing completely at random" |
| What's behind the gapsA characteristic you collected: some groups skip the question more often. Within a group, though, skipping doesn't depend on what someone would have answered | income is missing more or less often depending on education and occupation, and at random within these groups | can be corrected with suitable methods | MAR, "missing at random" (at random, but only within the groups) |
| What's behind the gapsThe missing answer itself: even within a group, skipping depends on what someone would have answered | dissatisfied respondents skip the satisfaction question, and nothing in the data set reveals it | difficult to correct, report it explicitly | MNAR, "missing not at random" |
Which case you have is often hard to tell (Möhring and Schlütz 2019, p. 190). Whether some groups skip a question more often is something you can count. Whether skipping depends on the missing answer itself is something you can't check in the data, because that very answer is missing. Schnell usually assumes the middle case: the missing answers can then be corrected in principle, but a correction is also necessary (Schnell 2019, p. 162). There are three approaches to dealing with them:
| Approach | What happens | Risk |
|---|---|---|
| ApproachListwise deletion (complete cases only) | every case with a gap in the questions under consideration drops out entirely, one n for all numbers | serious bias if respondents with gaps differ systematically from the others (Malhotra and Birks 2007, p. 487) |
| ApproachPairwise deletion (all available cases for each calculation) | every statistic uses all cases that are complete for it, and every number has its own n | inconsistent or even impossible results in methods with several variables (Malhotra and Birks 2007, p. 488) |
| ApproachImputation (estimating the gaps) | missing values are replaced by estimated ones, and the sample size appears unchanged | simple methods make the data look more precise than they are: the confidence intervals are in truth wider (Schnell 2019, p. 170) |
For individual percentages and means, pairwise simply means: all valid answers for each question. If you fill gaps with the mean, you assume that those who stayed silent would have given average answers, although they could just as well have answered very high or very low (Malhotra and Birks 2007, p. 487).
There's no general recipe. Which approach fits depends on your research question and on the context of the survey. Möhring and Schlütz also make the choice between deletion and imputation depend on the specific case (Möhring and Schlütz 2019, p. 191). In the QUESTIONSTAR analysis, you can include or exclude unanswered questions, and show or hide them in the statistics. The decision is yours.
I follow a simple rule: I calculate results using those who answered. I report the number of missing answers but leave them out of the base. We don't know why someone skipped a question, and I consider it risky to guess an answer on their behalf.
That doesn't make imputation wrong. In some cases there are good reasons for it, and for scientific publications multiple imputation is considered the standard: that's how Schnell classifies it for academic statistics, though he explicitly calls it "no trivial task" (my translation) (Schnell 2019, pp. 170-171). Behind this is the assessment that most missing answers can be corrected and that a correction is then also necessary (Schnell 2019, p. 162). So expect reviewers to ask about it. Imputation is done after the export, in a statistics program such as SPSS or R. That's also where you set whether the calculation is listwise or pairwise. In Excel, it's a matter of the formula. An AI assistant can prepare this through the MCP integration, and you check the result.
Some gaps don't arise in the first place if the questionnaire offers an appropriate response option: an option such as "can't judge" belongs wherever knowledge or an opinion can actually be missing. Then it's an answer and not a gap, see rating scale.
Whichever approach you choose, reporting n doesn't correct the bias. If answers aren't missing at random, the result remains biased, and that belongs in the report. Malhotra and Birks treat a share of missing answers above 10% as a warning sign (Malhotra and Birks 2007, p. 487).
Worked example: from 640 records to 575 cases
Whether a difference between two groups is compatible with chance is a question you settle only after this: statistical significance and the p-value, cross-tabulation.
What do you do with outliers in numeric questions?
Outliers, that is, isolated extremely high or low values, strongly influence the mean but hardly affect the median (Schumann 2019, p. 145; Marx 2026, slides 168-169).
An extreme value doesn't have to be an error, but it can point to a problem (Malhotra and Birks 2007, p. 487). Distinguish between:
- Impossible values (such as 400 working hours per week): set them to "missing". The case stays.
- Suspicious values such as 99, which often also serves as the code for "no answer": check them against the whole case.
- Possible but extreme values stay. Report the median, and the mean with and without these cases.
How do you report exclusions?
If you exclude cases, you report the procedure used to identify them and their number (Malhotra and Birks 2007, p. 478). Every table states who the figures refer to, that is, the base (Möhring and Schlütz 2019, p. 192). For the example, one paragraph in the methods section is enough:
"1,800 customers were invited via an open link in the newsletter. The export contained 640 records. We excluded 7 test responses, 4 duplicates (identified by identical free-text answers and answer sequences within ten minutes, keeping the first record), 38 break-offs before the key question and 16 cases with at least two of three signs: relative speed index above 2.0, calculated from the times per page (Leiner 2019), the same column in both matrix questions despite statements worded in opposite directions, nonsensical text or contradictory answers. The rules were set before the field period began. 575 cases entered the analysis, 58 of them partial responses. Missing answers were not replaced, and the base is stated for each question. Without the 16 exclusions for response quality, the share of satisfied customers would be 59.2% (n = 581) instead of 60.0% (n = 565)."
The last sentence is a sensitivity check: it shows whether your result depends on the exclusions. Keep the raw data, the working copy and the rules, each with a date. If exclusions or gaps push a group below your minimum size, it stays hidden, see employee survey.
And weighting? It comes only after the cleaning (Schnell 2019, p. 299) and doesn't repair missing answers to individual questions. Whether it helps at all is covered under representative sample and sampling methods.
Data cleaning with QUESTIONSTAR
QUESTIONSTAR doesn't decide for you which cases count. It provides the information you need for that decision, and it can be set up so that there's less to clean. Rules with several signs are applied in the working copy of the export, in Excel, SPSS or R, or you have an AI assistant flag the cases according to your rules. In Excel, a "reason for exclusion" column, MEDIAN for the time and COUNTIF for the base are enough.
- Keep test data separate. Test data can be generated and deleted before the survey goes into the field, see pretest.
- Prevent duplicates instead of hunting for them. With the "Prevent multiple completion" setting under Access, QUESTIONSTAR recognizes returning respondents via cookies or via personal links. The cookie block can be bypassed, for example with a different browser. With personal links, the identifier is part of the link, but a forwarded link continues the sender's session (Recognizing returning respondents). Against automated participation, there's a CAPTCHA prompt.
- Define completion. In the editor, you choose the page that marks completion. A questionnaire counts as completed as soon as the respondent leaves that page. If, say, the demographics come at the end and are nice to have but not necessary for your goal, the answers of those who leave there count as well.
- Reports count completed responses. Every response has a completion status, and by default only completed responses enter the reports. You can manually mark an incomplete response as completed in the data view, and then it enters the reports too.
- See break-offs. The completions widget shows how many people started and how many completed the survey. The percentage there is the completion rate before any cleaning: completed divided by started.
- Completion time per page. QUESTIONSTAR measures the time for each page and for the whole questionnaire. Nobody is removed automatically, for good reason.
- View raw data, export it, delete individual responses. Under "View Answers", you see the raw data and can check or export individual cases (Survey Tools in the dashboard). The export as an XLSX, CSV or SPSS file is your frozen original. A single response can also be deleted in the interface. Export first, so that the original stays complete.
- Unanswered questions and opt-out answers. In the analysis, you can include or exclude unanswered questions, and show or hide them in the statistics. Set up as an opt-out answer, "can't judge" doesn't count toward the mean in QUESTIONSTAR. For further processing outside QUESTIONSTAR, check in the export how the answer is coded.
- Check with an AI assistant. Through the MCP integration, an assistant such as Claude or ChatGPT reads the individual responses together with the time taken, the completion status and the timestamps. State explicitly in the prompt which cases should count, and verify the result.
By the way: The most effective data cleaning happens before the survey goes into the field. Personal invitation links with the block on multiple completion prevent most duplicates, in the free plan too.
Checklist: survey data cleaning
- Rules for break-offs, duplicates, speeders and patterns written down before the launch, with a date. Decided which page marks completion.
- Raw data exported once and saved unchanged, working copy created with a column for the reason for exclusion, response frequencies reviewed for all questions.
- Test responses, cases outside the target group and duplicates removed and counted, people who broke off compared with the rest.
- Completion time measured against the median, per page or, as a fallback, on the total time, per filter path. Fast cases and patterns flagged, excluded only with a second sign and with knowledge of the context.
- "Not asked", "not reached", "empty", "don't know" and "prefer not to answer" coded separately.
- Base n determined for each question and missing answers reported as a number, listwise deletion and imputation chosen only deliberately, extreme values checked and the median reported.
- Case flow written down, result compared with and without exclusions.
Frequently asked questions about survey data cleaning
What is data cleaning in a survey?
Survey data cleaning means checking the data set between export and analysis. You remove test responses, duplicates and early break-offs, check suspicious cases (very fast, uniform, contradictory) and mark missing values. The rules are fixed before the analysis, and every step is documented (Möhring and Schlütz 2019, p. 190).
When does a respondent count as a speeder?
There's no fixed threshold, because completion time depends on the context: the length of the questionnaire, the topic and the situation. A starting point for flagging is Leiner's relative speed index: for each page, the median is divided by the person's time, the factor is capped at 3 and the values are averaged across all pages. An index above 2.0 is considered particularly suspicious (Leiner 2019, pp. 236, 242). If you only have the total time, half the median duration serves as a fallback rule. That rule is our own adaptation of his threshold. Don't exclude anyone because of time alone.
What is straightlining?
Straightlining means that a respondent clicks the same answer in every row of a matrix question. That can be carelessness or an honest, uniform opinion. Statements worded in opposite directions help you check. Straightlining also occurs more often together with speeding (Zhang and Conrad 2014, p. 131).
Do incomplete survey responses count?
That depends on the rule you set in advance. I recommend deciding before the launch which page marks completion: after the questions you need for your goal. Whoever leaves after that point counts, and every number needs its own base n. In any case, check whether those who broke off differ from the rest.
How do I handle missing data in a survey?
There's no general recipe. It depends on the research question. A simple approach for percentages and means is to calculate results using those who answered and to report the number of missing answers. Excluding all cases with a gap (listwise deletion) can bias the result if people with gaps differ from the others (Malhotra and Birks 2007, p. 487). Filling the gaps (imputation) can be justified but requires statistical knowledge. For scientific publications, multiple imputation is considered the standard (Schnell 2019, pp. 170-171).
Is "don't know" a missing value?
No. "Don't know" or "can't judge" is an answer and is treated as one (Möhring and Schlütz 2019, p. 190). It doesn't enter the mean or the base of the scale values, but its share is reported separately. In the data set, it gets a code of its own, separate from skipped questions and from questions that weren't asked (Schnell 2019, p. 46).
Sources
AAPOR, American Association for Public Opinion Research (2016). Standard Definitions. Cited in Schnell (2019), p. 151.
Greszki, R., Meyer, M. and Schoen, H. (2015). Exploring the Effects of Removing "Too Fast" Responses and Respondents from Web Surveys. Public Opinion Quarterly, 79(2), 471-503. Cited in Möhring and Schlütz (2019), p. 142, fn. 60, and in Leiner (2019), p. 242.
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.
Leiner, D. J. (2019). Too Fast, too Straight, too Weird: Non-Reactive Indicators for Meaningless Data in Internet Surveys. Survey Research Methods, 13(3), 229-248. DOI 10.18148/srm/2019.v13i3.7403.
Malhotra, N. K. and Birks, D. F. (2007). Marketing Research: An Applied Approach (3rd European ed.). Harlow: Pearson. Chapter 17, Data preparation, pp. 477-488.
Marx, P. (2026). Principles of Survey Research. Online course, chapter 5, slides 168 and 169. QUESTIONSTAR. Slide 168 and slide 169.
Möhring, W. and Schlütz, D. (2019). Die Befragung in der Medien- und Kommunikationswissenschaft. Eine praxisorientierte Einführung [Surveys in media and communication research: a practical introduction] (3rd ed.). Wiesbaden: Springer VS. In German. DOI 10.1007/978-3-658-25865-8.
Moran, G. and Cutler, B. L. (1997). Bogus publicity items and the contingency between awareness and media-induced pretrial prejudice. Law and Human Behavior, 21(3), 339-344. Cited in Leiner (2019), p. 242.
Schnell, R. (2019). Survey-Interviews. Methoden standardisierter Befragungen [Survey interviews: methods of standardized surveys] (2nd ed.). Wiesbaden: Springer VS. In German. DOI 10.1007/978-3-531-19901-6.
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.
Zhang, C. and Conrad, F. G. (2014). Speeding in Web Surveys: The tendency to answer very fast and its association with straightlining. Survey Research Methods, 8(2), 127-135. DOI 10.18148/srm/2014.v8i2.5453.
I hope your data sets need little cleaning and your reports state the base for every number.
Related articles:
- Analyzing online surveys: it starts before you collect data
- Survey response rate: calculate, assess and increase it
- Rating scale: types, examples and how to design one
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.
