Home / Blog / How a miner works

Guide · Nov 1, 2026 · 5 min read

What rejected and stale shares are on a miner's dashboard, and how many is normal

Open any pool dashboard and you will see a reject rate. A few rejected shares are normal and a rising rate is a warning. Here is what the number counts, the three ways a share gets rejected, and what to do when it climbs.

Firsthand card: "What rejected and stale shares are on a miner's dashboard, and how many is normal", showing 3%, the reject rate one pool calls normal at most

A share is a small piece of proof, and the pool checks every one

Your miner does not send the pool a finished block. It sends a steady stream of small pieces of proof that it is hashing, called shares, and the pool counts them to see how much work you are doing. If you have not read it yet, what a mining pool is explains why this is how the pool knows what to pay.

The pool checks each share when it arrives. Most pass. A few are refused, and the share of refused ones among everything your miner sent is the reject rate. ViaBTC, a mining pool, defines it as "the percentage of submitted shares that a mining pool rejects under its validation rules".

A miner does not get paid for working. It gets paid for work the pool accepts.

A share can be rejected in three ways

Pools use different labels, but the reasons come down to three. A stale share was valid work, but it arrived after the pool had moved on to a new job, which usually happens right after a new block or when the connection delays it. An invalid share failed the pool's checks. A duplicate repeats a share that was already sent.

The reason matters more than the percentage, because each points to a different place to look. The table below follows ViaBTC's guidance for new miners.

KindWhat happenedWhere to look
StaleValid work, but it arrived for a job the pool had already replacedThe network path to the pool: delay, lost packets, reconnects
InvalidThe share failed the pool's validation checksThe machine: temperature, power, firmware, a faulty board
DuplicateThe same share was sent twiceSoftware and settings: proxies, retries, sessions
The three kinds of rejected share and the first place to look for each.

A few percent is normal, and a change from your own baseline is the warning

ViaBTC treats a reject rate "within 3%" as normal, but says that figure is its own guidance, not an industry rule, and that you should not ignore errors that persist just because they sit below it. Its later article on high reject rates gives no universal target and advises watching for a persistent change from your own baseline, especially one tied to one kind of rejection.

So the useful habit is not memorising a threshold. It is noticing what your machine normally shows, then looking when that moves. A machine that has shown 0.5% for a month and now shows 4% has told you something even though 4% sounds low.

A small worked example: if your miner sent 10,000 shares in a day and the pool refused 150, the reject rate is 1.5%. Check the period and the number of shares behind a percentage before you trust it. A rate calculated from an hour of work moves around far more than one from a week.

What a rejected share costs you

A rejected share does not count as work. ViaBTC says rejected shares "do not contribute to the miner's accepted work under the pool's payout rules", and that the exact effect on your reward depends on the payout method, the reporting period and the kind of rejection. In plain terms, a reject rate of 2% means roughly 2% of the work your machine did was not counted, which is why the hashrate your pool shows can sit below what the machine reports. That is one of the reasons in why a miner's hashrate reads lower than its spec sheet.

It is a small loss when the rate is low and a real one when it is not, which is why a sudden rise is worth a look and a steady low number is not.

What to do when the number climbs

The order below follows ViaBTC's checklist. Read the rejection message first, so you know which of the three kinds you are dealing with. Then compare machines. If one miner is affected, the problem is probably that machine. If several are affected at once, it is probably something they share: the network, the power or the path to the pool.

After that, change one thing at a time and give each change a comparable period before judging it. Changing three settings together leaves you not knowing which one worked. If the rate stays high, send the pool's support the worker name, the machine model, the firmware version, the time period and the rejection messages. They are what support will ask for.

If your machine is hosted, the same logic applies and the first step is the same: find out which kind of rejection it is, then ask your host to look at that part. A stale-share problem is a network question and an invalid-share problem is a machine question, and saying which saves a day of back and forth.

Reading the dashboard: accepted, rejected and the period behind them

Most dashboards show the same few things side by side: shares accepted, shares rejected, the reject rate, and the hashrate the pool measured from the accepted shares. The reject rate is rejected divided by everything submitted, so the two counts matter as much as the percentage.

Look at the period before you read the rate. A rate from the last ten minutes can swing wildly on a handful of shares, and a rate from a whole week is steady. ViaBTC advises checking the reporting period and the number of submissions behind a percentage, and the same sense applies to any dashboard.

Then look at the reason column if there is one. A pool that groups everything into one number tells you less than one that splits it into stale, invalid and duplicate, so use the split whenever you can find it.

Write down what you see in a normal week: the reject rate, the split between the three kinds, and the hashrate the pool shows. That note is your baseline, and it costs two minutes. Without it, every later number is a guess about whether things have changed, and with it you can tell at a glance.

Three worries that are usually nothing

A single bad hour is not a fault. Rejections can bunch up around the moment a new block is found, because the pool replaces its work at that instant and any share still in flight arrives late. A small, steady trickle of stale shares is the ordinary cost of that handover, and ViaBTC's guidance treats a small number as normal.

A reject rate above zero is not a broken machine. Zero would be unusual, and a machine that never had one rejected share would not teach you what your normal is.

A difference between the hashrate the machine reports and the hashrate the pool shows is not automatically a rejection problem either. The pool measures only what it accepts, over a window, so the two will not match exactly. Compare them over a day, not a minute, before drawing a conclusion.

What it means for a miner

The reject rate is one of the few numbers on a dashboard you can act on. It does not change what a coin costs to make, which is set by the machine's efficiency and your power price. It changes how much of the work you paid for is counted. A low, steady rate means you are being paid for nearly all of it, and a rising one is the earliest sign something needs attention, usually long before the machine stops.

Keep the number in view alongside uptime and hashrate. If you want the bigger picture of what a day offline costs, read what uptime means.

Sources and further reading

Disclosure

Firsthand Bitcoin sells and hosts mining hardware, including this machine. No manufacturer, distributor or affiliate programme paid for or reviewed this page and we take no commission on the links above. Historical figures are computed from daily bitcoin price and network hashprice, each day valued at its own prices. Nothing here is investment advice.