Accurate calculation is vital for flight safety. Use this tool to compute your aircraft's center of gravity (CG) and ensure it remains within the allowable limits.
Weight and Balance Calculator
Weight of the aircraft with no payload, fuel, or optional equipment.
Empty Weight multiplied by its CG datum. (Weight x Arm = Moment)
Weight of the pilot.
Horizontal distance of the pilot's CG from the aircraft's datum line. (Units: inches or cm)
Total weight of all passengers.
Average horizontal distance of passenger(s) CG from the datum line.
Weight in the first baggage compartment.
Horizontal distance of baggage compartment 1 CG from the datum line.
Weight in the second baggage compartment (if applicable).
Horizontal distance of baggage compartment 2 CG from the datum line.
Weight of usable fuel. (Note: Fuel weight is typically 6 lbs/gallon)
Average horizontal distance of the fuel tanks' CG from the datum line.
Calculation Results
How it works:
Total Weight = Sum of all individual weights.
Total Moment = Sum of (Weight x Arm) for each item.
Center of Gravity (CG) = Total Moment / Total Weight.
This CG must fall within the aircraft's specified CG range for safe flight.
Weight and Balance Table
Weight and Balance Breakdown
Item
Weight (lbs)
Arm (in)
Moment (lb-in)
Aircraft Empty
0
N/A
0
Pilot
0
N/A
0
Passenger(s)
0
N/A
0
Baggage 1
0
N/A
0
Baggage 2
0
N/A
0
Usable Fuel
0
N/A
0
Total
0
N/A
0
Center of Gravity (CG) Range Chart
Allowable CG Range
Calculated CG
Visualizes your aircraft's calculated CG against its allowable limits. Ensure the calculated CG line stays within the shaded range.
var chartInstance = null;
function validateInput(id, value, min, max) {
var input = document.getElementById(id);
var errorElement = document.getElementById('err' + id);
input.classList.remove('error');
errorElement.classList.remove('visible');
errorElement.textContent = ";
if (value === ") {
input.classList.add('error');
errorElement.textContent = 'This field cannot be empty.';
errorElement.classList.add('visible');
return false;
}
var numValue = parseFloat(value);
if (isNaN(numValue)) {
input.classList.add('error');
errorElement.textContent = 'Please enter a valid number.';
errorElement.classList.add('visible');
return false;
}
if (numValue < 0) {
input.classList.add('error');
errorElement.textContent = 'Value cannot be negative.';
errorElement.classList.add('visible');
return false;
}
if (min !== null && numValue max) {
input.classList.add('error');
errorElement.textContent = 'Value is too high.';
errorElement.classList.add('visible');
return false;
}
return true;
}
function calculateWeightAndBalance() {
var aircraftEmptyWeight = parseFloat(document.getElementById('aircraftEmptyWeight').value);
var aircraftEmptyMoment = parseFloat(document.getElementById('aircraftEmptyMoment').value);
var pilotWeight = parseFloat(document.getElementById('pilotWeight').value);
var pilotArm = parseFloat(document.getElementById('pilotArm').value);
var passengerWeight = parseFloat(document.getElementById('passengerWeight').value);
var passengerArm = parseFloat(document.getElementById('passengerArm').value);
var baggage1Weight = parseFloat(document.getElementById('baggage1Weight').value);
var baggage1Arm = parseFloat(document.getElementById('baggage1Arm').value);
var baggage2Weight = parseFloat(document.getElementById('baggage2Weight').value);
var baggage2Arm = parseFloat(document.getElementById('baggage2Arm').value);
var fuelWeight = parseFloat(document.getElementById('fuelWeight').value);
var fuelArm = parseFloat(document.getElementById('fuelArm').value);
var isValid = true;
isValid &= validateInput('aircraftEmptyWeight', document.getElementById('aircraftEmptyWeight').value, 0, null);
isValid &= validateInput('aircraftEmptyMoment', document.getElementById('aircraftEmptyMoment').value, 0, null);
isValid &= validateInput('pilotWeight', document.getElementById('pilotWeight').value, 0, null);
isValid &= validateInput('pilotArm', document.getElementById('pilotArm').value, 0, null);
isValid &= validateInput('passengerWeight', document.getElementById('passengerWeight').value, 0, null);
isValid &= validateInput('passengerArm', document.getElementById('passengerArm').value, 0, null);
isValid &= validateInput('baggage1Weight', document.getElementById('baggage1Weight').value, 0, null);
isValid &= validateInput('baggage1Arm', document.getElementById('baggage1Arm').value, 0, null);
isValid &= validateInput('baggage2Weight', document.getElementById('baggage2Weight').value, 0, null);
isValid &= validateInput('baggage2Arm', document.getElementById('baggage2Arm').value, 0, null);
isValid &= validateInput('fuelWeight', document.getElementById('fuelWeight').value, 0, null);
isValid &= validateInput('fuelArm', document.getElementById('fuelArm').value, 0, null);
if (!isValid) {
document.getElementById('resultsContainer').style.display = 'none';
return;
}
var pilotMoment = pilotWeight * pilotArm;
var passengerMoment = passengerWeight * passengerArm;
var baggage1Moment = baggage1Weight * baggage1Arm;
var baggage2Moment = baggage2Weight * baggage2Arm;
var fuelMoment = fuelWeight * fuelArm;
var totalWeight = aircraftEmptyWeight + pilotWeight + passengerWeight + baggage1Weight + baggage2Weight + fuelWeight;
var totalMoment = aircraftEmptyMoment + pilotMoment + passengerMoment + baggage1Moment + baggage2Moment + fuelMoment;
var currentCG = totalWeight === 0 ? 0 : totalMoment / totalWeight;
document.getElementById('tableEmptyWeight').textContent = aircraftEmptyWeight.toFixed(2);
document.getElementById('tableEmptyMoment').textContent = aircraftEmptyMoment.toFixed(2);
document.getElementById('tablePilotWeight').textContent = pilotWeight.toFixed(2);
document.getElementById('tablePilotArm').textContent = pilotArm.toFixed(2);
document.getElementById('tablePilotMoment').textContent = pilotMoment.toFixed(2);
document.getElementById('tablePassengerWeight').textContent = passengerWeight.toFixed(2);
document.getElementById('tablePassengerArm').textContent = passengerArm.toFixed(2);
document.getElementById('tablePassengerMoment').textContent = passengerMoment.toFixed(2);
document.getElementById('tableBaggage1Weight').textContent = baggage1Weight.toFixed(2);
document.getElementById('tableBaggage1Arm').textContent = baggage1Arm.toFixed(2);
document.getElementById('tableBaggage1Moment').textContent = baggage1Moment.toFixed(2);
document.getElementById('tableBaggage2Weight').textContent = baggage2Weight.toFixed(2);
document.getElementById('tableBaggage2Arm').textContent = baggage2Arm.toFixed(2);
document.getElementById('tableBaggage2Moment').textContent = baggage2Moment.toFixed(2);
document.getElementById('tableFuelWeight').textContent = fuelWeight.toFixed(2);
document.getElementById('tableFuelArm').textContent = fuelArm.toFixed(2);
document.getElementById('tableFuelMoment').textContent = fuelMoment.toFixed(2);
document.getElementById('tableTotalWeight').textContent = totalWeight.toFixed(2);
document.getElementById('tableTotalMoment').textContent = totalMoment.toFixed(2);
var resultsContainer = document.getElementById('resultsContainer');
document.getElementById('mainResult').textContent = currentCG.toFixed(2) + ' inches';
document.getElementById('intermediateWeight').textContent = 'Total Weight: ' + totalWeight.toFixed(2) + ' lbs';
document.getElementById('intermediateCG').textContent = 'Calculated CG: ' + currentCG.toFixed(2) + ' inches';
document.getElementById('intermediateTotalMoment').textContent = 'Total Moment: ' + totalMoment.toFixed(2) + ' lb-in';
resultsContainer.style.display = 'block';
updateChart(currentCG);
}
function resetForm() {
document.getElementById('aircraftEmptyWeight').value = '1500';
document.getElementById('aircraftEmptyMoment').value = '60000';
document.getElementById('pilotWeight').value = '170';
document.getElementById('pilotArm').value = '40';
document.getElementById('passengerWeight').value = '0';
document.getElementById('passengerArm').value = '45';
document.getElementById('baggage1Weight').value = '0';
document.getElementById('baggage1Arm').value = '70';
document.getElementById('baggage2Weight').value = '0';
document.getElementById('baggage2Arm').value = '100';
document.getElementById('fuelWeight').value = '0';
document.getElementById('fuelArm').value = '50';
var inputs = document.querySelectorAll('.input-group input, .input-group select');
inputs.forEach(function(input) {
input.classList.remove('error');
var errorElement = document.getElementById('err' + input.id);
if (errorElement) {
errorElement.classList.remove('visible');
errorElement.textContent = ";
}
});
document.getElementById('resultsContainer').style.display = 'none';
if (chartInstance) {
chartInstance.destroy();
chartInstance = null;
}
clearTable();
}
function clearTable() {
document.getElementById('tableEmptyWeight').textContent = '0';
document.getElementById('tableEmptyMoment').textContent = '0';
document.getElementById('tablePilotWeight').textContent = '0';
document.getElementById('tablePilotArm').textContent = 'N/A';
document.getElementById('tablePilotMoment').textContent = '0';
document.getElementById('tablePassengerWeight').textContent = '0';
document.getElementById('tablePassengerArm').textContent = 'N/A';
document.getElementById('tablePassengerMoment').textContent = '0';
document.getElementById('tableBaggage1Weight').textContent = '0';
document.getElementById('tableBaggage1Arm').textContent = 'N/A';
document.getElementById('tableBaggage1Moment').textContent = '0';
document.getElementById('tableBaggage2Weight').textContent = '0';
document.getElementById('tableBaggage2Arm').textContent = 'N/A';
document.getElementById('tableBaggage2Moment').textContent = '0';
document.getElementById('tableFuelWeight').textContent = '0';
document.getElementById('tableFuelArm').textContent = 'N/A';
document.getElementById('tableFuelMoment').textContent = '0';
document.getElementById('tableTotalWeight').textContent = '0';
document.getElementById('tableTotalMoment').textContent = '0';
}
function copyResults() {
var mainResult = document.getElementById('mainResult').textContent;
var intermediateWeight = document.getElementById('intermediateWeight').textContent;
var intermediateCG = document.getElementById('intermediateCG').textContent;
var intermediateTotalMoment = document.getElementById('intermediateTotalMoment').textContent;
var aircraftEmptyWeight = document.getElementById('aircraftEmptyWeight').value || 'N/A';
var aircraftEmptyMoment = document.getElementById('aircraftEmptyMoment').value || 'N/A';
var pilotWeight = document.getElementById('pilotWeight').value || 'N/A';
var pilotArm = document.getElementById('pilotArm').value || 'N/A';
var passengerWeight = document.getElementById('passengerWeight').value || 'N/A';
var passengerArm = document.getElementById('passengerArm').value || 'N/A';
var baggage1Weight = document.getElementById('baggage1Weight').value || 'N/A';
var baggage1Arm = document.getElementById('baggage1Arm').value || 'N/A';
var baggage2Weight = document.getElementById('baggage2Weight').value || 'N/A';
var baggage2Arm = document.getElementById('baggage2Arm').value || 'N/A';
var fuelWeight = document.getElementById('fuelWeight').value || 'N/A';
var fuelArm = document.getElementById('fuelArm').value || 'N/A';
var copyText = "— Aircraft Weight and Balance Calculation Results —\n\n";
copyText += "Primary Result:\n" + mainResult + "\n\n";
copyText += "Key Values:\n";
copyText += intermediateWeight + "\n";
copyText += intermediateCG + "\n";
copyText += intermediateTotalMoment + "\n\n";
copyText += "— Input Assumptions —\n";
copyText += "Aircraft Empty Weight: " + aircraftEmptyWeight + " lbs\n";
copyText += "Aircraft Empty Moment: " + aircraftEmptyMoment + " lb-in\n";
copyText += "Pilot Weight: " + pilotWeight + " lbs\n";
copyText += "Pilot Arm: " + pilotArm + " in\n";
copyText += "Passenger(s) Weight: " + passengerWeight + " lbs\n";
copyText += "Passenger(s) Arm: " + passengerArm + " in\n";
copyText += "Baggage 1 Weight: " + baggage1Weight + " lbs\n";
copyText += "Baggage 1 Arm: " + baggage1Arm + " in\n";
copyText += "Baggage 2 Weight: " + baggage2Weight + " lbs\n";
copyText += "Baggage 2 Arm: " + baggage2Arm + " in\n";
copyText += "Usable Fuel Weight: " + fuelWeight + " lbs\n";
copyText += "Usable Fuel Arm: " + fuelArm + " in\n";
var textArea = document.createElement("textarea");
textArea.value = copyText;
document.body.appendChild(textArea);
textArea.select();
try {
document.execCommand("copy");
alert("Results copied to clipboard!");
} catch (err) {
console.error("Unable to copy text.", err);
alert("Failed to copy results. Please copy manually.");
}
document.body.removeChild(textArea);
}
function updateChart(calculatedCG) {
var ctx = document.getElementById('cgRangeChart').getContext('2d');
// Placeholder values for allowable CG range – replace with actual aircraft specific data if available
var minAllowableCG = 35; // Example minimum allowable CG
var maxAllowableCG = 55; // Example maximum allowable CG
if (chartInstance) {
chartInstance.destroy();
}
chartInstance = new Chart(ctx, {
type: 'bar',
data: {
labels: ['CG Position'],
datasets: [
{
label: 'Allowable CG Range',
data: [maxAllowableCG – minAllowableCG], // Height of the bar
backgroundColor: 'rgba(0, 74, 153, 0.5)', // Primary color, semi-transparent
borderColor: 'rgba(0, 74, 153, 1)',
borderWidth: 1,
barPercentage: 0.6,
categoryPercentage: 0.5,
order: 2 // Lower order for background bar
},
{
label: 'Calculated CG',
data: [calculatedCG],
backgroundColor: 'rgba(40, 167, 69, 1)', // Success color
borderColor: 'rgba(40, 167, 69, 1)',
borderWidth: 2,
barPercentage: 0.6,
categoryPercentage: 0.5,
order: 1 // Higher order for the calculated line
}
]
},
options: {
indexAxis: 'y', // Horizontal bar chart
responsive: true,
maintainAspectRatio: false,
scales: {
x: {
stacked: true,
title: {
display: true,
text: 'Center of Gravity (inches from Datum)'
},
min: Math.min(minAllowableCG – 10, calculatedCG – 10, 0), // Adjust min based on data
max: Math.max(maxAllowableCG + 10, calculatedCG + 10), // Adjust max based on data
},
y: {
stacked: true,
display: false // Hide Y-axis labels as we only have one category
}
},
plugins: {
legend: {
display: false // Legend is handled by the HTML div
},
tooltip: {
callbacks: {
label: function(context) {
var label = context.dataset.label || ";
if (label) {
label += ': ';
}
if (context.dataset.label === 'Allowable CG Range') {
label += minAllowableCG + " – " + maxAllowableCG + " inches";
} else {
label += context.raw + ' inches';
}
return label;
}
}
}
},
animation: {
duration: 500,
easing: 'easeInOutQuart'
}
}
});
}
// Initialize chart with dummy data or placeholder
window.onload = function() {
updateChart(45); // Default to a middle value or calculate on load
var inputs = document.querySelectorAll('.input-group input');
inputs.forEach(function(input) {
input.addEventListener('input', calculateWeightAndBalance);
});
};
// Simple FAQ toggle
var faqItems = document.querySelectorAll('.faq-item h4');
faqItems.forEach(function(item) {
item.addEventListener('click', function() {
var faqItem = this.parentNode;
faqItem.classList.toggle('active');
});
});
Aircraft Weight and Balance: A Comprehensive Guide
Ensuring an aircraft is loaded correctly is paramount for flight safety. This involves meticulous attention to weight and balance. An aircraft that is too heavy, or whose center of gravity (CG) is outside its designed limits, can be unstable and difficult or impossible to control. This guide, along with our handy calculator, will demystify the process.
What is Aircraft Weight and Balance?
Aircraft weight and balance refers to the process of determining the empty weight and the center of gravity (CG) of an aircraft and calculating the weight and CG of the aircraft when loaded with crew, passengers, baggage, fuel, and cargo. The goal is to ensure that the aircraft's CG remains within specified limits throughout all phases of flight.
Who should use this: Pilots (private, commercial, airline), aircraft maintenance technicians, flight instructors, aviation students, and anyone involved in the loading and operation of aircraft.
Common Misconceptions:
"It's just about not exceeding maximum takeoff weight." While important, maximum weight is only one part. The CG location is equally critical for stability and control.
"My aircraft is small, it doesn't matter that much." Even light aircraft have critical CG limits. Deviating can lead to hazardous flight characteristics.
"The fuel tank location doesn't affect CG much." Fuel is a significant weight component and its position relative to the datum can drastically shift the CG, especially when tanks are full or nearly empty.
"Weight and balance is only checked for cargo planes." All aircraft, from small trainers to large airliners, require weight and balance calculations.
Weight and Balance Formula and Mathematical Explanation
The fundamental principle behind weight and balance calculations is the concept of moments. A moment is the product of a weight and its distance from a reference point, known as the datum.
The Core Formula:
Moment = Weight × Arm
Where:
Weight is the mass of an item (e.g., pilot, fuel, baggage).
Arm is the horizontal distance of the item's center of gravity (CG) from the aircraft's datum line. The datum is an arbitrary point on the aircraft, usually the nose or a point ahead of the nose, from which all measurements are taken.
Moment is the rotational effect of the weight around the datum. It's typically expressed in pound-inches (lb-in) or kilogram-meters (kg-m).
To find the aircraft's overall CG, you sum all the individual moments and divide by the total weight.
Overall CG = Total Moment / Total Weight
Variables Table:
Key Variables in Weight and Balance Calculations
Variable
Meaning
Unit
Typical Range (Example)
Aircraft Empty Weight
The operating weight of the aircraft empty of all crew, passengers, baggage, fuel, and optional equipment.
lbs (or kg)
1000 – 50000+
Empty Weight Moment
The moment of the empty aircraft, calculated as Empty Weight × Empty CG Arm.
lb-in (or kg-m)
Varies greatly
Datum
An imaginary vertical line or plane from which all horizontal distances (arms) are measured.
N/A
Fixed reference point
Arm
The horizontal distance from the datum to the center of gravity of an item.
inches (or cm, meters)
e.g., 30 – 120 inches
Weight
The mass of a specific item or component.
lbs (or kg)
e.g., Pilot: 150-250 lbs; Fuel: 6 lbs/gallon
Moment
The product of an item's weight and its arm.
lb-in (or kg-m)
Varies greatly
Total Weight
The sum of the empty weight plus all add-on items (fuel, passengers, baggage, cargo).
lbs (or kg)
Must not exceed Maximum Takeoff Weight (MTOW)
Total Moment
The sum of all individual moments of the aircraft and its load.
lb-in (or kg-m)
Varies greatly
Center of Gravity (CG)
The calculated point where the aircraft would balance. Calculated as Total Moment / Total Weight.
inches (or % MAC, cm, meters)
Must be within the Forward and Aft CG limits
The CG is often expressed as a distance in inches from the datum, or as a percentage of Mean Aerodynamic Chord (MAC) for transport category aircraft.
Practical Examples (Real-World Use Cases)
Let's illustrate with two common scenarios for a small aircraft, like a Cessna 172, assuming a datum at the firewall and arms measured in inches:
Example 1: Solo Flight with Baggage
Scenario: A pilot is flying solo, carrying 50 lbs of baggage in the rear compartment.
Interpretation: If the allowable CG range for this aircraft at 1,830 lbs is between 38 and 50 inches, this flight condition is within limits. The aircraft should be stable.
Example 2: Two Up with Full Fuel
Scenario: Two people are flying, with maximum usable fuel.
Interpretation: In this case, the total weight is higher, but the CG remains the same as Example 1. This is because the added weight (passenger and fuel) was placed at arms that compensated for each other relative to the empty CG. Always verify against the aircraft's specific CG envelope.
How to Use This Aircraft Weight and Balance Calculator
Gather Data: Obtain your aircraft's "Weight and Balance Handbook" or "Aircraft Flight Manual (AFM)" for accurate empty weight, empty moment, datum location, and allowable CG ranges.
Enter Empty Weight & Moment: Input your aircraft's empty weight and its corresponding empty weight moment. These values are usually found on the aircraft's equipment list or form W&B.
Input Payload Details: Enter the weights and corresponding arms (distances from the datum) for your pilot, passengers, baggage, and usable fuel.
Click Calculate: The calculator will compute the total weight, total moment, and the resulting center of gravity (CG).
Check Results: The main result shows your calculated CG. The intermediate values provide the total weight and total moment.
Compare to Limits: Crucially, compare your calculated CG and total weight against the aircraft's allowable CG range and maximum takeoff weight (MTOW) specified in the AFM. The chart provides a visual aid for the CG range.
Decision Making: If the CG is outside the limits, you must adjust the load. Move heavier items forward or aft, reduce weight, or redistribute passengers/cargo to bring the CG within the safe operating envelope.
Key Factors That Affect Aircraft Weight and Balance Results
Several factors significantly influence the weight and balance calculations and the resulting CG position:
Aircraft Empty Weight and CG: This is the baseline. Any change to the aircraft's empty configuration (e.g., installing new equipment, removing seats) requires an updated empty weight and CG, which affects all subsequent calculations.
Payload Distribution (Arms): Simply adding weight isn't enough; *where* you place it is critical. Placing weight further from the datum has a much larger effect on the moment and CG than placing it closer. This is why baggage compartments have specific weight limits and often position restrictions (e.g., "Weight not to exceed X lbs in the aft compartment").
Fuel Load: Fuel is a significant weight component. Its CG location often shifts as fuel is consumed. Aircraft flight manuals specify how to calculate CG with different fuel loads (e.g., full tanks, tanks partially full, fuel burn during flight). The "usuable fuel arm" is usually an average or based on tank location.
Passenger and Baggage Loading: The order and location of passengers and baggage matters. A heavy passenger in the front seat will have a different effect than the same passenger in the rear seat, or baggage in the aft compartment. Always refer to the AFM for specific loading instructions and CG limits.
Optional Equipment and Modifications: Installing heavier avionics, larger engines, or structural modifications alters the empty weight and CG. These must be properly documented and factored into W&B calculations.
Water Ballast Systems: Some high-performance or specialized aircraft use water ballast for CG adjustment during flight. The weight and location of this water must be accounted for.
Center of Gravity Envelope: This is not a factor that *affects* the calculation, but rather the critical *constraint* that the calculation must meet. The CG envelope (often depicted graphically) shows the allowable CG range for different weight conditions. Exceeding these limits can render the aircraft uncontrollable.
Frequently Asked Questions (FAQ)
What is the datum in aircraft weight and balance?
The datum is an imaginary vertical reference line or plane from which all horizontal measurements (arms) for weight and balance calculations are taken. It is established by the aircraft manufacturer and is usually located at or forward of the aircraft's nose.
What happens if my aircraft's CG is too far forward?
An excessively forward CG can make the aircraft difficult to rotate for takeoff and may result in inadequate elevator control authority for landing. The aircraft may be nose-heavy and less stable in pitch.
What happens if my aircraft's CG is too far aft?
An excessively aft CG is generally more dangerous. It can lead to instability, making the aircraft pitchy and difficult to control, especially at slower speeds or during maneuvers. It may be impossible to recover from a stall if the CG is too far aft.
How is fuel weight calculated?
Fuel weight is calculated by multiplying the volume of usable fuel (in gallons or liters) by the weight per unit volume of the specific fuel type. For aviation gasoline (Avgas), it's typically around 6 lbs per gallon. Jet fuel is slightly heavier, around 6.7 lbs per gallon.
Can I just use average weights for passengers?
For casual use or initial estimates, average weights might be acceptable if specified by the manufacturer. However, for critical flights or if exact weights are known, using actual weights provides greater accuracy and safety. Always consult your aircraft's specific W&B procedures.
What is Maximum Takeoff Weight (MTOW)?
MTOW is the maximum allowable weight at which the aircraft is certified to take off. This limit is determined by structural limitations, engine power, and aerodynamic considerations. Your calculated total weight must not exceed the MTOW.
What is "% MAC" and when is it used?
"% MAC" (Mean Aerodynamic Chord) is a method used for larger transport category aircraft. It expresses the CG location as a percentage of the chord length of the wing's average section. This method is more consistent across different aircraft sizes and configurations than inches from a datum.
Do I need to re-calculate weight and balance for every flight?
Yes, theoretically. For every flight, you should ensure that the planned load (fuel, passengers, baggage) keeps the aircraft within its allowable weight and CG limits for that specific weight. Practical application might involve pre-calculated loading charts for common configurations, but verification is key.
Where can I find my aircraft's specific weight and balance data?
Your aircraft's official "Aircraft Flight Manual" (AFM) or "Pilot's Operating Handbook" (POH) contains the definitive weight and balance information, including empty weight and CG, datum, arms of various stations, and the CG envelope.