Direct elicitation, guided by theory, is the standard method for eliciting latent preferences. The canonical direct-elicitation approach for measuring individuals’ valuations for goods is the Becker-DeGroot-Marschak procedure, which generates willingness-to-pay (WTP) values that are imprecise and systematically biased by understating valuations. We show that enhancing elicited WTP values with supervised machine learning (SML) can substantially improve estimates of peoples’ out-of-sample purchase behavior. Furthermore, swapping WTP data with choice data generated from a simple task, two-alternative forced choice leads to comparable performance. Combining all the data with the best-performing SML methods yields large improvements in predicting out-of-sample purchases. We quantify the benefit of using various SML methods in conjunction with using different types of data. Our results suggest that prices set by SML would increase revenue by 28% over using the stated WTP, with the same data.