I'm in the same boat as you. I use coinwarz to help understand what some of the most profitable coins are, then I point my miners accordingly. I don't understand when I enter in my hashrate, it calculates the expected coins per day, but I also get about 1/2 the amount.
In fact, even when I look at the pools themselves, I see pools expected values which are much higher than what I am actually getting. I have almost no hardware errors and very few shares actually get rejected. I took the time once on a particular site to look at a block and see my share contributions. It gets very difficult to analyze since every share that I contribute has a different share difficulty. The share difficulty will change from 32 to 512 especially with those pools using var diff.
I think that those expected amounts are based on the most optimal share diff as well as no dead packets and min latency. I've bounced around multiple pools, but still no dramatic increase. I will say that I have seen better results in pools where there are very few miners. I was on a new coin and a pool where I was the 2nd highest hashrate. In that circumstance I was getting 80-90% of what I expected.