Skip to content

Clamp minimum ranked play rating - #539

Merged
peppy merged 1 commit into
ppy:masterfrom
smoogipoo:rp-clamp-min-rating
Oct 2, 2026
Merged

peppy merged 1 commit into
ppy:masterfrom
smoogipoo:rp-clamp-min-rating

Conversation

@smoogipoo

@smoogipoo smoogipoo commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

See: https://discord.com/channels/90072389919997952/1476979671886205060/1553530746323599413

Once this is deployed, we should also run an UPDATE statement to fix existing rows in the database. It would probably go something like this:

UPDATE matchmaking_user_stats
SET elo_data = JSON_SET(elo_data, '$.approximate_posterior.mu', GREATEST(600, CAST(elo_data->'$.approximate_posterior.mu' AS SIGNED)))
WHERE pool_id IN (38, 39, 40, 41, 42);

@pacowoc

pacowoc commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

This can create rating inflation long term especially if those players continue to intentionally throw.

A better implementation will be to display and matchmake using max() and keep an underlying hidden real uncapped elo for rating gain/loss calculations.

@smoogipoo

Copy link
Copy Markdown
Contributor Author

I don't think that's a valid concern. Rating inflation for who, exactly? A 600 rating player is never going to be matched up vs a 2400 rating player.

On the contrary, I think that there's good argument for not soft-clamping, which is that, while your rating is <600, you will never see any sort of in-game progression. Or it would be some weird implementation where you have to work harder to raise your rating from 0-600 than from 600-700 and enter into the next tier.

@peppy
peppy merged commit 1b73eb8 into ppy:master Oct 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants