The short Version: My rule of thumb for miners has always been:

Minimum Diffulcty = Closest power of 2 (rounded down) to your GH/s. 1-2 = 1. 2-4 = 2. 4-8 = 4. 8-16 = 8, etc.

This keeps your SPM between 15 and 30 (based on how close you are to the next cutoff). This happens to be right in line with what almost every pool currently uses for vardiff.

Slushpool has a minimum difficultly level of 8

**3. Miner sets pool difficulty**

This becomes a little tricky since there are so many variables. To make it a little simpler than using contour plots, use the table below in conjunction with the tables above. Select your hashrate and a pool difficulty you’d like to check. D=1, D=2 and so on indicate the pool difficulty. The number at the intersection of the two values gives you the expected shares per minute. Then use the table in the section above to find out what the expected average variation in hashrate is.

A worked example:

A miner has 4 Ghps and wants to investigate the effect a pool difficulty of 8 would have on her average hourly hashrate. Reading from the table below she finds that she can expect to submit 6 shares per hour for her hashrate and D = 8.

From the middle table above, she finds that she can expect an ~ 10% variation in average hourly hashrate for D = 8 and 4 Ghps.

A much longer CSV table with many more Ghps values is here: Miner selected difficulty table

**4. Conclusions**

- Increasing average submitted shares per period only increases the standard deviation in submitted shares per period by the square root of the average submitted shares per period.
- When difficulty varies constantly so shares per minute remains constant, the variation in average hashrate is not dependant on the miner’s hashrate, but only on the number of shares per minute.
- When difficulty is selected by the miner, the variation in average hashrate is very much dependant on the miner’s hashrate and the selected difficulty.