1import{r as s,j as e}from"./index-j7I9Tmll.js";import{a as b,C as g,F as a,N as j,T as N,D as P,f as m,n as S}from"./ui-BrtddqY1.js";/* empty css */function R(){const[u,p]=s.useState("5000"),[o,x]=s.useState("30"),[r,h]=s.useState("10"),[i,y]=s.useState("0"),[n,d]=s.useState("40"),[l,f]=s.useState("6"),{result:t,error:c}=s.useMemo(()=>b(()=>S({monthly:Number(u),ageNow:Number(o),retireAge:60,returnPct:Number(r),stepUpPct:Number(i),annuityPct:Number(n),annuityRatePct:Number(l)})),[u,o,r,i,n,l]);return e.jsxs(g,{slug:"nps-calculator",children:[e.jsxs("div",{className:"calc-layout",children:[e.jsxs("section",{className:"calc-inputs","aria-label":"NPS details",children:[e.jsx(a,{label:"Monthly contribution",prefix:"â¹",value:u,onChange:p,min:500,max:2e5,step:500}),e.jsx(a,{label:"Your age now",suffix:"years",value:o,onChange:x,min:18,max:59,hint:"Assumes you exit at 60."}),e.jsx(a,{label:"Expected return",suffix:"% p.a.",value:r,onChange:h,min:4,max:14,step:.5,hint:"Depends on your equity/debt mix and isn't guaranteed; try a few values."}),e.jsx(a,{label:"Yearly step-up",suffix:"%",value:i,onChange:y,min:0,max:20}),e.jsx(a,{label:"Share used for annuity (pension)",suffix:"%",value:n,onChange:d,min:0,max:100,step:5,hint:`At least ${j.minAnnuityPct}% for non-government subscribers, or none if the corpus is â¹8 lakh or less.`}),e.jsx(a,{label:"Annuity rate",suffix:"% p.a.",value:l,onChange:f,min:3,max:9,step:.1,hint:"The yearly rate your annuity provider quotes."})]}),e.jsx("section",{className:"calc-results","aria-live":"polite",children:c?e.jsx("p",{className:"calc-error",children:c}):e.jsxs(e.Fragment,{children:[e.jsx(N,{items:[["Corpus at 60",t.corpus,!0],["Monthly pension",t.monthlyPension],["Lump sum at 60",t.lumpSum],["You invest",t.invested]]}),t.annuityPct>Number(n)&&e.jsxs("p",{className:"calc-note",children:["Your corpus is over â¹8 lakh, so at least ",t.minAnnuityPct,"% must go into an annuity; the figures use ",t.annuityPct,"%."]}),e.jsx(P,{parts:[["Lump sum",t.lumpSum],["Annuity",t.annuity]]}),e.jsxs("p",{className:"calc-note",children:["Of the lump sum, ",m(t.taxFreeLumpSum)," is tax-free (up to 60% of the corpus)",t.taxableLumpSum>0?e.jsxs(e.Fragment,{children:[" and ",e.jsx("strong",{children:m(t.taxableLumpSum)})," is taxed as income"]}):"",". The monthly pension is taxed as income."]})]})})]}),e.jsxs("section",{className:"calc-info",children:[e.jsx("h2",{children:"NPS exit rules this uses"}),e.jsx("p",{children:"Since PFRDA's 2025 exit amendment, non-government subscribers leaving at 60 must put at least 20% of the corpus into an annuity and can take up to 80% as a lump sum. If the whole corpus is â¹8 lakh or less, it can all be taken as a lump sum."}),e.jsx("p",{children:"Income tax still treats only 60% of the corpus as a tax-free lump sum, so taking more than that adds to your taxable income. Contributions are invested monthly and grow at the expected return you choose."})]})]})}export{R as default};
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.