after a long period of upgrading i think anvil has a certain degree of autocorrelation (http://en.wikipedia.org/wiki/Auto_correlation), basically it means that a series of upgrades (which can be referred to as a random process), is not entirely random. the chance of success of the current upgrade is dependant in the success of the last upgrade. i know many of you think that no matter how many times you toss a coin and get heads, the chance to get heads in the next toss is still 50%. that is common sense, and it may be true for purely random processes (like a toss of a coin), but in the case of the anvil im pretty sure there is an increased chance of consecutive successes and fails.
bottom line is: when you upgrade, get a bunch of shitty items and one good item, wait for a success on the shitty item, then immediately upgrade the good item.
the shitty item should be the same class and same + (like +7) of the good item.