Enter the total estimated fixed costs for the period.
Direct Labor Hours
Machine Hours
Units of Production
Direct Labor Cost ($)
Direct Material Cost ($)
Enter the total estimated volume for the selected base.
Calculated Absorption Rate
$0.00
How to Calculate Fixed Overhead Absorption Rate
The Fixed Overhead Absorption Rate (FOAR), often referred to as the Predetermined Overhead Rate, is a crucial metric in management accounting. It is used to allocate indirect fixed costs—such as factory rent, supervisor salaries, and insurance—to specific cost units (products or services). Because fixed overheads are not directly traceable to a single unit, businesses must "absorb" these costs into the cost of production using an estimated rate.
Formula:
FOAR = Budgeted Fixed Overheads / Budgeted Activity Level
Why Use a Predetermined Rate?
Actual overhead costs and actual activity levels are rarely known until the end of the financial period. However, businesses need to cost their products immediately to set prices and value inventory. Therefore, a predetermined rate is calculated at the beginning of the period based on budgeted figures.
Choosing the Right Absorption Basis
The accuracy of your product costing depends heavily on the "Basis of Absorption" (the denominator in the formula). Common bases include:
Direct Labor Hours: Best for labor-intensive manual processes.
Machine Hours: Ideal for highly automated manufacturing environments.
Units of Production: Useful when producing a single, standard product.
Percentage of Direct Cost: Used when overheads correlate closely with material or wage costs.
Calculation Example
Imagine a furniture factory with the following budgeted figures for the upcoming year:
Total Budgeted Fixed Overheads: $100,000
Budgeted Direct Labor Hours: 25,000 hours
Using the calculator above:
Enter 100000 into Total Budgeted Fixed Overheads.
Select Direct Labor Hours as the Basis.
Enter 25000 into Total Budgeted Activity.
Result: $4.00 per Direct Labor Hour.
This means for every hour of direct labor worked on a piece of furniture, $4.00 of fixed overheads will be added to its cost card.
Over and Under Absorption
Because the FOAR is based on estimates, the actual overhead incurred and the actual activity level will almost certainly differ from the budget. This leads to:
Over-absorption: When the amount absorbed (Actual Activity × FOAR) is greater than the Actual Overheads. This is treated as a gain.
Under-absorption: When the amount absorbed is less than the Actual Overheads. This is treated as a loss or expense.
// Function to update the label based on the dropdown selection
function updateLabel() {
var basis = document.getElementById('absorptionBasis').value;
var label = document.getElementById('activityLabel');
var input = document.getElementById('budgetedActivity');
if (basis === 'labor_hours') {
label.textContent = "Total Budgeted Direct Labor Hours";
input.placeholder = "e.g., 2000";
} else if (basis === 'machine_hours') {
label.textContent = "Total Budgeted Machine Hours";
input.placeholder = "e.g., 5000";
} else if (basis === 'units') {
label.textContent = "Total Budgeted Units Produced";
input.placeholder = "e.g., 10000";
} else if (basis === 'labor_cost') {
label.textContent = "Total Budgeted Direct Labor Cost ($)";
input.placeholder = "e.g., 150000";
} else if (basis === 'material_cost') {
label.textContent = "Total Budgeted Direct Material Cost ($)";
input.placeholder = "e.g., 200000";
}
}
// Main Calculation Logic
function calculateFOAR() {
// 1. Get Elements
var overheadInput = document.getElementById('budgetedOverhead');
var basisSelect = document.getElementById('absorptionBasis');
var activityInput = document.getElementById('budgetedActivity');
var resultArea = document.getElementById('result-area');
var resultValue = document.getElementById('finalRate');
var resultSummary = document.getElementById('calculationSummary');
// 2. Parse Values
var overhead = parseFloat(overheadInput.value);
var activity = parseFloat(activityInput.value);
var basis = basisSelect.value;
// 3. Validation
if (isNaN(overhead) || overhead < 0) {
alert("Please enter a valid amount for Budgeted Fixed Overheads.");
return;
}
if (isNaN(activity) || activity <= 0) {
alert("Please enter a valid number greater than zero for the Activity Level.");
return;
}
// 4. Calculation
var rate = overhead / activity;
var formattedRate = "";
var summaryText = "";
// 5. Formatting based on Basis
// If basis is cost-based (labor_cost, material_cost), result is typically a percentage
if (basis === 'labor_cost' || basis === 'material_cost') {
var percentage = rate * 100;
formattedRate = percentage.toFixed(2) + "%";
var basisName = (basis === 'labor_cost') ? "Direct Labor Cost" : "Direct Material Cost";
summaryText = "Fixed overheads are absorbed at " + formattedRate + " of " + basisName + ".";
}
// If basis is volume-based (hours, units), result is currency per unit
else {
formattedRate = "$" + rate.toFixed(2);
var unitName = "";
if (basis === 'labor_hours') unitName = "Direct Labor Hour";
if (basis === 'machine_hours') unitName = "Machine Hour";
if (basis === 'units') unitName = "Unit Produced";
formattedRate = formattedRate + " per " + unitName + "";
summaryText = "For every " + unitName + ", $" + rate.toFixed(2) + " of fixed overhead is allocated.";
}
// 6. Output
resultArea.style.display = "block";
resultValue.innerHTML = formattedRate;
resultSummary.innerHTML = summaryText;
}