PERCENT_RANK() measures relative rank.
Formula:
(rank - 1) / (number_of_rows - 1)
It ranges from 0 to 1 when there is more than one row.
CUME_DIST() tells you the proportion of rows whose ordering value is less than or equal to the current row's value.
Simple difference:
> PERCENT_RANK = position based on rank > CUME_DIST = percentage of rows at or below this value
Ties can make their results noticeably different.