Valorant’s ranked ladder looks simple on the surface: nine tiers, a number that goes up when you win. In practice, most players have no idea why they gained 11 RR on a win and lost 24 on the next loss, or why a five-game placement run can drop them two tiers below where they finished last act. As of July 2026 (V26 Act 4), the ladder still runs Iron through Radiant across 25 distinct ranks, according to rank-distribution data compiled by Esports Tales and valorantranks.com. What changed over the past year isn’t the tier list, it’s the tuning underneath it: how Ranked Rating (RR) and hidden Matchmaking Rating (MMR) talk to each other, and how aggressively Riot pushes your visible rank toward your real skill level.
This tutorial does two things at once. First, it walks through exactly how the 2026 rank system works, tier by tier, RR band by RR band, so you stop guessing. Second, it shows you how to build a small personal rank tracker in Python that logs your RR after every match, stores it in a CSV file, and plots your climb over time, so your decisions about when to queue, when to duo, and when to stop for the night are based on your own data instead of vibes. By the end you’ll have a working project you can run on a schedule and a much clearer read on where you actually stand.
Prerequisites: What You Need Before You Start
You don’t need to be a programmer to follow along, but you do need a working setup. Here’s the full list before you touch a keyboard command:
- Valorant installed and a competitive account with at least 20 unrated matches played (Riot requires this before ranked unlocks)
- Your exact Riot ID and tag (the part after the # in your name, e.g. Player#NA1)
- Python 3.11 or newer installed (check with
python3 --version) - pip, Python’s package manager, which ships with modern Python installs
- A code editor or even a plain text editor (VS Code, Sublime, or Notepad++ all work)
- About 30 minutes for the initial setup, then near-zero maintenance
- A stable internet connection, since the tracker calls a stats API after each match
None of the code below touches your game files or violates Riot’s terms of service. It only reads publicly available match and rank data tied to your own account, the same data tracker sites display on your profile page. If you’d rather skip the coding portion entirely, everything from Step 1 through Step 3 and Step 10 through the FAQ still works as a standalone strategy guide, and you can pick the project back up later once you’re curious about the automated version.
Step 1: Memorize the Full 25-Rank Ladder
Valorant runs 9 competitive tiers: Iron, Bronze, Silver, Gold, Platinum, Diamond, Ascendant, Immortal, and Radiant. Every tier except Radiant splits into three divisions, giving you 25 total ranks from Iron 1 at the bottom to Radiant at the top, a structure that has held steady through 2025 and into mid-2026 with no new tiers added, based on tracking from valorantranks.com. Radiant isn’t a normal rank at all. It’s a hard-capped leaderboard position, roughly 500 players per region, which means climbing into it is a fight for a seat, not a stat threshold.
Here’s where the playerbase actually sits, based on July 2026 (V26 Act 4) distribution data from Esports Tales:
| Tier | Divisions | Share of Players (Jul 2026) | Rough Skill Level |
|---|---|---|---|
| Iron | 1–3 | 4.43% | Learning the fundamentals |
| Bronze | 1–3 | 13.28% | Below-average mechanics |
| Silver | 1–3 | 18.60% | Median of the playerbase |
| Gold | 1–3 | 22.41% | Solid core mechanics |
| Platinum | 1–3 | 19.66% | Above-average coordination |
| Diamond | 1–3 | 13.16% | High-level aim and strategy |
| Ascendant | 1–3 | 6.96% | Bridge to elite tiers |
| Immortal | 1–3 | ~1.4% | Top 1–2% of players |
| Radiant | None (leaderboard) | ~0.03% | Top ~500 per region |
Two things jump out. Gold and Platinum together hold over 40% of the ranked population, so most of the grind happens in that congested middle band. And Immortal to Radiant is a cliff, not a slope: you go from roughly 1.4% of players down to 0.03% in a single step. That’s why so many strong Immortal players never see Radiant. It isn’t just about RR, it’s about beating out everyone else fighting for the same 500 seats.
Step 2: Understand How RR and MMR Actually Interact
Ranked Rating is the number you see. MMR is the number the matchmaker actually uses, and it’s hidden. Every rank division is a 100-RR band: hit 100 RR in your current division and you promote, drop below 0 and you demote. The part players miss is that RR gain and loss per match isn’t fixed. According to Esports Talk’s 2026 breakdown of the system, typical swings run roughly ±15 to 25 RR per match, and the size of that swing depends on how far your visible rank sits from your hidden MMR.
If your MMR is higher than your displayed rank, wins pay out more RR and losses cost you less, because the system is trying to correct your rank upward to match your real skill. If your MMR is lower than your rank, the opposite happens: you gain less on wins and lose more on losses until the two numbers converge. This is why a player can go on a five-game win streak and only climb half a tier, while another player jumps two divisions off three wins. They’re not the same distance from their MMR.
Do the math on a full climb and the scale becomes clear: going from Iron 1 to Radiant means crossing 24 divisions at 100 RR each, or 2,400 RR worth of net progress, then out-surviving everyone else fighting for a leaderboard slot at the top. That’s not a weekend project for the vast majority of players, and understanding the RR band structure is what stops the climb from feeling random.
The table below breaks down how the MMR-to-rank gap actually changes your experience match to match, based on the mechanics documented in Esports Talk’s 2026 system breakdown and Riot’s own competitive FAQ:
| MMR vs. Displayed Rank | Effect on Wins | Effect on Losses | What It Feels Like |
|---|---|---|---|
| MMR well above rank | Larger RR gains | Smaller RR losses | Rank climbs quickly to “catch up” to true skill |
| MMR roughly matches rank | Standard swing (~15-25 RR) | Standard swing (~15-25 RR) | Steady, predictable climb tied closely to win rate |
| MMR below rank | Smaller RR gains | Larger RR losses | Rank drifts down to “catch down” to true skill |
| Fresh placement match | Weighted toward MMR, not raw W/L | Weighted toward MMR, not raw W/L | Can jump or drop multiple divisions at once |
| Radiant leaderboard window | RR sets your exact leaderboard slot | Inactivity lets others overtake your slot | Feels like decay even without literal RR loss |
The takeaway is the same one Riot Games has repeated across its own competitive documentation: RR is a display mechanism chasing your MMR, not an independent scorekeeper. Win rate still matters enormously, but it’s win rate relative to how the system currently sees your skill, not win rate in a vacuum.
Step 3: Decode Your Career Tab and Placement Matches
Open your Career tab in the client and you’ll see your current rank, your RR within that division, and a match history with per-game RR changes. Placement matches, five competitive games at the start of each new episode or after a long ranked break, work differently. Riot leans heavily on your existing MMR and in-match performance during placements rather than pure win/loss, according to Riot’s own competitive documentation. That’s why a player can go 3-2 in placements and land two tiers above their previous act, or go 4-1 and land in roughly the same spot: MMR carries more weight than the raw record during that window.
Check your Career tab after every session before you draw conclusions about your climb. A single bad loss streak late at night can misrepresent your real trend if you’re only looking at your rank badge and not the RR history underneath it. That’s the gap the tracker you’re about to build fills.
Understanding Episodes, Acts, and Rank Resets in 2026
Valorant’s competitive calendar runs in episodes, broken into acts that typically last several weeks, and the current environment for July-August 2026 ranked stats is labeled V26 Act 4 in third-party tracking. Each new act, and more significantly each new episode, triggers a soft rank reset: your rank badge gets pulled back and hidden until you complete a fresh set of five placement matches. Riot doesn’t wipe your underlying MMR when this happens, it just resets the visible display, so a strong Diamond player usually places back into a similar band within a game or two of placements, not back at Iron.
This is where a lot of players misread their own progress. If your tracker shows you landing in Platinum 2 after placements when you finished the prior act in Diamond 1, that’s not automatically a sign you got worse. It’s more often a sign the placement algorithm is giving your recent performance heavier weight than your season-long average, or that a shorter break between acts meant fewer placement games to fully resolve where your MMR actually sits. Give it 10-15 ranked matches post-reset before treating your placement rank as an accurate read.
Outside of act transitions, standard rank decay barely touches most of the ladder. Iron through Diamond players who take a break don’t lose RR just for being away. The practical exception sits at the top: Immortal and Radiant players who go inactive can watch their leaderboard position slide as more active players climb past them, which behaves like decay even though nothing is technically being subtracted from their account while they’re offline.
Step 4: Install Python and Set Up Your Project Folder
Open a terminal (Terminal on macOS/Linux, PowerShell or Command Prompt on Windows) and create a dedicated folder for the project. Using a virtual environment keeps this project’s packages separate from anything else on your machine.
mkdir valorant-rank-tracker
cd valorant-rank-tracker
python3 -m venv venv
# Activate the virtual environment
# macOS / Linux:
source venv/bin/activate
# Windows (PowerShell):
venv\Scripts\Activate.ps1
pip install requests pandas matplotlib
Three packages, three jobs: requests pulls data from the stats API, pandas handles the CSV log, and matplotlib draws the RR chart in Step 9. If the install finishes without red error text, you’re ready for the next step.
Step 5: Get Access to a Community Stats API
Riot doesn’t expose a public ranked-stats endpoint for casual use, so tracker sites and this kind of personal project typically go through a community-run stats API. These services aggregate publicly viewable match and rank data and hand it back as clean JSON, and most require a free API key you register for on their site before you can make requests. Sign up, grab your key, and test it with a plain curl call before writing any Python:
curl -s "https://your-chosen-stats-api.example/v3/mmr/na/pc/YourRiotName/YourTag" \
-H "Authorization: YOUR_API_KEY"
Replace the domain with whichever community API you registered with, swap in your region (na, eu, ap, kr, or latam), and use your exact Riot name and tag. Most of these services publish a free tier with a modest per-minute request cap, which is more than enough for a personal tracker that checks in every 15-30 minutes rather than polling continuously. Keep your API key out of any code you share publicly, treat it the same way you’d treat a password, since a leaked key on a public repository is the most common way people get their free-tier access revoked. A working call returns something like this:
{
"status": 200,
"data": {
"current_data": {
"currenttierpatched": "Ascendant 2",
"ranking_in_tier": 47,
"mmr_change_to_last_game": 22
},
"highest_rank": {
"patched_tier": "Immortal 1",
"season": "v26a3"
}
}
}
ranking_in_tier is your current RR inside the displayed division. mmr_change_to_last_game is exactly the swing described in Step 2. Once this curl call returns real data instead of an error, you’re ready to wire it into Python.
Step 6: Write the RR Logger Script
Create a file called rank_logger.py in your project folder. This script calls the API, pulls out your current tier and RR, and prints a confirmation line. It’s deliberately small so you can read every line of it.
import requests
import csv
import os
from datetime import datetime
API_KEY = "YOUR_API_KEY"
REGION = "na"
RIOT_NAME = "YourRiotName"
RIOT_TAG = "YourTag"
LOG_FILE = "rr_history.csv"
def fetch_rank():
url = f"https://your-chosen-stats-api.example/v3/mmr/{REGION}/pc/{RIOT_NAME}/{RIOT_TAG}"
headers = {"Authorization": API_KEY}
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
return response.json()["data"]["current_data"]
def log_rank(data):
file_exists = os.path.isfile(LOG_FILE)
with open(LOG_FILE, "a", newline="") as f:
writer = csv.writer(f)
if not file_exists:
writer.writerow(["timestamp", "tier", "rr", "rr_change"])
writer.writerow([
datetime.now().isoformat(timespec="seconds"),
data["currenttierpatched"],
data["ranking_in_tier"],
data.get("mmr_change_to_last_game", "")
])
if __name__ == "__main__":
rank_data = fetch_rank()
log_rank(rank_data)
print(f"Logged: {rank_data['currenttierpatched']} - {rank_data['ranking_in_tier']} RR")
Run it with python3 rank_logger.py. A successful run prints something like:
Logged: Ascendant 2 - 47 RR
Run it a second time and check the folder. You now have a rr_history.csv file with one row per run.
Step 7: Store Match History in a CSV Database
The script above already writes to CSV, but it’s worth understanding why that format beats a spreadsheet you update by hand. A CSV file is plain text, so it opens in Excel, Google Sheets, or pandas without conversion, and it’s trivial to back up or sync. After a week of consistent runs, your file looks like this:
timestamp,tier,rr,rr_change
2026-08-10T19:02:11,Ascendant 1,88,18
2026-08-10T21:47:33,Ascendant 2,10,22
2026-08-11T20:15:02,Ascendant 2,31,21
2026-08-12T22:03:47,Ascendant 1,94,-23
2026-08-13T19:44:19,Ascendant 2,3,29
That’s already more useful than the Career tab alone, because you can see the exact RR swing per session instead of just today’s badge. Open it in pandas anytime with pandas.read_csv("rr_history.csv") if you want to slice it further, filter by date, or merge it with your own notes on which agent or role you played that session.
Step 8: Automate the Logger on a Schedule
Running the script by hand after every match works, but automating it removes the temptation to skip logging on a losing session, which is exactly when the data matters most. On macOS or Linux, add a cron entry:
# Open your crontab
crontab -e
# Run every 30 minutes, log output to a file
*/30 * * * * /path/to/valorant-rank-tracker/venv/bin/python /path/to/valorant-rank-tracker/rank_logger.py >> /path/to/valorant-rank-tracker/logger.log 2>&1
On Windows, use Task Scheduler from PowerShell instead:
schtasks /create /tn "ValorantRankLogger" /tr "C:\path\to\valorant-rank-tracker\venv\Scripts\python.exe C:\path\to\valorant-rank-tracker\rank_logger.py" /sc minute /mo 30
Every 30 minutes is a reasonable default. Go tighter than that and you risk hitting the API’s rate limit, which the troubleshooting section below covers.
Step 9: Plot Your RR Curve With Matplotlib
Numbers in a CSV are useful, but a chart shows the trend at a glance. Create rr_plot.py:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("rr_history.csv", parse_dates=["timestamp"])
plt.figure(figsize=(10, 5))
plt.plot(df["timestamp"], df["rr"], marker="o", linewidth=1.5)
plt.title("RR Progress Over Time")
plt.xlabel("Date")
plt.ylabel("RR in Current Division")
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig("rr_progress.png")
print("Chart saved to rr_progress.png")
Run python3 rr_plot.py and open rr_progress.png. A genuinely improving player shows a jagged line that trends upward across weeks even with regular dips. A player stuck at the same MMR shows a flat, oscillating line that never breaks past a ceiling, no matter how many sessions they log. That distinction is hard to see from memory alone and obvious the moment it’s on a chart.
Step 10: Tune Crosshair, Sensitivity, and Video Settings for Consistency
Mechanical consistency matters as much as the tracking, since a config that changes between sessions muddies your own data. Valorant crosshairs use a shareable code you paste directly into Settings > Crosshair > Import Profile Code:
0;P;c;1;o;1;f;0;m;0;0t;1;0l;3;0o;2;0a;1;0f;0;1b;0
That’s a small, low-clutter crosshair (thin lines, no outline glow, tight center dot) that many competitive players use as a starting point before adjusting to taste. Lock your sensitivity once and don’t touch it between sessions while you’re tracking RR trends, since a sensitivity change mid-log makes it impossible to tell whether a dip in performance came from mechanics or from matchmaking variance. The same logic applies to video settings: pick a frame cap and resolution your hardware holds steady, and leave it alone for the duration of your tracking period.
Step 11: Read Your Data to Plan Queue Times and Duo Strategy
Once you have two or three weeks of logged data, look for patterns tied to time of day, party size, and role. Group your CSV rows by hour using pandas and you’ll often find your RR gain per session is meaningfully higher during off-peak hours in your region, when lobbies skew toward players closer to your actual MMR rather than the widest possible pool. If you regularly duo with a friend two tiers above you, check whether your solo sessions and duo sessions show different average RR swings. A friend who’s much higher MMR can pull you into tougher lobbies than your rank alone would generate, which shows up in the data as bigger losses even on games you play well.
This is also where role consistency pays off. Players who lock a primary role (duelist, controller, sentinel, initiator) tend to show steadier RR curves in tracked data than players who flex every game, simply because performance variance drops when you’re not relearning a kit mid-climb.
Step 12: Break Into Immortal and Fight for the Radiant Leaderboard
Immortal still uses the standard RR-band system across its three divisions, but Radiant works differently: it’s a live leaderboard capped at roughly 500 players per region, so entering it means clearing an RR threshold high enough to sit inside that top-500 window, not just hitting a fixed number. Staying there is its own fight. Riot’s leaderboard mechanics mean inactive Radiant players get pushed down and eventually out as other players overtake them with higher RR, which functions like decay even though the label isn’t literal decay. If your tracker shows your RR holding steady while your visible leaderboard rank slips, that’s exactly what’s happening: the players around you are climbing while you’re standing still.
Practically, that means the closer you get to Immortal 3, the more your tracked data should shift from “am I gaining RR” to “am I gaining RR faster than the players near me.” A flat RR log at Immortal 3 isn’t neutral once you’re chasing a leaderboard spot, it’s a slow slide.
Role and Agent Strategy for Each Rank Band
Your tracker will surface something most players never test directly: which role actually produces your best RR trend. In Iron through Silver, individual mechanics decide most rounds, so duelists and aggressive entry agents tend to generate the fastest personal climb simply because raw aim and space-taking win more rounds than coordinated setups at that level. By Gold and Platinum, where over 40% of the playerbase is packed together according to the July 2026 distribution figures, coordination starts mattering more. Controllers and initiators who can set up trades and deny information often show steadier RR curves here than duelists whose success depends heavily on teammates following up.
From Diamond upward, the picture flips again. Lobbies get smaller, communication improves, and a flex player who can fill whatever role a five-stack is missing becomes genuinely more valuable than a one-trick specialist, since queue times and team composition start affecting whether you get a comfortable matchup at all. If your CSV notes column shows your best RR sessions consistently line up with one particular agent or role, that’s not a coincidence worth ignoring. Lock it in as your primary until the data tells you otherwise, and treat off-role games as deliberate practice rather than ranked grinding.
How 2026’s Player Base Compares to Prior Years
Context helps here, since a rank means something different in a shrinking or growing playerbase. Estimates for 2026 vary by methodology and month, which is normal for third-party player-count tracking, but the range is informative:
| Source | Metric | Figure | Period |
|---|---|---|---|
| ActivePlayer.io | Monthly active players | 29.9 million | April 2026 |
| ActivePlayer.io | Monthly active players (peak) | 33.17 million | March 2026 |
| Tracker Network | Monthly active players | 29.4 million | April 2026 |
| Quantumrun | Daily active users | 3.9 million average | February 2026 |
| Esports Aus | Monthly active users (estimated range) | 30-35 million | 2026 |
Whichever estimate you trust most, the shape is consistent: tens of millions of monthly players competing across the same 25-rank ladder, with the Gold-to-Platinum band absorbing the largest single chunk of that population based on the July 2026 distribution figures above. That’s useful context for why the middle of the ladder feels so contested, it’s not your imagination, it’s where the density actually is.
Smurfing and Why New Accounts Correct So Fast
If you’ve ever faced a Bronze-ranked account that plays like an Immortal player, you’ve run into a smurf, an experienced player queuing on a new or low-level account. Riot has continued adjusting how quickly a new account’s MMR moves toward its true level through 2025 and into 2026, tightening the correction so smurfs get pushed into harder lobbies faster than they used to. That’s cold comfort in the exact match you’re currently losing to one, but it’s useful context for your own tracker: if you’re a genuinely new player and your RR chart shows unusually large early swings, that’s the correction system working as intended, not a bug.
The same correction logic applies in reverse to returning players. If you took a long break and came back after a season or two away, expect your first placement matches to swing harder than normal while the system re-establishes where your MMR actually sits relative to a playerbase that’s kept climbing without you. Don’t read too much into your very first few logged sessions after a long layoff. Give the tracker at least a week of data before trusting the trendline.
Common Pitfalls When Climbing Valorant Ranks
These show up again and again in tracked RR data, and most are fixable once you can see them:
- Confusing visible rank with MMR. Your badge is a display layer. Two Gold 2 players can have very different hidden MMR, which is why one gains 24 RR on a win and the other gains 12 for what looks like the same result.
- Tilt-queuing after a loss streak. RR losses tend to compound when performance drops from frustration, and the tracker will show this clearly as a steep multi-game dip that starts right after a bad round, not a bad match.
- Duo queuing with a much higher-MMR friend. This inflates your lobby difficulty beyond what your rank alone would generate, and it’s one of the most common causes of a flat or negative RR trend despite decent individual play.
- Treating placement matches like normal games. Because MMR carries extra weight during placements, judging your form off a 2-3 placement run is misleading. Wait for 10-15 ranked games post-reset before drawing conclusions.
- Ignoring role balance in solo queue. Five duelists in a lobby lose more often than a balanced comp, and constantly flexing away from your best role adds noise to your RR data that has nothing to do with matchmaking.
- Overpolling the stats API. Running your logger every minute instead of every 30 doesn’t get you better data, it gets you rate-limited, covered in the troubleshooting section below.
Troubleshooting Your Rank Tracker and Climb
Here’s what to check when either the script or your climb stalls. Work through these roughly in order, since the first few catch the most common setup mistakes before you assume something deeper is wrong:
- API returns 401 or 403. Your API key is invalid, expired, or missing from the request header. Re-generate it from your API provider’s dashboard and confirm the header format matches their docs exactly.
- API returns 429. You’re rate-limited. Space out requests to every 15-30 minutes and add a short delay in your script if you’re calling it in a loop.
- Script can’t find your account (“player not found”). Riot IDs are case-sensitive in some APIs and the tag must exclude the # symbol in the URL. Double-check for typos in both name and tag.
- RR shows as 0 or missing right after an act reset. This is expected. Your rank shows “unranked” or a provisional tier until you complete your five placement matches for the new episode.
- Career tab shows your old rank after a promotion. This is usually a client cache issue. Fully restart the Riot Client, not just Valorant, to force a refresh.
- “ModuleNotFoundError: No module named requests.” Your virtual environment isn’t activated. Re-run the
source venv/bin/activate(or Windows equivalent) command before running the script. - Cron job silently doesn’t run. Cron uses a minimal environment with no knowledge of your shell’s PATH. Always use full absolute paths to both the Python binary inside your venv and the script file.
- Chart is blank or throws a parsing error. Your CSV is likely empty or has a malformed timestamp from a failed run. Open the file and confirm every row has four comma-separated values before re-running
rr_plot.py. - Sudden client crashes mid-match affecting your RR record. Vanguard, Riot’s kernel-level anti-cheat driver, has caused documented crash and compatibility issues on some hardware configurations in 2026, which can cost you a match and its RR before you even get a chance to play it out.
Advanced Tips for Serious Climbers
Once the basic tracker is running reliably, a few extensions make it genuinely useful for long-term climbing. Add a notes column to your CSV and jot down the agent, map, and role after each session so you can later filter your best and worst RR swings by variable instead of guessing from memory. Pull your session start times into a separate analysis and cross-reference them against your RR change column. Most players find a clear best-performing window, often two to four hours wide, where their win rate and RR gain both spike compared to the rest of the day.
If you play with a consistent five-stack or duo, log party size alongside RR change. Full parties often see smaller MMR swings per game since Riot’s matchmaking treats grouped queues differently from solo queue, and having that in your own data removes the guesswork. Finally, set a hard stop rule tied to your data rather than your feelings, for example: after two consecutive net-negative sessions in the log, stop for the day. Deciding that rule in advance, while you’re not tilted, is far more effective than trying to make the same call in the moment.
For players who stream or record VODs, timestamp your tracker’s log entries against your recordings. A rank tracker tells you what happened to your RR, but it can’t tell you why a specific session went badly. Pulling up the VOD for your worst-logged session and reviewing just the rounds you lost is far more efficient than rewatching an entire match blind, and it turns the tracker from a passive scoreboard into an actual coaching tool.
Extend the script further once the basics feel routine. A simple rolling-average column in pandas (df["rr"].rolling(10).mean()) smooths out the noise from any single wild session and shows your real trendline more clearly than the raw plot. You can also export a weekly summary and set it to email or message you automatically, so you get a Monday-morning readout of the past week’s climb without opening the CSV yourself. None of this requires advanced programming, it’s the same handful of pandas and matplotlib functions used earlier in this guide, just pointed at a rolling window instead of the full history.
Frequently Asked Questions
How many ranks are in Valorant in 2026?
There are 9 tiers and 25 total ranks. Iron through Immortal each have three divisions, and Radiant sits alone at the top as a single, leaderboard-capped rank, according to 2026 tracking from valorantranks.com.
How much RR do I need to rank up?
Every division is a 100-RR band. Hit 100 RR in your current division and you promote to the next one. Drop below 0 and you demote to the previous division.
Why did I lose more RR than I gained on my last win?
RR isn’t fixed per match. It scales with how far your visible rank sits from your hidden MMR, so if your MMR is trailing your rank, gains shrink and losses grow until the two converge, per Esports Talk’s 2026 breakdown of the system.
Is Radiant capped at a fixed number of players?
Yes. Radiant is hard-capped at roughly 500 players per region, functioning as a live leaderboard position rather than a static rank you earn once and keep.
Do I need to code to track my Valorant rank?
No. The Career tab in-client shows your current rank and RR after every match. The Python tracker in this guide is for players who want a persistent, chartable log across weeks or months rather than a single snapshot.
Why did placement matches put me two tiers below my last act’s rank?
Placements weigh your existing MMR and in-match performance more heavily than a simple win/loss record, so a mediocre 3-2 or 2-3 placement run can still land you well below your prior rank if your recent MMR had drifted downward.
How many people play Valorant in 2026?
Estimates vary by methodology. ActivePlayer.io tracked roughly 29.9 million monthly players in April 2026, down from a March 2026 peak of 33.17 million, while Tracker Network estimated 29.4 million monthly players over the same period. Daily active users averaged about 3.9 million in February 2026, according to Quantumrun.
Does queuing at a specific time of day help me climb faster?
It can, though the effect is personal rather than universal. Off-peak hours in your region often produce lobbies closer to your true MMR since the matchmaking pool is smaller and less spread out. Logging your own RR change by hour, as shown in Step 11, is the only reliable way to confirm whether this applies to your account specifically.
Related Coverage
- R6 Siege Ranked 3.0 vs Valorant: 40 Ranks vs 25 [2026]
- CS2 Ranks vs ESEA vs FACEIT: 25M vs 3M Players [2026]
- Rainbow Six Siege Ranks Guide: 40 Ranks, 12 Steps [2026]
- CS2 Premier vs Competitive Rank: 7 Tiers vs 18 Ranks [2026]
- Rainbow Six Siege Stats Tracker Setup: 10 Steps, 30 Min [2026]
- Riot Vanguard Bricks $6K Devices, Goes Optional [2026]
For more ranked systems, tier lists, and stats-tracking guides across competitive titles, see the full esports section.
Sources: Riot Games Competitive FAQ, Valorant official patch notes, Esports Tales rank distribution data, and valorantranks.com.




