Bug Description
LeetCode rating is showing extremely large values (e.g. 3146352), which is actually the user's global ranking being displayed as contest rating.
Expected Behavior
Contest rating should show values between ~1000–2500 or "No rating" if user has not participated.
Actual Behavior
When contest rating is null, global ranking is incorrectly used as rating.
Root Cause (suspected)
Fallback logic in frontend/backend is mapping profile.ranking to contestRating.
Suggested Fix
- Do not fallback contestRating to globalRanking
- Keep rating and ranking strictly separate
Example
- Correct rating: 1650
- Incorrect displayed value: 3146352 (global rank)
Priority
High (data misrepresentation)

Bug Description
LeetCode rating is showing extremely large values (e.g. 3146352), which is actually the user's global ranking being displayed as contest rating.
Expected Behavior
Contest rating should show values between ~1000–2500 or "No rating" if user has not participated.
Actual Behavior
When contest rating is null, global ranking is incorrectly used as rating.
Root Cause (suspected)
Fallback logic in frontend/backend is mapping
profile.rankingtocontestRating.Suggested Fix
Example
Priority
High (data misrepresentation)