1 piece
An indicative value and a committed value are different objects with different tolerances, and the cheapest way to break a product is to let one become the other. A cached price that ranks candidates is allowed to be wrong. The same number shown to a user as what they will pay is a promise. Keep them separate in the type system, not just in the documentation.