Military Income Calculator
Use this calculator to estimate your monthly and annual military income. This tool takes into account base pay, basic allowances (BAH, BAS), common special pays, and typical deductions like SGLI and TSP contributions. Please note that this is an estimate and does not include all possible pays, allowances, or tax implications.
Understanding Military Income Components
Military compensation is a comprehensive package designed to support service members and their families. It typically includes several key components:
1. Base Pay
This is the fundamental component of military pay, determined by your rank (pay grade) and your total years of service. Base pay is taxable and forms the foundation of your income. It increases with promotions and longevity.
2. Basic Allowance for Housing (BAH)
BAH is a non-taxable allowance provided to service members who do not live in government-provided housing. Its amount varies significantly based on your duty station's ZIP code, your pay grade, and whether you have dependents. The purpose of BAH is to offset the cost of housing in the local civilian market.
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, regardless of location or dependents.
4. Special and Incentive Pays
The military offers numerous special and incentive pays for specific skills, duties, or hazardous conditions. Examples include:
- Hazardous Duty Pay (HDP): For duties involving unusual hazards (e.g., hostile fire, diving, parachuting).
- Flight Pay (ACIP): For aviators and aircrew members.
- Sea Pay: For enlisted members serving on ships.
- Assignment Incentive Pay (AIP): For accepting certain difficult assignments.
- Language Proficiency Pay: For demonstrating proficiency in critical foreign languages.
5. Bonuses
The military uses bonuses to attract and retain personnel in critical specialties or for specific commitments. These can include enlistment bonuses for new recruits, reenlistment bonuses for those extending their service, and various other special bonuses.
6. Deductions
Like civilian employment, military pay is subject to deductions. Common deductions include:
- Taxes: Federal, state (if applicable), and local income taxes. (Note: This calculator does not estimate taxes.)
- Thrift Savings Plan (TSP): A government-sponsored retirement savings and investment plan, similar to a 401(k).
- Service members' Group Life Insurance (SGLI): Low-cost term life insurance for service members.
- Allotments: Voluntary deductions for things like dependent support, savings, or charitable contributions.
Example Calculation
Let's consider an example:
- Rank: E-5 (Sergeant/Staff Sergeant)
- Years of Service: 6 years
- Dependents: Yes
- Estimated Monthly BAH: $1,800
- Monthly Hazardous Duty Pay: $275
- Monthly Flight Pay: $0
- Total Enlistment Bonus: $12,000 (averaged to $1,000/month)
- TSP Contribution: 10% of Base Pay
Based on our simplified tables (which are illustrative and not real-world accurate):
- Monthly Base Pay (E-5, 6 years): ~$3,400
- Monthly BAS (Enlisted): ~$400
- Total Monthly Allowances: $1,800 (BAH) + $400 (BAS) = $2,200
- Total Monthly Special Pays & Bonus: $275 (HDP) + $1,000 (Bonus Avg) = $1,275
- Gross Monthly Income: $3,400 + $2,200 + $1,275 = $6,875
- Estimated Monthly SGLI: $31
- Estimated Monthly TSP Contribution: 10% of $3,400 = $340
- Estimated Net Monthly Income (before taxes): $6,875 – $31 – $340 = $6,504
- Estimated Annual Gross Income (before taxes): $6,875 * 12 = $82,500
This example demonstrates how various components combine to form a service member's total compensation package.
.military-income-calculator-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
max-width: 700px;
margin: 20px auto;
padding: 25px;
background-color: #f9f9f9;
border-radius: 10px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
color: #333;
}
.military-income-calculator-container h2 {
text-align: center;
color: #0056b3;
margin-bottom: 20px;
font-size: 1.8em;
}
.military-income-calculator-container h3 {
color: #0056b3;
margin-top: 30px;
margin-bottom: 15px;
font-size: 1.4em;
}
.military-income-calculator-container h4 {
color: #0056b3;
margin-top: 20px;
margin-bottom: 10px;
font-size: 1.2em;
}
.military-income-calculator-container p {
line-height: 1.6;
margin-bottom: 15px;
}
.calculator-form {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
border: 1px solid #e0e0e0;
margin-bottom: 25px;
}
.form-group {
margin-bottom: 18px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: bold;
color: #555;
}
.form-group input[type="number"],
.form-group select {
width: calc(100% – 22px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 1em;
box-sizing: border-box;
}
.form-group small {
display: block;
margin-top: 5px;
color: #777;
font-size: 0.85em;
}
button {
display: block;
width: 100%;
padding: 12px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
font-size: 1.1em;
cursor: pointer;
transition: background-color 0.3s ease;
margin-top: 20px;
}
button:hover {
background-color: #0056b3;
}
.calculator-result {
background-color: #eaf4ff;
padding: 20px;
border-radius: 8px;
border: 1px solid #b3d9ff;
margin-top: 25px;
font-size: 1.1em;
line-height: 1.8;
}
.calculator-result div {
margin-bottom: 10px;
}
.calculator-result strong {
color: #0056b3;
}
.calculator-result .total-income {
font-size: 1.3em;
font-weight: bold;
color: #28a745;
margin-top: 15px;
border-top: 1px solid #cce0ff;
padding-top: 10px;
}
.calculator-result .annual-income {
font-size: 1.2em;
font-weight: bold;
color: #28a745;
}
.military-income-calculator-container ul {
list-style-type: disc;
margin-left: 20px;
margin-bottom: 15px;
}
.military-income-calculator-container ul li {
margin-bottom: 5px;
}
function calculateMilitaryIncome() {
// Base Pay Table (Simplified and illustrative, not real-world accurate)
var basePayTable = {
"E-1": { "0": 1900, "2": 1900, "4": 1900, "6": 1900, "8": 1900, "10": 1900, "12": 1900, "14": 1900, "16": 1900, "18": 1900, "20": 1900, "22": 1900, "24": 1900, "26": 1900, "28": 1900, "30": 1900 },
"E-2": { "0": 2100, "2": 2100, "4": 2100, "6": 2100, "8": 2100, "10": 2100, "12": 2100, "14": 2100, "16": 2100, "18": 2100, "20": 2100, "22": 2100, "24": 2100, "26": 2100, "28": 2100, "30": 2100 },
"E-3": { "0": 2200, "2": 2300, "4": 2300, "6": 2300, "8": 2300, "10": 2300, "12": 2300, "14": 2300, "16": 2300, "18": 2300, "20": 2300, "22": 2300, "24": 2300, "26": 2300, "28": 2300, "30": 2300 },
"E-4": { "0": 2500, "2": 2600, "4": 2700, "6": 2700, "8": 2700, "10": 2700, "12": 2700, "14": 2700, "16": 2700, "18": 2700, "20": 2700, "22": 2700, "24": 2700, "26": 2700, "28": 2700, "30": 2700 },
"E-5": { "0": 2800, "2": 3000, "4": 3200, "6": 3400, "8": 3600, "10": 3800, "12": 3800, "14": 3800, "16": 3800, "18": 3800, "20": 3800, "22": 3800, "24": 3800, "26": 3800, "28": 3800, "30": 3800 },
"E-6": { "0": 3200, "2": 3400, "4": 3600, "6": 3800, "8": 4000, "10": 4200, "12": 4400, "14": 4600, "16": 4800, "18": 4800, "20": 4800, "22": 4800, "24": 4800, "26": 4800, "28": 4800, "30": 4800 },
"E-7": { "0": 3800, "2": 4000, "4": 4200, "6": 4400, "8": 4600, "10": 4800, "12": 5000, "14": 5200, "16": 5400, "18": 5600, "20": 5800, "22": 6000, "24": 6200, "26": 6400, "28": 6600, "30": 6800 },
"E-8": { "0": 4500, "2": 4700, "4": 4900, "6": 5100, "8": 5300, "10": 5500, "12": 5700, "14": 5900, "16": 6100, "18": 6300, "20": 6500, "22": 6700, "24": 6900, "26": 7100, "28": 7300, "30": 7500 },
"E-9": { "0": 5500, "2": 5700, "4": 5900, "6": 6100, "8": 6300, "10": 6500, "12": 6700, "14": 6900, "16": 7100, "18": 7300, "20": 7500, "22": 7700, "24": 7900, "26": 8100, "28": 8300, "30": 8500 },
"O-1": { "0": 3600, "2": 4000, "4": 4400, "6": 4800, "8": 5200, "10": 5600, "12": 5600, "14": 5600, "16": 5600, "18": 5600, "20": 5600, "22": 5600, "24": 5600, "26": 5600, "28": 5600, "30": 5600 },
"O-2": { "0": 4200, "2": 4600, "4": 5000, "6": 5400, "8": 5800, "10": 6200, "12": 6200, "14": 6200, "16": 6200, "18": 6200, "20": 6200, "22": 6200, "24": 6200, "26": 6200, "28": 6200, "30": 6200 },
"O-3": { "0": 5000, "2": 5500, "4": 6000, "6": 6500, "8": 7000, "10": 7500, "12": 7800, "14": 8100, "16": 8400, "18": 8700, "20": 9000, "22": 9000, "24": 9000, "26": 9000, "28": 9000, "30": 9000 },
"O-4": { "0": 6000, "2": 6500, "4": 7000, "6": 7500, "8": 8000, "10": 8500, "12": 9000, "14": 9500, "16": 10000, "18": 10500, "20": 11000, "22": 11500, "24": 12000, "26": 12000, "28": 12000, "30": 12000 },
"O-5": { "0": 7500, "2": 8000, "4": 8500, "6": 9000, "8": 9500, "10": 10000, "12": 10500, "14": 11000, "16": 11500, "18": 12000, "20": 12500, "22": 13000, "24": 13500, "26": 14000, "28": 14500, "30": 15000 },
"O-6": { "0": 9000, "2": 9500, "4": 10000, "6": 10500, "8": 11000, "10": 11500, "12": 12000, "14": 12500, "16": 13000, "18": 13500, "20": 14000, "22": 14500, "24": 15000, "26": 15500, "28": 16000, "30": 16500 }
};
// Fixed Allowances and Deductions (Illustrative, based on 2024 estimates)
var BAS_ENLISTED = 400; // Basic Allowance for Subsistence (approx)
var BAS_OFFICER = 300; // Basic Allowance for Subsistence (approx)
var SGLI_MAX_COVERAGE = 31; // Service members' Group Life Insurance for $500k coverage
// Get input values
var rank = document.getElementById("rank").value;
var yearsOfService = parseFloat(document.getElementById("yearsOfService").value);
var dependents = document.getElementById("dependents").value; // Not directly used in calculation if BAH is manual, but kept for context
var estimatedBah = parseFloat(document.getElementById("estimatedBah").value);
var hazardousDutyPay = parseFloat(document.getElementById("hazardousDutyPay").value);
var flightPay = parseFloat(document.getElementById("flightPay").value);
var enlistmentBonus = parseFloat(document.getElementById("enlistmentBonus").value);
var tspContributionPercent = parseFloat(document.getElementById("tspContributionPercent").value);
// Validate inputs
if (isNaN(yearsOfService) || yearsOfService < 0) yearsOfService = 0;
if (isNaN(estimatedBah) || estimatedBah < 0) estimatedBah = 0;
if (isNaN(hazardousDutyPay) || hazardousDutyPay < 0) hazardousDutyPay = 0;
if (isNaN(flightPay) || flightPay < 0) flightPay = 0;
if (isNaN(enlistmentBonus) || enlistmentBonus < 0) enlistmentBonus = 0;
if (isNaN(tspContributionPercent) || tspContributionPercent 100) tspContributionPercent = 0;
// Cap years of service to the max available in the table
var maxYearsInTable = 30; // Max key in the basePayTable
var effectiveYearsOfService = Math.min(yearsOfService, maxYearsInTable);
// Find the closest years of service tier in the table
var yearsTier = 0;
for (var key in basePayTable[rank]) {
if (effectiveYearsOfService >= parseFloat(key)) {
yearsTier = parseFloat(key);
} else {
break;
}
}
// 1. Calculate Monthly Base Pay
var monthlyBasePay = basePayTable[rank] ? basePayTable[rank][yearsTier.toString()] : 0;
if (monthlyBasePay === undefined) monthlyBasePay = 0; // Fallback if rank/years not found
// 2. Calculate Monthly BAS
var monthlyBas = 0;
if (rank.startsWith("E")) {
monthlyBas = BAS_ENLISTED;
} else if (rank.startsWith("O")) {
monthlyBas = BAS_OFFICER;
}
// 3. Total Monthly Allowances
var totalMonthlyAllowances = estimatedBah + monthlyBas;
// 4. Total Monthly Special Pays & Averaged Bonus
var monthlyBonusAverage = enlistmentBonus / 12;
var totalMonthlySpecialPaysAndBonus = hazardousDutyPay + flightPay + monthlyBonusAverage;
// 5. Gross Monthly Income
var grossMonthlyIncome = monthlyBasePay + totalMonthlyAllowances + totalMonthlySpecialPaysAndBonus;
// 6. Estimated Deductions
var estimatedSgliDeduction = SGLI_MAX_COVERAGE;
var estimatedTspContribution = (tspContributionPercent / 100) * monthlyBasePay;
// 7. Estimated Net Monthly Income (before taxes)
var estimatedNetMonthlyIncome = grossMonthlyIncome – estimatedSgliDeduction – estimatedTspContribution;
// 8. Estimated Annual Gross Income (before taxes)
var estimatedAnnualGrossIncome = grossMonthlyIncome * 12;
// Display results
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = `
Estimated Income Breakdown:
Monthly Base Pay: $${monthlyBasePay.toFixed(2)}
Monthly Basic Allowance for Housing (BAH): $${estimatedBah.toFixed(2)}
Monthly Basic Allowance for Subsistence (BAS): $${monthlyBas.toFixed(2)}
Total Monthly Allowances: $${totalMonthlyAllowances.toFixed(2)}
Total Monthly Special Pays & Bonus (averaged): $${totalMonthlySpecialPaysAndBonus.toFixed(2)}
Gross Monthly Income: $${grossMonthlyIncome.toFixed(2)}
Estimated Monthly SGLI Deduction: $${estimatedSgliDeduction.toFixed(2)}
Estimated Monthly TSP Contribution: $${estimatedTspContribution.toFixed(2)}
Estimated Net Monthly Income (before taxes): $${estimatedNetMonthlyIncome.toFixed(2)}
Estimated Annual Gross Income (before taxes): $${estimatedAnnualGrossIncome.toFixed(2)}
Note: This calculation is an estimate and does not include all possible pays, allowances, or tax implications. Actual income may vary.
`;
}