Estimate the perfect amount of meat, cheese, and crackers for your guests.
Appetizer (Light Snack)
Main Course (Heavy Meal)
Imperial (Ounces/Lbs)
Metric (Grams/Kg)
Estimated Shopping List
Total Cured Meats:
Total Cheeses:
Bread & Crackers:
Fruit, Nuts & Olives:
Recommended Variety:
How to Use the Charcuterie Board Calculator
Planning the perfect charcuterie board requires a delicate balance. You don't want guests to go hungry, but you also don't want to overspend on premium artisan cheeses that might go to waste. This calculator uses standard catering ratios to ensure your grazing table is bountiful and beautiful.
Standard Portions per Person
Our calculator relies on the following industry standards for a balanced spread:
Appetizer Level: 2 to 3 ounces of meat and 2 to 3 ounces of cheese per person.
Main Course Level: 5 to 6 ounces of meat and 5 to 6 ounces of cheese per person.
The "Rule of Three": For small groups, aim for at least 3 types of meat and 3 types of cheese. For larger groups (10+), increase this to 5 of each.
Choosing the Right Variety
To create a professional-looking board, variety is key. Consider these categories:
Cheeses: One hard (Manchego), one soft (Brie), and one blue or aged (Gorgonzola or Sharp Cheddar).
Meats: One cured whole muscle (Prosciutto), one salami (Genoa), and one spicy option (Chorizo).
Crunch: Mix textures with water crackers, artisanal sourdough slices, and breadsticks.
Accompaniments: Balance the fats with acidity (cornichons, olives) and sweetness (honey, fig jam, fresh grapes).
Example Calculation
If you are hosting a party for 10 guests as an appetizer:
Meats: 10 guests × 2 oz = 20 oz (1.25 lbs)
Cheese: 10 guests × 2 oz = 20 oz (1.25 lbs)
Variety: Aim for 4 different cheeses and 4 different meats to provide selection.
function calculateCharcuterie() {
var guests = parseFloat(document.getElementById('numGuests').value);
var type = document.getElementById('servingType').value;
var unit = document.getElementById('unitPreference').value;
if (isNaN(guests) || guests 12) varietyCount = "5-6 types of each";
if (guests > 25) varietyCount = "7+ types of each";
if (unit === 'imperial') {
meatDisplay = formatImperial(totalMeatOz);
cheeseDisplay = formatImperial(totalCheeseOz);
breadDisplay = formatImperial(totalBreadOz);
sidesDisplay = formatImperial(totalSidesOz);
} else {
meatDisplay = formatMetric(totalMeatOz * 28.35);
cheeseDisplay = formatMetric(totalCheeseOz * 28.35);
breadDisplay = formatMetric(totalBreadOz * 28.35);
sidesDisplay = formatMetric(totalSidesOz * 28.35);
}
document.getElementById('resMeats').innerText = meatDisplay;
document.getElementById('resCheese').innerText = cheeseDisplay;
document.getElementById('resBread').innerText = breadDisplay;
document.getElementById('resSides').innerText = sidesDisplay;
document.getElementById('resVariety').innerText = varietyCount;
document.getElementById('charcuterieResults').style.display = 'block';
}
function formatImperial(oz) {
if (oz < 16) {
return oz.toFixed(1) + " oz";
} else {
var lbs = oz / 16;
return lbs.toFixed(2) + " lbs";
}
}
function formatMetric(grams) {
if (grams < 1000) {
return Math.round(grams) + " g";
} else {
var kg = grams / 1000;
return kg.toFixed(2) + " kg";
}
}