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

  1. 01

    Open your data

    Open a .sav, CSV or Excel file in the workspace and switch to Statistics mode.

  2. 02

    Choose Rank Cases

    In the Utilities and charts group pick Rank Cases and tick the Variables to rank.

  3. 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.

  4. 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).

  5. 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.

New Variables (first 25 cases)
CasescoreRscoreNTIscorePROscoreNORscoreSAVscore
1715.020.3776−0.3119−0.4896
2859.030.70410.53620.2977
3643.010.2143−0.7916−0.7258
4859.030.70410.53620.2977
59212.040.94901.63502.1032
6581.010.0510−1.6350−0.9167
7776.530.50000.0000−0.2635
8859.030.70410.53620.2977
9694.020.2959−0.5362−0.6146
10776.530.50000.0000−0.2635
118811.040.86731.11391.1032
12612.010.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.

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.

Open the workspace

SPSS is a trademark of IBM Corp. Crosstabs is not affiliated with or endorsed by IBM.