-- Ranked tier thresholds were compiled into every API binary -- (domain.DefaultTierPolicy), so retuning a band meant building and rolling a -- new image. Tier boundaries are a live-ops knob: they get adjusted as the -- rating distribution settles after launch, which is exactly when shipping a -- binary is least attractive. -- -- Bands stay backend-owned. Clients receive only the resulting tier label and -- never these thresholds, per docs/MATCHMAKING.md ยง6. CREATE TABLE tier_bands ( tier TEXT PRIMARY KEY, min_rating DOUBLE PRECISION NOT NULL, UNIQUE (min_rating) ); -- Seeded with the exact launch policy the binaries currently hardcode, so this -- migration changes durable state without changing behaviour. The loader falls -- back to the compiled default when this table is empty, so an operator can -- also truncate it to return to known-good defaults. INSERT INTO tier_bands (tier, min_rating) VALUES ('BRONZE', 0), ('SILVER', 1200), ('GOLD', 1500), ('PLATINUM', 1800), ('DIAMOND', 2200);