:root {
–primary-color: #004a99;
–success-color: #28a745;
–background-color: #f8f9fa;
–text-color: #333;
–border-color: #ccc;
–card-background: #fff;
–shadow: 0 4px 8px rgba(0,0,0,0.1);
}
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
background-color: var(–background-color);
color: var(–text-color);
line-height: 1.6;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
}
.container {
width: 100%;
max-width: 960px;
margin: 20px auto;
padding: 20px;
background-color: var(–card-background);
border-radius: 8px;
box-shadow: var(–shadow);
}
header {
background-color: var(–primary-color);
color: white;
padding: 20px 0;
text-align: center;
width: 100%;
}
header h1 {
margin: 0;
font-size: 2.5em;
}
main {
padding: 20px 0;
}
h2, h3 {
color: var(–primary-color);
margin-top: 1.5em;
}
.loan-calc-container {
background-color: var(–card-background);
padding: 30px;
border-radius: 8px;
box-shadow: var(–shadow);
margin-bottom: 30px;
}
.input-group {
margin-bottom: 20px;
text-align: left;
}
.input-group label {
display: block;
margin-bottom: 8px;
font-weight: bold;
color: var(–primary-color);
}
.input-group input[type=”number”],
.input-group input[type=”text”],
.input-group select {
width: calc(100% – 22px);
padding: 10px;
border: 1px solid var(–border-color);
border-radius: 4px;
font-size: 1em;
box-sizing: border-box;
}
.input-group .helper-text {
font-size: 0.85em;
color: #666;
margin-top: 5px;
display: block;
}
.error-message {
color: red;
font-size: 0.85em;
margin-top: 5px;
display: none; /* Hidden by default */
}
.button-group {
display: flex;
justify-content: space-between;
margin-top: 30px;
flex-wrap: wrap;
gap: 10px;
}
button {
padding: 12px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
font-weight: bold;
transition: background-color 0.3s ease;
}
button.primary {
background-color: var(–primary-color);
color: white;
}
button.primary:hover {
background-color: #003366;
}
button.success {
background-color: var(–success-color);
color: white;
}
button.success:hover {
background-color: #218838;
}
button.secondary {
background-color: #6c757d;
color: white;
}
button.secondary:hover {
background-color: #5a6268;
}
#results {
margin-top: 30px;
padding: 25px;
background-color: var(–primary-color);
color: white;
border-radius: 8px;
box-shadow: var(–shadow);
text-align: center;
}
#results h3 {
color: white;
margin-top: 0;
margin-bottom: 15px;
}
.result-item {
margin-bottom: 15px;
}
.result-item span {
font-weight: bold;
font-size: 1.2em;
}
.main-result {
font-size: 2em !important;
color: var(–success-color);
margin-bottom: 20px;
}
.formula-explanation {
font-size: 0.9em;
color: rgba(255, 255, 255, 0.8);
margin-top: 15px;
border-top: 1px solid rgba(255, 255, 255, 0.2);
padding-top: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
margin-bottom: 30px;
box-shadow: var(–shadow);
}
th, td {
padding: 12px;
text-align: left;
border-bottom: 1px solid var(–border-color);
}
thead th {
background-color: var(–primary-color);
color: white;
font-weight: bold;
}
tbody tr:nth-child(even) {
background-color: #f2f2f2;
}
caption {
font-size: 1.1em;
font-weight: bold;
color: var(–primary-color);
margin-bottom: 10px;
text-align: left;
}
canvas {
display: block;
margin: 20px auto;
border: 1px solid var(–border-color);
border-radius: 4px;
background-color: var(–card-background);
}
.article-content {
margin-top: 40px;
background-color: var(–card-background);
padding: 30px;
border-radius: 8px;
box-shadow: var(–shadow);
}
.article-content h2, .article-content h3 {
margin-top: 1.5em;
color: var(–primary-color);
}
.article-content p {
margin-bottom: 1em;
}
.article-content ul, .article-content ol {
margin-left: 20px;
margin-bottom: 1em;
}
.article-content li {
margin-bottom: 0.5em;
}
.faq-item {
margin-bottom: 15px;
padding: 10px;
border: 1px solid #eee;
border-radius: 4px;
}
.faq-item h4 {
margin: 0 0 5px 0;
color: var(–primary-color);
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
}
.faq-item h4::after {
content: ‘+’;
font-size: 1.2em;
color: var(–primary-color);
}
.faq-item.open h4::after {
content: ‘-‘;
}
.faq-item .answer {
display: none;
margin-top: 10px;
font-size: 0.95em;
color: #555;
}
.internal-links {
margin-top: 30px;
padding: 20px;
background-color: var(–card-background);
border-radius: 8px;
box-shadow: var(–shadow);
}
.internal-links h3 {
margin-top: 0;
color: var(–primary-color);
}
.internal-links ul {
list-style: none;
padding: 0;
}
.internal-links li {
margin-bottom: 10px;
}
.internal-links a {
color: var(–primary-color);
text-decoration: none;
font-weight: bold;
}
.internal-links a:hover {
text-decoration: underline;
}
.internal-links p {
font-size: 0.9em;
color: #666;
margin-top: 5px;
}
@media (max-width: 768px) {
.container {
margin: 10px;
padding: 15px;
}
header h1 {
font-size: 1.8em;
}
.button-group {
flex-direction: column;
align-items: center;
}
button {
width: 100%;
}
}
Liquor Cost Calculator
Calculate Your Pour Cost
Enter the details of your bottle and the pour size to see your liquor cost per serving.
Standard bottle size in milliliters (e.g., 750ml, 1000ml).
The total cost you paid for the bottle.
The amount of liquor poured per serving in milliliters (e.g., 45ml for a standard pour).
Your Pour Cost Results
Number of Pours Per Bottle:
—
Cost Per Pour ($):
—
Liquor Cost Percentage (%):
—
Target Selling Price ($):
—
Number of Pours = Bottle Size / Pour Size
Cost Per Pour = Bottle Price / Number of Pours
Liquor Cost Percentage = (Cost Per Pour / Selling Price) * 100
Target Selling Price = Cost Per Pour / (Target Liquor Cost Percentage / 100)
Liquor Cost Analysis Table
| Target Liquor Cost (%) | Cost Per Pour ($) | Required Selling Price ($) | Profit Per Pour ($) |
|---|
What is Liquor Cost?
Liquor cost refers to the direct expense incurred by a bar or restaurant for the alcoholic beverages that are served to customers. It’s a critical metric for understanding the profitability of individual drinks and the overall beverage program. Essentially, it’s the price you pay for the liquid that goes into the glass. Accurately calculating and managing your liquor cost is fundamental to setting profitable menu prices, controlling inventory, and ensuring the financial health of your establishment. A low liquor cost percentage means you’re keeping more of the revenue from each drink sold as profit, while a high liquor cost percentage indicates that a larger portion of your sales revenue is being spent on the product itself, potentially squeezing your profit margins.
Who should use it: Anyone involved in the sale of alcoholic beverages, including bar owners, restaurant managers, inventory managers, bartenders, and even home entertainers looking to budget for parties. Understanding liquor cost is vital for businesses aiming to maximize profitability and maintain competitive pricing. It helps in making informed decisions about purchasing, pricing strategies, and portion control. For any establishment that serves spirits, wine, or beer, this calculation is non-negotiable for sound financial management.
Common misconceptions: A frequent misconception is that liquor cost is simply the price of the bottle divided by the number of drinks you think you can get from it. This overlooks crucial factors like spillage, waste, free pours, and the actual standard pour size. Another error is confusing liquor cost with the selling price. Liquor cost is your expense; selling price is what the customer pays. The difference between the two, after accounting for the liquor cost percentage, determines your gross profit. Many also underestimate the impact of small variations in pour size or bottle price on the overall profitability of their beverage program.
Liquor Cost Formula and Mathematical Explanation
The calculation of liquor cost involves several steps to arrive at a clear understanding of your profitability per serving. Here’s a breakdown of the core formulas:
1. Number of Pours Per Bottle: This tells you how many standard servings you can get from a single bottle.
Number of Pours = Bottle Size (ml) / Pour Size (ml)
2. Cost Per Pour: This is the direct cost of the liquid in a single serving.
Cost Per Pour = Bottle Price ($) / Number of Pours
3. Liquor Cost Percentage: This is the most crucial metric, showing what percentage of your selling price is represented by the cost of the liquor.
Liquor Cost Percentage = (Cost Per Pour ($) / Selling Price ($)) * 100
4. Target Selling Price: If you know your desired liquor cost percentage, you can calculate the selling price needed to achieve it.
Target Selling Price ($) = Cost Per Pour ($) / (Target Liquor Cost Percentage / 100)
Variable Explanations
| Variable | Meaning | Unit | Typical Range |
|---|---|---|---|
| Bottle Size | The total volume of liquid in the bottle purchased. | Milliliters (ml) | 750ml, 1000ml, 1500ml |
| Bottle Price | The total cost paid for the bottle of liquor. | US Dollars ($) | $15.00 – $150.00+ |
| Pour Size | The volume of liquor dispensed for a single serving. | Milliliters (ml) | 25ml – 60ml (standard pours vary by region and establishment) |
| Number of Pours | The calculated number of servings obtainable from one bottle. | Count | 10 – 30+ |
| Cost Per Pour | The direct cost of the liquor for one serving. | US Dollars ($) | $0.50 – $5.00+ |
| Selling Price | The price charged to the customer for the drink. | US Dollars ($) | $5.00 – $20.00+ |
| Liquor Cost Percentage | The ratio of the cost per pour to the selling price, expressed as a percentage. | Percentage (%) | 15% – 25% (common target range) |
| Target Liquor Cost Percentage | The desired maximum percentage of the selling price that liquor cost should represent. | Percentage (%) | 15% – 25% |
| Target Selling Price | The calculated selling price needed to achieve a specific liquor cost percentage. | US Dollars ($) | $5.00 – $20.00+ |
| Profit Per Pour | The gross profit generated from a single serving after deducting the liquor cost. | US Dollars ($) | $2.00 – $15.00+ |
Practical Examples (Real-World Use Cases)
Example 1: Standard Bar Pour
A bar is evaluating its pricing for a popular vodka. They purchase a 750ml bottle for $28.00 and use a standard pour size of 45ml for their well drinks.
- Bottle Size: 750 ml
- Bottle Price: $28.00
- Pour Size: 45 ml
Calculations:
- Number of Pours = 750 ml / 45 ml = 16.67 pours
- Cost Per Pour = $28.00 / 16.67 = $1.68
If the bar wants to achieve a 20% liquor cost percentage:
- Target Selling Price = $1.68 / (20 / 100) = $1.68 / 0.20 = $8.40
Interpretation: To maintain a 20% liquor cost, the bar should price this vodka drink at approximately $8.40. The profit per pour would be $8.40 – $1.68 = $6.72. If they sell it for $9.00, their liquor cost percentage is ($1.68 / $9.00) * 100 = 18.67%, which is excellent. If they price it at $7.50, their liquor cost percentage is ($1.68 / $7.50) * 100 = 22.4%, which might be too high depending on their overall cost structure.
Example 2: Craft Cocktail Pricing
A craft cocktail bar is creating a new signature drink using a premium gin. The bottle costs $55.00 for 1000ml, and the recipe calls for a 60ml pour.
- Bottle Size: 1000 ml
- Bottle Price: $55.00
- Pour Size: 60 ml
Calculations:
- Number of Pours = 1000 ml / 60 ml = 16.67 pours
- Cost Per Pour = $55.00 / 16.67 = $3.30
The bar aims for a slightly higher liquor cost percentage of 22% for premium drinks, considering the complexity and perceived value.
- Target Selling Price = $3.30 / (22 / 100) = $3.30 / 0.22 = $15.00
Interpretation: To achieve a 22% liquor cost for this premium gin cocktail, the selling price should be $15.00. The profit per pour would be $15.00 – $3.30 = $11.70. This price point reflects the higher cost of the premium spirit and the craft nature of the drink, while still ensuring a healthy profit margin. If they were to price it at $14.00, the liquor cost percentage would be ($3.30 / $14.00) * 100 = 23.57%, which is still within an acceptable range for a premium offering.
How to Use This Liquor Cost Calculator
Our Liquor Cost Calculator is designed for simplicity and accuracy. Follow these steps to get your pour cost insights:
- Enter Bottle Size: Input the total volume of the liquor bottle in milliliters (ml). The default is 750ml, a common size.
- Enter Bottle Price: Input the exact price you paid for the bottle in US dollars ($).
- Enter Pour Size: Input the standard amount of liquor you pour for a single serving in milliliters (ml). This is crucial for accuracy. Use a jigger or measuring device to determine this precisely.
- Click Calculate: Once all fields are filled, click the “Calculate” button.
How to read results:
- Number of Pours Per Bottle: This shows how many standard servings you can expect from one bottle.
- Cost Per Pour: This is the direct cost of the liquor for one drink.
- Liquor Cost Percentage: This is the percentage of your selling price that the ‘Cost Per Pour’ represents. A lower percentage is generally better.
- Target Selling Price: Based on a common target liquor cost percentage (e.g., 20%), this suggests a selling price to achieve that target.
Decision-making guidance: Use the ‘Target Selling Price’ as a benchmark. If your current selling price is lower than the target, you may be losing money on that drink or have a very high liquor cost percentage. If your current selling price is higher, you’re likely making a good profit. Adjust your pour sizes or selling prices based on these results to optimize profitability. The table and chart below the calculator provide further analysis for different target percentages.
Key Factors That Affect Liquor Cost Results
Several factors can significantly influence your calculated liquor cost and overall beverage profitability. Understanding these elements is key to effective cost management:
- Pour Size Accuracy: This is paramount. Inconsistent or overly generous pours directly increase your cost per serving and decrease your profit margin. Using standardized jiggers and training staff on proper usage is essential. Even a 5ml difference per pour can add up significantly over hundreds of drinks.
- Bottle Price Fluctuations: The cost of liquor can change due to supplier price increases, bulk discounts, or promotional offers. Regularly updating your bottle costs in the calculator ensures your calculations remain relevant. Buying in larger quantities might lower the per-bottle cost, improving your liquor cost percentage.
- Spillage and Waste: Broken bottles, spills during pouring, or spoilage (for items like wine or certain liqueurs) represent direct costs that aren’t captured in a simple pour calculation. Implementing careful handling procedures and proper inventory rotation (FIFO – First-In, First-Out) minimizes these losses.
- Free Pours and “Top Shelf” Upgrades: When bartenders free-pour or customers request “top shelf” spirits without a corresponding price adjustment, it drastically impacts the actual liquor cost. Strict policies and accurate charging for upgrades are necessary.
- Inventory Shrinkage: Theft, whether internal or external, leads to missing inventory. This means you’re paying for bottles that never get served, effectively increasing your overall liquor cost. Robust inventory management systems and security measures are vital.
- Sales Volume and Pricing Strategy: While the calculator focuses on cost per pour, the selling price is equally important. A high volume of sales at a slightly higher liquor cost percentage might still yield greater overall profit than low volume sales at a very low liquor cost percentage. Your pricing strategy must balance cost, perceived value, and market competition.
- Taxes and Fees: While not directly part of the liquor cost calculation itself, various taxes (sales tax, excise tax) and licensing fees add to the overall cost of doing business and must be factored into your final menu pricing strategy to ensure overall profitability.
Frequently Asked Questions (FAQ)
What is the ideal liquor cost percentage for a bar?
Does liquor cost include mixers and garnishes?
How often should I update my bottle prices?
What’s the difference between liquor cost and food cost?
My calculated selling price seems too high. What should I do?
How do I calculate the cost for a drink with multiple liquors?
What is a “free pour” and why is it bad for liquor cost?
Can I use this calculator for wine and beer?
Related Tools and Internal Resources
-
Bar Inventory Management Template
Streamline your inventory tracking with our downloadable template to reduce waste and control costs.
-
Restaurant Profit Margin Calculator
Understand your overall business profitability beyond just liquor costs.
-
Menu Engineering Guide
Learn how to price your menu items strategically for maximum profit.
-
Cocktail Recipe Costing Sheet
A detailed breakdown for costing complex cocktail recipes, including all ingredients.
-
Bar Startup Checklist
Essential steps and considerations for opening a successful bar.
-
Beverage Cost Control Tips
Actionable advice to minimize waste and maximize profits in your beverage program.
var ctx;
var liquorCostChart;
function validateInput(inputId, errorId, minValue, maxValue) {
var input = document.getElementById(inputId);
var errorDiv = document.getElementById(errorId);
var value = parseFloat(input.value);
errorDiv.style.display = ‘none’;
input.style.borderColor = ‘#ccc’;
if (isNaN(value) || input.value.trim() === “”) {
errorDiv.textContent = “This field is required.”;
errorDiv.style.display = ‘block’;
input.style.borderColor = ‘red’;
return false;
}
if (value <= 0) {
errorDiv.textContent = "Value must be positive.";
errorDiv.style.display = 'block';
input.style.borderColor = 'red';
return false;
}
if (minValue !== undefined && value maxValue) {
errorDiv.textContent = “Value must be no more than ” + maxValue + “.”;
errorDiv.style.display = ‘block’;
input.style.borderColor = ‘red’;
return false;
}
return true;
}
function calculateLiquorCost() {
var bottleSize = parseFloat(document.getElementById(“bottleSize”).value);
var bottlePrice = parseFloat(document.getElementById(“bottlePrice”).value);
var pourSizeMl = parseFloat(document.getElementById(“pourSizeMl”).value);
var isValid = true;
isValid = validateInput(“bottleSize”, “bottleSizeError”) && isValid;
isValid = validateInput(“bottlePrice”, “bottlePriceError”) && isValid;
isValid = validateInput(“pourSizeMl”, “pourSizeMlError”) && isValid;
if (!isValid) {
document.getElementById(“numberOfPours”).textContent = “–“;
document.getElementById(“costPerPour”).textContent = “–“;
document.getElementById(“liquorCostPercentage”).textContent = “–“;
document.getElementById(“targetSellingPrice”).textContent = “–“;
clearChartAndTable();
return;
}
var numberOfPours = bottleSize / pourSizeMl;
var costPerPour = bottlePrice / numberOfPours;
document.getElementById(“numberOfPours”).textContent = numberOfPours.toFixed(2);
document.getElementById(“costPerPour”).textContent = “$” + costPerPour.toFixed(2);
// Calculate for common target percentages for table and chart
var analysisData = [];
var targetPercentages = [15, 18, 20, 22, 25]; // Common targets
for (var i = 0; i < targetPercentages.length; i++) {
var targetPercent = targetPercentages[i];
var targetSellingPrice = costPerPour / (targetPercent / 100);
var liquorCostPercentage = (costPerPour / targetSellingPrice) * 100;
var profitPerPour = targetSellingPrice – costPerPour;
if (i === Math.floor(targetPercentages.length / 2)) { // Set main result for the middle target (e.g., 20%)
document.getElementById("liquorCostPercentage").textContent = liquorCostPercentage.toFixed(2) + "%";
document.getElementById("targetSellingPrice").textContent = "$" + targetSellingPrice.toFixed(2);
}
analysisData.push({
targetPercent: targetPercent,
costPerPour: costPerPour.toFixed(2),
sellingPrice: targetSellingPrice.toFixed(2),
profitPerPour: profitPerPour.toFixed(2)
});
}
updateTable(analysisData);
updateChart(analysisData, costPerPour.toFixed(2));
}
function updateTable(data) {
var tableBody = document.getElementById("analysisTable").getElementsByTagName('tbody')[0];
tableBody.innerHTML = ''; // Clear existing rows
for (var i = 0; i < data.length; i++) {
var row = tableBody.insertRow();
row.insertCell(0).textContent = data[i].targetPercent + "%";
row.insertCell(1).textContent = "$" + data[i].costPerPour;
row.insertCell(2).textContent = "$" + data[i].sellingPrice;
row.insertCell(3).textContent = "$" + data[i].profitPerPour;
}
}
function updateChart(data, currentCostPerPour) {
var labels = data.map(function(item) { return item.targetPercent + "%"; });
var sellingPrices = data.map(function(item) { return parseFloat(item.sellingPrice); });
var profits = data.map(function(item) { return parseFloat(item.profitPerPour); });
var canvas = document.getElementById('liquorCostChart');
if (!canvas) return; // Exit if canvas element not found
ctx = canvas.getContext('2d');
if (liquorCostChart) {
liquorCostChart.destroy(); // Destroy previous chart instance if it exists
}
liquorCostChart = new Chart(ctx, {
type: 'bar', // Changed to bar chart for better comparison
data: {
labels: labels,
datasets: [{
label: 'Required Selling Price ($)',
data: sellingPrices,
backgroundColor: 'rgba(0, 74, 153, 0.6)', // Primary color
borderColor: 'rgba(0, 74, 153, 1)',
borderWidth: 1
}, {
label: 'Profit Per Pour ($)',
data: profits,
backgroundColor: 'rgba(40, 167, 69, 0.6)', // Success color
borderColor: 'rgba(40, 167, 69, 1)',
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: {
beginAtZero: true,
title: {
display: true,
text: 'Amount ($)'
}
}
},
plugins: {
title: {
display: true,
text: 'Selling Price & Profit vs. Target Liquor Cost'
},
tooltip: {
callbacks: {
label: function(context) {
var label = context.dataset.label || '';
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += '$' + context.parsed.y.toFixed(2);
}
return label;
}
}
}
}
}
});
}
function clearChartAndTable() {
var tableBody = document.getElementById("analysisTable").getElementsByTagName('tbody')[0];
tableBody.innerHTML = '';
if (ctx) {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
if (liquorCostChart) {
liquorCostChart.destroy();
liquorCostChart = null;
}
}
function resetCalculator() {
document.getElementById("bottleSize").value = "750";
document.getElementById("bottlePrice").value = "25.50";
document.getElementById("pourSizeMl").value = "45";
document.getElementById("bottleSizeError").style.display = 'none';
document.getElementById("bottlePriceError").style.display = 'none';
document.getElementById("pourSizeMlError").style.display = 'none';
document.getElementById("bottleSize").style.borderColor = '#ccc';
document.getElementById("bottlePrice").style.borderColor = '#ccc';
document.getElementById("pourSizeMl").style.borderColor = '#ccc';
calculateLiquorCost(); // Recalculate with default values
}
function copyResults() {
var numberOfPours = document.getElementById("numberOfPours").textContent;
var costPerPour = document.getElementById("costPerPour").textContent;
var liquorCostPercentage = document.getElementById("liquorCostPercentage").textContent;
var targetSellingPrice = document.getElementById("targetSellingPrice").textContent;
var bottleSize = document.getElementById("bottleSize").value;
var bottlePrice = document.getElementById("bottlePrice").value;
var pourSizeMl = document.getElementById("pourSizeMl").value;
var resultText = "— Liquor Cost Calculator Results —\n\n";
resultText += "Inputs:\n";
resultText += "- Bottle Size: " + bottleSize + " ml\n";
resultText += "- Bottle Price: $" + bottlePrice + "\n";
resultText += "- Pour Size: " + pourSizeMl + " ml\n\n";
resultText += "Calculated Values:\n";
resultText += "- Number of Pours Per Bottle: " + numberOfPours + "\n";
resultText += "- Cost Per Pour: " + costPerPour + "\n";
resultText += "- Liquor Cost Percentage: " + liquorCostPercentage + "\n";
resultText += "- Target Selling Price: " + targetSellingPrice + "\n\n";
resultText += "Formula Used:\n";
resultText += "Number of Pours = Bottle Size / Pour Size\n";
resultText += "Cost Per Pour = Bottle Price / Number of Pours\n";
resultText += "Liquor Cost Percentage = (Cost Per Pour / Selling Price) * 100\n";
resultText += "Target Selling Price = Cost Per Pour / (Target Liquor Cost Percentage / 100)\n";
try {
navigator.clipboard.writeText(resultText).then(function() {
alert("Results copied to clipboard!");
}).catch(function(err) {
console.error("Failed to copy: ", err);
alert("Failed to copy results. Please copy manually.");
});
} catch (e) {
console.error("Clipboard API not available: ", e);
alert("Clipboard API not available. Please copy manually.");
}
}
function toggleFaq(element) {
var faqItem = element.closest('.faq-item');
faqItem.classList.toggle('open');
var answer = faqItem.querySelector('.answer');
if (faqItem.classList.contains('open')) {
answer.style.display = 'block';
} else {
answer.style.display = 'none';
}
}
// Initial calculation on page load
document.addEventListener('DOMContentLoaded', function() {
calculateLiquorCost();
// Ensure chart is initialized correctly on load
var canvas = document.getElementById('liquorCostChart');
if (canvas) {
ctx = canvas.getContext('2d');
// Initial empty chart or placeholder if needed, but updateChart handles it
}
});