Wine Bottles for Guests Calculator
60 wine drinkers over a 4-hour event need 48 bottles: one glass per guest per hour, five glasses to a bottle, always rounded up. A clear baseline for dinners, receptions and celebrations. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Guest count
- 60
- Event hours
- 4
- Glasses per guest per hour
- 1
- Glasses per bottle
- 5
- Estimated glasses
- 240
- Bottles needed
- 48
Planning wine for a gathering is easier when the serving assumptions are visible and consistent. This calculator estimates the number of standard wine bottles needed from the number of wine-drinking guests and the event length. It uses one glass per guest per hour and five glasses per bottle, then rounds the bottle total upward so a fractional bottle never leaves the plan short. The result is a practical baseline for dinners, receptions, celebrations, and catered events, not a prediction of any individual guest’s consumption.
Start with the guests who are likely to drink wine
Enter the number of people expected to drink wine, rather than the total headcount when children, designated drivers, or non-drinkers are included. This distinction keeps the estimate useful without pretending every attendee consumes the same beverage. Then enter the full period during which wine will be served.
A four-hour reception means four hours even if dinner occupies only part of that time, provided wine remains available throughout. The calculator applies a fixed rate of one glass for each guest in each hour. That deliberately simple assumption creates a consistent planning baseline that can be compared across venues, dates, or attendance scenarios.
It does not adjust for age, food, weather, drinking preferences, or the availability of beer, cocktails, and alcohol-free alternatives. If wine will only be poured during a shorter meal service, use that shorter serving window. Accurate inputs matter more than false precision: count the relevant guests and describe the actual wine-service duration as closely as the schedule allows.
Understand the bottle calculation and upward rounding
The calculation multiplies guest count by event hours and by the fixed rate of one glass per guest per hour. It then divides the estimated glasses by five, the assumed servings in a standard 750 milliliter wine bottle. Because a purchasing plan cannot normally rely on part of a bottle, the final quantity is rounded upward to the next whole bottle.
For example, a result of 12.2 becomes 13 bottles. The response includes the guest count, duration, both fixed assumptions, estimated glass total, and whole bottles needed, making every step easy to inspect. A fractional duration is accepted, so a ninety-minute service can be entered as 1.5 hours.
The estimate treats red, white, rosé, and sparkling wine as one combined supply; it does not decide how many bottles of each style to buy. Bottle formats and pour sizes vary, so magnums, half bottles, oversized glasses, or unusually generous pours require a separate conversion before using the purchasing figure.
Use the result as a transparent planning baseline
Take the returned bottle count as a consistent baseline, then apply event knowledge outside the calculator when necessary. A seated meal with several other beverages may use less wine, while a wine-focused tasting or a long reception may need a larger reserve. Caterers can compare the estimate with venue experience, an existing stock count, supplier case sizes, and the host’s preferred safety margin.
When wine is sold by the case, divide the bottle result by the case size and round up only if full-case purchasing is required. Keep unopened-return policies in mind before adding surplus. The tool does not recommend alcohol consumption, determine legal service limits, estimate intoxication, or replace responsible beverage-service procedures.
It simply repeats the stated arithmetic identically for valid inputs. That makes it useful in automated quotes and event worksheets as well as one-off planning.
What you can do with it
Plan a wedding reception
Turn the expected number of wine-drinking guests and serving hours into a clear baseline bottle count.
Prepare a catering estimate
Apply the same fixed serving assumptions across event quotes and show clients how the quantity was calculated.
Compare event schedules
Recalculate bottle needs when the guest list or wine-service window changes during planning.
FAQ
What serving rate does the calculator use?
It uses a fixed rate of one glass per wine-drinking guest per hour.
How many glasses are assumed in one bottle?
The calculation assumes five glasses from one standard 750 milliliter wine bottle.
Does it round partial bottles up?
Yes. The estimated glass count is divided by five and the result is rounded upward to a whole bottle.
Should non-drinkers be included in the guest count?
No. Enter only guests expected to drink wine for a more relevant baseline.
Does the result split red, white, and sparkling wine?
No. It estimates a combined bottle total; allocate styles separately according to the menu and guest preferences.
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/wine-bottles-guests \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"guest_count":60,"event_hours":4}'const res = await fetch("https://api.kit.forhosting.com/cook/wine-bottles-guests", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"guest_count": 60,
"event_hours": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/wine-bottles-guests",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"guest_count": 60,
"event_hours": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/wine-bottles-guests", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"guest_count":60,"event_hours":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"guest_count":60,"event_hours":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/wine-bottles-guests", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"guest_count": 60,
"event_hours": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.wine_bottles_guests",
"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.
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
Use the result as a transparent planning baseline
The browser calculation is available for quick checks, while an API request costs $0.002 when the same estimate needs to be incorporated into software or a repeatable workflow.
Technical questions
What does an API calculation cost?
Each API request costs $0.002. The same deterministic calculation can also run in the browser.