From what I see, many up until now, don't know yet how to calculate transaction fee's and as result always tend to blame the way network reacts to each transaction. Just because a transaction is consist of 0.0001
BTC as a fee, doesn't mean that, it's enough for it to be confirmed in the next block. I'll try to explain the process of transaction size estimation:
For reference, let's take your transaction into example:
https://blockchain.info/tx-index/5bc33bf29987c995cb9c11f052c5b2792b5890e414806fc27df7a7fe93101c45There is 6 inputs and 2 outputs (most transactions automatically give you 2 outputs if your sending to one person)
Number of inputs should be multiplied by 148 (the number changes sometimes) + the number of outputs multiplied by 34 +10 or -10 (mostly it's +10)
6 x 148 (888) + 2 x 34 (68) +10 or -10
888 + 68 +10 = 966 bytes (close estimation as in your transaction was 964)
On a side note: For fast confirmation a 60 Satoshi is recommended per byte
Best possible way to know the inputs is to know and calculate the transactions on your account and see how many inputs will be needed from the remaining unspent one's in order to calculate the inputs prior to sending (not sure if there's a wallet that does this automatically but I'm saying this base on my experience of using blockchain.info only)
There's another thing that would help in most cases and that is the feature in blockchain.info (not sure if it exist on others too) that You would choose the fee from normal to generous and automatically each transaction will have a fee of 0.001 as base fee.
The fee for your transaction should have been 0.0005784 to be as high priority transaction that would get confirm within the next block.