Military per diem is a daily allowance given to service members and DoD civilians to cover living expenses when traveling on official business (TDY/TAD). It is designed to reimburse you for lodging, meals, and incidental expenses (M&IE) without requiring you to pay out of pocket, provided you stay within the authorized limits.
The total per diem rate is composed of two primary parts:
Lodging: Covers the cost of hotel or other accommodations. This is reimbursed based on actual expenses up to a maximum cap determined by the location.
M&IE (Meals & Incidental Expenses): Covers breakfast, lunch, dinner, and small incidental fees (like tips for baggage handlers). Unlike lodging, M&IE is paid at a flat rate regardless of how much you actually spend on food.
How to Use This Calculator
Because per diem rates vary significantly by ZIP code and season (rates for Virginia Beach in July are different than in January), this calculator requires you to input the specific rates for your TDY location. You can find these rates on the official Defense Travel Management Office (DTMO) or GSA websites.
Find your Rates: Lookup the Lodging and M&IE rates for your destination.
Enter Lodging Rate: Input the maximum daily lodging amount.
Enter M&IE Rate: Input the full daily meal rate.
Enter Duration: Input the total number of days on your orders.
75% Rule: Leave checked if this is a standard TDY where you are traveling to and from the location on the first and last days.
The 75% Rule for Travel Days
According to the Joint Travel Regulations (JTR), travelers are typically authorized 75% of the full M&IE rate on the day of departure and the day of return, regardless of what time the travel occurs. For any full days spent at the TDY location between travel days, the traveler receives 100% of the M&IE rate.
CONUS vs. OCONUS
CONUS (Continental United States) rates are set by the GSA. OCONUS (Outside Continental United States) rates, which include Alaska, Hawaii, and US Territories, are set by the Department of Defense. While the administration differs, the calculation logic regarding the 75% rule generally remains consistent for standard temporary duty assignments.
Frequently Asked Questions
Do I get to keep the extra money if I don't spend it all?
For Lodging: No. You are reimbursed only for your actual lodging costs up to the cap. If the cap is $100 and you spend $80, you get $80. If you spend $120, you get $100 (unless actual expense authorization was approved).
For M&IE: Yes. The meal allowance is a flat rate. If the daily M&IE is $60 and you only spend $20 on food, you keep the remaining $40.
What if government meals are provided?
If the government provides meals (for example, if you are staying on a base with a chow hall and are directed to eat there), your M&IE rate will be significantly reduced to the "Government Meal Rate" (GMR), which is lower than the full commercial rate.
Are receipts required?
Generally, receipts are required for all lodging expenses regardless of cost, and for any other single expense over $75. Receipts are typically not required for food expenses since M&IE is a flat allowance.
function calculatePerDiem() {
// 1. Get Input Values
var lodgingRate = document.getElementById('dailyLodging').value;
var mieRate = document.getElementById('dailyMie').value;
var days = document.getElementById('tripDays').value;
var apply75 = document.getElementById('apply75Rule').checked;
// 2. Validate Inputs
if (lodgingRate === "" || mieRate === "" || days === "") {
alert("Please fill in all fields (Lodging, M&IE, and Days).");
return;
}
lodgingRate = parseFloat(lodgingRate);
mieRate = parseFloat(mieRate);
days = parseInt(days);
if (days < 1) {
alert("Trip duration must be at least 1 day.");
return;
}
if (lodgingRate < 0 || mieRate 1, lodging nights = days – 1?
// Actually, normally '5 days' TDY implies 4 nights lodging.
// However, users often count 'days' loosely.
// Let's assume Days = Calendar Days engaged.
// Lodging Nights = Days – 1 (You don't sleep in a hotel after the last day's travel usually).
var lodgingNights = days > 1 ? days – 1 : 0;
// Edge case: Sometimes a 1 day TDY involves an overnight.
// To keep it simple and flexible, we will calculate Lodging based on Nights.
// But the input asks for "Trip Duration (Days)".
// Standard JTR: Travel Day 1 -> Day X. Nights = Days – 1.
totalLodging = lodgingRate * lodgingNights;
// 5. Calculate M&IE
if (days === 1) {
// If the trip is less than 12 hours, usually no M&IE.
// If > 12 hours but same day, usually 75%.
// We will assume 75% if the box is checked, 100% if not.
totalMie = apply75 ? (mieRate * 0.75) : mieRate;
} else {
// Multi-day trip
if (apply75) {
// First Day: 75%
// Last Day: 75%
// Middle Days: 100%
var firstLastMie = (mieRate * 0.75) * 2;
var middleDays = days – 2;
var middleMie = middleDays * mieRate;
totalMie = firstLastMie + middleMie;
} else {
// Flat rate every day
totalMie = mieRate * days;
}
}
var totalAllowance = totalLodging + totalMie;
// 6. Display Results
document.getElementById('resLodging').innerText = "$" + totalLodging.toFixed(2);
// Add note about nights if > 0
if(lodgingNights > 0) {
document.getElementById('resLodging').innerText += " (" + lodgingNights + " nights)";
}
document.getElementById('resMie').innerText = "$" + totalMie.toFixed(2);
document.getElementById('resTotal').innerText = "$" + totalAllowance.toFixed(2);
// Show results container
document.getElementById('results').style.display = "block";
}