Roth IRA Calculator

Use this Roth IRA Calculator to estimate your maximum allowed Roth IRA contribution for a tax year (based on filing status, MAGI, age, and earned income) and project how your balance could grow to retirement.

Advanced options
Projection setup
Optional taxable comparison
Maximum allowed Roth IRA contribution for the tax year
–
Direct Roth IRA eligibility result
–
Standard IRA contribution limit for the tax year
–
This base limit is shared across Traditional IRA plus Roth IRA contributions combined.
Catch-up contribution amount (if age 50+ by year end)
–
Roth IRA income phaseout range (MAGI) for your filing status
–
Planned contribution check
–
Monthly amount to hit your allowed max (if contributing monthly)
–
Projected Roth IRA balance at retirement (future dollars)
–
Year-by-year projection (age, contribution, ending balance)
Table
Did we solve your problem today?

How to use our Roth IRA Calculator

  1. Select the tax year you are contributing for.
  2. Pick your tax filing status so the calculator can use the right income phaseout range.
  3. Enter your Modified AGI (MAGI) for the year (use your best estimate if you do not know it yet).
  4. Enter your current age (this affects whether a catch-up amount applies at age 50+).
  5. Enter your earned income for the year (you generally cannot contribute more than this).
  6. Enter your planned Roth IRA contribution for the year (across all Roth IRAs).
  7. Open Advanced options if you want a retirement projection, then set retirement age, starting balance, expected annual return, and contribution frequency/timing.
  8. If you want results in today’s dollars, enter an inflation rate greater than 0.
  9. If you want a simple taxable account comparison, turn it on and enter an effective annual tax drag.
  10. Click Calculate and read the eligibility result, the allowed maximum, and the year-by-year table for a quick sanity check.

Definitions

Roth IRA: A retirement account where eligible contributions are made with after-tax money, and qualified withdrawals can be tax-free.[1]

Tax year: The year the contribution counts for (it can be different from the calendar year you deposit the money).

MAGI (Modified Adjusted Gross Income): An IRS income measure used to decide whether you can contribute to a Roth IRA and whether your allowed amount is reduced.[1]

Phaseout range: The MAGI range where your allowed Roth IRA contribution shrinks from the full limit down to zero.[1]

Standard IRA limit: The base yearly contribution limit shared across Traditional IRA plus Roth IRA contributions combined.[1]

Catch-up contribution: An extra amount allowed if you are age 50 or older by the end of the tax year.[1]

Earned income: Pay from working (like wages or self-employment). Your IRA contribution generally cannot be more than your earned income for the year.[1]

Tax drag: A simplified way to model taxes in a taxable account by reducing the yearly return by a chosen percent (example: 1% per year).


Methodology

What this calculator answers

It always computes (1) your maximum allowed direct Roth IRA contribution for the selected tax year and (2) a retirement projection that uses the feasible contribution amount (never more than you are allowed).

Limits and phaseout ranges used

For supported tax years, the calculator uses a built-in table for the annual IRA contribution limit, catch-up amount, and Roth IRA MAGI phaseout ranges by filing status.[1][3]

Step 1: Standard limit and catch-up

base_limit = IRA_LIMIT[tax_year]

catch_up_amount = (current_age >= 50) ? IRA_CATCHUP[tax_year] : 0

standard_limit = base_limit + catch_up_amount

Step 2: Earned income cap

Your allowed contribution cannot exceed your earned income for the year.[1]

income_capped_limit = min(standard_limit, earned_income)

Step 3: Income-based allowed amount (phaseout)

The calculator uses the filing-status phaseout start and end values for the chosen year. If your MAGI is below the start, you can contribute the full standard limit (still capped by earned income). If your MAGI is above the end, the direct Roth IRA contribution allowed is 0.[1][3]

If MAGI <= phaseout_start: income_based_limit = standard_limit

If MAGI >= phaseout_end: income_based_limit = 0

Else: income_based_limit = standard_limit * (phaseout_end - MAGI) / (phaseout_end - phaseout_start)

Step 4: Rounding the reduced amount

When MAGI is inside the phaseout range, the reduced contribution is rounded down to the nearest $10 to match common IRS worksheet instructions.[1]

rounded_income_based_limit = floor(income_based_limit / 10) * 10

Step 5: Final allowed direct Roth IRA contribution

allowed_contribution = min(income_capped_limit, rounded_income_based_limit)

Planned contribution check and projection contribution

If your planned contribution is higher than allowed, the calculator flags it and uses the allowed amount for the projection (so the projection stays feasible).

project_contribution = min(planned_contribution, allowed_contribution)

months_to_max = allowed_contribution / 12

Retirement projection (Roth)

Projection runs only when retirement age is greater than current age. It uses your starting balance, the project_contribution, and your chosen timing/frequency assumption.

years = retirement_age - current_age

If frequency is Monthly or timing is Evenly through year: r_m = (1 + annual_return/100)^(1/12) - 1; n = 12*years

If r_m != 0: FV = starting_balance*(1+r_m)^n + (project_contribution/12)*(((1+r_m)^n - 1)/r_m)

If r_m = 0: FV = starting_balance + (project_contribution/12)*n

If frequency is Annual: iterate each year; add project_contribution at start or end (based on timing); then grow by (1 + annual_return/100)

Inflation-adjusted result (today's dollars)

If inflation rate is greater than 0, the calculator also shows a value in today’s dollars by discounting the future value by inflation over the same number of years.

projected_roth_balance_real = projected_roth_balance_nominal / (1 + inflation_rate/100)^years

Optional taxable account comparison (simple tax drag)

If enabled, the taxable comparison uses the same contribution and timing settings, but reduces the annual return by your chosen tax drag. This is a rough model (real taxes depend on dividends, realized capital gains, and when you sell).[1]

effective_return = max(annual_return - effective_tax_drag, -100)

projected_taxable_balance = projection_using(effective_return)

Year-by-year table

The table reports each age year, the contribution used for that year (based on project_contribution and your frequency), and the ending balance after growth for that year.

Validation and safe handling

The calculator blocks calculation when required inputs are missing or invalid (for example negative MAGI, negative planned contribution, or annual return less than or equal to -100). If allowed_contribution is 0, the projection still runs using your starting balance and a $0 contribution, and eligibility is shown clearly.[1][3]


Sources