A study of 10 chain restaurants, including Wendy's and Ruby Tuesday, found that the number of calories in 29 meals or other menu items was an average of 18 percent higher than listed.
And frozen supermarket meals from Lean Cuisine, Weight Watchers, Healthy Choice and South Beach Living had 8 percent more calories than the labels said, according to the study, published in this month's Journal of the American Dietetic Association.
The researchers and other experts aren't accusing restaurants and food companies of trying to deceive customers. They said most of the discrepancies can be explained by variations in ingredients, portion sizes and testing methods. For example, the teenager behind the counter might have put too much mayonnaise on one sandwich.
Still, "if every time you eat out, you get a couple of hundred calories or more than you think, that can add up really easily," said lead researcher Susan Roberts, a professor of nutrition at Tufts University. "There's a big drumbeat for people putting calories on menus, but that's only useful if the calories are right."
Marion Nestle, a professor of nutrition at New York University who was not involved in the study, said she was not surprised by the findings. People might think nutrition labels are scientifically precise, but they are mostly ballpark figures, she said.
"It would never occur to me that the calories posted on menu boards are anything close to reality," Nestle said.
The study said most of the packaged food tested fell within the 20 percent margin of error allowed by the Food and Drug Administration.
Some items, like Domino's large thin-crust cheese pizza, came in low. It had one-third fewer than the reported 180 calories per serving.
Wendy's Ultimate Chicken Grill was found to have 9 percent more calories than the reported 320. P.F. Chang's large Sichuan-style asparagus had more than double the 200 calories it was supposed to have. Ruby Tuesday's baked potato with butter and sour cream came in on target, but researchers measured 3 percent more calories in McDonald's McChicken sandwich, which is said to have 360 calories.
Wendy's spokesman Bob Bertini said: "Since our food is prepared to order by restaurant teams, there can be small variances in the calorie count. For example, one sandwich might have a bit more mustard or ketchup. The next sandwich, the customer might choose to leave off the lettuce and tomato."
As the nation grapples with staggering obesity rates, local and state officials around the country have considered requiring chain restaurants to post nutrition information about their food. New York City, neighboring Westchester County, and King County in Washington state already have such regulations.
Despite the inaccuracies, Nestle said she believes nutrition information is useful. But she said people need to realize that a bagel listed at 303 calories could contain dozens more, or dozens fewer.
Researchers used a calorimeter to test food from Boston-area restaurants and grocers. They compared their results with calorie counts available from the companies in 2007 and 2008.
In a statement, a Denny's spokeswoman said variations in portion sizes can occur from restaurant to restaurant. The company also said it uses local vendors for bread, dairy and produce, each of which could have different product formulations and sizes.
Denny's questioned the study's contention that its grits and butter had three times the 80 calories listed on the menu - the largest fluctuation of all foods tested. Denny's said the researchers tested a 9.5-ounce serving instead of the 4-ounce one used in its own analysis.
"It would bother me if I counted on it to make my decision on what to get," Audrey Ledford, 55, of Torrance, Calif., said after having coffee with her son at a Los Angeles Denny's. "It should be correct."