algorithm IPO