The best software out there needs good data, so if you have job actuals for labor, and automatic material updating, then any of the software will work, without good data, none of these programs will work well, and don't forget the cost to input data, and updating services, these are the after purchase costs.