how is vo2 max calculated ?

I know that vo2 max estimate is highly dependent on average heart rate and average pace, but sometimes it just doesn't seem right. I run the same 10 km jogging several times a week, since about 3 months; during this period the vo2 max gradually went from 54 to 58. But it seems to be just a trend, a moving average taking into account the last N previous runs, rather that a measure for the run of the day. Exemple : a few days ago i was very fit  and got 58 for a pace of 4'10" / km and average HR of 151 bpm; but since then i'm not so fit and today i did 4'20" / km with HR of 153 bpm : still 58 ...   I use a ConnectIQ application that computes a running index (the same one that on Polar watches), this running index is a better indicator for fitness : 67.3 when i was fit, 63.7 today.