Some variations subtract an additional 1 cm for maternal obesity.
Estimated Fetal Weight (EFW)
2,790 g
6 lbs 2 oz
Formula Used
(30 – 12) × 155
Clinical Interpretation
Normal Range
Macrosomia Risk (>4000g)
Low
Weight Distribution Visualization
Reference Data
Metric
Value
Unit
Fundal Height Input
30
cm
Station Correction (n)
12
constant
Calculated Weight
2,790
grams
Calculated Weight
6.15
lbs
Understanding Johnson's Formula to Calculate Fetal Weight
What is Johnson's Formula to Calculate Fetal Weight?
Johnson's formula to calculate fetal weight is a widely used clinical method for estimating the weight of a fetus based on external abdominal measurements. Developed to provide obstetricians and midwives with a quick, non-invasive way to assess fetal growth, this formula helps in identifying potential complications such as intrauterine growth restriction (IUGR) or fetal macrosomia (excessive birth weight).
The formula relies primarily on the fundal height—the distance from the pubic bone to the top of the uterus—and the station of the fetal head. While ultrasound is often considered the gold standard for weight estimation, Johnson's formula remains a critical tool in settings where ultrasound is unavailable or for quick bedside assessments during prenatal visits.
It is most accurate when used after 24 weeks of gestation and before the onset of labor, although it is frequently utilized during labor admission to estimate birth weight for delivery planning.
Johnson's Formula and Mathematical Explanation
The mathematics behind Johnson's formula are straightforward but rely on precise clinical assessment. The core equation converts the physical volume of the uterus (represented by height) into mass (weight).
EFW (g) = (Fundal Height (cm) – n) × 155
Where:
EFW: Estimated Fetal Weight in grams.
Fundal Height: Measurement in centimeters from the symphysis pubis to the uterine fundus.
n: A correction factor based on the descent (station) of the fetal head.
155: A constant multiplier derived from regression analysis of fetal weights.
Variable Definitions Table
Variable
Meaning
Unit
Typical Range
Fundal Height
McDonald's Measurement
cm
20 – 45 cm
n (Station)
Correction for head descent
integer
11, 12, or 13
Constant
Weight factor
integer
155
Determining 'n':
n = 13: When the fetal head is not engaged (floating, minus station).
n = 12: When the fetal head is engaged (station 0).
n = 11: When the fetal head is deeply engaged (plus station).
Practical Examples (Real-World Use Cases)
Example 1: Routine Prenatal Visit (34 Weeks)
A patient presents for a routine checkup. The clinician measures the fundal height at 32 cm. Upon palpation, the fetal head is found to be floating (unengaged) above the pelvic brim.
Interpretation: The estimated weight exceeds 4,000g, suggesting potential macrosomia. The clinical team may prepare for a delivery that manages the risk of shoulder dystocia.
How to Use This Johnson's Formula Calculator
Using this tool effectively requires accurate clinical data. Follow these steps:
Measure Fundal Height: With the patient lying flat (supine) and bladder empty, use a tape measure to record the distance from the pubic bone to the top of the uterus in centimeters. Enter this into the "Fundal Height" field.
Assess Fetal Station: Perform a pelvic examination or abdominal palpation to determine if the head is engaged.
Select "Unengaged" if the head is movable/floating.
Select "Engaged" if the widest part of the head has passed the pelvic inlet.
Check Maternal Factors: If the patient has a BMI > 30 or weighs over 91kg (200lbs), select the obesity correction option to adjust the formula slightly (though clinical judgment varies on this specific adjustment).
Review Results: The calculator will instantly display the weight in grams and pounds. Use the "Copy Results" button to save the data for patient notes.
Key Factors That Affect Johnson's Formula Results
While Johnson's formula to calculate fetal weight is a useful estimation tool, several physiological and external factors can influence its accuracy:
1. Maternal Obesity
Excessive abdominal adipose tissue can artificially increase the fundal height measurement, leading to an overestimation of fetal weight. The formula attempts to correct for this, but significant obesity remains a confounding factor.
2. Amniotic Fluid Volume
Conditions like polyhydramnios (excess fluid) increase uterine volume without increasing fetal mass, causing overestimation. Conversely, oligohydramnios (low fluid) may lead to underestimation.
3. Fetal Position
If the fetus is in a transverse or oblique lie, the fundal height may not accurately reflect the longitudinal size of the uterus, rendering the formula less reliable.
4. Uterine Fibroids
The presence of large leiomyomas (fibroids) adds mass and volume to the uterus, which the formula will incorrectly attribute to the fetus.
5. Multiple Gestations
Johnson's formula is validated primarily for singleton pregnancies. Twins or triplets distort fundal height measurements significantly, making the formula invalid.
6. Bladder Distension
A full bladder can displace the uterus upward, adding several centimeters to the fundal height measurement. It is crucial that the patient voids before measurement.
Frequently Asked Questions (FAQ)
How accurate is Johnson's formula compared to ultrasound?
Studies suggest that Johnson's formula has an accuracy rate comparable to ultrasound for estimating fetal weight, typically within a 10-15% margin of error. However, ultrasound is generally superior in obese patients or cases with abnormal fluid levels.
Can this formula be used before 24 weeks?
No. Johnson's formula is designed for the late second and third trimesters when the uterus has risen well above the umbilicus and fetal mass correlates more linearly with uterine size.
What is considered a normal fetal weight?
Normal birth weight typically ranges from 2,500g to 4,000g. Weights below 2,500g are considered low birth weight, while those above 4,000g are considered macrosomic.
Does the formula change for breech presentation?
The standard formula assumes a cephalic (head-down) presentation. Breech presentation can alter the fundal height profile, potentially reducing accuracy.
Why is the constant 155 used?
The number 155 is a regression coefficient derived by Robert W. Johnson in his original 1957 study, representing the average weight gain per centimeter of fundal height after correcting for station.
Is this tool diagnostic?
No. This calculator is a screening and estimation tool. Clinical decisions regarding delivery method or timing should not be based solely on this estimate without corroborating clinical data.
What if the result is negative?
If the fundal height is less than the station correction (e.g., FH 12cm), the formula fails. This is why it is only applicable in later pregnancy when FH > 20cm.
How does engagement affect the calculation?
When the head engages (drops into the pelvis), the fundal height drops. The formula subtracts a smaller number (12 instead of 13) to compensate for this drop, ensuring the weight estimate remains consistent.
Related Tools and Internal Resources
Explore more tools to assist with prenatal care and fetal monitoring:
// Initialize calculator on load
window.onload = function() {
calculateFetalWeight();
};
function calculateFetalWeight() {
// 1. Get Inputs
var fhInput = document.getElementById('fundalHeight');
var stationInput = document.getElementById('fetalStation');
var obesityInput = document.getElementById('maternalObesity');
var fh = parseFloat(fhInput.value);
var n = parseInt(stationInput.value);
var obesityCorrection = parseInt(obesityInput.value);
// 2. Validate
var errorDiv = document.getElementById('fhError');
if (isNaN(fh) || fh 50) {
errorDiv.style.display = 'block';
return; // Stop calculation if invalid
} else {
errorDiv.style.display = 'none';
}
// Apply obesity correction (if selected, subtract 1 from FH effectively, or adjust n)
// Standard logic: If obese, sometimes n is reduced or FH is reduced.
// A common variation is: if >91kg, subtract 1 from FH.
// Let's apply it to the FH for the formula: (FH – 1 – n) * 155 if obese.
// Or simply adjust n. Let's adjust the effective FH.
var effectiveFH = fh;
if (obesityCorrection === 1) {
effectiveFH = fh – 1;
}
// 3. Calculate Formula: Weight = (FH – n) * 155
// Ensure (FH – n) is positive
if (effectiveFH <= n) {
// Edge case where FH is too small for the formula
document.getElementById('resultGrams').innerText = "—";
document.getElementById('resultLbs').innerText = "Invalid Inputs";
return;
}
var weightGrams = (effectiveFH – n) * 155;
// Convert to lbs and oz
var totalLbs = weightGrams * 0.00220462;
var lbs = Math.floor(totalLbs);
var oz = Math.round((totalLbs – lbs) * 16);
// 4. Update UI
// Main Result
document.getElementById('resultGrams').innerText = Math.round(weightGrams).toLocaleString() + " g";
document.getElementById('resultLbs').innerText = lbs + " lbs " + oz + " oz";
// Metrics
document.getElementById('formulaDisplay').innerText = "(" + effectiveFH + " – " + n + ") × 155";
// Interpretation
var interpretation = "Normal Range";
var risk = "Low";
var riskColor = "#28a745"; // Green
if (weightGrams 4000) {
interpretation = "Macrosomia Risk";
risk = "High";
riskColor = "#dc3545"; // Red
}
document.getElementById('interpretation').innerText = interpretation;
document.getElementById('interpretation').style.color = riskColor;
document.getElementById('macrosomiaRisk').innerText = risk;
// Update Table
var tbody = document.getElementById('resultsTableBody');
tbody.innerHTML = `
Fundal Height Input
${fh}
cm
Station Correction (n)
${n}
constant
Obesity Adjustment
${obesityCorrection === 1 ? "-1 cm" : "None"}
correction
Calculated Weight
${Math.round(weightGrams).toLocaleString()}
grams
Calculated Weight
${totalLbs.toFixed(2)}
lbs
`;
// 5. Draw Chart
drawChart(weightGrams);
}
function drawChart(currentWeight) {
var canvas = document.getElementById('weightChart');
var ctx = canvas.getContext('2d');
// Reset canvas
ctx.clearRect(0, 0, canvas.width, canvas.height);
// Set dimensions manually to ensure sharpness
var width = canvas.parentElement.offsetWidth;
var height = 300;
canvas.width = width;
canvas.height = height;
// Chart Settings
var maxScale = 5000; // Max weight on chart
var barWidth = 60;
var startX = 50;
var bottomY = height – 40;
var chartHeight = height – 60;
// Draw Axes
ctx.beginPath();
ctx.moveTo(startX, 20);
ctx.lineTo(startX, bottomY);
ctx.lineTo(width – 20, bottomY);
ctx.strokeStyle = "#333";
ctx.stroke();
// Draw Y-Axis Labels
ctx.fillStyle = "#666";
ctx.font = "12px Arial";
ctx.textAlign = "right";
for (var i = 0; i chartHeight) barHeight = chartHeight; // Cap at max
ctx.fillStyle = color;
ctx.fillRect(x, bottomY – barHeight, width, barHeight);
// Label below bar
ctx.fillStyle = "#333";
ctx.textAlign = "center";
ctx.fillText(label, x + width/2, bottomY + 20);
// Value on top of bar
ctx.fillStyle = "#333";
ctx.fillText(Math.round(value) + "g", x + width/2, bottomY – barHeight – 5);
}
function resetCalculator() {
document.getElementById('fundalHeight').value = 30;
document.getElementById('fetalStation').value = 12;
document.getElementById('maternalObesity').value = 0;
calculateFetalWeight();
}
function copyResults() {
var weight = document.getElementById('resultGrams').innerText;
var lbs = document.getElementById('resultLbs').innerText;
var fh = document.getElementById('fundalHeight').value;
var text = "Johnson's Formula Result:\nFundal Height: " + fh + " cm\nEstimated Weight: " + weight + " (" + lbs + ")";
var tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
var btn = document.querySelector('.btn-copy');
var originalText = btn.innerText;
btn.innerText = "Copied!";
setTimeout(function(){ btn.innerText = originalText; }, 2000);
}