PageSourceSearch

https://kerneltools.dev/assets/TaxRegimeCalculator-BgIs570r.js

js kerneltools.dev collected 2026-10-02 01:53:56 UTC 9,019 bytes, 1 lines download raw bytes

1import{r as a,j as e,L}from"./index-j7I9Tmll.js";import{c as ie,O as c}from"./regimeCalculator-CG5Fj9iV.js";import{h as le}from"./hraEngine-hgIj4SaJ.js";import{f as E}from"./registry-XLiwWW6U.js";import{C as re,b as g,F as i,f as n,L as oe}from"./ui-BrtddqY1.js";import"./taxEngine-DGwtmO0V.js";/* empty css                    */const M=["2027-28","2026-27"],ce={regular:30,senior:65,superSenior:85},de=["Mumbai","Delhi","Chennai","Kolkata","Bengaluru","Hyderabad","Pune","Ahmedabad"],Y={actualHra:"HRA you received",rentOverTenPercent:"rent paid minus 10% of basic + DA",salaryPercent:"the % of basic + DA for your city"},m=l=>`Max ${n(l)}`;function O({name:l,data:t,best:r,scale:b}){return e.jsxs("article",{className:`calc-regime${r?" is-best":""}`,children:[e.jsxs("header",{children:[e.jsx("h3",{children:l}),r&&e.jsx("span",{className:"calc-badge",children:"✓ Pays less"})]}),e.jsx("strong",{children:n(t.totalTax)}),e.jsx("i",{className:"calc-regime-bar",style:{width:`${t.totalTax/(b||1)*100}%`},"aria-hidden":"true"}),e.jsxs("small",{children:["total tax · about ",n(t.totalTax/12)," a month"]}),e.jsxs("dl",{children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Taxable income"}),e.jsx("dd",{children:n(t.taxableIncome)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Tax on slabs"}),e.jsx("dd",{children:n(t.slabTax)})]}),t.rebate>0&&e.jsxs("div",{children:[e.jsx("dt",{children:"Rebate (87A)"}),e.jsxs("dd",{children:["− ",n(t.rebate)]})]}),t.surcharge>0&&e.jsxs("div",{children:[e.jsx("dt",{children:"Surcharge"}),e.jsx("dd",{children:n(t.surcharge)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Health & education cess"}),e.jsx("dd",{children:n(t.cess)})]})]})]})}function be(){const[l,t]=a.useState(M[0]),[r,b]=a.useState("regular"),[x,k]=a.useState("1500000"),[f,$]=a.useState("750000"),[y,G]=a.useState("0"),[u,_]=a.useState("yes"),[v,K]=a.useState("300000"),[S,U]=a.useState("25000"),[C,W]=a.useState("Bengaluru"),[N,q]=a.useState("150000"),[T,z]=a.useState("25000"),[w,J]=a.useState("0"),[A,Q]=a.useState("no"),[H,V]=a.useState("0"),[R,X]=a.useState("0"),[P,Z]=a.useState("2500"),[D,ee]=a.useState("0"),se=le(l),ae=a.useMemo(()=>ie({ay:l,age:ce[r],grossSalary:x,basicPlusDa:f,savingsInterest:y,hra:u==="yes"?{hraReceived:v,rentPaid:Number(S)*12,city:C}:null,professionalTax:P,section80C:N,selfHealthPremium:T,parentHealthPremium:w,parentIsSenior:A==="yes",section80CCD1B:H,homeLoanInterest:R,npsEmployerContribution:D}),[l,r,x,f,y,u,v,S,C,P,N,T,w,A,H,R,D]),{newRegime:d,oldRegime:h,hra:o,recommended:I,savings:p,breakEven:F}=ae;return e.jsxs(re,{slug:"old-vs-new-tax-regime-calculator",children:[e.jsxs("div",{className:"calc-layout",children:[e.jsxs("section",{className:"calc-inputs","aria-label":"Your income and deductions",children:[e.jsx(g,{label:"Financial year",value:l,onChange:t,options:M.map(s=>[s,`FY ${E(s)}`])}),e.jsx(g,{label:"Your age",value:r,onChange:b,options:[["regular","Below 60"],["senior","60–79"],["superSenior","80+"]]}),e.jsx("h3",{className:"calc-group",children:"Income (yearly)"}),e.jsx(i,{label:"Gross salary",prefix:"₹",value:x,onChange:k,min:0,max:1e7,step:1e4,hint:"Total salary before any exemption, as on your Form 16 / payslips × 12."}),e.jsx(i,{label:"Basic + DA",prefix:"₹",value:f,onChange:$,min:0,max:5e6,step:1e4,slider:!1,hint:"Needed for HRA and employer NPS."}),e.jsx(i,{label:"Savings account interest",prefix:"₹",value:y,onChange:G,min:0,max:5e5,slider:!1,hint:r==="regular"?"Deduction up to ₹10,000 (80TTA) in the old regime.":"Include FD interest too: up to ₹50,000 is deductible (80TTB) in the old regime."}),e.jsx("h3",{className:"calc-group",children:"House rent (HRA)"}),e.jsx(g,{label:"Do you get HRA and pay rent?",value:u,onChange:_,options:[["yes","Yes"],["no","No"]]}),u==="yes"&&e.jsxs(e.Fragment,{children:[e.jsx(i,{label:"HRA received (yearly)",prefix:"₹",value:v,onChange:K,min:0,max:3e6,slider:!1}),e.jsx(i,{label:"Rent paid per month",prefix:"₹",value:S,onChange:U,min:0,max:5e5,step:500,slider:!1}),e.jsxs("div",{className:"calc-field",children:[e.jsx("label",{htmlFor:"calc-city",children:"City you live in"}),e.jsxs("select",{id:"calc-city",className:"calc-select",value:C,onChange:s=>W(s.target.value),children:[de.map(s=>e.jsxs("option",{value:s,children:[s," (",se.includes(s)?"50%":"40%",")"]}
1,s)),e.jsx("option",{value:"Other",children:"Other city (40%)"})]}),l==="2027-28"&&e.jsx("small",{className:"calc-hint",children:"From FY 2026-27, Bengaluru, Hyderabad, Pune and Ahmedabad get the 50% metro rate too."})]})]}),e.jsx("h3",{className:"calc-group",children:"Deductions (old regime only)"}),e.jsx(i,{label:"80C investments",prefix:"₹",value:N,onChange:q,min:0,max:1e6,slider:!1,hint:`${m(c.section80C)} — EPF, PPF, ELSS, life insurance, tuition fees, home-loan principal.`}),e.jsx(i,{label:"Health insurance, self & family",prefix:"₹",value:T,onChange:z,min:0,max:5e5,slider:!1,hint:`80D · ${m(r==="regular"?c.section80D.self.regular:c.section80D.self.senior)}`}),e.jsx(i,{label:"Health insurance, parents",prefix:"₹",value:w,onChange:J,min:0,max:5e5,slider:!1}),e.jsx(g,{label:"Is a parent 60 or older?",value:A,onChange:Q,options:[["no","No"],["yes","Yes"]]}),e.jsx(i,{label:"Own NPS contribution",prefix:"₹",value:H,onChange:V,min:0,max:5e5,slider:!1,hint:`80CCD(1B) · ${m(c.section80CCD1B)}, on top of 80C.`}),e.jsx(i,{label:"Home-loan interest (self-occupied)",prefix:"₹",value:R,onChange:X,min:0,max:2e6,slider:!1,hint:m(c.homeLoanInterest)}),e.jsx(i,{label:"Professional tax",prefix:"₹",value:P,onChange:Z,min:0,max:1e4,slider:!1,hint:m(c.professionalTax)}),e.jsx("h3",{className:"calc-group",children:"Allowed in both regimes"}),e.jsx(i,{label:"Employer's NPS contribution",prefix:"₹",value:D,onChange:ee,min:0,max:2e6,slider:!1,hint:"80CCD(2): up to 14% of basic + DA in the new regime, 10% in the old."})]}),e.jsxs("section",{className:"calc-results","aria-live":"polite",children:[e.jsxs("div",{className:"calc-result-heading",children:[e.jsx("span",{children:"Two regimes, one salary"}),e.jsxs("strong",{children:["FY ",E(l)," · ",n(Number(x))," gross"]})]}),e.jsx("div",{className:"calc-verdict",children:p===0?e.jsx("p",{children:"Both regimes cost the same. The new regime is simpler, with no proofs to submit."}):e.jsxs("p",{children:["The ",e.jsxs("strong",{children:[I==="new"?"new":"old"," regime"]})," saves you ",e.jsx("strong",{children:n(p)})," a year."]})}),e.jsxs("div",{className:"calc-regimes",children:[e.jsx(O,{name:"New regime",data:d,best:I==="new"&&p>0,scale:Math.max(d.totalTax,h.totalTax)}),e.jsx(O,{name:"Old regime",data:h,best:I==="old"&&p>0,scale:Math.max(d.totalTax,h.totalTax)})]}),F>0&&e.jsxs("p",{className:"calc-note",children:["For the old regime to cost no more than the new one, you'd need about ",e.jsx("strong",{children:n(F)})," more in old-regime deductions than you entered."]}),o&&e.jsxs("div",{className:"calc-hra",children:[e.jsxs("h3",{children:["Your HRA exemption: ",n(o.exempt)]}),e.jsxs("p",{children:[o.isMetro?"Metro city: 50% of basic + DA.":"Non-metro city: 40% of basic + DA."," The exemption is the lowest of these three:"]}),e.jsx(oe,{items:Object.entries(o.limits).map(([s,j])=>[Y[s][0].toUpperCase()+Y[s].slice(1),j,s]),binding:o.binding}),e.jsxs("p",{className:"calc-note",children:["The remaining ",n(o.taxableHra)," of HRA is taxed as salary. The new regime gives no HRA exemption. Need receipts? ",e.jsx(L,{to:"/rent-receipt-generator",children:"Make rent receipts"}),"."]})]})]})]}),e.jsxs("section",{className:"calc-schedule",children:[e.jsx("h2",{children:"What was deducted"}),e.jsx("div",{className:"calc-table-wrap",children:e.jsxs("table",{className:"calc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Deduction"}),e.jsx("th",{children:"New regime"}),e.jsx("th",{children:"Old regime"})]})}),e.jsx("tbody",{children:[...new Set([...d.deductions,...h.deductions].map(s=>s.label))].map(s=>{const j=ne=>{var B;return((B=ne.find(te=>te.label===s))==null?void 0:B.amount)||0};return e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:n(j(d.deductions))}),e.jsx("td",{children:n(j(h.deductions))})]},s)})})]})})]}),e.jsxs("section",{className:"calc-info",children:[e.jsx("h2",{children:"How this is worked out"}),e.jsxs("p",{children:["New regime (FY ",E(l),"): 0% up to ₹4 lakh, then 5% to 30% in ₹4 lakh steps, a ₹75,000 standard deduction, and no tax at all up to ₹12 lakh of taxable income (section 87A rebate, with marginal relief just above it). Most deductions aren't allowed, except the employer'
1s NPS contribution."]}),e.jsxs("p",{children:["Old regime: 5% / 20% / 30% slabs (higher exemption for 60+ and 80+), a ₹50,000 standard deduction, and the deductions above within their limits. Both add 4% cess, and surcharge above ₹50 lakh. The figures use the same tax engine as our ",e.jsx(L,{to:"/itr",children:"free ITR filing guide"}),", which also handles TDS, interest and capital gains."]})]})]})}export{be 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.