ARM Calculator Formula

Understand the math behind the arm calculator. Each variable explained with a worked example.

Formulas Used

ARM Initial Payment

initial_payment = pmt_init

Estimated Payment After Adjustment

adjusted_payment = pmt_adj

Fixed Rate Payment (comparison)

fixed_payment = pmt_fixed

Monthly Savings During Fixed Period

initial_savings = pmt_fixed - pmt_init

Total Savings During Fixed Period

total_initial_savings = (pmt_fixed - pmt_init) * n_fixed

Balance at Rate Adjustment

remaining_balance = balance_at_adj

Variables

VariableDescriptionDefault
loan_amountLoan Amount(USD)400000
initial_rateInitial ARM Rate(%)5.75
fixed_period_yearsInitial Fixed Period(years)5
adjusted_rateExpected Rate After Adjustment(%)7.75
fixed_rate_comparisonComparable Fixed Rate(%)6.75
loan_term_yearsTotal Loan Term(years)30
r_initDerived value= initial_rate / 100 / 12calculated
r_adjDerived value= adjusted_rate / 100 / 12calculated
r_fixedDerived value= fixed_rate_comparison / 100 / 12calculated
n_totalDerived value= loan_term_years * 12calculated
n_fixedDerived value= fixed_period_years * 12calculated
n_remainingDerived value= n_total - n_fixedcalculated
pmt_initDerived value= r_init > 0 ? loan_amount * r_init * pow(1 + r_init, n_total) / (pow(1 + r_init, n_total) - 1) : loan_amount / n_totalcalculated
balance_at_adjDerived value= r_init > 0 ? loan_amount * (pow(1 + r_init, n_total) - pow(1 + r_init, n_fixed)) / (pow(1 + r_init, n_total) - 1) : loan_amount * (n_total - n_fixed) / n_totalcalculated
pmt_adjDerived value= r_adj > 0 ? balance_at_adj * r_adj * pow(1 + r_adj, n_remaining) / (pow(1 + r_adj, n_remaining) - 1) : balance_at_adj / n_remainingcalculated
pmt_fixedDerived value= r_fixed > 0 ? loan_amount * r_fixed * pow(1 + r_fixed, n_total) / (pow(1 + r_fixed, n_total) - 1) : loan_amount / n_totalcalculated

How It Works

Adjustable-Rate Mortgage (ARM)

An ARM starts with a lower fixed rate for an initial period, then adjusts periodically based on a market index plus a margin.

Common ARM Structures

  • 5/1 ARM: Fixed for 5 years, adjusts annually
  • 7/1 ARM: Fixed for 7 years, adjusts annually
  • 10/1 ARM: Fixed for 10 years, adjusts annually
  • Rate Caps

    ARMs have caps limiting rate changes:

  • Initial cap: Maximum first adjustment (typically 2%)
  • Periodic cap: Maximum annual adjustment (typically 2%)
  • Lifetime cap: Maximum over loan life (typically 5-6%)
  • When an ARM Makes Sense

  • You plan to sell or refinance before the fixed period ends
  • You want to maximize cash flow in the early years
  • You believe rates will stay stable or decrease
  • Worked Example

    A $400,000 loan. 5/1 ARM at 5.75% initial, expected adjustment to 7.75%. Comparable 30-year fixed at 6.75%.

    loan_amount = 400000initial_rate = 5.75fixed_period_years = 5adjusted_rate = 7.75fixed_rate_comparison = 6.75loan_term_years = 30
    1. 01ARM initial payment (5.75%, 30-year amortization): $2,334.29
    2. 02Fixed rate payment (6.75%): $2,594.26
    3. 03Monthly savings during initial period: $2,594.26 - $2,334.29 = $259.97
    4. 04Total savings over 5 years: $259.97 x 60 = $15,598
    5. 05Balance at year 5: approximately $371,342
    6. 06Adjusted payment at 7.75% for remaining 25 years: $2,803.14

    Frequently Asked Questions

    What determines my ARM rate after the fixed period?

    The adjusted rate equals the index (such as SOFR or 1-year Treasury) plus the lender margin (typically 2.25-2.75%). Rate caps limit how much it can change at each adjustment and over the loan life.

    Can I refinance before the ARM adjusts?

    Yes, many ARM borrowers plan to refinance into a fixed-rate mortgage before the adjustment. This strategy works if rates are favorable and you have sufficient equity. Factor in closing costs when evaluating this plan.

    What is the worst case with an ARM?

    The worst case is hitting the lifetime cap. On a 5.75% ARM with a 5% lifetime cap, the maximum rate would be 10.75%. On $400,000, that could mean payments over $3,500/month. Always stress-test the worst-case scenario.

    Ready to run the numbers?

    Open ARM Calculator