I thought the IV is "deriving" from the bid/ask value, no?
Since the other variables (Price, Strike, IR, Days to expiration) are known, all what left to do is to reverse engineer which IN value is matching the option price.
So you start with possible IV range, let's say, of 10-200, then you "ask" if Option Price higher or lower than 100. If the answer is lower, you "ask" if the option price is 50. And if its higher, then now IV range is between 50 and 100. Rinse and repeat until you match the option price.
Years ago, I've read somewhere that smart algo can match the option price with max of 6 hits for starting range of 0 to 250.