Inherited IRA RMD Calculator (Non-Spouse)
Understanding Inherited IRA RMDs for Non-Spouse Beneficiaries
The rules for inherited IRAs, especially for non-spouse beneficiaries, underwent significant changes with the SECURE Act of 2019. This calculator helps you estimate your Required Minimum Distribution (RMD) for an inherited IRA under these new rules.
The 10-Year Rule
For most non-spouse beneficiaries where the original IRA owner died in 2020 or later, the "10-year rule" applies. This rule generally requires the entire inherited IRA account to be distributed by December 31st of the 10th year following the year of the original owner's death.
Two Key Scenarios for Non-Spouse Beneficiaries:
-
Owner Died *Before* Their Required Beginning Date (RBD):
If the original IRA owner died before they were required to start taking their own RMDs (i.e., before their RBD, which is typically age 73 for those turning 72 after 2022, or age 70½ for those who turned 70½ before 2020), then no annual RMDs are required during the 10-year period. The entire account balance simply needs to be distributed by the end of the 10th year.
-
Owner Died *On or After* Their Required Beginning Date (RBD):
If the original IRA owner died on or after their RBD, then annual RMDs *are* required during the 10-year period. These annual RMDs are calculated based on the beneficiary's life expectancy. After these annual RMDs are taken, the remaining balance must still be fully distributed by December 31st of the 10th year following the owner's death.
How the Calculator Works (Scenario 2: Owner Died On or After RBD)
This calculator focuses on the more complex scenario where annual RMDs are required (i.e., the owner died on or after their RBD). Here's how it determines your RMD:
- Inherited IRA Balance: This is the account value as of December 31st of the *previous* year. This is the balance used to calculate the current year's RMD.
- Your Age: Your age as of December 31st of the *current* year is used to determine your life expectancy factor.
- Year of Original IRA Owner's Death: This helps determine which year of the 10-year distribution period you are in.
- Current Calendar Year: The year for which you want to calculate the RMD.
- Life Expectancy Factor: The calculator uses the IRS Single Life Expectancy Table (Table I from IRS Publication 590-B). The initial factor is based on your age in the *first RMD year* (the year following the owner's death). For each subsequent year, this factor is reduced by one.
- RMD Calculation: Your RMD for the current year is calculated by dividing your Inherited IRA Balance (from Dec 31st of the previous year) by your current year's life expectancy factor.
Important Considerations:
- This calculator provides an estimate based on the information you provide and general IRS rules.
- The 10th year of the distribution period requires the *entire remaining balance* to be distributed, regardless of the life expectancy calculation.
- Always consult with a qualified financial advisor or tax professional for personalized advice regarding your specific situation, as rules can be complex and may have exceptions.
- This calculator does not account for "eligible designated beneficiaries" (e.g., disabled or chronically ill individuals, minor children of the deceased owner, or beneficiaries not more than 10 years younger than the deceased), who may have different RMD rules.
.calculator-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: #f9f9f9;
padding: 25px;
border-radius: 10px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
max-width: 700px;
margin: 30px auto;
border: 1px solid #e0e0e0;
}
.calculator-container h2 {
color: #2c3e50;
text-align: center;
margin-bottom: 25px;
font-size: 1.8em;
}
.calculator-form .form-group {
margin-bottom: 18px;
display: flex;
flex-direction: column;
}
.calculator-form label {
margin-bottom: 8px;
color: #34495e;
font-weight: bold;
font-size: 0.95em;
}
.calculator-form input[type="number"],
.calculator-form select {
padding: 12px;
border: 1px solid #ccc;
border-radius: 6px;
font-size: 1em;
width: 100%;
box-sizing: border-box;
transition: border-color 0.3s ease;
}
.calculator-form input[type="number"]:focus,
.calculator-form select:focus {
border-color: #007bff;
outline: none;
box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
}
.calculator-form .checkbox-group {
flex-direction: row;
align-items: center;
}
.calculator-form .checkbox-group input[type="checkbox"] {
margin-right: 10px;
width: auto;
transform: scale(1.2);
}
.calculator-form .checkbox-group label {
margin-bottom: 0;
font-weight: normal;
}
.calculate-button {
background-color: #28a745;
color: white;
padding: 14px 25px;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 1.1em;
font-weight: bold;
width: 100%;
box-sizing: border-box;
transition: background-color 0.3s ease, transform 0.2s ease;
margin-top: 20px;
}
.calculate-button:hover {
background-color: #218838;
transform: translateY(-2px);
}
.calculate-button:active {
transform: translateY(0);
}
.result-container {
background-color: #e9f7ef;
border: 1px solid #d4edda;
border-radius: 8px;
padding: 20px;
margin-top: 25px;
font-size: 1.1em;
color: #155724;
line-height: 1.6;
}
.result-container p {
margin-bottom: 10px;
}
.result-container p:last-child {
margin-bottom: 0;
}
.result-container strong {
color: #0f3d1a;
}
.calculator-article {
margin-top: 40px;
padding-top: 30px;
border-top: 1px solid #e0e0e0;
color: #34495e;
line-height: 1.7;
}
.calculator-article h3,
.calculator-article h4 {
color: #2c3e50;
margin-bottom: 15px;
font-size: 1.5em;
}
.calculator-article h4 {
font-size: 1.2em;
margin-top: 25px;
}
.calculator-article p {
margin-bottom: 15px;
}
.calculator-article ul {
list-style-type: disc;
margin-left: 20px;
margin-bottom: 15px;
}
.calculator-article ol {
list-style-type: decimal;
margin-left: 20px;
margin-bottom: 15px;
}
.calculator-article li {
margin-bottom: 8px;
}
function getLifeExpectancyFactor(age) {
// IRS Single Life Expectancy Table (Table I from Pub 590-B)
var table = {
10: 73.4, 11: 72.4, 12: 71.4, 13: 70.4, 14: 69.4, 15: 68.4, 16: 67.5, 17: 66.5, 18: 65.5, 19: 64.5,
20: 63.5, 21: 62.5, 22: 61.5, 23: 60.5, 24: 59.5, 25: 58.6, 26: 57.6, 27: 56.6, 28: 55.6, 29: 54.6,
30: 53.6, 31: 52.6, 32: 51.7, 33: 50.7, 34: 49.7, 35: 48.7, 36: 47.7, 37: 46.8, 38: 45.8, 39: 44.8,
40: 43.8, 41: 42.9, 42: 41.9, 43: 40.9, 44: 40.0, 45: 39.0, 46: 38.0, 47: 37.1, 48: 36.1, 49: 35.2,
50: 34.2, 51: 33.3, 52: 32.3, 53: 31.4, 54: 30.4, 55: 29.5, 56: 28.6, 57: 27.6, 58: 26.7, 59: 25.8,
60: 24.9, 61: 24.0, 62: 23.1, 63: 22.2, 64: 21.3, 65: 20.4, 66: 19.5, 67: 18.6, 68: 17.8, 69: 16.9,
70: 16.0, 71: 15.2, 72: 14.4, 73: 13.6, 74: 12.8, 75: 12.0, 76: 11.3, 77: 10.6, 78: 9.9, 79: 9.2,
80: 8.5, 81: 7.9, 82: 7.3, 83: 6.7, 84: 6.2, 85: 5.7, 86: 5.3, 87: 4.9, 88: 4.5, 89: 4.1,
90: 3.8, 91: 3.5, 92: 3.2, 93: 3.0, 94: 2.8, 95: 2.6, 96: 2.4, 97: 2.2, 98: 2.1, 99: 2.0,
100: 1.9, 101: 1.8, 102: 1.7, 103: 1.6, 104: 1.5, 105: 1.4, 106: 1.3, 107: 1.2, 108: 1.1, 109: 1.0,
110: 0.9, 111: 0.8, 112: 0.7, 113: 0.6, 114: 0.5, 115: 0.4, 116: 0.3, 117: 0.2, 118: 0.1, 119: 0.1, 120: 0.1
};
return table[age] || null; // Return null if age not in table
}
function calculateRMD() {
var iraBalance = parseFloat(document.getElementById("iraBalance").value);
var beneficiaryAge = parseInt(document.getElementById("beneficiaryAge").value);
var yearOfDeath = parseInt(document.getElementById("yearOfDeath").value);
var currentYear = parseInt(document.getElementById("currentYear").value);
var ownerDiedAfterRBD = document.getElementById("ownerDiedAfterRBD").checked;
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
// Input validation
if (isNaN(iraBalance) || iraBalance < 0) {
resultDiv.innerHTML = "Please enter a valid Inherited IRA Balance.";
return;
}
if (isNaN(beneficiaryAge) || beneficiaryAge 120) {
resultDiv.innerHTML = "Please enter a valid Beneficiary Age (10-120).";
return;
}
if (isNaN(yearOfDeath) || yearOfDeath currentYear) {
resultDiv.innerHTML = "Please enter a valid Year of Death (2020 or later, and not in the future).";
return;
}
if (isNaN(currentYear) || currentYear < yearOfDeath) {
resultDiv.innerHTML = "Please enter a valid Current Calendar Year (must be after or equal to Year of Death).";
return;
}
var yearsSinceDeath = currentYear – yearOfDeath;
var yearsRemaining = 10 – yearsSinceDeath;
if (yearsSinceDeath 10) {
resultDiv.innerHTML = "The 10-year distribution period has ended. The entire inherited IRA should have been distributed by December 31st of " + (yearOfDeath + 10) + ".";
return;
}
var output = "";
if (!ownerDiedAfterRBD) {
output += "The original IRA owner died
before their Required Beginning Date (RBD).";
output += "
No annual RMD is required for this year. The entire account must be distributed by December 31st of the 10th year following the owner's death.";
output += "You are in Year
" + yearsSinceDeath + " of 10. You have
" + yearsRemaining + " years remaining to distribute the full balance.";
} else {
// Calculate beneficiary's age in the first RMD year (year following owner's death)
var ageAtFirstRMDYear = beneficiaryAge – (currentYear – (yearOfDeath + 1));
if (ageAtFirstRMDYear 120) {
resultDiv.innerHTML = "Calculated age for the first RMD year (" + ageAtFirstRMDYear + ") is outside the valid range. Please check your age and year inputs.";
return;
}
var initialFactor = getLifeExpectancyFactor(ageAtFirstRMDYear);
if (initialFactor === null) {
resultDiv.innerHTML = "Could not find a life expectancy factor for the calculated age (" + ageAtFirstRMDYear + "). Please check your age input.";
return;
}
var currentFactor = initialFactor – (yearsSinceDeath – 1);
if (currentFactor <= 0) {
resultDiv.innerHTML = "The life expectancy factor for this year is too low or invalid. Please check your inputs.";
return;
}
var rmdAmount = iraBalance / currentFactor;
output += "The original IRA owner died
on or after their Required Beginning Date (RBD).";
output += "Your estimated RMD for the current year (" + currentYear + ") is:
$" + rmdAmount.toFixed(2) + "";
output += "This is Year
" + yearsSinceDeath + " of 10 in the distribution period.";
output += "Your current life expectancy factor is:
" + currentFactor.toFixed(1) + " (based on an initial factor of " + initialFactor.toFixed(1) + " at age " + ageAtFirstRMDYear + ").";
output += "You have
" + yearsRemaining + " years remaining to distribute the full balance.";
if (yearsSinceDeath === 10) {
output += "Important: For the 10th year, the entire remaining account balance must be distributed by December 31st.";
}
}
resultDiv.innerHTML = output;
}