Thanksgiving calorie calculator
Two servings of turkey, three of sides, one slice of pumpkin pie and two glasses of wine add up to 1,483 kilocalories. Enter how many servings of each course you plan and get the meal total before you sit down. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Turkey
- 2
- Sides
- 3
- Dessert
- 1
- Number of drinks
- 2
- Turkey kcal
- 380
- Sides kcal
- 540
- Dessert kcal
- 323
- Drinks kcal
- 240
A Thanksgiving plate is four energy sources stacked on one dish: the turkey, the sides, the dessert, and the drinks. This Thanksgiving calorie calculator accepts a serving count for each of those four courses and returns the meal's total kilocalories. One turkey serving is a four-ounce slice of roasted bird with skin at 190 kilocalories. One side serving is a half-cup of bread stuffing, used as the representative Thanksgiving side, at 180 kilocalories. One dessert serving is a slice of pumpkin pie, one eighth of a nine-inch pie, at 323 kilocalories. One drink serving is five fluid ounces of table wine or an equivalent holiday drink at 120 kilocalories. The identity is linear: multiply each count by its serving energy and add the four products. Zero is a skipped course, not an error.
Four serving constants for a Thanksgiving plate
A Thanksgiving calorie calculator is only useful when each course is attached to a known energy figure, not to a vague holiday buffet. This capability stores four frozen kilocalorie constants, one per course, so the same serving counts always produce the same meal total. Turkey uses 190 kilocalories per serving, matching a four-ounce portion of roasted turkey with skin, the slice people actually put on a plate rather than a hundred-gram laboratory sample.
Dessert uses 323 kilocalories per serving, matching one slice of pumpkin pie equal to one eighth of a nine-inch pie, the USDA-style bakery slice that dominates Thanksgiving dessert searches. Drinks use 120 kilocalories per serving, matching five fluid ounces of table wine or an equivalent holiday drink such as cider. Those four numbers are a deterministic convention, not a live nutrition database: roast, brand, and homemade recipes vary, and this parse calculator does not fetch labels.
The landing is Thanksgiving plate calories, not bird-weight brine and not guest-count side quantity; those are different searches served by other cook tools.
What you enter, what you get and when it helps
Example: turkey 2, sides 3, dessert 1, drinks 2 yields 380 plus 540 plus 323 plus 240, which is 1483 kilocalories. Hosts use that number to sketch a plate before they sit down. Nutrition coaches use it to log a holiday meal without maintaining a USDA table in every client.
Classroom demos use it because the arithmetic is short enough to check by hand and stable enough to pin in tests. Meal-log apps map a Thanksgiving line-item to kilocalories from four counts instead of free-text recipe parsing. Failed validation does not consume balance.
What you can do with it
Sketch a plate against a calorie budget
Enter turkey, sides, dessert, and drink servings before you sit down and read the kilocalorie total against the remaining budget for the day.
Log leftovers and second helpings
Raise a serving count for an extra slice of turkey or pie and recompute the plate without rebuilding a recipe database.
Meal-log and coaching apps
Resolve a Thanksgiving line-item to kilocalories from four serving counts without maintaining USDA food tables in every client.
FAQ
How are total Thanksgiving meal calories computed?
Calories equal turkey × 190 plus sides × 180 plus dessert × 323 plus drinks × 120. Those four constants are frozen USDA-style serving energies: 4 oz roasted turkey with skin, 1/2 cup bread stuffing, one slice of pumpkin pie, and 5 fl oz of table wine or an equivalent holiday drink.
What does one serving of each course mean?
Turkey is a four-ounce roasted portion with skin (190 kcal). Sides are a half-cup of bread stuffing as the representative Thanksgiving side (180 kcal). Dessert is one slice of pumpkin pie, one eighth of a nine-inch pie (323 kcal). Drinks are five fluid ounces of table wine or an equivalent holiday drink (120 kcal).
What happens if a serving count is negative or not a number?
Turkey, sides, dessert, and drinks must each be a finite non-negative number. A negative count cannot describe a plate, a non-numeric value cannot be multiplied, and the failure is not billed.
Can I skip a course with zero servings?
Yes. Zero means that course is not on the plate. A savoury plate with no pie and no wine is turkey and sides with dessert 0 and drinks 0, which is valid and yields only those two products in the total.
Why is stuffing used for every side dish?
Stuffing sits at the high end of the usual Thanksgiving sides, so using it for every side serving does not undercount mashed potatoes with gravy, green-bean casserole or cranberry sauce when you log a mixed plate.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/cook/thanksgiving-calories \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"turkey":2,"sides":3,"dessert":1,"drinks":2}'const res = await fetch("https://api.kit.forhosting.com/cook/thanksgiving-calories", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"turkey": 2,
"sides": 3,
"dessert": 1,
"drinks": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/thanksgiving-calories",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"turkey": 2,
"sides": 3,
"dessert": 1,
"drinks": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/thanksgiving-calories", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"turkey":2,"sides":3,"dessert":1,"drinks":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"turkey":2,"sides":3,"dessert":1,"drinks":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/thanksgiving-calories", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"turkey": 2,
"sides": 3,
"dessert": 1,
"drinks": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.thanksgiving_calories",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_servings | 10000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
A negative count or a value that is not a finite number fails with invalid_input instead of inventing a negative meal.
Four serving constants for a Thanksgiving plate
Sides use 180 kilocalories per serving, matching a half-cup of prepared bread stuffing, which is the representative Thanksgiving side: stuffing sits at the high end of common sides, so a stuffing-based constant does not undercount mashed potatoes with gravy, green-bean casserole, or cranberry sauce when someone logs a mixed plate as sides. If you need a custom recipe, scale your own grams outside this endpoint and keep the serving counts here as the plate sketch.
The calorie identity and what invalid input means
Total calories equal turkey times 190 plus sides times 180 plus dessert times 323 plus drinks times 120. Fractions are allowed when someone ate half a slice; 0.5 dessert servings contributes 161.5 kilocalories. Zero is a skipped course: turkey 2, sides 3, dessert 0, drinks 0 is a savoury plate with no pie and no wine, not an error. A negative serving count is not a plate, it is a data error. Serving counts above 10000 fail as a declared limit so a typo cannot explode the arithmetic. If turkey, sides, dessert, or drinks is negative, the task fails with invalid_input naming the field and stating that a serving count cannot be negative. Those failures are not billed. A value that is not a finite number — missing, empty, NaN, Infinity, or a non-numeric string — also fails with invalid_input naming the field and stating that a finite number was expected. The response echoes the four counts, reports turkey_kcal, sides_kcal, dessert_kcal, and drinks_kcal as the four products, and puts the sum in calories. Pair the number with your own remaining budget or food diary; this endpoint only converts four serving counts into kilocalories. It does not estimate a whole-table feast from guest count, does not scale a turkey by bird weight, and does not convert minutes of walking to burn the meal. Those are different search intents, and this landing stays on Thanksgiving plate calories so hosts and coaches can pin a number without standing up a nutrition database.
Input contract, response shape, and where it fits
POST a JSON body with four required fields: turkey, sides, dessert, and drinks, each a finite non-negative number of servings, maximum 10000. Missing fields, non-finite numbers, negative counts, and values above the declared limit all fail as invalid_input with a message that names the field. On success the body includes the echoed turkey, sides, dessert, and drinks; turkey_kcal, sides_kcal, dessert_kcal, and drinks_kcal; calories as the sum; and a short formula string.
Technical questions
Does the free Thanksgiving calorie widget match the API, and what does a call cost?
Yes: handler and widget share the same solve module, so calories agree byte-for-byte. The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.