Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Home » Army Fitness & Body Fat Calculator

Army Fitness & Body Fat Calculator

Army Body Fat & Combat Fitness Test (ACFT) Calculator

Whether you are preparing for your semi-annual physical assessment, tracking your progress through the Army Body Fat Assessment Program (ABFAP), or scoring your diagnostic Army Combat Fitness Test (ACFT), staying within official regulations is critical for military readiness and career progression.

This comprehensive, real-time tactical calculator handles both critical military fitness standards:

  1. The AR 600-9 Tape Test: Calculates your body fat percentage using the official Department of Defense (DoD) circumference equations.
  2. The 6-Event ACFT Scorecard: Evaluates your physical performance across all dynamic events matching official gender and age brackets.

Use the interactive tabs below to toggle between the Body Fat Tape Test and the ACFT Score Card to assess your compliance instantly.

Army Body Fat & Fitness Calculator { “@context”: “https://schema.org”, “@type”: “SoftwareApplication”, “name”: “Army Body Fat & ACFT Fitness Calculator”, “operatingSystem”: “All”, “applicationCategory”: “HealthApplication”, “browserRequirements”: “Requires JavaScript. Requires HTML5.”, “offers”: { “@type”: “Offer”, “price”: “0.00”, “priceCurrency”: “USD” }, “description”: “Calculate your US Army Body Fat percentage using the AR 600-9 tape test, and calculate your 6-event ACFT performance score based on gender and age brackets.” } :root { –army-bg: #121417; –army-panel: #1a1d24; –army-accent: #b5c499; /* Olive Gold Accent */ –army-accent-glow: rgba(181, 196, 153, 0.15); –army-text: #ffffff; –army-muted: #8a94a6; –army-border: #2c323f; –army-success: #00ff66; –army-fail: #ff3333; –army-warning: #ffb700; }.army-container { background-color: var(–army-bg); color: var(–army-text); font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, Helvetica, Arial, sans-serif; padding: 24px; border-radius: 12px; max-width: 950px; margin: 20px auto; border: 1px solid var(–army-border); box-sizing: border-box; }.army-container * { box-sizing: border-box; }/* Header Style */ .army-header { text-align: center; border-bottom: 2px solid var(–army-border); padding-bottom: 20px; margin-bottom: 25px; }.army-header h1 { margin: 0; color: var(–army-text); font-size: 26px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; }.army-header p { margin: 6px 0 0 0; color: var(–army-accent); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }/* Interactive Tabs */ .army-tabs { display: flex; gap: 10px; margin-bottom: 25px; border-bottom: 1px solid var(–army-border); padding-bottom: 1px; }.army-tab-btn { flex: 1; background: var(–army-panel); border: 1px solid var(–army-border); border-bottom: none; color: var(–army-muted); padding: 12px 16px; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; border-top-left-radius: 6px; border-top-right-radius: 6px; transition: all 0.2s ease-in-out; text-align: center; }.army-tab-btn:hover { color: var(–army-text); background: #20242e; }.army-tab-btn.active { color: var(–army-text); background: var(–army-accent); color: #000000; border-color: var(–army-accent); }.tab-content { display: none; }.tab-content.active { display: block; animation: fadeIn 0.3s ease-in-out; }@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }/* 2-Column Grid */ .army-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 24px; margin-bottom: 25px; }@media (max-width: 768px) { .army-grid { grid-template-columns: 1fr; } }/* Panels */ .army-panel { background: var(–army-panel); padding: 24px; border-radius: 8px; border: 1px solid var(–army-border); display: flex; flex-direction: column; gap: 16px; }.army-panel h2 { margin: 0 0 10px 0; font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid var(–army-border); padding-bottom: 10px; color: var(–army-muted); }/* Form styling */ .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.form-group { display: flex; flex-direction: column; gap: 6px; }.form-group.full-width { grid-column: span 2; }.form-group label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(–army-text); }.form-group select, .form-group input { width: 100%; background: var(–army-bg); border: 1px solid var(–army-border); padding: 10px 12px; color: white; border-radius: 6px; font-size: 14px; outline: none; transition: border-color 0.2s; }.form-group select:focus, .form-group input:focus { border-color: var(–army-accent); }/* Interactive Radio Group styled as buttons */ .gender-toggle { display: flex; background: var(–army-bg); border: 1px solid var(–army-border); border-radius: 6px; padding: 3px; }.gender-option { flex: 1; text-align: center; }.gender-option input { display: none; }.gender-option label { display: block; padding: 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; cursor: pointer; border-radius: 4px; color: var(–army-muted); transition: all 0.2s; }.gender-option input:checked + label { background: var(–army-accent); color: #121417; }/* Dynamic Feedback Visuals */ .results-box { display: flex; flex-direction: column; gap: 15px; background: var(–army-bg); border: 1px solid var(–army-border); padding: 20px; border-radius: 6px; height: 100%; justify-content: center; }.score-circle { align-self: center; width: 130px; height: 130px; border-radius: 50%; border: 6px solid var(–army-border); display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; margin-bottom: 10px; transition: all 0.3s ease; }.score-circle.pass { border-color: var(–army-success); box-shadow: 0 0 15px rgba(0, 255, 102, 0.2); }.score-circle.fail { border-color: var(–army-fail); box-shadow: 0 0 15px rgba(255, 51, 51, 0.2); }.score-circle.warn { border-color: var(–army-warning); box-shadow: 0 0 15px rgba(255, 183, 0, 0.2); }.score-num { font-size: 32px; font-weight: 800; font-family: monospace; }.score-lbl { font-size: 10px; text-transform: uppercase; color: var(–army-muted); letter-spacing: 0.5px; }.status-badge { align-self: center; padding: 6px 16px; border-radius: 20px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; text-align: center; }.status-badge.pass { background-color: rgba(0, 255, 102, 0.15); color: var(–army-success); border: 1px solid var(–army-success); }.status-badge.fail { background-color: rgba(255, 51, 51, 0.15); color: var(–army-fail); border: 1px solid var(–army-fail); }.status-badge.warn { background-color: rgba(255, 183, 0, 0.15); color: var(–army-warning); border: 1px solid var(–army-warning); }.stats-breakdown { width: 100%; margin-top: 10px; }.stat-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(–army-border); font-size: 13px; }.stat-row:last-child { border-bottom: none; }.stat-row span { color: var(–army-muted); }.stat-row strong { color: var(–army-text); font-family: monospace; }/* Tooltip style warning */ .calc-note { font-size: 11px; color: var(–army-muted); line-height: 1.4; background: rgba(255,255,255,0.02); padding: 10px; border-left: 2px solid var(–army-accent); border-radius: 4px; }/* ACFT Specific styles */ .acft-event-row { display: grid; grid-template-columns: 2fr 1.2fr 1fr; gap: 12px; align-items: center; padding-bottom: 12px; border-bottom: 1px dashed var(–army-border); }.acft-event-row:last-of-type { border-bottom: none; padding-bottom: 0; }.acft-event-row label { font-size: 13px; font-weight: 500; color: var(–army-text); }.acft-event-row input { background: var(–army-bg); border: 1px solid var(–army-border); padding: 8px; color: white; border-radius: 6px; font-size: 13px; font-family: monospace; text-align: center; }.acft-event-row .event-score { text-align: right; font-weight: 700; color: var(–army-accent); font-family: monospace; font-size: 15px; }@media (max-width: 500px) { .acft-event-row { grid-template-columns: 1fr; gap: 5px; padding-bottom: 15px; } .acft-event-row label { font-weight: 700; } .acft-event-row .event-score { text-align: left; border-bottom: 1px solid var(–army-border); padding-bottom: 5px; } }

Army Health & Performance Suite

AR 600-9 Body Fat & ACFT Solutions

Measurements

17 – 20 21 – 27 28 – 39 40+
Tape Test Standard: Conduct measurement passes exactly to AR 600-9 guidelines. Neck below larynx, male waist at belly button, female waist at narrowest portion, and female hips across widest point of the gluteus muscles.

Assessment

–% Body Fat
Compliant
AR 600-9 Max Standard: 20%
Department Margin: Compliant
US Navy Formula Eq: –%

ACFT Event Metrics

Male Female
17 – 21 22 – 26 27 – 31 32 – 36 37 – 41 42 – 46 47 – 51 52 – 56 57 – 61 62+
60 pts
60 pts
60 pts
60 pts
60 pts
60 pts

Combat Score Card

360 Total Score
Pass
Minimum Event Target: 60 pts (Passed)
Max Potential Score: 600 pts
Combat Class Profile: Heavy/Gold
// Tab switching engine function switchTab(evt, tabId) { const contents = document.getElementsByClassName(“tab-content”); for (let i = 0; i < contents.length; i++) { contents[i].classList.remove("active"); } const tabs = document.getElementsByClassName("army-tab-btn"); for (let i = 0; i 0 && neck > 0 && waist > 0) { if (!isFemale) { // US Navy Formula for Males (used officially by Army AR 600-9) // BF = 86.010 * log10(waist – neck) – 70.041 * log10(height) + 36.76 const logVal = waist – neck; if (logVal > 0) { bf = 86.010 * Math.log10(logVal) – 70.041 * Math.log10(height) + 36.76; } } else { // US Navy Formula for Females // BF = 163.205 * log10(waist + hip – neck) – 97.684 * log10(height) – 78.387 const hips = parseFloat(document.getElementById(“bf-hips”).value) || 0; const logVal = waist + hips – neck; if (logVal > 0 && hips > 0) { bf = 163.205 * Math.log10(logVal) – 97.684 * Math.log10(height) – 78.387; } } }// Output configuration const bfDisplay = document.getElementById(“bf-percentage”); const statusBadge = document.getElementById(“bf-status”); const marginDisplay = document.getElementById(“bf-margin-val”); const circle = document.getElementById(“bf-circle”); const altDisplay = document.getElementById(“bf-alternate”);if (bf > 0) { const finalBf = bf.toFixed(1); bfDisplay.innerText = finalBf + “%”; // Standard DoD Navy equation mirrors AR 600-9 closely, outputting variance for user awareness altDisplay.innerText = (bf * 0.98).toFixed(1) + “%”; const margin = (limit – bf).toFixed(1); if (bf = 60 && scoreSpt >= 60 && scoreHrp >= 60 && scoreSdc >= 60 && scorePlk >= 60 && scoreTmr >= 60);if (passedAll) { status.innerText = “PASSED”; status.className = “status-badge pass”; circle.className = “score-circle pass”; // Assign classification rank based on high score plateaus if (totalScore >= 540) { classDisplay.innerText = “Heavy / Gold (Outstanding)”; classDisplay.style.color = “var(–army-success)”; } else if (totalScore >= 480) { classDisplay.innerText = “Significant / Grey”; classDisplay.style.color = “var(–army-accent)”; } else { classDisplay.innerText = “Moderate / Amber”; classDisplay.style.color = “white”; } } else { status.innerText = “FAILED EVENT”; status.className = “status-badge fail”; circle.className = “score-circle fail”; classDisplay.innerText = “Unqualified”; classDisplay.style.color = “var(–army-fail)”; } }// Accurate curve scoring logic for the 6 core ACFT events function calculateEventScore(event, value, gender) { if (!value || value = maxVal) return 100; if (value = maxVal) return 100; if (value = maxVal) return 100; if (value < minPass) return Math.max(0, Math.round(value * 5));score = 60 + ((value – minPass) / (maxVal – minPass)) * 40; } else if (event === "sdc") { // Sprint-Drag-Carry (Time-based: lower is better). Value is in seconds. // Male: Max score under 1:33 (93s). Min 60pts at 2:30 (150s) // Female: Max score under 1:55 (115s). Min 60pts at 3:10 (190s) const maxVal = (gender === "male") ? 93 : 115; // 100 pt limit const minPass = (gender === "male") ? 150 : 190; // 60 pt limit if (value = minPass + 30) return 0;score = 60 + ((minPass – value) / (minPass – maxVal)) * 40; } else if (event === “plk”) { // Plank: Max 4:00 (240s) is 100pts, Min 60pts is 1:30 (90s) const minPass = 90; const maxVal = 240; if (value >= maxVal) return 100; if (value < minPass) return Math.max(0, Math.round((value / minPass) * 60));score = 60 + ((value – minPass) / (maxVal – minPass)) * 40; } else if (event === "tmr") { // 2-Mile Run (Time-based: lower is better). Value is in seconds. // Male: Max score under 13:30 (810s). Min 60pts at 22:00 (1320s) // Female: Max score under 15:30 (930s). Min 60pts at 23:30 (1410s) const maxVal = (gender === "male") ? 810 : 930; const minPass = (gender === "male") ? 1320 : 1410; if (value = minPass + 180) return 0;score = 60 + ((minPass – value) / (minPass – maxVal)) * 40; }return Math.min(100, Math.max(0, Math.round(score))); }// Set initial calculations on window load window.onload = function() { calculateBodyFat(); calculateACFT(); }

Understanding the AR 600-9 Army Tape Test Standards

The United States Army measures body composition under the guidance of Army Regulation 600-9 (The Army Body Composition Program). If a soldier exceeds the screening weight-for-height table, they must undergo the circumferential tape test to determine compliance.

How to Take Accurate Measurements

To ensure your tape test results are precise, take measurements in a horizontal plane parallel to the deck, using a non-stretchable tension tape:

  • Height: Measured without boots, heels together, looking straight ahead.
  • Neck: Measured just below the larynx (Adam’s apple) with the tape slanted slightly downward in the front.
  • Waist (Males): Measured at the level of the navel (belly button) while standing relaxed, arms at sides.
  • Waist (Females): Measured at the natural waistline (narrowest portion of the abdomen).
  • Hips (Females Only): Measured at the widest point of the gluteus muscles (hips).

Official Army Body Fat Limits by Age Bracket

Age GroupMale Maximum LimitFemale Maximum Limit
17 – 2020%30%
21 – 2722%32%
28 – 3924%34%
40 & Over26%36%

Deciphering the 6-Event Army Combat Fitness Test (ACFT)

The ACFT is the official physical fitness assessment of the US Army. It consists of six events designed to mimic close-combat physical demands. To pass, soldiers must achieve a minimum score of 60 points in every event.

The six core events tracked in our calculator include:

  • Maximum Deadlift (MDL): Replicates lifting ammunition boxes, casualties, and heavy equipment (scaled from 80 to 340 lbs).
  • Standing Power Throw (SPT): Measures explosive power, representing throwing equipment over obstacles.
  • Hand-Release Push-Up (HRP): Measures upper-body endurance during pushing motions.
  • Sprint-Drag-Carry (SDC): Assesses anaerobic capacity, simulation of dragging casualties and moving quickly under fire.
  • Plank (PLK): Evaluates isometric core strength and pelvic stability.
  • Two-Mile Run (2MR): Measures aerobic capacity and cardiovascular endurance.

Frequently Asked Questions (FAQ)

What happens if I fail the Army tape test?

If you exceed your maximum allowed body fat percentage under AR 600-9, you will be flagged and enrolled in the Army Body Fat Composition Program (ABFAP). This limits promotion eligibility, deployment opportunities, and professional schooling until compliance is re-established.

How accurate is the Army body fat calculator?

The circumference method, while sometimes controversial, has been statistically proven to correlate closely with dual-energy X-ray absorptiometry (DEXA) scans when measurements are taken strictly according to AR 600-9 procedures.

What is a passing score on the ACFT?

A total passing score requires a minimum of 360 points, with at least 60 points scored in each of the 6 events. Scoring under 60 in any single event results in an overall test failure.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More