There are a few factors that define how much return you get for your mining. This will be an example for ETH. We will first do an example calculation on how much ETH you will get for 1 MHs. If you care about USD, we will also do a calculation at the end for that :)
There are three factors that are important, and one factor less important, when you need to understand why earnings both goes up and down:
This is the time it takes to find a new block on average. On the ETH network, at the time of writing this explanation, its about 13.8 seconds.
This is how much ETH there are in each block that gets found, which are then rewarded to the miner (pool) that finds the block. This reward goes a bit up and down, but normally between 2.0 and 2.2 ETH. We will use 2.1 ETH in our calculations below!
The more miners on the ETH network, less reward will go to each miner. When its profitable, the network hashrate will go up, and when its not profitable, the network hashrate will go down, as miners stop mining. At the time of writing this, the network hashrate on ETH are around 831 TH/s
The last, less important factor: Luck
There are also a bit of luck involved, but over time, this will equal out. There are the luck of finding shares - if you are unlucky, you will find less shares - and get less paid by the mining pool. At the same time, if the mining pool are unlucky, the mining pool find less blocks. The higher hashrate you as a miner, or the pool has - luck will be less a factor for your income.
Lets do a couple of examples of calculations!
Lets see how much ETH you get in 1 day of mining, with 1 MHs, based on two different network hashrates:
Blocks per day: 86400 sec/day / 13.8 sec = 6261 blocks/day
Block reward per day: 6261 * 2.1 ETH = 13148 ETH
Network hashrate: 831 THs = 831000000 MHs = ~0.0000158 ETH per MHs per day
Lets say the network hashrate goes down to 580 THs:
Network hashrate: 580 THs = 580000000 MHs = ~0.0000227 ETH per MHs per day
But what about USD per day?
The price of ETH goes up and down, based on the market. Lets do some quick examples:
With a network hashrate at 831 THs:
ETH at $3800: 0.0000158 * 3800 = 0.06004 USD per MHs
ETH at $2800: 0.0000158 * 2800 = 0.04424 USD per MHs
With a network hashrate at 580 THs:
ETH at $3800: 0.0000227 * 3800 = 0.08626 USD per MHs
ETH at $2800: 0.0000227 * 2800 = 0.06356 USD per MHs