Distance property of ESTBeacon is not stable, changed quickly even if I stand still

Distance property of ESTBeacon is not stable, it changes quickly even if I stand still. Then I try to use rssi since it is an average of the RSSI samples collected since this beacon was last reported, it is much more stable, but it is not a real distance, how to change it to a distance data? Looks like the distance property is not a average of the distance samples collection, right? Why not use this way like RSSI?

Accuracy (distance property) is an estimate of a distance between device and a beacon.

We relay on CLBeacon accuracy property from iOS (https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLBeacon_class/Reference/Reference.html#//apple_ref/occ/instp/CLBeacon/accuracy) which is documented by Apple: "Indicates the one sigma horizontal accuracy in meters. Use this property to differentiate between beacons with the same proximity value. Do not use it to identify a precise location for the beacon. Accuracy values may fluctuate due to RF interference."

Pay attention to signal attenuation. Different surfaces (like wood, metal, glass) interfere differently with radio signals.

So, what is the relative accuracy? In the Proximity Demo, I practically have to touch the beacon with my iPhone 5 (running 7.1 GA) to get it to say Immediate. Otherwise, from 1.5 m away sitting on my formica desktop, it fluxuates between Far and Near. (beacon is set to -8 power)

That's correct. Immediate proximity zone defines a gesture that you intentionally touch (or almost touch) device to the beacon. We do not know exact values in meters as it's inside Apple's SDK.

Near and Far proximity zones may fluctuate if they are on the borders of the zones.