Standard Wild Encounter (1 in 500)
Permaboost / Rare Species (1 in 64)
Legendary / Mythical Raid (1 in 20)
Community Day (1 in 25)
Raid Day (1 in 10)
Mega Raid / Some Events (1 in 125)
Shadow Pokemon (1 in 450)
Custom Rate
Enter the denominator. For a 1/500 rate, enter 500.
How many times have you clicked, raided, or hatched this Pokemon?
Probability of finding at least 1 Shiny:
0%
Expected Shinies
0
Chance of 0 Shinies
100%
Encounters for 50% odds
0
Encounters for 95% odds
0
Understanding Pokemon GO Shiny Rates
Finding a "Shiny" Pokemon is one of the most exciting aspects of Pokemon GO. Unlike the main series games where odds can be as low as 1/4096, Pokemon GO offers significantly better odds, but they vary heavily depending on the species, the event, and the method of acquisition. This calculator helps you understand your real odds of encountering a shiny based on how many checks you have performed.
How Shiny Probability Works (The Math)
Many trainers fall for the "Gambler's Fallacy." They believe that if the rate is 1/500, and they have checked 500 Pokemon, they are guaranteed a shiny. This is incorrect.
Shiny checking is a Bernoulli trial. Each click is an independent event. The coin does not remember that you flipped tails the last 499 times.
The Formula
To calculate the probability of finding at least one shiny Pokemon in n encounters with a rate of 1/x, we use the formula:
P(Shiny ≥ 1) = 1 – ( (x-1) / x ) ^ n
Where:
x is the denominator of the shiny rate (e.g., 500).
n is the number of encounters.
Standard vs. Boosted Rates
Knowing the correct base rate is crucial for accurate calculation. Below is a table of standard rates observed within the game mechanics.
Encounter Type
Estimated Rate
Context
Standard Wild
1 in 500
Most non-event Pokemon found in the wild.
Permaboost
1 in 64
Rare species (e.g., Aerodactyl, Onix, Scyther) and Mega-eligible species found in the wild.
Legendary Raids
1 in 20
Current 5-Star Raid Bosses (when shiny released).
Community Day
1 in 25
During the specific 3-hour Community Day window.
Raid Day
1 in 10
Specific 3-hour Raid Day events.
Interpreting Your Results
"I've checked 1500 and no shiny!"
If the rate is 1/500, checking 1500 Pokemon gives you a roughly 95% chance of having found a shiny. While this means you are statistically "unlucky" (in the top 5% of driest streaks), it is not statistically impossible. In a player base of millions, thousands of players will experience streaks this long every day.
The "Rule of Three"
A common rule of thumb in probability is that when you reach 3 times the denominator (e.g., 1500 checks for a 1/500 rate), you have reached approximately 95% probability of success. If you haven't found one by then, you are significantly overdue.
Tips for Shiny Hunting
Check Everything: Even if you aren't catching them, tap on every Pokemon to check if it's shiny.
Maximize Events: Community Days and Spotlight Hours increase spawn density, which increases your "n" (encounters) per hour, effectively boosting your chances over time.
Raid Wisely: Don't spend money on Raid Passes assuming you will get a shiny in 20 raids. Approximately 63% of people get a shiny by the 20th raid. That means 37% of players do not!
function updateDenominator() {
var select = document.getElementById('speciesType');
var input = document.getElementById('denominator');
var val = select.value;
if (val !== 'custom') {
input.value = val;
// Highlight effect to show it changed
input.style.backgroundColor = "#fffbe6";
setTimeout(function() {
input.style.backgroundColor = "white";
}, 300);
} else {
input.value = ";
input.focus();
}
}
function calculateShinyProbability() {
// 1. Get Inputs
var denominatorStr = document.getElementById('denominator').value;
var encountersStr = document.getElementById('encounters').value;
var resultBox = document.getElementById('result');
// 2. Validation
if (!denominatorStr || !encountersStr) {
alert("Please enter both the shiny rate and number of encounters.");
return;
}
var x = parseFloat(denominatorStr); // Denominator (e.g., 500)
var n = parseFloat(encountersStr); // Encounters (e.g., 200)
if (x <= 1) {
alert("Shiny rate denominator must be greater than 1.");
return;
}
if (n ((x-1)/x)^n = 0.5 => n * ln((x-1)/x) = ln(0.5)
var n_50 = Math.log(0.5) / Math.log((x – 1) / x);
// Encounters for 95% probability
var n_95 = Math.log(0.05) / Math.log((x – 1) / x);
// 4. Formatting Results
var percentage = (prob_success * 100).toFixed(2);
if (percentage === "100.00" && prob_success < 1) percentage = "99.99"; // Avoid false certainty
var failPercentage = (prob_zero_shiny * 100).toFixed(2);
// 5. Update UI
document.getElementById('probResult').innerHTML = percentage + "%";
var explanationText = "With " + n + " encounters at a 1/" + x + " rate, you have a " + percentage + "% chance of having found at least one shiny.";
document.getElementById('probExplanation').innerHTML = explanationText;
document.getElementById('expectedValue').innerText = expected.toFixed(2);
document.getElementById('failChance').innerText = failPercentage + "%";
document.getElementById('fiftyFifty').innerText = Math.ceil(n_50);
document.getElementById('ninetyFive').innerText = Math.ceil(n_95);
// Styling based on luck
var probResultEl = document.getElementById('probResult');
if (prob_success > 0.9) {
probResultEl.style.color = "#d32f2f"; // Red (Unlucky if 0 found yet)
} else if (prob_success < 0.1) {
probResultEl.style.color = "#2a75bb"; // Blue (Normal/Lucky)
} else {
probResultEl.style.color = "#333";
}
resultBox.style.display = "block";
// Scroll to result on mobile
resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}