Flurry uptime formula is simple, but explaining the probability formulas is beyond me.

Flurry status can only change on a melee swing, and the chance at any melee swing that flurry is up is the chance that you got a crit three melee swings ago or after (flurry is procced but not consumed by special attacks, so it can be any of the three melee swings or any specials in that time that crit).

You know your (buffed) crit chance,

**C**.

You know your total haste from gear and buffs and averaged from procs,

**H**. Well sort of, you don't know how much flurry uptime to add. Mostly 100% is used it seems to make the formula possible without an advanced math degree.

Your average time between melee swings,

**T**, is (trust me here):

http://chart.apis.google.com/chart?c...BH%7D%5Cright)
You need to know your number of specials per second,

**S**. Thegreatme indicated on the previous page it was around 3.25 attacks per 6 seconds, or around 0.54.

The (average) total number of attacks you do in 3 swing times,

**N**, is 3 normal attacks plus the special attacks:

http://chart.apis.google.com/chart?c...03%20%2B%203TS
It's hard to calculate the chance you got a crit in the last N attacks, but it's easy to calculate the chance you didn't (chance of non-crit N times in a row) and we know the chance you did is 1 minus that. That value is the flurry uptime,

**F**.

http://chart.apis.google.com/chart?c...1%20-%20C)%5EN
http://chart.apis.google.com/chart?c...7B(3%2B3ST)%7D
What does this practically mean? The same thing it has always meant. The value of additional crit in increasing flurry chance decreases the more of it you get.

Conversely, although haste does drop your flurry uptime, it's very slowly. Some rough calculation shows 10% additional haste would drop your flurry uptime by less than 1%.

http://mib.personal.unimelb.edu.au/img/furygraph.png
This graph shows some values for approximately my gear. The red line assumes my haste is constant and shows the flurry uptime for increasing crit percentages. The blue line assumes my crit is constant, and shows the flurry uptime for various haste percentages.