Retirement Savings Calculator

Visualize the power of compound interest and map out your financial future.

Current Age
Retirement Age
Current Savings $
Monthly Contribution $
Expected Annual Return %
⚠️ Retirement age must be greater than your current age.
Projected Nest Egg
$0
At Age 65
$0 Total Contributions
(Principal + Monthly)
$0 Total Interest
Earned
Portfolio Balance
Age

The Magic of Compound Interest

Albert Einstein is reputed to have called compound interest the "eighth wonder of the world," and for good reason. It is the core mechanism behind building wealth for retirement.

  • How it works: Compound interest is the interest you earn on both your original money and on the interest you keep accumulating. Over decades, this creates an exponential snowball effect.
  • Time is your best asset: Because the growth is exponential, starting to save at age 25 rather than 35 can drastically increase your final nest egg, even if you contribute less money overall!
  • Expected Return: Historically, the stock market (e.g., S&P 500) has returned an average of 10% per year. However, inflation reduces purchasing power by about 2-3% per year. Using an "inflation-adjusted" return of 6% to 7% gives you a better idea of what your money will actually be worth in today's dollars.
/* --- TABS --- */ .tab-container { display: flex; background: #e2e8f0; border-bottom: 3px solid var(--run-main); } .tab-btn { flex: 1; padding: 18px; font-family: 'Nunito'; font-weight: 900; font-size: 16px; text-transform: uppercase; letter-spacing: 1px; border: none; background: transparent; color: #64748b; cursor: pointer; transition: 0.2s; outline: none; } .tab-btn.active { background: var(--run-main); color: white; } .tab-btn:not(.active):hover { background: #cbd5e1; color: var(--ink); } .tab-content { display: none; } .tab-content.active { display: block; } /* --- INPUT FORM STYLES --- */ .input-pane { padding: 30px; background: var(--run-pale); border-bottom: 2px solid var(--run-main); } .form-row { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 20px; justify-content: center; } .input-group { display: flex; flex-direction: column; text-align: left; flex: 1; min-width: 120px; } .input-label { font-family: 'Nunito'; font-weight: 800; font-size: 13px; text-transform: uppercase; color: var(--run-main); margin-bottom: 5px; } .calc-input, .calc-select { padding: 12px 15px; border: 2px solid #cbd5e1; border-radius: 10px; font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 18px; color: var(--ink); outline: none; transition: 0.2s; background: white; width: 100%; text-align: center; } .calc-select { text-align: left; cursor: pointer; } .calc-input:focus, .calc-select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.2); } .time-inputs { display: flex; gap: 10px; } .time-col { display: flex; flex-direction: column; flex: 1; text-align: center; } .time-label { font-family: 'Nunito'; font-size: 11px; font-weight: 800; color: #64748b; text-transform: uppercase; margin-top: 4px; } /* --- RESULTS AREA --- */ .results-bar { padding: 30px; background: white; color: var(--ink); text-align: center; } .res-main-box { background: #f8fafc; padding: 25px 20px; border-radius: 20px; border: 2px dashed #cbd5e1; margin-bottom: 20px;} .res-number-title { font-family: 'Nunito'; font-weight: 800; font-size: 14px; text-transform: uppercase; color: #64748b; margin-bottom: 5px; letter-spacing: 1px; } .res-massive-val { font-family: 'Boogaloo', cursive; font-size: 54px; color: var(--run-main); line-height: 1.1; margin-bottom: 5px; text-shadow: 2px 2px 0px rgba(0,0,0,0.05); transition: color 0.3s ease; } .res-unit { font-family: 'Nunito'; font-weight: 800; font-size: 18px; color: var(--accent); } .stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 15px; } .stat-block { display: flex; flex-direction: column; align-items: center; background: white; padding: 15px; border-radius: 16px; border: 1px solid #e2e8f0; box-shadow: 0 4px 6px rgba(0,0,0,0.02); } .stat-val { font-family: 'Boogaloo', cursive; font-size: 28px; color: var(--ink); line-height: 1; } .stat-name { font-family: 'Nunito'; font-weight: 800; font-size: 12px; color: #64748b; text-transform: uppercase; margin-top: 5px; } /* --- INFO CARD --- */ .info-card { margin: 0 auto 30px auto; width: 100%; padding: 30px; background: #fff; border: 2px solid #e2e8f0; border-radius: 20px; } .info-card h2 { font-family: 'Boogaloo', cursive; font-size: 28px; color: var(--run-main); margin-top: 0; } .info-card p, .info-card li { font-family: 'Nunito', sans-serif; color: #475569; line-height: 1.6; font-size: 15px; } /* --- BUTTONS --- */ .btn-3d { display: inline-flex; align-items: center; justify-content: center; padding: 0 45px; min-height: 60px; font-family: 'Nunito', sans-serif; font-weight: 900; font-size: 20px; text-transform: uppercase; letter-spacing: 1px; border-radius: 16px; cursor: pointer; border: none; transition: all 0.1s ease; color: white; margin-bottom: 20px;} .btn-run { background: var(--run-main); box-shadow: 0 6px 0 #172554; } .btn-run:active { transform: translateY(4px); box-shadow: 0 2px 0 #172554; } .btn-blue { background: var(--sky); box-shadow: 0 6px 0 #125594; } .btn-blue:active { transform: translateY(4px); box-shadow: 0 2px 0 #125594; } .share-container { background: white; border: 2px dashed var(--border); border-radius: 16px; padding: 25px; text-align: center; margin: 40px auto; width: 100%; } .share-group { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 15px; } .btn-share { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 14px; padding: 12px 24px; border-radius: 50px; border: none; cursor: pointer; color: white; text-transform: uppercase; } .btn-x { background: #0f172a; } .btn-fb { background: #1877f2; } .btn-copy-link { background: #8b5cf6; }

Running Pace & Race Predictor

Calculate your running pace or predict your finish times for upcoming races based on your current fitness.

Distance
Unit
Total Time
Hrs
Min
Sec
Average Pace
08:02
min / mi
05:00 Pace (min/km)
7.46 Speed (mph)
12.00 Speed (km/h)
Recent Race Distance
Finish Time
Hrs
Min
Sec
Predicted Race Times
00:25:00 5K
00:52:05 10K
01:55:18 Half Marathon
03:59:52 Full Marathon

The Runner's Math

Whether you're aiming for a personal best or just tracking a training run, understanding the math behind running is key to hitting your goals.

  • Pace vs. Speed: Speed is how far you travel in an hour (mph or km/h). Pace is the metric runners prefer: how many minutes it takes to complete exactly one mile or one kilometer.
  • The Riegel Formula: The Race Predictor uses a formula created by research engineer Peter Riegel in 1977. It states that a runner's time ($T$) for a new distance ($D$) relates to a recent performance via the equation: $T_2 = T_1 \times (D_2 / D_1)^{1.06}$.
  • Predictor Limits: Riegel's formula assumes you have trained adequately for the target distance. A great 5K time will only predict a great marathon time if you have actually done the long runs required to survive 26.2 miles!