basically on open loop haltech only gives you a graph based on coolant temperature to set the duty cycle for idle control valve.
On open loop haltech will determine how much the valve is open solely based on the coolant temperature. It doesn't actually care what the engine is doing. It doesn't correct if its the engine is idling too low or too high.
The main issue with it is that the load on the engine isn't constant, you have power steering, ac, fans, also head lights, blower motor, and wiper blades that you only use depending on the weather and time of day, all of these things changes the amount of load on the engine. At idle the engine makes like no torque so even though these are relatively small loads they do effect the engine at idle. Also you have environmental changes that will mess with the idle speed.
So lets say you set your idle speed at 700rpm during a nice day. Lets say you go out for a drive later and you have the lights on and now its cooler so you turn on the heat and it idles a little bit lower but no worries. After driving for a bit you come to stop, you go turn the steering wheel and at same time your fans kick on, the engine drops in rpm and dies. This type of thing happened to me a few times.
It took me some time of trial and error to get it to idle reliably without being too high. My idle is at 1,100-1,200 and that seams to be enough to compensate for those things.
An option with the 500 is you can use "generic duty" option instead if "BAC" on the haltech for idle control it gives you an extra parameter to adjust by. If you set that up right you can probably get better results. But i use that for boost control so i haven't tried it.