Estimate your monthly Army pay based on rank, years of service, marital status, and duty station.
E-1 (PVT)
E-2 (PV2)
E-3 (PFC)
E-4 (SPC/CPL)
E-5 (SGT)
E-6 (SSG)
E-7 (SFC)
E-8 (1SG/MSG)
E-9 (SGM/CSM)
O-1 (2LT)
O-2 (1LT)
O-3 (CPT)
O-4 (MAJ)
O-5 (LTC)
O-6 (COL)
Single (Without Dependents)
Married (With Dependents)
Fort Bragg, NC
Fort Carson, CO
Fort Drum, NY
Fort Hood, TX
JBLM, WA
Overseas (No BAH, OHA applies)
Estimated Monthly Pay:
Monthly Base Pay: $0.00
Monthly BAH/OHA: $0.00
Monthly BAS: $0.00
Total Monthly Pay: $0.00
function calculatePay() {
var rank = document.getElementById("rank").value;
var yearsOfService = parseInt(document.getElementById("yearsOfService").value);
var maritalStatus = document.getElementById("maritalStatus").value;
var dutyStation = document.getElementById("dutyStation").value;
var basePay = 0;
var bah = 0;
var bas = 0;
var totalPay = 0;
// — Base Pay Calculation (Simplified Lookup Table) —
// This is a highly simplified representation. Actual base pay tables are much more granular.
// Values are approximate monthly figures for demonstration, based on 2024 pay charts.
if (rank === "E1") {
basePay = 1800; // E-1 pay doesn't change with YOS
} else if (rank === "E2") {
basePay = 2000; // E-2 pay doesn't change with YOS
} else if (rank === "E3") {
basePay = 2100; // E-3 pay doesn't change with YOS
} else if (rank === "E4″) {
if (yearsOfService < 2) basePay = 2300;
else if (yearsOfService < 4) basePay = 2500;
else if (yearsOfService < 6) basePay = 2700;
else basePay = 2800;
} else if (rank === "E5") {
if (yearsOfService < 2) basePay = 2600;
else if (yearsOfService < 4) basePay = 2800;
else if (yearsOfService < 6) basePay = 3000;
else if (yearsOfService < 8) basePay = 3200;
else basePay = 3400;
} else if (rank === "E6") {
if (yearsOfService < 4) basePay = 3000;
else if (yearsOfService < 6) basePay = 3200;
else if (yearsOfService < 8) basePay = 3400;
else if (yearsOfService < 10) basePay = 3600;
else basePay = 3800;
} else if (rank === "E7") {
if (yearsOfService < 6) basePay = 3600;
else if (yearsOfService < 8) basePay = 3800;
else if (yearsOfService < 10) basePay = 4000;
else if (yearsOfService < 12) basePay = 4200;
else basePay = 4400;
} else if (rank === "E8") {
if (yearsOfService < 8) basePay = 4500;
else if (yearsOfService < 10) basePay = 4700;
else if (yearsOfService < 12) basePay = 4900;
else if (yearsOfService < 14) basePay = 5100;
else basePay = 5300;
} else if (rank === "E9") {
if (yearsOfService < 10) basePay = 5500;
else if (yearsOfService < 12) basePay = 5700;
else if (yearsOfService < 14) basePay = 5900;
else if (yearsOfService < 16) basePay = 6100;
else basePay = 6300;
} else if (rank === "O1") {
if (yearsOfService < 2) basePay = 3600;
else if (yearsOfService < 4) basePay = 3800;
else basePay = 4000;
} else if (rank === "O2") {
if (yearsOfService < 2) basePay = 4200;
else if (yearsOfService < 4) basePay = 4400;
else if (yearsOfService < 6) basePay = 4600;
else basePay = 4800;
} else if (rank === "O3") {
if (yearsOfService < 4) basePay = 5000;
else if (yearsOfService < 6) basePay = 5200;
else if (yearsOfService < 8) basePay = 5400;
else if (yearsOfService < 10) basePay = 5600;
else basePay = 5800;
} else if (rank === "O4") {
if (yearsOfService < 6) basePay = 6000;
else if (yearsOfService < 8) basePay = 6200;
else if (yearsOfService < 10) basePay = 6400;
else if (yearsOfService < 12) basePay = 6600;
else basePay = 6800;
} else if (rank === "O5") {
if (yearsOfService < 8) basePay = 7000;
else if (yearsOfService < 10) basePay = 7200;
else if (yearsOfService < 12) basePay = 7400;
else if (yearsOfService < 14) basePay = 7600;
else basePay = 7800;
} else if (rank === "O6") {
if (yearsOfService < 10) basePay = 8000;
else if (yearsOfService < 12) basePay = 8200;
else if (yearsOfService < 14) basePay = 8400;
else if (yearsOfService < 16) basePay = 8600;
else basePay = 8800;
}
// — BAH/OHA Calculation (Simplified) —
// BAH rates are highly specific to zip code, rank, and dependent status.
// These are simplified examples for common ranks and locations, based on 2024 BAH rates.
// OHA (Overseas Housing Allowance) is for overseas locations and is not calculated here.
if (dutyStation === "overseas") {
bah = 0; // OHA would apply, but is too complex for this simplified calculator
} else {
if (maritalStatus === "married") {
// With Dependents BAH
if (dutyStation === "fortBragg") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1400;
else if (rank === "E4" || rank === "E5") bah = 1500;
else if (rank === "E6" || rank === "E7") bah = 1600;
else bah = 1700; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1800;
else if (rank === "O3" || rank === "O4") bah = 2000;
else bah = 2200; // O5, O6
}
} else if (dutyStation === "fortCarson") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1500;
else if (rank === "E4" || rank === "E5") bah = 1600;
else if (rank === "E6" || rank === "E7") bah = 1700;
else bah = 1800; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1900;
else if (rank === "O3" || rank === "O4") bah = 2100;
else bah = 2300; // O5, O6
}
} else if (dutyStation === "fortDrum") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1200;
else if (rank === "E4" || rank === "E5") bah = 1300;
else if (rank === "E6" || rank === "E7") bah = 1400;
else bah = 1500; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1600;
else if (rank === "O3" || rank === "O4") bah = 1800;
else bah = 2000; // O5, O6
}
} else if (dutyStation === "fortHood") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1300;
else if (rank === "E4" || rank === "E5") bah = 1400;
else if (rank === "E6" || rank === "E7") bah = 1500;
else bah = 1600; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1700;
else if (rank === "O3" || rank === "O4") bah = 1900;
else bah = 2100; // O5, O6
}
} else if (dutyStation === "fortLewis") { // JBLM, WA
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1600;
else if (rank === "E4" || rank === "E5") bah = 1700;
else if (rank === "E6" || rank === "E7") bah = 1800;
else bah = 1900; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 2000;
else if (rank === "O3" || rank === "O4") bah = 2200;
else bah = 2400; // O5, O6
}
}
} else {
// Without Dependents BAH
if (dutyStation === "fortBragg") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1100;
else if (rank === "E4" || rank === "E5") bah = 1200;
else if (rank === "E6" || rank === "E7") bah = 1300;
else bah = 1400; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1500;
else if (rank === "O3" || rank === "O4") bah = 1600;
else bah = 1700; // O5, O6
}
} else if (dutyStation === "fortCarson") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1200;
else if (rank === "E4" || rank === "E5") bah = 1300;
else if (rank === "E6" || rank === "E7") bah = 1400;
else bah = 1500; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1600;
else if (rank === "O3" || rank === "O4") bah = 1700;
else bah = 1800; // O5, O6
}
} else if (dutyStation === "fortDrum") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 900;
else if (rank === "E4" || rank === "E5") bah = 1000;
else if (rank === "E6" || rank === "E7") bah = 1100;
else bah = 1200; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1300;
else if (rank === "O3" || rank === "O4") bah = 1400;
else bah = 1500; // O5, O6
}
} else if (dutyStation === "fortHood") {
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1000;
else if (rank === "E4" || rank === "E5") bah = 1100;
else if (rank === "E6" || rank === "E7") bah = 1200;
else bah = 1300; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1400;
else if (rank === "O3" || rank === "O4") bah = 1500;
else bah = 1600; // O5, O6
}
} else if (dutyStation === "fortLewis") { // JBLM, WA
if (rank.startsWith("E")) { // Enlisted
if (rank === "E1" || rank === "E2" || rank === "E3") bah = 1300;
else if (rank === "E4" || rank === "E5") bah = 1400;
else if (rank === "E6" || rank === "E7") bah = 1500;
else bah = 1600; // E8, E9
} else { // Officer
if (rank === "O1" || rank === "O2") bah = 1700;
else if (rank === "O3" || rank === "O4") bah = 1800;
else bah = 1900; // O5, O6
}
}
}
}
// — BAS Calculation (Simplified) —
// BAS is generally fixed for officers and enlisted.
// These are approximate monthly figures for 2024.
if (rank.startsWith("O")) { // Officer
bas = 316.98; // Approximate 2024 Officer BAS
} else { // Enlisted
bas = 460.25; // Approximate 2024 Enlisted BAS
}
// — Total Pay —
totalPay = basePay + bah + bas;
// Display Results
document.getElementById("basePayResult").innerText = "$" + basePay.toFixed(2);
document.getElementById("bahResult").innerText = "$" + bah.toFixed(2);
document.getElementById("basResult").innerText = "$" + bas.toFixed(2);
document.getElementById("totalPayResult").innerText = "$" + totalPay.toFixed(2);
}
.army-pay-calculator {
font-family: Arial, sans-serif;
background-color: #f9f9f9;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
max-width: 600px;
margin: 20px auto;
}
.army-pay-calculator h2 {
color: #333;
text-align: center;
margin-bottom: 20px;
}
.army-pay-calculator p {
color: #555;
line-height: 1.6;
}
.calculator-form label {
display: block;
margin-bottom: 8px;
font-weight: bold;
color: #444;
}
.calculator-form select,
.calculator-form input[type="number"] {
width: calc(100% – 22px);
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
}
.calculator-form button {
background-color: #007bff;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 18px;
width: 100%;
transition: background-color 0.3s ease;
}
.calculator-form button:hover {
background-color: #0056b3;
}
.calculator-results {
margin-top: 30px;
padding: 15px;
background-color: #e9f7ff;
border: 1px solid #cce5ff;
border-radius: 4px;
}
.calculator-results h3 {
color: #007bff;
margin-top: 0;
border-bottom: 1px solid #cce5ff;
padding-bottom: 10px;
margin-bottom: 15px;
}
.calculator-results p {
margin-bottom: 8px;
font-size: 17px;
display: flex;
justify-content: space-between;
}
.calculator-results p strong {
font-size: 1.1em;
color: #333;
}
.calculator-results span {
font-weight: bold;
color: #0056b3;
}
Understanding Your Army Pay: A Comprehensive Guide
Serving in the United States Army comes with a comprehensive compensation package designed to support soldiers and their families. While the exact figures can be complex and vary based on numerous factors, understanding the core components of Army pay can help you estimate your monthly earnings. This calculator provides a simplified estimate based on key factors.
Key Components of Army Pay
Army pay is generally broken down into several main categories:
1. Base Pay
Base pay is the fundamental component of a soldier's salary. It is determined primarily by two factors: your rank (e.g., E-1, O-3) and your cumulative years of service. As you promote in rank and gain more experience, your base pay increases. This is a taxable income component.
Rank: Enlisted ranks (E-1 to E-9) and Officer ranks (O-1 to O-10) have distinct pay scales.
Years of Service: Within each rank, pay increases incrementally with more years of service, typically every two years.
2. Basic Allowance for Housing (BAH)
BAH is a non-taxable allowance designed to provide housing compensation for service members who do not live in government-provided housing (e.g., barracks or on-base family housing). The amount of BAH you receive depends on several factors:
Duty Station Location: BAH rates are specific to geographic locations (zip codes) to account for varying housing costs across the country.
Rank: Higher ranks generally receive higher BAH rates.
Dependent Status: There are different rates for "with dependents" (e.g., married, or single with children) and "without dependents."
It's important to note that if you live in government housing, you typically do not receive BAH. For service members stationed overseas, a similar allowance called Overseas Housing Allowance (OHA) applies, which is calculated differently and is not included in this simplified calculator.
3. Basic Allowance for Subsistence (BAS)
BAS is a non-taxable allowance intended to offset the costs of a service member's meals. Unlike BAH, BAS is a fixed monthly rate that varies only slightly between officers and enlisted personnel, and it is not dependent on location or family status. If a soldier is provided meals by the government (e.g., in the dining facility), their BAS may be partially or fully deducted.
Other Potential Pays and Allowances (Not Included in this Calculator)
While Base Pay, BAH, and BAS form the core of most soldiers' monthly income, many other special pays and allowances can significantly impact total compensation. These often include:
Special Duty Assignment Pay (SDAP): For specific demanding roles.
Hazardous Duty Incentive Pay (HDIP): For duties like flying, diving, or parachuting.
Hostile Fire/Imminent Danger Pay (HFP/IDP): For service in designated combat zones.
Family Separation Allowance (FSA): For service members separated from their families due to military orders.
Cost of Living Allowance (COLA): For high-cost areas within the continental U.S. (CONUS COLA) or overseas (OCONUS COLA).
Reenlistment Bonuses: Incentives for extending service.
Assignment Incentive Pay (AIP): For accepting certain difficult assignments.
This calculator focuses on the primary, most common components of Army pay to provide a general estimate. For precise figures, always refer to official Department of Defense pay charts and your Leave and Earnings Statement (LES).