Uncovering Utility Functions from Observed Outcomes