Pool Effort Explained:
Why It Only Goes Up
Effort is how much work your pool has already done toward the next block — and work already done never un-happens. Computed correctly, effort only ever climbs within a round. If your dashboard shows it falling, that is a calculation shortcut, not reality. Here is the right way to think about it.
Effort is the block-equivalents of work your pool has done this round — and a running total of work can only grow.
- Effort = Σ ( each share's difficulty / the network difficulty when that share was submitted ) — block-equivalents of work done
- Shares are a block, broken into pieces — nobody could find a whole block in time alone, so the pool splits the block's difficulty into millions of smaller shares
- Correct effort only rises within a round. It cannot fall unless work is removed — i.e. negative hashrate, which never happens
- A difficulty rise makes effort climb slower, not backwards — new shares are worth less against the higher difficulty, but your already-earned effort is untouched
- If a pool's effort visibly drops mid-round with steady hashrate, it is mis-computed — the naive "all shares ÷ current difficulty" shortcut re-pricing past work
Start here: shares, rounds, and blocks
To understand effort, you first need three words. We will keep this part jargon-free.
A block is what the pool is trying to find. Finding it means discovering a number (a hash) below the network's target — and that target is set so that, across the entire global network, one block appears every few minutes. For any single machine, finding a whole block directly would take, on average, years to centuries. It would simply never happen in a useful timeframe.
So pools do not ask you to find whole blocks. They ask for shares. A share is a much easier version of the same puzzle — a "near miss" that proves you are genuinely working. The pool sets the share difficulty for each miner (this is vardiff, which tunes difficulty to your hardware), collects everyone's shares, and every so often one of those shares happens to also clear the full network target. That share is the block.
A round is the stretch of work between one block and the next. It opens the instant a block is found and closes when the next block is found. Everything the pool accumulates in between belongs to that round.
Think of a block as a giant wall you have to paint before a deadline. One person could never finish in time. So a hundred painters each paint small squares (shares). Nobody paints the whole wall — but add up all the squares and, sooner or later, the wall is done. "Effort" is simply: how much of the wall have we painted so far, compared to a full wall's worth of paint?
A block is not one lucky hit — it is a whole block's worth of share-work. Effort asks what fraction of that work the pool has already done.
What effort actually measures
Now the definition, in one line:
Effort % = Σ ( share difficulty / network difficulty when that share was submitted ) × 100
It is a sum, not a snapshot. Each accepted share contributes its own difficulty divided by the network difficulty at the moment it was found (a difficulty-16 share counts sixteen times a difficulty-1 share, which is why vardiff does not distort effort). Once a share is counted its contribution is fixed forever — a later difficulty change cannot rewrite it. Because every term is positive, the total can only grow as the round goes on.
So effort is a live progress bar toward the current block. At the very moment a block is found, that final effort reading is the round's luck: a block that lands at 55% effort was a lucky, cheap block; one that only lands after 220% effort was an expensive, unlucky one. Effort is the gauge during the round; luck is the number it froze at when the round ended.
Effort is a running sum, not a single divide-by-current-difficulty snapshot. Each share is banked at the difficulty in force when it landed, and stays banked. That is why correct effort only ever climbs — and why a reading that jumps down mid-round is a sign the pool is (wrongly) re-dividing your whole history by today's difficulty.
The part that confuses everyone: effort only climbs
Here is the misunderstanding that fills our Discord. A miner watches effort climb to 65%, walks away for coffee, comes back, and it says 45%. No block was found, their shares are all still there — and they are right to be annoyed, because correct effort should never have dropped.
What happened is that network difficulty retargeted upward while they were gone, and the dashboard divided all of their accumulated shares by the new, higher difficulty. That is the naive shortcut — and it is wrong. The work those 65% represent was really done; a change to today's difficulty cannot reach back in time and un-do it. (Every blockchain does re-tune difficulty to keep block times on schedule — some every block — but that only sets the rate for future shares.)
Done correctly, each share is valued against the difficulty that was live when it was submitted. A later difficulty rise only changes what new shares are worth — it makes effort climb more slowly from that point, but the already-earned effort stays put:
// 650 units of effort earned while difficulty = 1000
Earned: 650 / 1000 = 65% // banked; cannot change
// difficulty now rises to 1444. CORRECT accounting:
Still 65%, then each NEW share adds difficulty/1444 // climbs slower, never drops
// NAIVE (wrong) dashboard re-prices ALL past work at 1444:
Shows: 650 / 1444 = 45% // spurious "drop" — a bug
The pool did not lose your shares — and the finish line did not reach back and shrink the ground you already covered. A difficulty rise makes the remaining road longer (new shares count for less); it does not walk you backwards. Symmetrically, a difficulty drop makes your next shares count for more — it does not retroactively inflate the ones already banked.
Correct effort (solid) only climbs — a difficulty rise merely flattens the slope. The naive ‘all shares ÷ current difficulty’ reading (dashed) spuriously drops at the retarget. Same shares, two calculations — only the climbing one is right.
A worked example (the exact case miners ask about)
Say the network difficulty is 1,000. A hundred miners each submit one share at difficulty 1, so the round has banked 100 units of work — effort 100/1000 = 10%. Now watch a difficulty rise under the correct calculation versus the naive one:
| Moment | Shares (each diff 1) | Net difficulty | Correct effort | Naive (wrong) |
|---|---|---|---|---|
| Start of round | 100 @ D=1,000 | 1,000 | 10% | 10% |
| Difficulty rises ×10 (no new shares) | 100 | 10,000 | 10% (unchanged) | 1% |
| …then 100 more shares arrive | 200 | 10,000 | 11% | 2% |
The correct effort never dips: the first 100 shares stay worth 10% (they were earned at difficulty 1,000), and the next 100 shares — now worth only 1/10,000 each — nudge it up to 11%. The naive column collapses to 1% the instant difficulty rises, purely because it re-divides your whole history by the new difficulty. Same shares; only the correct column reflects the work actually done.
The trap is thinking a difficulty ×10 divides your accumulated effort by 10. It does not. A difficulty change only sets the exchange rate for future shares: after a ×10 rise, each new share is worth one-tenth of what it was, so effort climbs ten times slower — but every point of effort you already banked stays exactly where it was. You divide the worth of the next shares, never the ones already earned.
For the math crowd: the "10,000% effort" paradox, solved
Sharp miners raise a clever objection that deserves a proper answer, not a hand-wave. It goes like this:
"Say 1 share = 1% effort. I submit 100 shares → 100% effort. Now difficulty drops 100×, so 1 share = 100% effort. I submit one more share and find the block. Your live counter now reads about 10,000% effort. But 10,000% should mean we expected to hit 100 blocks with perfect luck — and we found one. So the effort number is nonsense."
This is a genuinely good trap, and the resolution is precise: the live effort reading and "expected number of blocks" are the same thing only while difficulty is constant. The moment difficulty changes inside a round, you must value each share against the difficulty that was in force when that share was submitted. That gives the physically exact measure:
True block-equivalent = Σ ( share difficulty / network difficulty at that share's moment )
Run the challenge through the exact formula:
// 100 shares submitted while difficulty = 100
100 shares × (1 / 100) = 1.0 block-equivalent
// 1 share submitted after difficulty dropped to 1
1 share × (1 / 1) = 1.0 block-equivalent
// Total actual expected blocks for this round's work:
1.0 + 1.0 = 2.0 blocks — NOT 100
So the round's work was worth about two block-equivalents, and it found one block. That is completely normal — even slightly lucky. The paradox never existed. It came entirely from reading the naive live number (which re-prices all accumulated shares at the new, 100×-cheaper difficulty) as if it were "expected blocks." It is not: the 100 early shares were mined when a block cost 100, and they can never be worth more than the one block they were a fraction of.
Turn it around. Start at difficulty 1, so one share = 100% effort. Submit 100 shares → 100 block-equivalents = 10,000%. Difficulty now rises 100× to 100; you submit one more share (worth 1/100 = 1%) and find the block: 100×(1/1) + 1×(1/100) = 100.01 block-equivalents = 10,001%. Effort went up, from 10,000% to 10,001% — not down by even a fraction (the round was wildly unlucky: ~100 blocks' worth of work for one block). A naive dashboard would re-price the 100 early shares at difficulty 100 and show ~101% — a catastrophic false crash from 10,000%.
The lesson both examples share: value each share against the difficulty at its own moment, and effort becomes a sum that only grows. The naive ‘accumulated shares ÷ current difficulty’ number is the wrong tool — it is the sole reason effort ever appears to fall mid-round.
Does it match the real world?
Yes — and this is the part that should reassure anyone worried the metric is cooked. Effort is an instantaneous reading and it is noisy by nature, because finding a block is a random (Poisson) process. Any single round can end at 20% or at 400%. But the block-finding process has a fixed long-run expectation, so when you average the effort at which blocks are actually found across many rounds, it converges to 100%.
| Over a sample of rounds | What you should see | What it means |
|---|---|---|
| Any single round | Anything from ~10% to ~500% | High variance is normal |
| ~10 rounds | Still swingy, maybe 60–150% average | Not enough samples yet |
| Hundreds of rounds | Average closing in on 100% | The law of large numbers |
| Thousands of rounds | Very close to 100% | Exactly as the math predicts |
If the pool's long-run average effort at block discovery sat far from 100% — say a steady 300% — that would be a real problem worth investigating (wrong difficulty accounting, rejected shares, or a hashrate/difficulty mismatch). A mid-round drop is not the metric doing its job — computed correctly, effort would not drop at all; the drop is the naive calculation showing through. To understand the swing itself, see what mining luck is and why earnings fluctuate.
Effort is the live running total of work vs. the current block. Luck is the effort frozen at the instant the block is found. Rejected/stale shares are a different thing entirely — work that never counted toward the round at all (see stale & rejected shares). Effort rising mid-round is normal; effort dropping mid-round points to a naive calculation, and a high reject rate is a separate number worth chasing.
The bottom line
Each share is banked at the difficulty in force when it landed. Because every share adds a positive amount, the total can only grow through the round.
If the reading falls with steady hashrate, the pool is dividing all past shares by the current difficulty — re-pricing work that was already done. That is a calculation bug, not a fact about your mining.
After a rise, new shares count for less, so effort climbs more slowly — but the effort you already earned stays exactly where it was.
Judge the mechanic by its long-run average, not by one snapshot after a retarget. That average landing on 100% is the proof it is working.
Frequently asked questions
Why did effort drop mid-round with no new blocks?
Correctly computed, it should not. Effort is a running sum of work already done, and work already done cannot un-happen. A visible drop means the pool is dividing ALL your accumulated shares by the CURRENT difficulty — re-pricing past work at a difficulty that was not in force when you did it. A difficulty rise should only make effort climb more slowly, never fall.
Is effort the same as luck?
Effort is the live running total during the round; luck is the effort value at the instant a block is found. A block found at 70% effort was found with 70% luck.
Difficulty rose 3× — how much does effort fall?
It does not fall at all. Your already-earned effort is untouched; only your new shares now count at one-third the rate, so effort climbs three times slower from here. (A naive dashboard would wrongly cut the whole reading to a third — that is the bug, not the physics.)
Does 500% effort mean we should have found five blocks?
Yes — computed correctly (each share against the difficulty in force when it was submitted), 500% effort is five blocks' worth of work. That is exactly why the per-share sum is the right way to compute it: it stays a true measure of work even across difficulty changes.
My pool is at 250% effort. Should I switch pools?
No. A high current effort just means this particular round is running long — pure variance. Switching pools resets nothing in your favour and forfeits any round progress. See our article on mining luck and the Gambler's Fallacy.