Why your pool hashrate differs from your miner
The miner console says one number and the pool dashboard another. What each number measures and when a gap is a real problem.
Two different measurements
Your miner console reports the speed of your hardware, measured locally in real time. The pool cannot see your GPU: it only sees the shares you submit, so the dashboard computes an effective hashrate from the work it actually accepted over a time window. They measure different things, so they are never exactly equal.
Luck makes it wobble
Shares arrive randomly, like raindrops rather than a metronome. Over a short window the pool-side number swings above and below your real speed; that is expected and averages out. Compare your miner against the 6-hour or 24-hour dashboard averages, not the minute-by-minute view.
Stale and rejected shares widen the gap
Work that arrives after the job has already changed (stale) or fails validation (rejected) cannot be counted. High latency to the server, an unstable overclock, or connection drops all push more of your work into that bucket, and the pool-side number falls further below the console number.
When to investigate
A gap of a few percent that comes and goes is normal. Look closer when the 24-hour average stays well below your miner AND your stale or rejected counts keep rising: re-check your region choice, your connection stability, and back off an aggressive overclock or undervolt.