PageSourceSearch

https://onlinecalculators.online/assets/RetirementCalculatorSmartAsset-CufZyotC.js

js onlinecalculators.online collected 2026-10-08 23:51:17 UTC 17,290 bytes, 1 lines download raw bytes

1import{r,j as e}from"./react-core-SaLnwSRd.js";import{e as q}from"./index-CRJ-gAjQ.js";import{T as G}from"./trending-up-BUDaAYqy.js";import{M as X}from"./map-pin-CRZkeOO-.js";const o={FL:{name:"Florida",incomeTaxRate:0,costOfLivingIdx:101.5,retirementFriendly:"Very High (0% Income Tax)"},TX:{name:"Texas",incomeTaxRate:0,costOfLivingIdx:93,retirementFriendly:"High (0% Income Tax, High Property)"},CA:{name:"California",incomeTaxRate:9.3,costOfLivingIdx:138.5,retirementFriendly:"Low (High State Tax & Housing)"},NY:{name:"New York",incomeTaxRate:6.85,costOfLivingIdx:134,retirementFriendly:"Moderate (Pensions exempt up to $20k)"},NV:{name:"Nevada",incomeTaxRate:0,costOfLivingIdx:104,retirementFriendly:"Very High (0% Tax on SS & 401k)"},NC:{name:"North Carolina",incomeTaxRate:4.5,costOfLivingIdx:95.7,retirementFriendly:"High (No tax on SS, low flat tax)"},PA:{name:"Pennsylvania",incomeTaxRate:3.07,costOfLivingIdx:99,retirementFriendly:"Very High (0% Tax on Retirement Income)"},TN:{name:"Tennessee",incomeTaxRate:0,costOfLivingIdx:90.4,retirementFriendly:"Very High (0% Income Tax, Low CoL)"},AZ:{name:"Arizona",incomeTaxRate:2.5,costOfLivingIdx:103.2,retirementFriendly:"High (2.5% Flat tax, no SS tax)"},IL:{name:"Illinois",incomeTaxRate:4.95,costOfLivingIdx:92,retirementFriendly:"High (All Retirement Income Exempt)"}},ee=({theme:_})=>{const[s,I]=r.useState(38),[x,C]=r.useState(67),[c,M]=r.useState(95e3),[m,F]=r.useState(14e4),[b,L]=r.useState(950),[h,P]=r.useState("FL"),[p,E]=r.useState(80),[g,O]=r.useState(7.5),[N,z]=r.useState(2.8),[y,W]=r.useState(90),[i,f]=r.useState("readiness"),d=o[h]||o.FL,a=r.useMemo(()=>{const t=Math.max(1,x-s),D=Math.max(1,y-x),v=c*Math.pow(1+N/100,t),k=v*(p/100),H=k*(d.incomeTaxRate/100),j=k+H,$=g/100/12,Y=t*12;let u=m;for(let A=1;A<=Y;A++)u=u*(1+$)+b;const w=j/.04,B=Math.min(100,Math.round(u/w*100)),S=u*.04/12,R=j/12,U=S-R;let l=1;s>=67?l=10:s>=60?l=8:s>=50?l=6:s>=40?l=3:s>=35?l=2:s>=30?l=1:l=.5;const T=c*l,V=Math.min(150,Math.round(m/T*100));return{yearsToRetire:t,retirementYears:D,futureSalaryAtRetirement:v,totalRequiredSpending:j,targetNestEggNeeded:w,nestEggAtRetirement:u,readinessScore:B,estimatedMonthlyDrawdown:S,targetMonthlyNeeded:R,monthlySurplusDeficit:U,recommendedMultiple:l,recommendedSavingsAtCurrentAge:T,milestoneProgressPercent:V}},[s,x,c,m,b,h,p,g,N,y,d]),n=t=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(t);return e.jsxs("div",{className:"w-full max-w-5xl mx-auto space-y-8",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-semibold bg-emerald-500/10 text-emerald-700 dark:text-emerald-300 border border-emerald-500/20",children:[e.jsx(q,{className:"w-3.5 h-3.5"}),"SmartAsset 50-State Benchmark Engine"]}),e.jsx("h1",{className:"text-3xl sm:text-4xl font-extrabold text-neutral-900 dark:text-neutral-50 tracking-tight",children:"SmartAsset Retirement Calculator & Benchmark 2027"}
1),e.jsx("p",{className:"text-base text-neutral-600 dark:text-neutral-400 max-w-3xl",children:"Evaluate your retirement readiness with state-by-state tax impact, regional cost-of-living indices, Fidelity age savings milestones, and 4% rule safe withdrawal modeling."})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-8",children:[e.jsx("div",{className:"lg:col-span-6 space-y-6",children:e.jsxs("div",{className:"p-6 rounded-2xl bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 shadow-xs space-y-5",children:[e.jsxs("h2",{className:"text-lg font-bold text-neutral-900 dark:text-neutral-100 flex items-center gap-2",children:[e.jsx(G,{className:"w-5 h-5 text-emerald-600 dark:text-emerald-400"}),"Retirement Plan Parameters"]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-xs font-semibold text-neutral-700 dark:text-neutral-300",children:"Current Age"}),e.jsx("input",{type:"number",min:18,max:75,value:s,onChange:t=>I(Number(t.target.value)),className:"w-full px-3 py-2 text-sm rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-xs font-semibold text-neutral-700 dark:text-neutral-300",children:"Target Retirement Age"}),e.jsx("input",{type:"number",min:50,max:80,value:x,onChange:t=>C(Number(t.target.value)),className:"w-full px-3 py-2 text-sm rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex justify-between items-center text-xs",children:[e.jsx("label",{className:"font-semibold text-neutral-700 dark:text-neutral-300",children:"Current Annual Gross Income"}),e.jsx("span",{className:"font-mono text-neutral-900 dark:text-neutral-100 font-bold",children:n(c)})]}),e.jsx("input",{type:"range",min:3e4,max:3e5,step:2500,value:c,onChange:t=>M(Number(t.target.value)),className:"w-full h-2 bg-neutral-200 dark:bg-neutral-800 rounded-lg appearance-none cursor-pointer accent-emerald-600"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-xs font-semibold text-neutral-700 dark:text-neutral-300",children:"Current Retirement Savings"}),e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"absolute left-3 top-2 text-xs text-neutral-500",children:"$"}),e.jsx("input",{type:"number",min:0,max:5e6,step:5e3,value:m,onChange:t=>F(Number(t.target.value)),className:"w-full pl-7 pr-3 py-1.5 text-sm rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-xs font-semibold text-neutral-700 dark:text-neutral-300",children:"Monthly Savings Addition"}),e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"absolute left-3 top-2 text-xs text-neutral-500",children:"$"}),e.jsx("input",{type:"number",min:0,max:15e3,step:50,value:b,onChange:t=>L(Number(t.target.value)),className:"w-full pl-7 pr-3 py-1.5 text-sm rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("label",{className:"text-xs font-semibold text-neutral-700 dark:text-neutral-300 flex items-center gap-1.5",children:[e.jsx(X,{className:"w-3.5 h-3.5 text-emerald-600"}),"Retirement Destination State"]}),e.jsx("select",{value:h,onChange:t=>P(t.target.value),className:"w-full px-3 py-2 text-sm rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100",children:Object.keys(o).map(t=>e.jsxs("option",{value:t,children:[o[t].name," (",o[t].incomeTaxRate,"% Tax, CoL Index: ",o[t].costOfLivingIdx,")"]},t))})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 pt-2 border-t border-neutral-100 dar
1k:border-neutral-800",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs font-semibold text-neutral-700 dark:text-neutral-300",children:"Income Replacement %"}),e.jsx("input",{type:"number",min:50,max:120,value:p,onChange:t=>E(Number(t.target.value)),className:"w-full px-3 py-1.5 text-sm rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs font-semibold text-neutral-700 dark:text-neutral-300",children:"Expected Return %"}),e.jsx("input",{type:"number",step:.1,min:3,max:12,value:g,onChange:t=>O(Number(t.target.value)),className:"w-full px-3 py-1.5 text-sm rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100"})]})]})]})}),e.jsxs("div",{className:"lg:col-span-6 space-y-6",children:[e.jsxs("div",{className:"p-6 rounded-2xl bg-gradient-to-br from-emerald-600 to-teal-700 text-white shadow-lg space-y-4",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-xs uppercase font-bold tracking-wider text-emerald-100",children:"SmartAsset Readiness Index"}),e.jsxs("span",{className:"px-2.5 py-0.5 rounded-full text-xs font-bold bg-white/20 text-white",children:[a.readinessScore,"% Funded"]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-4xl font-extrabold tracking-tight",children:n(a.nestEggAtRetirement)}),e.jsxs("p",{className:"text-xs text-emerald-100 mt-1",children:["Projected nest egg at age ",x," (Target: ",n(a.targetNestEggNeeded),")"]})]}),e.jsx("div",{className:"w-full bg-white/20 rounded-full h-3",children:e.jsx("div",{className:"bg-white h-3 rounded-full transition-all duration-500",style:{width:`${Math.min(100,a.readinessScore)}%`}})}),e.jsxs("div",{className:"grid grid-cols-2 gap-3 pt-2 text-center text-xs",children:[e.jsxs("div",{className:"p-2.5 rounded-xl bg-white/10",children:[e.jsx("span",{className:"text-emerald-100 text-[10px] block",children:"Monthly Drawdown"}),e.jsxs("span",{className:"font-bold text-sm",children:[n(a.estimatedMonthlyDrawdown),"/mo"]})]}),e.jsxs("div",{className:"p-2.5 rounded-xl bg-white/10",children:[e.jsx("span",{className:"text-emerald-100 text-[10px] block",children:"Target Needed"}),e.jsxs("span",{className:"font-bold text-sm",children:[n(a.targetMonthlyNeeded),"/mo"]})]})]})]}),e.jsxs("div",{className:"flex border-b border-neutral-200 dark:border-neutral-800 text-xs font-semibold",children:[e.jsx("button",{onClick:()=>f("readiness"),className:`pb-2.5 px-3 border-b-2 transition-all ${i==="readiness"?"border-emerald-600 text-emerald-600 dark:text-emerald-400 font-bold":"border-transparent text-neutral-600 dar
1k:text-neutral-400 hover:text-neutral-900"}`,children:"Readiness Score"}),e.jsx("button",{onClick:()=>f("milestones"),className:`pb-2.5 px-3 border-b-2 transition-all ${i==="milestones"?"border-emerald-600 text-emerald-600 dark:text-emerald-400 font-bold":"border-transparent text-neutral-600 dark:text-neutral-400 hover:text-neutral-900"}`,children:"Fidelity Milestones"}),e.jsx("button",{onClick:()=>f("states"),className:`pb-2.5 px-3 border-b-2 transition-all ${i==="states"?"border-emerald-600 text-emerald-600 dark:text-emerald-400 font-bold":"border-transparent text-neutral-600 dark:text-neutral-400 hover:text-neutral-900"}`,children:"State Tax Impact"})]}),i==="readiness"&&e.jsxs("div",{className:"p-6 rounded-2xl bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 shadow-xs space-y-4",children:[e.jsx("h3",{className:"font-semibold text-neutral-900 dark:text-neutral-100 text-sm",children:"Retirement Gap Analysis"}),e.jsxs("div",{className:"space-y-2 text-xs",children:[e.jsxs("div",{className:"flex justify-between py-1.5 border-b border-neutral-100 dark:border-neutral-800",children:[e.jsx("span",{className:"text-neutral-600 dar
1k:text-neutral-400",children:"Monthly Surplus / (Shortfall)"}),e.jsx("span",{className:`font-mono font-bold ${a.monthlySurplusDeficit>=0?"text-emerald-600":"text-red-600"}`,children:a.monthlySurplusDeficit>=0?`+${n(a.monthlySurplusDeficit)}/mo`:`-${n(Math.abs(a.monthlySurplusDeficit))}/mo`})]}),e.jsxs("div",{className:"flex justify-between py-1.5 border-b border-neutral-100 dark:border-neutral-800",children:[e.jsx("span",{className:"text-neutral-600 dark:text-neutral-400",children:"Years Until Retirement"}),e.jsxs("span",{className:"font-mono font-bold text-neutral-900 dark:text-neutral-100",children:[a.yearsToRetire," Years"]})]}),e.jsxs("div",{className:"flex justify-between py-1.5 border-b border-neutral-100 dark:border-neutral-800",children:[e.jsx("span",{className:"text-neutral-600 dark:text-neutral-400",children:"Projected Retirement Span"}),e.jsxs("span",{className:"font-mono font-bold text-neutral-900 dark:text-neutral-100",children:[a.retirementYears," Years"]})]}),e.jsxs("div",{className:"flex justify-between py-1.5",children:[e.jsxs("span",{className:"text-neutral-600 dar
1k:text-neutral-400",children:["Annual Target Spending in ",d.name]}),e.jsxs("span",{className:"font-mono font-bold text-neutral-900 dark:text-neutral-100",children:[n(a.totalRequiredSpending),"/yr"]})]})]})]}),i==="milestones"&&e.jsxs("div",{className:"p-6 rounded-2xl bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 shadow-xs space-y-4",children:[e.jsxs("h3",{className:"font-semibold text-neutral-900 dark:text-neutral-100 text-sm",children:["Fidelity Age-Based Benchmark at Age ",s]}),e.jsxs("p",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:["Fidelity recommends having ",e.jsxs("strong",{children:[a.recommendedMultiple,"x"]})," your current salary saved by age ",s," (",n(a.recommendedSavingsAtCurrentAge),")."]}),e.jsxs("div",{className:"space-y-2 text-xs",children:[e.jsxs("div",{className:"flex justify-between py-1 border-b border-neutral-100 dark:border-neutral-800",children:[e.jsx("span",{children:"Your Actual Savings"}),e.jsx("span",{className:"font-bold text-neutral-900 dark:text-neutral-100",children:n(m)})]}),e.jsxs("div",{className:"flex justify-between py-1 border-b border-neutral-100 dark:border-neutral-800",children:[e.jsx("span",{children:"Milestone Target"}),e.jsx("span",{className:"font-bold text-neutral-900 dark:text-neutral-100",children:n(a.recommendedSavingsAtCurrentAge)})]}),e.jsxs("div",{className:"flex justify-between py-1 font-bold",children:[e.jsx("span",{children:"Benchmark Status"}),e.jsxs("span",{className:a.milestoneProgressPercent>=100?"text-emerald-600":"text-amber-600",children:[a.milestoneProgressPercent,"% of Milestone"]})]})]})]}),i==="states"&&e.jsxs("div",{className:"p-6 rounded-2xl bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 shadow-xs space-y-4",children:[e.jsxs("h3",{className:"font-semibold text-neutral-900 dark:text-neutral-100 text-sm",children:[d.name," Tax & Cost-of-Living Profile"]}),e.jsxs("div",{className:"space-y-2 text-xs",children:[e.jsxs("div",{className:"flex justify-between py-1 border-b border-neutral-100 dark:border-neutral-800",children:[e.jsx("span",{children:"State Income Tax Rate"}),e.jsxs("span",{className:"font-bold text-neutral-900 dark:text-neutral-100",children:[d.incomeTaxRate,"%"]})]}),e.jsxs("div",{className:"flex justify-between py-1 border-b border-neutral-100 dark:border-neutral-800",children:[e.jsx("span",{children:"Cost of Living Index (US Avg = 100)"}),e.jsx("span",{className:"font-bold text-neutral-900 dark:text-neutral-100",children:d.costOfLivingIdx})]}),e.jsxs("div",{className:"flex justify-between py-1 font-bold",children:[e.jsx("span",{children:"Retirement Friendliness Rating"}),e.jsx("span",{className:"text-emerald-600 dark:text-emerald-400",children:d.retirementFriendly})]})]})]})]})]}),e.jsxs("div",{className:"mt-12 p-8 rounded-2xl bg-neutral-50 dark:bg-neutral-900/60 border border-neutral-200 dark:border-neutral-800 space-y-6",children:[e.jsx("h2",{className:"text-2xl font-bold text-neutral-900 dark:text-neutral-50",children:"SmartAsset Retirement Methodology & Benchmarks"}
1),e.jsx("p",{className:"text-sm text-neutral-600 dark:text-neutral-400 leading-relaxed",children:"The SmartAsset retirement methodology evaluates financial independence across three pillars: your accumulated capital growth trajectory, inflation-adjusted cost-of-living by state, and state-level tax treatment of retirement distributions."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 pt-4",children:[e.jsxs("div",{className:"p-4 rounded-xl bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 space-y-2",children:[e.jsx("h3",{className:"font-semibold text-sm text-neutral-900 dark:text-neutral-100",children:"1. 80% Rule of Thumb"}),e.jsx("p",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:"Most retirees require 70% to 85% of their pre-retirement annual income to sustain their standard of living comfortably."})]}),e.jsxs("div",{className:"p-4 rounded-xl bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 space-y-2",children:[e.jsx("h3",{className:"font-semibold text-sm text-neutral-900 dark:text-neutral-100",children:"2. Fidelity Milestones"}
1),e.jsx("p",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:"Target saving 1x your income by 30, 3x by 40, 6x by 50, 8x by 60, and 10x by age 67."})]}),e.jsxs("div",{className:"p-4 rounded-xl bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 space-y-2",children:[e.jsx("h3",{className:"font-semibold text-sm text-neutral-900 dark:text-neutral-100",children:"3. Safe Withdrawal Rate"}),e.jsx("p",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:"A 4% initial annual withdrawal rate adjusted annually for inflation has a 95%+ historical 30-year survival probability."})]})]})]})]})};export{ee as RetirementCalculatorSmartAsset};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.