Travel Nurse Pay Calculator

.tn-calculator-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e1e4e8; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .tn-calculator-header { text-align: center; margin-bottom: 30px; } .tn-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; } .tn-input-group { display: flex; flex-direction: column; } .tn-input-group label { font-weight: 600; margin-bottom: 8px; color: #2d3748; font-size: 14px; } .tn-input-group input { padding: 12px; border: 1px solid #cbd5e0; border-radius: 6px; font-size: 16px; } .tn-calc-btn { grid-column: span 2; background-color: #2b6cb0; color: white; padding: 15px; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; } .tn-calc-btn:hover { background-color: #2c5282; } .tn-results { margin-top: 30px; padding: 20px; background-color: #f7fafc; border-radius: 8px; display: none; } .tn-result-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf2f7; } .tn-result-row:last-child { border-bottom: none; } .tn-result-label { font-weight: 500; color: #4a5568; } .tn-result-value { font-weight: 700; color: #2d3748; } .tn-highlight { color: #2b6cb0; font-size: 1.2em; } .tn-article { margin-top: 40px; line-height: 1.6; color: #4a5568; } .tn-article h2 { color: #2d3748; margin-top: 25px; } @media (max-width: 600px) { .tn-grid { grid-template-columns: 1fr; } .tn-calc-btn { grid-column: span 1; } }

Travel Nurse Pay Package Calculator

Break down your taxable hourly rate and non-taxable stipends to see your true take-home pay.

Gross Weekly Pay:
Estimated Net (Take-Home) Weekly:
Blended Hourly Rate (Gross):
Total Contract Value (Gross):

Understanding Travel Nurse Pay Structure

Unlike staff nursing positions, travel nurse compensation is split into two primary components: taxable wages and non-taxable stipends. This calculator helps you understand the "blended rate," which is the most accurate way to compare different travel contracts.

1. Taxable Hourly Rate

This is the base pay you receive for every hour worked. It is subject to federal, state, and local income taxes. While agencies may offer a low taxable rate to increase your stipends, the IRS requires this rate to be "fair market value" for your profession and location.

2. Non-Taxable Stipends (GSA Rates)

Stipends for housing and meals/incidentals are meant to cover the cost of duplicating expenses while away from your primary tax home. If you qualify for these, they are paid out tax-free, significantly increasing your net take-home pay compared to a staff job with the same gross income.

3. The Blended Hourly Rate

To find the blended rate, we take your total weekly gross (Taxable Pay + Stipends) and divide it by the number of hours worked per week. This allows you to compare a high-hourly/low-stipend contract against a low-hourly/high-stipend contract effectively.

Example Calculation

If you are offered $50/hr for 36 hours a week with a $1,500 weekly housing stipend and $500 weekly meals stipend:

  • Taxable Weekly Gross: $50 × 36 = $1,800
  • Non-Taxable Stipends: $1,500 + $500 = $2,000
  • Total Weekly Gross: $3,800
  • Blended Rate: $3,800 / 36 = $105.55 per hour

Important Considerations

Always verify your "Tax Home" status with a tax professional. If you do not maintain a permanent residence and duplicate expenses, your stipends may be considered taxable income by the IRS. Additionally, remember that overtime (OT) is usually calculated only on the taxable hourly rate, not the blended rate.

function calculateTravelPay() { var taxableHourly = parseFloat(document.getElementById('taxableHourly').value); var hoursPerWeek = parseFloat(document.getElementById('hoursPerWeek').value); var housingStipend = parseFloat(document.getElementById('housingStipend').value); var mealsStipend = parseFloat(document.getElementById('mealsStipend').value); var taxRate = parseFloat(document.getElementById('taxRate').value); var contractWeeks = parseFloat(document.getElementById('contractWeeks').value); if (isNaN(taxableHourly) || isNaN(hoursPerWeek) || isNaN(housingStipend) || isNaN(mealsStipend) || isNaN(taxRate) || isNaN(contractWeeks)) { alert("Please enter valid numbers in all fields."); return; } // Logic for Weekly Taxable Gross var weeklyTaxable = taxableHourly * hoursPerWeek; // Logic for Weekly Non-Taxable Stipends var weeklyStipends = housingStipend + mealsStipend; // Logic for Total Weekly Gross var totalWeeklyGross = weeklyTaxable + weeklyStipends; // Logic for Net (Take-Home) Weekly // Only taxable income is taxed var taxesOwed = weeklyTaxable * (taxRate / 100); var netWeekly = (weeklyTaxable – taxesOwed) + weeklyStipends; // Logic for Blended Hourly Rate var blendedRate = totalWeeklyGross / hoursPerWeek; // Logic for Total Contract Value var totalValue = totalWeeklyGross * contractWeeks; // Display Results document.getElementById('grossWeekly').innerText = "$" + totalWeeklyGross.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('netWeekly').innerText = "$" + netWeekly.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('blendedRate').innerText = "$" + blendedRate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + "/hr"; document.getElementById('totalContract').innerText = "$" + totalValue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('tnResults').style.display = 'block'; }

Leave a Reply

Your email address will not be published. Required fields are marked *