SPSS command: SPSS RANK
Rank cases and compute normal scores
Rank Cases turns a numeric variable into ranks and rank-based scores as new variables.
Free · No account · Files stay on your device · Updated 18 October 2026
What it tells you
Crosstabs implements the SPSS RANK procedure: eight rank types, four tie rules, Blom, Tukey, Rankit or Van der Waerden proportion estimates, optional ranking within groups and frequency weights, all as a preview and download that never changes your data.
- Each case's rank, with ties resolved by the mean, low, high or sequential rule.
- Which quantile group a case falls into (NTILES), for quartiles, deciles or any number of groups.
- Fractional ranks and percentages: the share of cases at or below each value.
- Normal scores (rank-based inverse normal transform) and Savage scores (expected exponential order statistics).
When to use it
Use it when
- Creating quartile or decile groups from a scale variable, for example spend tiers.
- A rank-based inverse normal transformation of a skewed variable before a parametric analysis.
- Percentile ranks within groups, such as a student's standing within their class.
Use something else when
- To test differences between groups on ranks: the Mann-Whitney U and Kruskal-Wallis tests rank the data for you.
- To cut a variable at points that best predict an outcome: use Optimal Binning.
How to run it in Crosstabs
- 01
Open your data
Open a .sav, CSV or Excel file in the workspace and switch to Statistics mode.
- 02
Choose Rank Cases
In the Utilities and charts group pick Rank Cases and tick the Variables to rank.
- 03
Pick the rank types
Under Rank types tick Rank, NTILES, Fractional rank, Fractional rank as %, Sum of case weights, Proportion estimate, Normal score and/or Savage score.
- 04
Set ties, order and groups
Choose By group (optional), Ties (Mean is the SPSS default), Proportion estimation (Blom by default), Number of NTILES groups (default 4) and Order (smallest or largest value gets rank 1).
- 05
Run and download
Declare an active weight as frequency or sampling (ranks use frequency weights only), press Run, then Download data with new variables (CSV).
Worked example
Computed by the Crosstabs engine from the synthetic data below when this page was built — not typed in.
Data
Twelve exam scores typed as a small table, with three students tied on 85 and two on 77. Smallest value gets rank 1, ties get the mean rank, and proportion estimates use Blom.
| Case | score | Rscore | NTIscore | PROscore | NORscore | SAVscore |
|---|---|---|---|---|---|---|
| 1 | 71 | 5.0 | 2 | 0.3776 | −0.3119 | −0.4896 |
| 2 | 85 | 9.0 | 3 | 0.7041 | 0.5362 | 0.2977 |
| 3 | 64 | 3.0 | 1 | 0.2143 | −0.7916 | −0.7258 |
| 4 | 85 | 9.0 | 3 | 0.7041 | 0.5362 | 0.2977 |
| 5 | 92 | 12.0 | 4 | 0.9490 | 1.6350 | 2.1032 |
| 6 | 58 | 1.0 | 1 | 0.0510 | −1.6350 | −0.9167 |
| 7 | 77 | 6.5 | 3 | 0.5000 | 0.0000 | −0.2635 |
| 8 | 85 | 9.0 | 3 | 0.7041 | 0.5362 | 0.2977 |
| 9 | 69 | 4.0 | 2 | 0.2959 | −0.5362 | −0.6146 |
| 10 | 77 | 6.5 | 3 | 0.5000 | 0.0000 | −0.2635 |
| 11 | 88 | 11.0 | 4 | 0.8673 | 1.1139 | 1.1032 |
| 12 | 61 | 2.0 | 1 | 0.1327 | −1.1139 | −0.8258 |
R = rank, NTI = NTILES(4), PRO = proportion estimate (Blom), NOR = normal score, SAV = Savage score.
How to read it
The three scores of 85 occupy ranks 8, 9 and 10, so each receives the mean rank 9.0 and the same quartile group (3). The top score of 92 gets rank 12.0, a Blom proportion of 0.9490 and a normal score of 1.6350, the value a standard normal variable would take at that position.
Output tables explained
- New Variables (first 25 cases)
- The source values and every new variable for the first 25 cases, named with the SPSS prefixes (R, NTI, RFR, PER, N, PRO, NOR, SAV) plus the source name; footnotes record the tie rule and proportion formula.
- Download data with new variables (CSV)
- The full dataset with the new rank columns appended, for use elsewhere; the workspace dataset itself is unchanged.
Assumptions and notes
- System- and user-missing values get no rank and do not count toward the totals.
- With a frequency weight, ranks are built from cumulative case weights, so a case with weight 3 occupies three rank positions.
- Normal scores are only as normal as ties allow: many tied values produce repeated scores.
How the results are validated
RANK is checked against an independent implementation of the SPSS RANK formulas cross-checked with scipy.stats.rankdata. All eight rank functions agree to 1e-12 for every reference case, covering weighted and unweighted data, ascending and descending order, the four tie rules and the four proportion formulas. Validation evidence
Questions
Which tie rule should I use?
Mean (the SPSS default) gives tied cases the average of the ranks they occupy and is what most tests assume. Low and High give the smallest or largest of those ranks; Sequential ranks to unique values numbers distinct values 1, 2, 3 without gaps.
Blom, Tukey, Rankit or Van der Waerden?
They differ only in the proportion formula: Blom (r − 3/8)/(n + 1/4), Tukey (r − 1/3)/(n + 1/3), Rankit (r − 1/2)/n, Van der Waerden r/(n + 1). Blom is the SPSS default and differences are small except in the tails of small samples.
How are NTILES assigned?
As in SPSS, group = floor(rank × K / (N + 1)) + 1 for K groups, so tied cases always share a group and groups can be uneven when there are many ties.
Is my original variable changed?
No. New variables are shown in a preview and included in the CSV download; the workspace dataset is not modified.
Related procedures
- Optimal BinningOPTIMAL BINNING
- DescriptivesDESCRIPTIVES
- P-P and Q-Q PlotsPPLOT
- Mann-Whitney U TestNPAR TESTS /M-W
- FrequenciesFREQUENCIES
- Free SPSS alternative: full coverage list
Run Rank Cases on your own data
Open a .sav, CSV or Excel file. Everything runs in your browser; the file never leaves your device.
SPSS is a trademark of IBM Corp. Crosstabs is not affiliated with or endorsed by IBM.