← Blog

The Thanksgiving math problem

We built one Thanksgiving plate twice from USDA's own numbers: same dishes, same portions, 1,222 calories or 1,641 depending on four choices, two of which you can't see from your chair. Why the honest way to log the day is to take the high number and stop.

The usual question about Thanksgiving is how to log it accurately. The short answer is that you can’t, and it’s worth seeing exactly why, because once the size of the uncertainty is on the table the right way to log the day falls out of it.

So we built the plate. Twice.

Every number below comes from a USDA FoodData Central record: SR Legacy, USDA’s lab-analysed reference set, for everything except the green beans, which come from FNDDS, the survey database USDA uses for mixed dishes as people actually eat them. Each record is also a row in our catalog, and we checked every one against USDA’s live API on 23 September 2026. The FDC ID is listed next to each food so you can look it up yourself.

One plate, built twice

Same dishes, same portions, eight items on each. The portions are USDA’s own standard measures (3 oz of meat, 1 cup, one-eighth of a 9-inch pie), not a claim about how much anyone eats. What changes between the two columns is only what’s in the dish.

Item Portion Plate A Plate B
Turkey 6 oz 250 — breast, meat only (171496) 350 — dark meat with skin (171489)
Stuffing, from a mix ½ cup 195 (174931) 195 (174931)
Mashed potatoes 1 cup 174 — whole milk (170493) 237 — whole milk and margarine (170037)
Green beans 1 cup 59 — plain, no added fat (2709852) 129 — green bean casserole (2710040)
Turkey gravy ¼ cup 30 (171568) 30 (171568)
Cranberry sauce, canned ¼ cup 110 (173961) 110 (173961)
Dinner roll 1 roll 87 (172793) 87 (172793)
Pie ⅛ of 9” 316 — pumpkin (172788) 503 — pecan (172786)
Total 1,222 calories 1,641 calories

419 calories apart, on a plate that would look much the same from across the table.

Where the gap comes from:

  • Pie: 186. Pumpkin versus pecan. This one you can see.
  • Turkey: 100. Breast with no skin versus dark meat with skin. You can see which part of the bird you took; the skin is harder to account for once it’s under gravy.
  • Green beans: 70. Plain versus casserole. Visible.
  • Mashed potatoes: 63. The same cup of potatoes, with or without fat mashed in. Invisible. Nobody at the table can tell you how much went in, and the cook usually can’t either.

And that’s with the portions held fixed. Nobody at a Thanksgiving table knows they took exactly six ounces of turkey. Allow for that too and the honest answer to “what did that plate come to?” isn’t a number at all. It’s a range several hundred calories wide.

The single biggest lever is the one under the gravy

If you want one number to take into the day, it’s this. Per 3 oz, from the same USDA reference set:

  • Turkey breast, meat only, roasted: 125 calories (171496)
  • Turkey skin, roasted: 390 calories (171082)

Weight for weight, roasted skin carries about three times the calories of breast meat. That’s why “turkey” on its own is one of the least informative entries you can log in November: a slice with the skin on and a slice without are close to different foods.

None of which says what to eat. It just means that if you’re guessing at your plate, the skin is the part worth guessing about honestly.

Take the high number and stop

Here’s what the table argues for. You can’t know which plate you ate, and fiddling won’t close a 400-calorie gap. So log the high one and close the app.

We’re not saying that because the high number is right. It’s the better mistake. Log Plate B and eat Plate A, and your week looks about 400 calories worse than it was. Skip logging because the number feels unknowable, and the day disappears from the record completely. The first error is small and points in a known direction. The second leaves you not knowing what happened.

Here’s why the skipped day matters in Macroline specifically. Our History screen averages over the days you logged. A day with no entries isn’t counted as zero; it’s left out. Skip Thanksgiving and your 7-day average is built from six ordinary days, so it’s the best-looking number of the week and also the least true. Logging a generous estimate keeps the day in the average, where it belongs.

The same logic applies to a half-logged day. Log breakfast and nothing after it, and that day counts as a day you ate breakfast. A rough total for dinner is more accurate than a precise breakfast on its own.

What one day does to a week

Averages are forgiving, and the arithmetic is worth doing once so you don’t have to feel your way through it.

A day that runs 700 calories over your usual moves your 7-day average up by 100 calories a day. A day that runs 1,400 over moves it up by 200. That’s all it does, for that week, if the other six days look like your normal ones. It doesn’t cancel the week or restart anything.

We’re deliberately not converting any of that into pounds. The standard move is to divide by 3,500 and announce a weight, and that rule is known to overestimate real weight change. The average is the number worth watching. What the scale shows the morning after a big meal is a separate, noisier question.

Logging it, concretely

There are three reasonable ways to log a plate like this, and none of them needs a food scale.

Log the high-side items. Every row in the table above is in our catalog. Search the richer version of each dish you had and take USDA’s portion as your portion, rounding up where you’re unsure. The badge on each result names its source, so you’ll know when you’re working from a USDA FoodData Central record and not a guess.

Describe the plate in a sentence. “Dark meat turkey with skin, stuffing, mashed potatoes with butter, green bean casserole, gravy, a roll, slice of pecan pie.” Describe with AI turns that into items matched against the catalog, and nothing is logged until you’ve checked them and confirmed. Free accounts get three of those a day.

Log a single rough total. If even that’s more than the day deserves, one entry with a generous calorie number is still better than an empty day, for the reason above: an empty day drops out of your average, and an estimate stays in it.

Whichever you pick, your diary keeps a snapshot of the numbers as they were when you logged them. Nothing goes back and rewrites Thursday later.


That’s the problem: a plate you can’t weigh, made from recipes you didn’t write, with a range the size of a slice of pie. It has a clean answer. Take the high end, log it, and let the average do its job.

Every calorie figure here is from a USDA FoodData Central record (SR Legacy, plus FNDDS for the two green bean dishes), scaled to the portion shown and checked against USDA’s API on 2026-09-23. FDC IDs are listed with each item; look one up at fdc.nal.usda.gov. The History-average behaviour described is how Macroline computes it as of the same date.