How to Detect Speeders and Straight-Lining in Survey Data
Speeders and straight-liners are the two most common quality problems in any survey dataset, and two of the easiest to miss. Neither leaves an obvious mark. A speeder's row looks complete. A straight-liner's grid looks answered. But both are usually the signature of someone who stopped reading and started clicking — and both quietly bias your results in ways that are hard to undo after the fact.
This guide covers what each pattern actually is, how to detect it by hand, where manual detection breaks down, and how to score it consistently at scale.
What speeding is (and why it distorts results)
A speeder is a respondent who completes the survey far faster than is plausible if they had actually read it. The mechanism behind it is satisficing: instead of doing the cognitive work of reading and answering, the respondent does the minimum needed to reach the reward — the incentive, the completion screen, the next task.
The damage isn't just noise. Speeders tend to settle on the first option, the midpoint, or whatever takes least effort, which pulls your distributions toward those answers. A handful of speeders in a small cell can move a mean enough to change a conclusion.
How to detect speeders
The core idea is simple: compare each response's duration against a defensible expectation, and flag the ones that are implausibly short. There are two ways to set that expectation.
Relative to the sample. Flag responses whose duration falls well below the median — for example, more than two standard deviations under it. This is roughly how Qualtrics' built-in speeder flag works, and it needs a reasonable base (around 100 responses) before the median is stable. The drawback is that it's circular: if a chunk of your sample is fast, the median drops and real speeders start to look normal.
Relative to an absolute floor. Estimate the minimum time a careful respondent needs — word count divided by a realistic reading speed, plus a few seconds per question to actually answer — and flag anything under it. This floor doesn't move with your sample, which makes it more defensible.
Per-page timing beats total time wherever you can get it. A respondent can stall on one page and sprint the rest, and a single total figure hides that.
One caveat worth keeping: don't delete speeders mid-collection. Speed judged relative to the sample shifts as more data arrives, so wait until fieldwork is closed before you act on it.
What straight-lining is
Straight-lining is when a respondent gives the same answer down a matrix or grid — every item rated "4", every row "Agree" — regardless of what each item actually asks. Like speeding, it's a low-effort shortcut, and it's most common in long grids and repetitive scale batteries, exactly where attention fades.
How to detect straight-lining
Straight-lining only exists where you have matrix or grid questions, and the test is variance. Within each grid, look at the spread of a respondent's answers.
Zero or near-zero variance across a grid's items is the clearest signal — the respondent picked one column and stayed in it. Run length is a useful complement: the longest stretch of identical consecutive answers.
The honest complication is that low variance isn't always cheating. Some people genuinely do "Agree" with everything in a short, coherent battery. That's why straight-lining is strongest as a signal in long grids, and why it shouldn't be the sole basis for rejecting a response — it should combine with other signals.
Where manual detection breaks down
Doing this by hand works for one dataset. It stops working when you have many, because:
- Thresholds drift. Every analyst picks slightly different cut-offs, and the same dataset gets cleaned differently depending on who's holding the spreadsheet.
- It isn't reproducible. When a client or reviewer asks why a response was removed, "it looked too fast" is not an answer you want to give.
- It doesn't scale. Re-deriving timing floors and grid-variance rules for every project is slow, and it's the first thing that gets skipped under deadline.
Scoring it consistently
This is the problem Winnow is built for. Speeding and straight-lining are two of its six deterministic signals, and deterministic is the important word: the same response always produces the same flags and the same score, with no model in the loop to drift. You send your responses to the API and get back a quality_score from 0–100, a recommendation of accept, review, or reject, and the specific flags that fired — so when someone asks why a response was rejected, the answer is speeding and straight_lining, not a black box.
Because it is rule-based rather than ML-based, it stays explainable end to end, which matters when your data has to stand up to a stakeholder, an ethics board, or a client who paid for it.
Score your first dataset free →
See also: the pillar guide How to Detect Fraudulent and Low-Quality Survey Responses, How to Detect Bots and Duplicate Responses in Survey Panels, and How to Clean Low-Quality Responses from Qualtrics and SurveyMonkey Exports.