1. A method performed by data processing apparatus, the method comprising: receiving data describing, for each resource in a set of resources ordered in ordinal positions and to be provided to a user device: a first rank value of the resource relative to first ranks of other resources in the set and defining an ordinal position of the resource relative to the other resources in the set; and a feature list that describes features of the resource, each feature being an identified attribute of the resource; determining relative to first ranks of other resources that a resource with a particular first rank value has a finalized ranking and that other resources in the set do not have a finalized ranking; determining, relative to other ordinal positions, for each feature of the resources with a finalized ranking, a particular ordinal position of a resource with a finalized ranking that has the feature; selecting resources not having a finalized ranking, the selections in a directional order of the ordinal positions, and for each selection determining whether to finalize the ranking of the resource or to demote the resource; in response to determining to demote the resource, demoting the resource to a demoted ordinal position relative to an ordinal position of another resource having a finalized ranking and a feature matching a feature of the resource; in response to determining to finalize the ranking of the resource: finalizing the ranking of the resource so that it is subsequent in ordinal position to a resource for which the ranking was previously finalized; and determining, relative to other ordinal positions for each feature of the resources with a finalized ranking, a particular ordinal position of a resource with a finalized ranking that has the feature; providing, to the user device, at least one of the resources according to the finalized ranking.