1) Variance in the pool. Basically, just bad luck. I would have expected this to have averaged out over 45 days but it seems to me to consistently be underperforming. Maybe I haven't waiting long enough. I dunno.
45 days isn't that long when you're mining on a pool that is a significantly small share of the overall network like Ozcoin. organofcorti would be needed to give any hard numbers, but being ~15% under in a 45 day period doesn't sound that unusual when dealing with a pool that has only been 2-5% of network hash rate during that time frame.
2) The hashrate Ozcoin is reporting for my miners isn't the exact hashrate that I am getting when it comes to the number of valid shares I'm submitting. I'm not sure why this would be the case. My "efficiency" is always about 99.5% across all my miners when it comes to valid shares. Maybe everything is actually correct but I'm not actually doing the 100 GH/s worth of work Ozcoin is telling me.
Every pool has its own slightly different method of estimating miner hash rates. In the end they can only guess based on submitted shares. Beyond that, each pool does their own slight tweaks in terms of how long they examine share submissions (longer time frame = larger sample = more accurate), whether or not they include rejected shares, etc. If you are *always* showing up lower than your actual hash rate, and it's any kind of significant percentage, then it may be a concern.
3) DGM is underpaying because that of the nature of the algorithm (which is more complicated than most). It seems to underpay even when the pools finds the expected number of blocks each day. I'm not sure why.
DGM *should* pay out at expectation given proper implementation and neutral luck.
4) People are cheating the pool. I always wondered how a pool prevented miners from lying and submitting invalid shares. Obviously the pool can't check every single one, right? They would require to have a hashrate as high as all the miners participating in order to do that, correct? The pools seems to have many more days where it doesn't find the expected number of blocks given the pools reported hashrate. What if people are submitting fake shares making the pool like it has more hashrate that it really does and taking a bigger share of the Ozcoin pie.
The pool can check every single share, and should be. When you submit a share, that is a single hash you found that is appropriate for difficulty. The pool only has to do one double-sha256 hash to determine if the share was valid or not, whereas the miner (on average) does ~4.2 billion hashes in order to find that share.
5) There are other hidden fees I don't know about. Or perhaps I am calculating my expecting earnings incorrectly. My calculations do seem to match up with what ozcoins own utility bots (in its IRC channel) seem to tell me.
No hidden fees on Ozcoin.
6) Ozcoin itself has some problems. The pool has gone down on occasion and has had problems where the statistics were unavailable for a time (though the owners claimed it was still processing shares correctly). There could be some bugs in its software.
While pool downtime will hurt your earnings if you don't have a backup, pool downtime should not actually impact overall pool luck. Mining has no "memory", so if the pool goes down, there was no "progress" towards the next block that was lost. Having a proper backup pool is always recommended to avoid downtime affecting you, no matter which pool you use. For the second part, it is always possible that software bugs are causing the downtime, so there's always a chance that can lead to negative trending luck.
Which of these seem most likely? I'm probably going to give another pool a shot for a while and see if it is any better. I do really like Ozcoin though and I want to continue mining there.
What is the experience that other people have when it comes to expected earnings vs actual earnings?
Mining in the pool you like the most (interface, features, etc.) is always preferred for someone who isn't in it as a primary source of income. The more of a business mining is to you, the more other factors come into play (variance, reliability, notification features, security, etc.).