Thanks for the responses. I did use a good slurry of ice and water. I thought altitude was negligible for the ice test (I'm about 750 feet above sea level). Anyway, no one seems terribly surprised by the 31F measurement, so maybe these thermometers are just fine, and it's my test that's imprecise.
Maybe I'll try the boiling water test. Maybe I'll just forget it and move on.