Framework for good/bad checkout