The .sav file.
The rare data file that arrives already documented. Exporting it to CSV throws that documentation away, which is why so many survey analyses average a 99.
Also .zsav, .por, which are read the same way.
What it actually is
An SPSS data file stores the values and the codebook together. Each variable has a label describing what the question actually asked, each coded value has a label describing what the code means, and specific values are declared as missing rather than merely being absent.
This is the difference between a column called Q7 holding a 5, and a column called "How satisfied were you with the response time" holding "Strongly agree". Both are in the file. Only one survives an export to CSV.
Compressed .zsav and portable .por files are the same data in different containers, and fold into this page. Stata's .dta carries the same kind of metadata and has its own page.
At a glance
- Carries
- Variable labels, value labels and declared missing codes
- Variable name limit
- 64 characters in modern files
- Missing values
- Declared per variable, often 99, 998 or blank
- Variants
- .zsav compressed, .por portable
- Read here as
- Direct. A 5 stays "Strongly agree" and a 99 stays missing.
- Status
- Ready
- Fidelity
- Read directly
- Largest file
- 250 MB
Variable labels, value labels and missing-value codes are all read, so a 5 stays “Strongly agree” and a 99 stays missing.
Upload one
The analysis runs before there is anything to pay for. You see what it found, and the evidence behind it, first.
No account needed to start. You only pay when you like what you see.
What goes wrong, and what is done about it
01
Missing codes averaged as data
A survey coding "prefer not to say" as 99 and "not applicable" as 98 produces a mean satisfaction score of 14 on a five-point scale if those codes are treated as numbers. The error is enormous, obvious in hindsight, and extremely common in files that were exported to CSV first.
Declared missing values are honoured as missing. A column whose distribution shows the signature of undeclared sentinel codes is flagged even where the file does not declare them.
02
Reverse-coded items averaged with the rest
A scale mixing "The service was fast" with "I had to wait too long" needs the second recoded before anything is averaged, or the two cancel each other out and the scale measures noise.
Polarity is inferred from the item wording in the variable labels and shown to you before anything is averaged, rather than being applied silently.
03
Multiple response sets that are not a single variable
A select-all question is stored as one binary variable per option. Treated as separate questions, the percentages do not sum to anything meaningful and every option looks like a minority view.
Related binary variables sharing a stem are detected as one multiple-response set and reported as a base of respondents rather than a base of responses.
If you have the choice, send something else
Send the .sav itself rather than an export. A CSV of the same data has lost the labels, the missing codes and the measurement level, and re-typing a codebook is both slow and where errors enter.
Questions people ask
Do I need SPSS installed?
No. The .sav file is read directly, including its variable labels, value labels and missing-value codes. Nothing about the analysis requires the software that produced it — and none of that codebook is lost the way it would be by exporting to CSV first.
What about partial responses?
They are kept at the last answered question by default, because discarding them silently removes the people most likely to be unhappy. How they were handled is stated, and reversing the decision is one instruction.
Will it tell me a difference is not significant?
Yes. A finding here is allowed to lose. Segments below thirty responses are reported as counts rather than percentages, because at that size one respondent moves a rate by more than the effect being measured.