I'm looking for a calculator, something that takes into account the current p2pool hashrate and yours and gives you an accurate estimate per block how much you should make, so I can verify that my miner is working correctly and my payout makes sense

The biggest problem with this is as windpath points out, in addition to moving difficulty target and share weights. All things being equal, you can easily calculate what the "ideal" value per share is. P2pool pays out a block-finder's reward of 0.5% to the miner who found the block, and the remaining block reward to everyone else. It pays 8640 shares as follows:

1 share (the miner who found the block) gets 0.125

BTC which is 25*0.005

8639 shares split the remaining 24.875

BTC, which is 0.00287938

BTC per share

If the difficulty remained constant (which it does not), you could calculate how many shares you should have on the chain in the payout window (8640 shares, or about 3 days) knowing your hash rate:

Difficulty of share * 2**32 / hash rate = number of seconds to find a share

Take the number of shares, multiply it by the reward per share and you've got your answer. That answer, though, is really kind of irrelevant, since it doesn't take into account the variables.

Or, look at the "payout if block found now" stat, which will tell you exactly how many BTC you'll get should a block be found.

I suppose another way to get a gauge on how you're doing is to look at the current pool's hash rate vs your hash rate. Then, take the blocks expected per day to give you an average expected daily payout. Example you have 1TH/s and pool has 1000TH/s:

18736441558 * 2**32 / 1000000000000000 = 80472.4037 seconds

86400 / 80472.4037 = 1.0737 blocks per day.

25 * 1.0737 = 26.84149970[btc] per day

26.84149970 / 1000 = 0.02684150[btc]

Not surprisingly, the number I ended up with is exactly what you'd expect any online calculator to give you for expected daily earnings with 1TH/s at current difficulty. I could have simplified it considerably just by doing this:

25 / (difficulty * 2**32 / your hash rate / seconds in a day) = expected earnings per day

Expected per-block earnings are then just:

25 * (your hash rate / pool hash rate)

So... at the end of all of that...

Look at the value given by "expected payout if block found now" and compare that to the "current block value" multiplied by "your hash rate" / "pool hash rate".

If your expected payout is bigger than the "current block value" multiplied by "your hash rate" / "pool hash rate" then you're doing better than expected (i.e. you've been lucky). If your expected payout is smaller, you've been unlucky.

EDIT:

Thank you all for your attempts to help me.

So normally with a non p2pool pool, I can easily find issues and see my earnings drop by seeing the live hashrate. (eligius has 1min 5min hashrate etc)

On p2pool it's very hard to know my actual hashrate. So if my miner has issues,or my nose has network issues, and I am down 5-10% of my hashrate , it's hard to detect.

My hashrate always shows less on p2pool than on a normal pool

Any suggestions?

Most every p2pool front end will display your hash rate in a graph. Take a look at windpath's node and you'll even see graphs of hash rate by mining address.

As for your hash rate always showing lower on p2pool... what's your hardware?