What Is a .sav File? The SPSS Data Format Explained
A .sav file is the native data file of IBM SPSS Statistics. It holds your data table and, just as importantly, a dictionary describing it: variable names and labels, value labels such as 1 = "Strongly agree", missing-value codes, measurement levels and display formats. That metadata is why a .sav file is more useful than a CSV, and why you need a program that understands the format to open it properly.
Not every .sav file is an SPSS file, though. This guide explains how to tell, what's inside an SPSS .sav, how it differs from .zsav and .por, and which programs open it. It's written by the team behind TRTT, a statistics tool that reads and writes .sav files.
Two kinds of .sav files
The .sav extension is used by two unrelated kinds of file:
- SPSS data files, from surveys, experiments and research datasets. You'll get these from a course, a survey platform such as Qualtrics, or a data archive.
- Game save files, from console emulators and some PC games. These have nothing to do with statistics, and statistics software can't open them.
If the file came with an assignment, a survey export or a research project, it's an SPSS file. The rest of this guide is about those.
What's inside an SPSS .sav file
A .sav file is binary, so opening it in a text editor shows gibberish. Its structure is publicly documented, though, by the GNU PSPP project, whose description of the format lets free software read and write it. In outline, a file contains:
A header. The first four bytes identify the file: $FL2 for an ordinary .sav, $FL3 for the compressed .zsav variant. The header also records the number of cases, whether the data are compressed, which variable (if any) weights the cases, and a creation date and label.
The dictionary. One record per variable with its name, type (numeric or string), width and print and write formats (for example F8.2 for a number with two decimals, A20 for a 20-character string, or a date format). Around these sit:
- Variable labels, the longer descriptions such as "How satisfied are you with your job?".
- Value labels, which map codes to meanings: 1 = "Male", 2 = "Female", 9 = "No answer".
- Missing values, either specific codes (such as 9 or 99) or a range, that analyses should exclude. SPSS calls these user-missing values, to distinguish them from empty cells (system-missing).
- Display information: measurement level (nominal, ordinal, scale), column width and alignment.
- Extensions added over the years: long variable names (beyond the old eight-byte limit), very long strings (beyond 255 bytes), multiple-response sets, custom variable and file attributes, and the character encoding.
- Documents, free-text notes stored with the file.
The data. After the dictionary come the values, case by case. Most .sav files use a simple byte-level compression that stores common small whole numbers in a single byte, which keeps survey files compact.
The result is a self-describing file. Hand a .sav to a colleague and they see "Strongly agree" rather than "5", and their analyses skip the "Don't know" codes automatically.
.sav vs .zsav vs .por
SPSS can save data in three of its own formats. IBM's documentation describes them like this:
| .sav | .zsav | .por | |
|---|---|---|---|
| What it is | Standard SPSS data file | Compressed SPSS data file | Portable text-based SPSS file |
| Compression | Usually byte-level | ZLIB, smaller on disk | None |
| Encoding | Code page or Unicode | Always UTF-8 | No Unicode |
| Variable names | Long names (version 12+) | Long names | Limited to 8 bytes |
| Which SPSS can open it | Version 7.5+ (Unicode files 16+) | Version 21+ only | Any version, any operating system |
| Typical use | Everyday work and sharing | Very large files | Legacy exchange between systems |
In practice, .sav is what you'll almost always see. A .zsav file has the same features, just smaller, but older software and some tools don't accept it. A .por file is an older exchange format that you'll mostly find in older data archives. Because .por can't store long names or Unicode, converting a modern file to .por loses information.
Why the metadata matters
Exporting a .sav file to CSV or Excel keeps the numbers but drops most of the dictionary. Variable labels, value labels, missing-value definitions, measurement levels and formats either disappear or become plain text you have to reinterpret. A column of 1s and 2s without its labels is easy to misread, and a 99 that should have been treated as missing will quietly distort a mean.
That's why it's worth keeping the .sav file as your master copy and exporting only when another program needs CSV or Excel. When you do export, choose deliberately between values and labels. Our guide to converting .sav to CSV or Excel explains the trade-offs.
Opening and editing a .sav file
You don't need SPSS to open a .sav file. These programs read the format, metadata included:
| Program | Cost | .sav | .zsav | .por |
|---|---|---|---|---|
| IBM SPSS Statistics | Paid (14-day trial) | Read and write | Read and write (version 21+) | Read and write |
| PSPP | Free | Read and write | See PSPP documentation | See PSPP documentation |
| R with haven | Free | read_sav, write_sav |
Read and write | read_por |
| Python with pyreadstat | Free | Read and write | Read | Read |
| JASP | Free | Open | Open | Open |
| jamovi | Free | Open | See jamovi documentation | See jamovi documentation |
| TRTT | Free on the web; iOS app free up to 100 cases | Open, edit, save | Not accepted by the file dialogs yet | Not supported |
A note on TRTT, since we make it: it opens .sav files in a desktop browser at trtt.app or in the iPhone and iPad app, shows them in Data View and Variable View, and lets you edit values, labels, missing values and formats before saving back to .sav. Variable labels, value labels, missing-value codes and ranges, measurement levels, long names, very long strings and multiple-response sets are preserved; new files are saved in UTF-8. You can also import CSV and Excel files and export data to CSV or XLSX, with either values or labels. On the web the calculations run on your own computer and the file isn't uploaded. The iOS app is free for data sets up to 100 cases, with an optional Pro upgrade for larger files; prices are shown in the app.
For step-by-step instructions with each program, see how to open a .sav file without SPSS. On a phone or tablet, see how to open a .sav file on iPhone or iPad.
Open a .sav file in TRTT – free
FAQ
What program opens a .sav file?
IBM SPSS Statistics, and free programs including PSPP, jamovi, JASP and TRTT, plus R (haven) and Python (pyreadstat). If the .sav file is a game save, you need the game or emulator that created it instead.
Can I open a .sav file in Excel?
Not directly. Excel doesn't read the SPSS format, so convert the file to CSV or XLSX first with a program that does, and decide whether you want codes or value labels in the cells.
What is the difference between .sav and .zsav?
Both are SPSS data files with the same features. A .zsav file uses ZLIB compression, so it's smaller, is always encoded in UTF-8, and can only be opened by SPSS version 21 or later and by tools that support it.
Is a .sav file the same as an .spv file?
No. A .sav file holds data; an .spv file holds SPSS output, meaning the tables and charts produced by analyses, as shown in the SPSS Viewer.
Can I edit a .sav file without SPSS?
Yes. PSPP, R, Python and TRTT can all change data or metadata and write a new .sav file. Keep a backup of the original before editing.
TRTT is an independent product. It is not affiliated with or endorsed by IBM. IBM and SPSS are trademarks of International Business Machines Corporation.