Reliability rework: leave 'New' faster, sharper reliable/unreliable split, four-stop create-game slider #851
Replies: 5 comments
|
@johnpooch what do you think of the above? If 90% is new, only 500 players have finished a game - and we're waiting for 10 games, it's a bit irrelevant - if all players are the same status. This adds a "neutral" state, and moves people way faster our of new. It also has a protector to move people quickly into a certain category - I think it's much much better. |
|
Comes out of the North Star reliability discussion #581 — this RFC is the concrete tier-system slice of that thread. |
|
Pulled fresh production numbers to sharpen the figures in the proposal. Confirming Among the 1,589 users who have ever joined a game:
So the "~90% in New" estimate is actually conservative — it's 98.4%, and only (Couldn't reconcile #581's "7.89% Reliable" with current code, which gives 0.57% of |
|
Worth seriously considering switching the rating unit from completed games to 1. It moves engaged players out of "New" far faster. A game can resolve in a
~23× more players cross the bar at the same headline number — and phases count 2. More denominator = less small-sample noise in the NMR rate, which is exactly The calibration caveat — the distribution of rated phases per user (users who have
There's a large one-and-done tail (median rated phases ≈ 1 across all members), so |
|
So I think we're in agreement here? Is there anything you want to discuss further? I think it's very good to add a 4th band.
We should not use reliable - it implies their character/trustworthiness. Alternatives could be
|
Uh oh!
There was an error while loading. Please reload this page.
Goal
Rework the reliability tier system so committed players leave "New" much faster and the Reliable/Unreliable split actually differentiates players. Today "New" means a player hasn't completed ~10 games — a year-plus of real-world play — and a single 10% NMR line lumps the improving majority in with serial abandoners. Move to a four-tier system (
unreliable < new < neutral < reliable) judged on order-phases rather than completed games, and surface it as a four-stop create-game slider.Definition of done
get_player_statsreturns one of four tiers:unreliable,new,neutral,reliable.newwithin a game or two of decisions rather than after ~10 completed games.reliable, repeated CDs forceunreliable— rather than being mixed into the per-phase rate.Game.min_reliabilitysupports four values corresponding to the slider stops Open / New / Neutral / Reliable;tier_allows_min_reliability, the join permission, and theeligible_onlygame-list filter all enforce them by tier rank, and an ineligible join is rejected.Context
Current logic lives in
service/user_profile/utils.py: the gate countsGameStatus.COMPLETEDgames and ignores in-progress ones, and a single0.1line separates reliable from unreliable against a population NMR rate around 40.9% — which is why only ~7.89% of players read as Reliable (see #581). The create-game control and its tier-cap behaviour are specified in #850, which this absorbs. Backend tier derivation needs to land before the four-stop slider can be wired, and calibration depends on the tier logic existing.All reactions