Calculate manufacturing overhead allocation rates based on estimates.
The total expected overhead costs for the upcoming period (e.g., rent, utilities, indirect labor).
Select the driver used to assign costs.
Direct Labor Hours
Machine Hours
Direct Labor Cost ($)
Units Produced
The total expected activity level for the upcoming period.
Predetermined Overhead Rate:
Interpretation: For every unit of used in production, you allocate of overhead cost.
When is the Predetermined Overhead Rate Calculated?
The Predetermined Overhead Rate (POR) is calculated at the beginning of the accounting period, before any actual manufacturing operations for that period begin. This timing is critical for managerial accounting purposes.
Why is it calculated at the beginning?
Managers cannot wait until the end of the year to know the actual costs of manufacturing because they need to make real-time decisions regarding pricing, product mix, and bid estimation. Actual overhead costs (like electricity bills or indirect material usage) are often not finalized until weeks or months after production occurs.
By calculating the rate at the start of the period using estimates, companies can:
Normalize Costs: It smooths out seasonal fluctuations in overhead costs (e.g., high heating bills in winter) so that unit costs remain consistent throughout the year.
Timely Costing: It allows the company to assign a cost to a job immediately upon completion, rather than waiting for actual bills to arrive.
The Formula
Since the rate is calculated before actual data is available, it relies entirely on estimated figures:
Predetermined Overhead Rate = Estimated Total Manufacturing Overhead / Estimated Total Allocation Base
Components of the Calculation
Estimated Overhead: The sum of all indirect costs (indirect labor, factory rent, depreciation, utilities) expected for the coming year.
Estimated Allocation Base: The measure of activity that drives costs, such as Direct Labor Hours, Machine Hours, or Direct Labor Dollars.
How to Apply the Rate
Once the period begins and production starts, the predetermined rate is applied to the actual activity level. For example, if your rate is $25 per machine hour and a specific job uses 10 machine hours, you would apply $250 of overhead to that job.
At the end of the period, accountants reconcile the difference between the Applied Overhead (calculated using the POR) and the Actual Overhead costs incurred. The difference is recorded as either underapplied or overapplied overhead.
function updateBaseLabel() {
var selector = document.getElementById("allocationBaseType");
var selectedText = selector.options[selector.selectedIndex].text;
var label = document.getElementById("baseLabel");
// Update the label text to match the selected base type
label.innerText = "Estimated Total " + selectedText;
}
function calculateOverheadRate() {
// 1. Get Elements
var overheadInput = document.getElementById("estOverheadCost");
var baseInput = document.getElementById("estBaseAmount");
var baseTypeSelector = document.getElementById("allocationBaseType");
var resultBox = document.getElementById("porResult");
var rateValueDiv = document.getElementById("rateValue");
var resBaseTypeSpan = document.getElementById("resBaseType");
var resRateSmallSpan = document.getElementById("resRateSmall");
var errorDiv = document.getElementById("porError");
// 2. Parse Values
var estimatedOverhead = parseFloat(overheadInput.value);
var estimatedBase = parseFloat(baseInput.value);
var baseType = baseTypeSelector.value;
// 3. Validation
errorDiv.style.display = "none";
resultBox.style.display = "none";
if (isNaN(estimatedOverhead) || estimatedOverhead < 0) {
errorDiv.innerText = "Please enter a valid Estimated Overhead Cost.";
errorDiv.style.display = "block";
return;
}
if (isNaN(estimatedBase) || estimatedBase <= 0) {
errorDiv.innerText = "Please enter a valid Estimated Allocation Base (must be greater than 0).";
errorDiv.style.display = "block";
return;
}
// 4. Calculation
var rate = estimatedOverhead / estimatedBase;
// 5. Formatting Output based on Base Type
var formattedRate = "";
var unitLabel = "";
if (baseType === "Direct Labor Cost") {
// Usually expressed as a percentage of cost
var percentage = rate * 100;
formattedRate = percentage.toFixed(2) + "% of Direct Labor Cost";
unitLabel = "$" + rate.toFixed(2);
} else {
// Usually expressed as $ per unit/hour
formattedRate = "$" + rate.toFixed(2) + " per " + baseType.replace(/s$/, ''); // singularize roughly
unitLabel = "$" + rate.toFixed(2);
}
// 6. Display Result
rateValueDiv.innerText = formattedRate;
resBaseTypeSpan.innerText = baseType;
resRateSmallSpan.innerText = unitLabel;
resultBox.style.display = "block";
}