Data quality check
Tells you whether the responses can be trusted before anyone builds conclusions on them
Free agent skill for Claude Code, Codex, Cursor and Gemini CLI. It works through the SurveyNinja MCP server, with your permissions.
- Category
- Check before launch
- Tags
- data quality, sample
- Works with
- Claude Code, Codex, Cursor, Gemini CLI
- MCP tools
- 7, 3 of them change data
- Version
- 1.0, October 20, 2026
- Made by
- SurveyNinja
- Price
- Free
- Skill file
- SKILL.md
What it does
- Check first, conclude second. This matters most when the survey was shared for a reward or through an open link.
- Suspicious responses as a share. For each signal you get the number of completions, their share of the total, and how the key figures change without them.
- Unhappy is not fake. The skill does not call low ratings or harsh comments junk.
Example
You type
Can I trust these responses? Check the data quality
What the assistant brings back
- 54
- Questionable13% of the total
- 358
- Would remain
- 4.1
- Average now
- 4.2
- Average afterdifference within noise
- Under a minute for nine questions speed
- Same option everywhere flat-lining
- One phone number twice or more duplicate contacts
- "aaa", "123", random letters junk in text
- "Never used it" followed by a service rating contradiction, likely a logic error
The average moves by a tenth and the order of the options stays the same. Tag the questionable completions if you like, but deleting them is not worth it for these numbers.
The numbers above are an example. The check runs on the responses you collected.
How it works
- Checks signal by signalSuspiciously fast completions, flat-lining, duplicate contacts, junk in text fields, contradictions and bursts in time. Each signal is counted on its own.
- Shows the share as well as the countFor every signal you see how many completions match and what part of the total they are. A count without a share says little.
- Works out whether the conclusions moveThe most useful part of the check: if the key figures stay the same after cleaning, there is no reason to clean.
- Leaves low scores aloneAn unhappy respondent is not cheating. Harsh comments and one-star ratings are not treated as junk.
Try also
- This survey looks gamed. Take a look at the data
- Find suspicious completions and tell me if they change the conclusions
What it will not do
- Do not call low ratings and harsh comments junk
- Do not delete anything yourself
- Do not trim the sample
- Do not suggest a plan upgrade or lead to payment
The skill works with your permissions. Tools that change data are marked, so you check what the assistant is about to do before you confirm. To cut access, remove the connector in the assistant or delete the API key.
In short
What does the skill treat as suspicious?
Completions that are too fast, the same answer everywhere, duplicates by phone or email, junk in text fields, contradictions, and bursts such as twenty completions in a minute with identical answers.
How fast is too fast?
A rough guide is at least five seconds per question. For a ten-question survey, anything under a minute is suspicious. The skill also looks at the average time for your survey.
Are contradictory answers a sign of cheating?
Usually not. "Never used the service" followed by a rating of it more often means the display logic is set up wrong.
What do I get in the end?
For each signal, how many completions match and what share of the total they are. Most importantly, whether the key figures change once everything doubtful is set aside. If they do not, the skill says there is no need to clean.
Will the skill delete suspicious responses?
No. It only reads. It suggests what to do: tag the responses, hide them from reports, which can be undone, or delete them if you ask directly and confirm.
What do I need to use it?
A SurveyNinja account and an assistant that connects to MCP and loads skills from a folder, such as Claude Code, Codex, Cursor or Gemini CLI. Access goes through your own API key or "Allow access" in the assistant. The skill is plain text that runs nothing itself: your assistant does the work through the MCP server, with your permissions.
The full skill
The SKILL.md file the assistant reads, exactly as it is in the archive.
Show the full text
Can this data be trusted
Before building conclusions it is worth looking at what they are made of, especially if the survey was distributed for a reward or through an open link.
Reply to the person in the language they write in.
What to check
Too fast. Completed in less time than it takes to read the questionnaire.
Rule of thumb: at least five seconds per question; for ten questions, anything
under a minute is suspicious. The average time from get_quiz_summary helps set
the bar for this survey.
Flat-lined. The first option everywhere, one rating throughout, a whole matrix column.
Duplicates by contact. The same phone or email several times. Sometimes honest, a double submission by mistake, but in a rewarded survey it is cheating.
Junk text. "Aaa", "123", random letters in a required open field.
Contradictions. "Never used the service" followed by a detailed rating of it. Usually this means the display logic is wrong, not that the person lied.
Time spikes. Twenty submissions in a minute with an identical answer pattern.
How to collect
get_quiz_summary: how many completed, how many were screened out, the average time to complete.get_quiz_answerswithis_completetrue, paged withlimitandoffset: the submissions themselves with their start and end times and contacts, one trait at a time. Screened-out and hidden responses are not returned by default, which is right for this check.get_quiz_reportfor the distributions, andget_quiz_report_inputsfor the texts of one open question in the junk check.
How to present
Per trait: how many submissions match and what share of the total. Separately: how many submissions remain if all of it is removed, and how the key numbers change.
That last part matters most: if the conclusions hold after cleaning, there is no need to clean.
What to do with findings
Propose, do not act:
- Tag them with
tag_answer. The data stays, the doubtful ones are marked. The tool replaces the tags of a response, so keep the tags it already has. - Hide them from reports with
toggle_answer_visibility. The response stays in the list and can be brought back. - Delete them with
delete_quiz_answersonly on an explicit request and after confirmation. Moving to the trash can be undone; permanent deletion cannot.
Start with the first. For the next wave, the survey settings can limit one response per person and add a captcha or a password; mention it, do not change the settings without being asked.
What not to do
- Do not call low ratings and harsh comments junk. An unhappy respondent is not cheating.
- Do not delete anything yourself off the back of this check.
- Do not trim the sample toward a desired result.
- Do not suggest a plan upgrade or lead to payment. If a limit is hit or a feature is not on the plan, state the fact and stop.
More skills
All skills- Pre-launch check Finds what will break on real respondents while the link is still unsent
- Cleaning up responses Removes test runs and duplicates from your results and shows you the list before anything goes
- Lead quality Counts the people who left a contact you can actually use
- Survey results summary Answers "so what did the survey say" with figures and a conclusion instead of a raw export
- A/B variant analysis Tells you whether the difference between variants is real or just noise
- Comparing with past results Compares a survey with its own past, because one figure means little and a change says a lot
Connect SurveyNinja to your assistant
The MCP server works on every plan, Free included. Sign up, allow access and ask your assistant to build the first survey.
25 Questions for a Travel Agency Customer Satisfaction Survey