{"id":12249,"date":"2026-08-18T07:39:49","date_gmt":"2026-08-18T07:39:49","guid":{"rendered":"https:\/\/legendfusions.com\/uk\/?page_id=12249"},"modified":"2026-08-27T09:22:23","modified_gmt":"2026-08-27T09:22:23","slug":"uk-salary-tax-calculator","status":"publish","type":"page","link":"https:\/\/legendfusions.com\/uk\/uk-salary-tax-calculator\/","title":{"rendered":"Salary Tax Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12249\" class=\"elementor elementor-12249\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4f3e093 e-con-full e-flex e-con e-parent\" data-id=\"4f3e093\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0903100 elementor-widget elementor-widget-html\" data-id=\"0903100\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\r\nLegend Fusions \u2014 UK Salary Tax Calculator 2026\/27\r\nTax year: 6 April 2026 to 5 April 2027.\r\n-->\r\n<div class=\"lfukstc-app\" data-lfukstc-version=\"1.0.0\">\r\n<style>\r\n.lfukstc-app{\r\n  --lfukstc-primary:#123f67;--lfukstc-primary2:#0a6f8d;--lfukstc-accent:#e7b45a;\r\n  --lfukstc-text:#162433;--lfukstc-muted:#667483;--lfukstc-line:#d9e3ea;--lfukstc-soft:#f4f8fb;\r\n  --lfukstc-success:#16734c;--lfukstc-warn:#9a6513;--lfukstc-danger:#b42318;\r\n  width:100%;max-width:1180px;margin:24px auto;color:var(--lfukstc-text);\r\n  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;\r\n}\r\n.lfukstc-app *{box-sizing:border-box}\r\n.lfukstc-card{background:#fff;border:1px solid rgba(18,63,103,.12);border-radius:24px;box-shadow:0 20px 65px rgba(18,63,103,.12);overflow:hidden}\r\n.lfukstc-hero{position:relative;overflow:hidden;padding:34px 36px 30px;background:linear-gradient(125deg,var(--lfukstc-primary),var(--lfukstc-primary2));color:#fff}\r\n.lfukstc-hero:after{content:\"\u00a3\";position:absolute;right:28px;top:-42px;font-size:190px;line-height:1;font-weight:900;opacity:.065}\r\n.lfukstc-eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#d8eef5}\r\n.lfukstc-hero h2{color:#fff;margin:7px 0 9px;font-size:clamp(29px,4vw,48px);line-height:1.08}\r\n.lfukstc-hero p{max-width:800px;margin:0;color:#e4f0f5;line-height:1.65;font-size:15.5px}\r\n.lfukstc-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}\r\n.lfukstc-chip{font-size:12px;font-weight:750;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2)}\r\n.lfukstc-body{padding:30px 36px}\r\n.lfukstc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}\r\n.lfukstc-tab{border:1px solid var(--lfukstc-line);background:#fff;color:var(--lfukstc-text);border-radius:999px;padding:10px 16px;font-weight:800;cursor:pointer}\r\n.lfukstc-tab[aria-selected=\"true\"]{background:var(--lfukstc-primary);border-color:var(--lfukstc-primary);color:#fff}\r\n.lfukstc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}\r\n.lfukstc-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}\r\n.lfukstc-field{min-width:0}\r\n.lfukstc-field label,.lfukstc-label{display:block;font-size:13.5px;font-weight:800;margin-bottom:7px}\r\n.lfukstc-help{font-size:11.5px;color:var(--lfukstc-muted);font-weight:500}\r\n.lfukstc-control{width:100%;min-height:47px;padding:12px 13px;border:1px solid #c8d5df;border-radius:11px;background:#fff;color:var(--lfukstc-text);font-size:15.5px;outline:none}\r\n.lfukstc-control:focus{border-color:var(--lfukstc-primary2);box-shadow:0 0 0 4px rgba(10,111,141,.10)}\r\n.lfukstc-money{position:relative}.lfukstc-money:before{content:\"\u00a3\";position:absolute;left:13px;top:11px;font-weight:850;color:var(--lfukstc-primary);font-size:18px}.lfukstc-money input{padding-left:32px}\r\n.lfukstc-section{margin-top:22px;padding-top:22px;border-top:1px solid var(--lfukstc-line)}\r\n.lfukstc-section h3{font-size:18px;margin:0 0 6px}.lfukstc-section-intro{font-size:12.5px;color:var(--lfukstc-muted);margin:0 0 15px;line-height:1.55}\r\n.lfukstc-checkrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}\r\n.lfukstc-check{display:flex;gap:9px;align-items:flex-start;padding:12px 13px;border:1px solid var(--lfukstc-line);border-radius:11px;background:var(--lfukstc-soft);font-size:12.5px;line-height:1.45}\r\n.lfukstc-check input{margin-top:3px}\r\n.lfukstc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}\r\n.lfukstc-btn{border:0;border-radius:12px;padding:14px 18px;font-size:14.5px;font-weight:850;cursor:pointer}\r\n.lfukstc-btn-primary{flex:1;min-width:220px;background:linear-gradient(120deg,var(--lfukstc-primary),var(--lfukstc-primary2));color:#fff;box-shadow:0 9px 24px rgba(18,63,103,.18)}\r\n.lfukstc-btn-secondary{background:#eef4f7;color:var(--lfukstc-primary);border:1px solid #d7e2e8}\r\n.lfukstc-btn:focus{outline:3px solid rgba(10,111,141,.22);outline-offset:2px}\r\n.lfukstc-errors{display:none;margin:0 0 18px;padding:13px 14px;border-radius:10px;background:#fff2f0;border:1px solid #f3c7c1;color:var(--lfukstc-danger);font-size:13px;line-height:1.55}\r\n.lfukstc-errors.lfukstc-show{display:block}\r\n.lfukstc-results-shell{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s ease,opacity .25s ease}\r\n.lfukstc-results-shell.lfukstc-open{grid-template-rows:1fr;opacity:1}\r\n.lfukstc-results-inner{overflow:hidden}\r\n.lfukstc-results{border-top:1px solid var(--lfukstc-line);padding:30px 36px;background:#fbfcfd}\r\n.lfukstc-result-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}\r\n.lfukstc-result-head h3{font-size:24px;margin:0 0 4px}.lfukstc-result-head p{margin:0;font-size:13px;color:var(--lfukstc-muted)}\r\n.lfukstc-taxyear{background:#e8f5ef;color:var(--lfukstc-success);padding:7px 10px;border-radius:999px;font-size:11.5px;font-weight:850;white-space:nowrap}\r\n.lfukstc-paycards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}\r\n.lfukstc-paycard{padding:14px 12px;border:1px solid var(--lfukstc-line);border-radius:13px;background:#fff}\r\n.lfukstc-paycard small{display:block;color:var(--lfukstc-muted);font-weight:700;margin-bottom:4px;font-size:11.5px}.lfukstc-paycard strong{font-size:18px;color:var(--lfukstc-primary)}\r\n.lfukstc-paycard:first-child{background:linear-gradient(135deg,#eef8fb,#f8fbfd);border-color:#cfe3ea}\r\n.lfukstc-mainresult{padding:20px;border:1px solid #cfe3ea;border-radius:16px;background:linear-gradient(135deg,#eef8fb,#f8fbfd);margin:14px 0}\r\n.lfukstc-mainresult small{font-weight:800;color:var(--lfukstc-muted)}.lfukstc-mainresult strong{display:block;font-size:39px;line-height:1.1;color:var(--lfukstc-primary);margin-top:4px}\r\n.lfukstc-mainresult span{display:block;margin-top:6px;font-size:12.5px;color:var(--lfukstc-muted)}\r\n.lfukstc-bar{height:16px;border-radius:999px;overflow:hidden;display:flex;background:#e8eef2;margin:17px 0 8px}.lfukstc-bar>span{height:100%}\r\n.lfukstc-bar-net{background:#1d7d65}.lfukstc-bar-tax{background:#d3962f}.lfukstc-bar-ni{background:#64798e}.lfukstc-bar-pension{background:#7b67a8}.lfukstc-bar-loan{background:#ad6b86}.lfukstc-bar-other{background:#8a8e92}\r\n.lfukstc-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--lfukstc-muted)}.lfukstc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}\r\n.lfukstc-statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}\r\n.lfukstc-stat{background:#fff;border:1px solid var(--lfukstc-line);border-radius:12px;padding:12px}.lfukstc-stat small{display:block;color:var(--lfukstc-muted);font-size:11px;margin-bottom:4px}.lfukstc-stat strong{font-size:15px}\r\n.lfukstc-breakdown{border:1px solid var(--lfukstc-line);border-radius:14px;overflow:hidden;background:#fff}\r\n.lfukstc-row{display:flex;justify-content:space-between;gap:20px;padding:12px 14px;border-bottom:1px solid var(--lfukstc-line);font-size:13px}.lfukstc-row:last-child{border-bottom:0}.lfukstc-row span:first-child{color:var(--lfukstc-muted)}.lfukstc-row strong{font-variant-numeric:tabular-nums}\r\n.lfukstc-row-total{background:var(--lfukstc-soft);font-size:14px}\r\n.lfukstc-detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}\r\n.lfukstc-tablewrap{overflow:auto;border:1px solid var(--lfukstc-line);border-radius:14px;background:#fff}.lfukstc-table{width:100%;border-collapse:collapse;min-width:480px;font-size:12.5px}.lfukstc-table th,.lfukstc-table td{padding:10px 12px;border-bottom:1px solid var(--lfukstc-line);text-align:left}.lfukstc-table th{background:var(--lfukstc-soft);font-size:11.5px}.lfukstc-table tr:last-child td{border-bottom:0}\r\n.lfukstc-alerts{margin-top:16px}.lfukstc-alert{padding:12px 13px;border-radius:10px;margin-top:8px;font-size:12.5px;line-height:1.5;border:1px solid #ead7aa;background:#fff9e8;color:#785819}\r\n.lfukstc-compare{margin-top:20px;padding:18px;border:1px solid var(--lfukstc-line);border-radius:15px;background:#fff}.lfukstc-compare h4{margin:0 0 5px;font-size:17px}.lfukstc-compare p{font-size:12px;color:var(--lfukstc-muted);margin:0 0 14px}\r\n.lfukstc-compare-results{display:none;margin-top:14px}.lfukstc-compare-results.lfukstc-show{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.lfukstc-compare-result{padding:11px;border-radius:10px;background:var(--lfukstc-soft)}.lfukstc-compare-result small{display:block;color:var(--lfukstc-muted);font-size:10.5px}.lfukstc-compare-result strong{font-size:14px}\r\n.lfukstc-cta{margin-top:20px;padding:18px;border-radius:15px;background:linear-gradient(135deg,var(--lfukstc-primary),var(--lfukstc-primary2));color:#fff}.lfukstc-cta h4{margin:0 0 6px;color:#fff;font-size:18px}.lfukstc-cta p{margin:0;color:#e6f0f5;font-size:12.5px;line-height:1.55}\r\n.lfukstc-cta h4{font-size:clamp(26px,3.4vw,38px)!important;line-height:1.15;margin-bottom:10px!important}\r\n.lfukstc-phone-wrap{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;margin:14px 0 17px}\r\n.lfukstc-phone-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#fff;color:var(--lfukstc-primary);font-size:28px;line-height:1;position:relative;transform-origin:center}\r\n.lfukstc-phone-icon::before{content:\"\u260e\";display:block;animation:lfukstc-ring 1.5s ease-in-out infinite}\r\n.lfukstc-phone-icon::after{content:\"\";position:absolute;inset:-7px;border:2px solid rgba(255,255,255,.35);border-radius:50%;animation:lfukstc-pulse 1.5s ease-out infinite}\r\n@keyframes lfukstc-ring{\r\n  0%,100%{transform:rotate(0deg)}\r\n  10%{transform:rotate(16deg)}\r\n  20%{transform:rotate(-14deg)}\r\n  30%{transform:rotate(12deg)}\r\n  40%{transform:rotate(-10deg)}\r\n  50%{transform:rotate(8deg)}\r\n  60%{transform:rotate(-6deg)}\r\n  70%{transform:rotate(0deg)}\r\n}\r\n@keyframes lfukstc-pulse{\r\n  0%{transform:scale(.85);opacity:.65}\r\n  70%{transform:scale(1.25);opacity:0}\r\n  100%{transform:scale(1.25);opacity:0}\r\n}\r\n.lfukstc-home-link{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:3px}\r\n.lfukstc-home-link:hover{color:#fff;opacity:.9}\r\n@media(prefers-reduced-motion:reduce){\r\n  .lfukstc-phone-icon::before,.lfukstc-phone-icon::after{animation:none!important}\r\n}\r\n.lfukstc-cta-phone{display:inline-flex;align-items:center;justify-content:center;margin:14px 0 17px;padding:11px 18px;border-radius:12px;background:#fff;color:var(--lfukstc-primary);font-size:clamp(24px,4vw,36px);line-height:1;font-weight:900;text-decoration:none;letter-spacing:.01em}\r\n.lfukstc-cta-phone:hover{background:#f3f8fb;color:var(--lfukstc-primary)}\r\n.lfukstc-office-intro{margin-top:20px;margin-bottom:12px}\r\n.lfukstc-office-intro h5{margin:0 0 7px;color:#fff;font-size:clamp(20px,2.5vw,28px);line-height:1.2}\r\n.lfukstc-office-intro p{margin:0;color:#dcebf2;font-size:12.5px;line-height:1.6;max-width:900px}\r\n.lfukstc-advisers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:13px}\r\n.lfukstc-adviser{padding:13px;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(255,255,255,.08)}\r\n.lfukstc-adviser strong{display:block;color:#fff;font-size:14px;margin-bottom:3px}\r\n.lfukstc-adviser span{display:block;color:#dcebf2;font-size:11.5px;line-height:1.45}\r\n.lfukstc-adviser a{display:inline-block;margin-top:8px;color:#fff;font-size:12px;font-weight:800;text-decoration:underline;text-underline-offset:3px}\r\n.lfukstc-cta-foot{margin-top:12px!important;color:#dcebf2!important;font-size:11.5px!important}\r\n.lfukstc-notes{padding:18px 36px;border-top:1px solid var(--lfukstc-line);background:#fff;color:var(--lfukstc-muted);font-size:11.8px;line-height:1.65}\r\n.lfukstc-hidden{display:none!important}.lfukstc-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\r\n@media(max-width:950px){.lfukstc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lfukstc-paycards{grid-template-columns:repeat(3,minmax(0,1fr))}.lfukstc-statgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.lfukstc-detailgrid{grid-template-columns:1fr}}\r\n@media(max-width:620px){.lfukstc-app{margin:10px auto}.lfukstc-advisers{grid-template-columns:1fr}.lfukstc-hero,.lfukstc-body,.lfukstc-results,.lfukstc-notes{padding:22px 17px}.lfukstc-grid,.lfukstc-grid-2,.lfukstc-checkrow{grid-template-columns:1fr}.lfukstc-paycards{grid-template-columns:1fr 1fr}.lfukstc-statgrid{grid-template-columns:1fr 1fr}.lfukstc-result-head{display:block}.lfukstc-taxyear{display:inline-block;margin-top:9px}.lfukstc-mainresult strong{font-size:34px}.lfukstc-compare-results.lfukstc-show{grid-template-columns:1fr 1fr}}\r\n@media(prefers-reduced-motion:reduce){.lfukstc-results-shell{transition:none}}\r\n@media print{.lfukstc-tabs,.lfukstc-body,.lfukstc-actions,.lfukstc-compare,.lfukstc-cta{display:none!important}.lfukstc-results-shell{grid-template-rows:1fr!important;opacity:1!important}.lfukstc-card{box-shadow:none;border:0}.lfukstc-app{max-width:none}}\r\n<\/style>\r\n\r\n<section class=\"lfukstc-card\" aria-labelledby=\"lfukstc-title\">\r\n  <header class=\"lfukstc-hero\">\r\n    <div class=\"lfukstc-eyebrow\">Free UK salary calculator<\/div>\r\n    <h2 id=\"lfukstc-title\"> Calculate Your Take-Home Pay For FY 20206\/27<\/h2>\r\n    <p>Calculate estimated salary after Income Tax, employee National Insurance, pension and Student Loan deductions for the UK tax year 6 April 2026 to 5 April 2027.<\/p>\r\n    <div class=\"lfukstc-meta\">\r\n      <span class=\"lfukstc-chip\">Tax year: 2026\/27<\/span>\r\n      <span class=\"lfukstc-chip\">No sign-up required<\/span>\r\n    <\/div>\r\n  <\/header>\r\n\r\n  <div class=\"lfukstc-body\">\r\n    <div class=\"lfukstc-errors\" role=\"alert\"><\/div>\r\n\r\n    <div class=\"lfukstc-tabs\" role=\"tablist\" aria-label=\"Calculator mode\">\r\n      <button class=\"lfukstc-tab\" type=\"button\" role=\"tab\" aria-selected=\"true\" data-mode=\"quick\">Quick calculation<\/button>\r\n      <button class=\"lfukstc-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" data-mode=\"advanced\">Advanced calculation<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"lfukstc-grid\">\r\n      <div class=\"lfukstc-field\">\r\n        <label for=\"lfukstc-gross\">Gross salary <span class=\"lfukstc-help\">(before deductions)<\/span><\/label>\r\n        <div class=\"lfukstc-money\"><input id=\"lfukstc-gross\" class=\"lfukstc-control\" inputmode=\"decimal\" type=\"number\" min=\"0\" max=\"10000000\" step=\"0.01\" value=\"500\"><\/div>\r\n      <\/div>\r\n      <div class=\"lfukstc-field\">\r\n        <label for=\"lfukstc-salary-period\">Salary period<\/label>\r\n        <select id=\"lfukstc-salary-period\" class=\"lfukstc-control\">\r\n          <option value=\"annual\">Annual<\/option><option value=\"monthly\">Monthly<\/option><option value=\"fourweekly\">Every four weeks<\/option>\r\n          <option value=\"fortnightly\">Fortnightly<\/option><option value=\"weekly\" selected>Weekly<\/option><option value=\"daily\">Daily<\/option><option value=\"hourly\">Hourly<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <div class=\"lfukstc-field\">\r\n        <label for=\"lfukstc-region\">UK tax region<\/label>\r\n        <select id=\"lfukstc-region\" class=\"lfukstc-control\">\r\n          <option value=\"england\">England<\/option><option value=\"scotland\">Scotland<\/option><option value=\"wales\">Wales<\/option><option value=\"ni\">Northern Ireland<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <div class=\"lfukstc-field lfukstc-daily-extra lfukstc-hidden\">\r\n        <label for=\"lfukstc-days-week\">Working days per week<\/label>\r\n        <input id=\"lfukstc-days-week\" class=\"lfukstc-control\" type=\"number\" min=\"1\" max=\"7\" step=\"0.5\" value=\"5\">\r\n      <\/div>\r\n      <div class=\"lfukstc-field lfukstc-hourly-extra lfukstc-hidden\">\r\n        <label for=\"lfukstc-hours-week\">Hours worked per week<\/label>\r\n        <input id=\"lfukstc-hours-week\" class=\"lfukstc-control\" type=\"number\" min=\"1\" max=\"100\" step=\"0.25\" value=\"37.5\">\r\n      <\/div>\r\n      <div class=\"lfukstc-field lfukstc-workweeks-extra lfukstc-hidden\">\r\n        <label for=\"lfukstc-weeks-year\">Working weeks per year<\/label>\r\n        <input id=\"lfukstc-weeks-year\" class=\"lfukstc-control\" type=\"number\" min=\"1\" max=\"52\" step=\"0.5\" value=\"52\">\r\n      <\/div>\r\n      <div class=\"lfukstc-field\">\r\n        <label for=\"lfukstc-pension-quick\">Pension contribution <span class=\"lfukstc-help\">(% salary)<\/span><\/label>\r\n        <input id=\"lfukstc-pension-quick\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"100\" step=\"0.1\" value=\"0\">\r\n      <\/div>\r\n      <div class=\"lfukstc-field\">\r\n        <label for=\"lfukstc-student-quick\">Student Loan<\/label>\r\n        <select id=\"lfukstc-student-quick\" class=\"lfukstc-control\">\r\n          <option value=\"none\">No Student Loan<\/option><option value=\"plan1\">Plan 1<\/option><option value=\"plan2\">Plan 2<\/option><option value=\"plan4\">Plan 4<\/option><option value=\"plan5\">Plan 5<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <div class=\"lfukstc-field\">\r\n        <label for=\"lfukstc-taxyear\">Tax year<\/label>\r\n        <select id=\"lfukstc-taxyear\" class=\"lfukstc-control\"><option value=\"2026-27\">2026\/27<\/option><\/select>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lfukstc-advanced lfukstc-hidden\">\r\n      <div class=\"lfukstc-section\">\r\n        <h3>Pay and PAYE details<\/h3>\r\n        <p class=\"lfukstc-section-intro\">These fields improve the estimate for bonuses, overtime, tax codes and pay-period deductions. PAYE tax-code calculations remain annual estimates rather than exact cumulative payslips.<\/p>\r\n        <div class=\"lfukstc-grid\">\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-taxcode\">Tax code<\/label>\r\n            <input id=\"lfukstc-taxcode\" class=\"lfukstc-control\" type=\"text\" maxlength=\"12\" value=\"1257L\" autocomplete=\"off\" aria-describedby=\"lfukstc-taxcode-help\">\r\n            <span id=\"lfukstc-taxcode-help\" class=\"lfukstc-help\">Supports standard L codes plus BR, D0, D1, 0T, NT and K codes as annual estimates.<\/span>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-pay-frequency\">Payroll frequency <span class=\"lfukstc-help\">(for NI\/loans)<\/span><\/label>\r\n            <select id=\"lfukstc-pay-frequency\" class=\"lfukstc-control\">\r\n              <option value=\"monthly\">Monthly<\/option><option value=\"weekly\">Weekly<\/option><option value=\"fourweekly\">Every four weeks<\/option><option value=\"fortnightly\">Fortnightly<\/option><option value=\"annual\">Annual estimate<\/option>\r\n            <\/select>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-bonus\">Bonus<\/label>\r\n            <div class=\"lfukstc-money\"><input id=\"lfukstc-bonus\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"10000000\" step=\"0.01\" value=\"0\"><\/div>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-bonus-period\">Bonus period<\/label>\r\n            <select id=\"lfukstc-bonus-period\" class=\"lfukstc-control\"><option value=\"annual\">Annual \/ one-off annual estimate<\/option><option value=\"monthly\">Monthly recurring<\/option><\/select>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-overtime\">Overtime amount<\/label>\r\n            <div class=\"lfukstc-money\"><input id=\"lfukstc-overtime\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"10000000\" step=\"0.01\" value=\"0\"><\/div>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-overtime-period\">Overtime period<\/label>\r\n            <select id=\"lfukstc-overtime-period\" class=\"lfukstc-control\"><option value=\"annual\">Annual \/ one-off annual estimate<\/option><option value=\"monthly\">Monthly recurring<\/option><option value=\"weekly\">Weekly recurring<\/option><\/select>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"lfukstc-section\">\r\n        <h3>Pension and salary sacrifice<\/h3>\r\n        <p class=\"lfukstc-section-intro\">The treatment differs by pension method. Salary sacrifice can reduce both Income Tax and employee NI; net pay generally reduces taxable pay but not NI; relief at source is deducted from take-home and basic-rate relief is added by the pension provider.<\/p>\r\n        <div class=\"lfukstc-grid\">\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-pension-method\">Pension method<\/label>\r\n            <select id=\"lfukstc-pension-method\" class=\"lfukstc-control\">\r\n              <option value=\"none\">None<\/option><option value=\"salary_sacrifice\">Salary sacrifice<\/option><option value=\"net_pay\">Net pay arrangement<\/option><option value=\"relief_at_source\">Relief at source<\/option>\r\n            <\/select>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-pension-type\">Contribution type<\/label>\r\n            <select id=\"lfukstc-pension-type\" class=\"lfukstc-control\"><option value=\"percent\">Percentage of salary<\/option><option value=\"annual_fixed\">Fixed annual amount<\/option><option value=\"monthly_fixed\">Fixed monthly amount<\/option><\/select>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-pension-value\">Contribution<\/label>\r\n            <input id=\"lfukstc-pension-value\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"10000000\" step=\"0.01\" value=\"0\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"lfukstc-section\">\r\n        <h3>Loans, allowances and other deductions<\/h3>\r\n        <div class=\"lfukstc-grid\">\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-student\">Undergraduate Student Loan<\/label>\r\n            <select id=\"lfukstc-student\" class=\"lfukstc-control\"><option value=\"none\">None<\/option><option value=\"plan1\">Plan 1<\/option><option value=\"plan2\">Plan 2<\/option><option value=\"plan4\">Plan 4<\/option><option value=\"plan5\">Plan 5<\/option><\/select>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-pgl\">Postgraduate Loan<\/label>\r\n            <select id=\"lfukstc-pgl\" class=\"lfukstc-control\"><option value=\"no\">No<\/option><option value=\"yes\">Yes<\/option><\/select>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-pre-tax\">Other qualifying pre-tax deduction <span class=\"lfukstc-help\">(annual)<\/span><\/label>\r\n            <div class=\"lfukstc-money\"><input id=\"lfukstc-pre-tax\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"10000000\" step=\"0.01\" value=\"0\"><\/div>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-post-tax\">Other post-tax deduction <span class=\"lfukstc-help\">(annual)<\/span><\/label>\r\n            <div class=\"lfukstc-money\"><input id=\"lfukstc-post-tax\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"10000000\" step=\"0.01\" value=\"0\"><\/div>\r\n          <\/div>\r\n          <div class=\"lfukstc-field\">\r\n            <label for=\"lfukstc-benefits\">Taxable additions \/ benefits <span class=\"lfukstc-help\">(annual)<\/span><\/label>\r\n            <div class=\"lfukstc-money\"><input id=\"lfukstc-benefits\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"10000000\" step=\"0.01\" value=\"0\"><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"lfukstc-checkrow\" style=\"margin-top:12px\">\r\n          <label class=\"lfukstc-check\"><input id=\"lfukstc-marriage\" type=\"checkbox\"><span><strong>Marriage Allowance received<\/strong><br>Applies a \u00a31,260 transferable allowance only where eligibility conditions appear compatible.<\/span><\/label>\r\n          <label class=\"lfukstc-check\"><input id=\"lfukstc-blind\" type=\"checkbox\"><span><strong>Blind Person\u2019s Allowance<\/strong><br>Adds the 2026\/27 \u00a33,250 allowance to the annual estimate.<\/span><\/label>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lfukstc-actions\">\r\n      <button class=\"lfukstc-btn lfukstc-btn-primary\" type=\"button\" data-action=\"calculate\" aria-expanded=\"false\">Calculate take-home pay<\/button>\r\n      <button class=\"lfukstc-btn lfukstc-btn-secondary\" type=\"button\" data-action=\"reset\">Reset<\/button>\r\n    <\/div>\r\n    <div class=\"lfukstc-status\" role=\"status\" aria-live=\"polite\"><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"lfukstc-results-shell\" aria-hidden=\"true\">\r\n    <div class=\"lfukstc-results-inner\">\r\n      <section class=\"lfukstc-results\" aria-labelledby=\"lfukstc-results-title\">\r\n        <div class=\"lfukstc-result-head\">\r\n          <div><h3 id=\"lfukstc-results-title\">Your estimated take-home pay<\/h3><p class=\"lfukstc-result-summary\"><\/p><\/div>\r\n          <span class=\"lfukstc-taxyear\">2026\/27 TAX YEAR<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-mainresult\">\r\n          <small>Estimated annual take-home pay<\/small>\r\n          <strong class=\"lfukstc-annual-net\">\u00a30.00<\/strong>\r\n          <span class=\"lfukstc-main-sub\"><\/span>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-paycards\">\r\n          <div class=\"lfukstc-paycard\"><small>Monthly take-home<\/small><strong class=\"lfukstc-month-net\">\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-paycard\"><small>Weekly take-home<\/small><strong class=\"lfukstc-week-net\">\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-paycard\"><small>Daily take-home<\/small><strong class=\"lfukstc-day-net\">\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-paycard\"><small>Hourly take-home<\/small><strong class=\"lfukstc-hour-net\">\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-paycard\"><small>Take-home %<\/small><strong class=\"lfukstc-net-pct\">0%<\/strong><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-bar\" aria-label=\"Gross pay distribution\">\r\n          <span class=\"lfukstc-bar-net\"><\/span><span class=\"lfukstc-bar-tax\"><\/span><span class=\"lfukstc-bar-ni\"><\/span><span class=\"lfukstc-bar-pension\"><\/span><span class=\"lfukstc-bar-loan\"><\/span><span class=\"lfukstc-bar-other\"><\/span>\r\n        <\/div>\r\n        <div class=\"lfukstc-legend\">\r\n          <span><i class=\"lfukstc-dot\" style=\"background:#1d7d65\"><\/i>Take-home<\/span><span><i class=\"lfukstc-dot\" style=\"background:#d3962f\"><\/i>Income Tax<\/span>\r\n          <span><i class=\"lfukstc-dot\" style=\"background:#64798e\"><\/i>NI<\/span><span><i class=\"lfukstc-dot\" style=\"background:#7b67a8\"><\/i>Pension<\/span>\r\n          <span><i class=\"lfukstc-dot\" style=\"background:#ad6b86\"><\/i>Loans<\/span><span><i class=\"lfukstc-dot\" style=\"background:#8a8e92\"><\/i>Other deductions<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-statgrid\">\r\n          <div class=\"lfukstc-stat\"><small>Effective Income Tax rate<\/small><strong class=\"lfukstc-eff-tax\">0%<\/strong><\/div>\r\n          <div class=\"lfukstc-stat\"><small>Effective total deduction rate<\/small><strong class=\"lfukstc-eff-total\">0%<\/strong><\/div>\r\n          <div class=\"lfukstc-stat\"><small>Marginal Income Tax rate<\/small><strong class=\"lfukstc-marginal\">0%<\/strong><\/div>\r\n          <div class=\"lfukstc-stat\"><small>Tax region<\/small><strong class=\"lfukstc-region-out\">England<\/strong><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-breakdown\">\r\n          <div class=\"lfukstc-row\"><span>Gross annual earnings<\/span><strong class=\"lfukstc-gross-out\">\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Salary sacrifice<\/span><strong class=\"lfukstc-sacrifice-out\">\u2212\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Personal Allowance used<\/span><strong class=\"lfukstc-pa-out\">\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Taxable income<\/span><strong class=\"lfukstc-taxable-out\">\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Income Tax<\/span><strong class=\"lfukstc-tax-out\">\u2212\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Employee National Insurance<\/span><strong class=\"lfukstc-ni-out\">\u2212\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Pension deducted from take-home<\/span><strong class=\"lfukstc-pension-out\">\u2212\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Student Loan<\/span><strong class=\"lfukstc-student-out\">\u2212\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Postgraduate Loan<\/span><strong class=\"lfukstc-pgl-out\">\u2212\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row\"><span>Other deductions<\/span><strong class=\"lfukstc-other-out\">\u2212\u00a30.00<\/strong><\/div>\r\n          <div class=\"lfukstc-row lfukstc-row-total\"><span><strong>Estimated annual take-home pay<\/strong><\/span><strong class=\"lfukstc-net-out\">\u00a30.00<\/strong><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-detailgrid\">\r\n          <div>\r\n            <h4>Income Tax bands<\/h4>\r\n            <div class=\"lfukstc-tablewrap\"><table class=\"lfukstc-table\"><thead><tr><th>Band<\/th><th>Income in band<\/th><th>Rate<\/th><th>Tax<\/th><\/tr><\/thead><tbody class=\"lfukstc-taxband-body\"><\/tbody><\/table><\/div>\r\n          <\/div>\r\n          <div>\r\n            <h4>Employee National Insurance<\/h4>\r\n            <div class=\"lfukstc-tablewrap\"><table class=\"lfukstc-table\"><thead><tr><th>Earnings range<\/th><th>Rate<\/th><th>NI<\/th><\/tr><\/thead><tbody class=\"lfukstc-niband-body\"><\/tbody><\/table><\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-alerts\"><\/div>\r\n\r\n        <div class=\"lfukstc-compare\">\r\n          <h4>What if my salary changes?<\/h4>\r\n          <p>Compare your current result with a different annual salary using the same region, pension and loan assumptions.<\/p>\r\n          <div class=\"lfukstc-grid-2\">\r\n            <div class=\"lfukstc-field\"><label for=\"lfukstc-compare-salary\">Alternative annual salary<\/label><div class=\"lfukstc-money\"><input id=\"lfukstc-compare-salary\" class=\"lfukstc-control\" type=\"number\" min=\"0\" max=\"10000000\" step=\"100\" placeholder=\"e.g. 55000\"><\/div><\/div>\r\n            <div class=\"lfukstc-field\" style=\"align-self:end\"><button class=\"lfukstc-btn lfukstc-btn-secondary\" type=\"button\" data-action=\"compare\" style=\"width:100%\">Compare salary<\/button><\/div>\r\n          <\/div>\r\n          <div class=\"lfukstc-compare-results\">\r\n            <div class=\"lfukstc-compare-result\"><small>Gross difference<\/small><strong data-cmp=\"gross\">\u00a30.00<\/strong><\/div>\r\n            <div class=\"lfukstc-compare-result\"><small>Take-home difference<\/small><strong data-cmp=\"net\">\u00a30.00<\/strong><\/div>\r\n            <div class=\"lfukstc-compare-result\"><small>Pay rise retained<\/small><strong data-cmp=\"retained\">0%<\/strong><\/div>\r\n            <div class=\"lfukstc-compare-result\"><small>Marginal deduction rate<\/small><strong data-cmp=\"marginal\">0%<\/strong><\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-actions\">\r\n          <button class=\"lfukstc-btn lfukstc-btn-secondary\" type=\"button\" data-action=\"copy\">Copy results<\/button>\r\n          <button class=\"lfukstc-btn lfukstc-btn-secondary\" type=\"button\" data-action=\"print\">Print summary<\/button>\r\n          <button class=\"lfukstc-btn lfukstc-btn-secondary\" type=\"button\" data-action=\"edit\">Edit calculation<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"lfukstc-cta\">\r\n          <h4>Need help understanding your tax position?<\/h4>\r\n          <p>Speak with <a class=\"lfukstc-home-link\" href=\"https:\/\/legendfusions.com\/uk\/\" target=\"_blank\" rel=\"noopener\">Legend Fusions UK<\/a> for personalised UK tax and accounting support, especially if you have a non-standard tax code, high income, multiple employments, pension or salary-sacrifice questions, or other circumstances that an estimate cannot fully model.<\/p>\r\n\r\n          <div class=\"lfukstc-phone-wrap\">\r\n            <span class=\"lfukstc-phone-icon\" aria-hidden=\"true\"><\/span>\r\n            <a class=\"lfukstc-cta-phone\" href=\"tel:+443304609931\" aria-label=\"Call Legend Fusions on plus 44 330 460 9931\">+44 330 460 9931<\/a>\r\n          <\/div>\r\n\r\n          <div class=\"lfukstc-office-intro\">\r\n            <h5>Visit Legend Fusions Tax &amp; Accounting Offices in UK<\/h5>\r\n            <p>Looking for a local tax consultant or accountant in the UK? Visit a Legend Fusions office for support with personal tax, PAYE, HMRC queries, payroll, tax planning and business accounting. Choose the location nearest to you below.<\/p>\r\n          <\/div>\r\n\r\n          <div class=\"lfukstc-advisers\" aria-label=\"Legend Fusions UK office advisers\">\r\n            <div class=\"lfukstc-adviser\">\r\n              <strong>Stratford, East London<\/strong>\r\n              <span>JC \u2014 Partner, Advisory and Audit. The Stratford page states that a senior partner leads every engagement and a named adviser is introduced at the first consultation.<\/span>\r\n              <a href=\"https:\/\/legendfusions.com\/uk\/locations\/stratford\/\" target=\"_blank\" rel=\"noopener\">View Stratford tax advisers<\/a>\r\n            <\/div>\r\n            <div class=\"lfukstc-adviser\">\r\n              <strong>Bolton, Greater Manchester<\/strong>\r\n              <span>Darren Menzies \u2014 Accountant. Support includes personal and business tax, HMRC enquiries, capital gains, inheritance tax and wider accounting services.<\/span>\r\n              <a href=\"https:\/\/legendfusions.com\/uk\/locations\/bolton\" target=\"_blank\" rel=\"noopener\">View Bolton tax advisers<\/a>\r\n            <\/div>\r\n            <div class=\"lfukstc-adviser\">\r\n              <strong>Milton Keynes<\/strong>\r\n              <span>Fahad Lateef \u2014 Virtual Finance Director. The local team supports tax planning, payroll, VAT, company accounts, corporation tax and business advisory.<\/span>\r\n              <a href=\"https:\/\/legendfusions.com\/uk\/locations\/milton-keynes\/\" target=\"_blank\" rel=\"noopener\">View Milton Keynes tax advisers<\/a>\r\n            <\/div>\r\n            <div class=\"lfukstc-adviser\">\r\n              <strong>Hounslow, West London<\/strong>\r\n              <span>Faizan Rashid \u2014 Commercial Director. The Hounslow team supports personal and business tax, HMRC enquiries, capital gains, inheritance tax and accounting\/advisory matters.<\/span>\r\n              <a href=\"https:\/\/legendfusions.com\/uk\/locations\/hounslow\/\" target=\"_blank\" rel=\"noopener\">View Hounslow tax advisers<\/a>\r\n            <\/div>\r\n          <\/div>\r\n          <p class=\"lfukstc-cta-foot\">Not near one of these offices? Legend Fusions also supports clients through video meetings and online communication.<\/p>\r\n        <\/div>\r\n      <\/section>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <footer class=\"lfukstc-notes\">\r\n    <strong>Important:<\/strong> This calculator provides an estimate based on the information entered and the selected tax year. Actual PAYE deductions may differ because of your tax code, payroll period, benefits, previous pay, earlier tax deductions, HMRC adjustments and individual circumstances. The calculation does not constitute personalised tax or financial advice. Employee NI is modelled for standard category A. Exact cumulative PAYE, directors\u2019 NI and unusual NI categories require payroll-specific data.\r\n  <\/footer>\r\n<\/section>\r\n\r\n<script>\r\n(function(){\r\n\"use strict\";\r\nconst TAX_CONFIG = Object.freeze({\r\n  \"2026-27\":{\r\n    label:\"2026\/27\",start:\"2026-04-06\",end:\"2027-04-05\",lastReviewed:\"2026-08-18\",\r\n    personalAllowance:12570,paTaperStart:100000,paZeroAt:125140,\r\n    marriageTransfer:1260,blindAllowance:3250,\r\n    rukBands:[\r\n      {name:\"Basic rate\",upper:37700,rate:0.20},\r\n      {name:\"Higher rate\",upper:125140,rate:0.40},\r\n      {name:\"Additional rate\",upper:Infinity,rate:0.45}\r\n    ],\r\n    scotlandBands:[\r\n      {name:\"Starter rate\",upper:3967,rate:0.19},\r\n      {name:\"Basic rate\",upper:16956,rate:0.20},\r\n      {name:\"Intermediate rate\",upper:31092,rate:0.21},\r\n      {name:\"Higher rate\",upper:62430,rate:0.42},\r\n      {name:\"Advanced rate\",upper:125140,rate:0.45},\r\n      {name:\"Top rate\",upper:Infinity,rate:0.48}\r\n    ],\r\n    ni:{\r\n      annual:{pt:12570,uel:50270},monthly:{pt:1048,uel:4189},weekly:{pt:242,uel:967},\r\n      mainRate:0.08,upperRate:0.02\r\n    },\r\n    loans:{\r\n      plan1:{annual:26900,monthly:2241,weekly:517,rate:0.09,name:\"Plan 1\"},\r\n      plan2:{annual:29385,monthly:2448,weekly:565,rate:0.09,name:\"Plan 2\"},\r\n      plan4:{annual:33795,monthly:2816,weekly:649,rate:0.09,name:\"Plan 4\"},\r\n      plan5:{annual:25000,monthly:2083,weekly:480,rate:0.09,name:\"Plan 5\"},\r\n      pgl:{annual:21000,monthly:1750,weekly:403,rate:0.06,name:\"Postgraduate Loan\"}\r\n    }\r\n  }\r\n});\r\nconst ROOT=document.currentScript.closest(\".lfukstc-app\");\r\nif(!ROOT||ROOT.dataset.initialised===\"1\")return; ROOT.dataset.initialised=\"1\";\r\nconst q=s=>ROOT.querySelector(s), qa=s=>Array.from(ROOT.querySelectorAll(s));\r\nconst money=v=>new Intl.NumberFormat(\"en-GB\",{style:\"currency\",currency:\"GBP\",minimumFractionDigits:2,maximumFractionDigits:2}).format(Number.isFinite(v)?v:0);\r\nconst pct=v=>(Number.isFinite(v)?v:0).toFixed(1)+\"%\";\r\nconst cleanNum=el=>Number(el.value||0);\r\nconst cap=(v,min,max)=>Math.min(max,Math.max(min,v));\r\nconst roundPence=v=>Math.round((v+Number.EPSILON)*100)\/100;\r\nlet mode=\"quick\", lastResult=null;\r\n\r\nfunction annualise(value,period){\r\n  const weeks=cap(cleanNum(q(\"#lfukstc-weeks-year\"))||52,1,52);\r\n  const hours=cap(cleanNum(q(\"#lfukstc-hours-week\"))||37.5,1,100);\r\n  const days=cap(cleanNum(q(\"#lfukstc-days-week\"))||5,1,7);\r\n  if(period===\"annual\")return value;\r\n  if(period===\"monthly\")return value*12;\r\n  if(period===\"fourweekly\")return value*13;\r\n  if(period===\"fortnightly\")return value*26;\r\n  if(period===\"weekly\")return value*52;\r\n  if(period===\"daily\")return value*days*weeks;\r\n  if(period===\"hourly\")return value*hours*weeks;\r\n  return value;\r\n}\r\nfunction periodicAnnual(value,period){\r\n  if(period===\"monthly\")return value*12;\r\n  if(period===\"weekly\")return value*52;\r\n  return value;\r\n}\r\nfunction baseAllowance(ani,cfg,blind){\r\n  let pa=cfg.personalAllowance;\r\n  if(ani>cfg.paTaperStart)pa=Math.max(0,pa-(ani-cfg.paTaperStart)\/2);\r\n  if(blind)pa+=cfg.blindAllowance;\r\n  return Math.max(0,pa);\r\n}\r\nfunction parseTaxCode(raw,region,cfg,ani,blind){\r\n  let code=(raw||\"\").toUpperCase().replace(\/\\s+\/g,\"\").replace(\/W1|M1|X$\/,\"\");\r\n  if(code.startsWith(\"S\")){ if(region!==\"scotland\") return {error:\"Your tax code starts with S, which normally indicates Scottish Income Tax. Select Scotland or review the tax code.\"}; code=code.slice(1); }\r\n  if(code.startsWith(\"C\")){ if(region!==\"wales\") return {error:\"Your tax code starts with C, which normally indicates Welsh Income Tax. Select Wales or review the tax code.\"}; code=code.slice(1); }\r\n  if(code===\"NT\")return {kind:\"nt\",allowance:0};\r\n  if(code===\"BR\")return {kind:\"flat\",rate:0.20,allowance:0,label:\"BR\"};\r\n  if(code===\"D0\")return {kind:\"flat\",rate:0.40,allowance:0,label:\"D0\"};\r\n  if(code===\"D1\")return {kind:\"flat\",rate:0.45,allowance:0,label:\"D1\"};\r\n  if(code===\"0T\")return {kind:\"bands\",allowance:0,label:\"0T\"};\r\n  const km=code.match(\/^K(\\d{1,6})$\/);\r\n  if(km)return {kind:\"k\",kAddition:Number(km[1])*10,allowance:0,label:\"K\"+km[1]};\r\n  const lm=code.match(\/^(\\d{1,6})L$\/);\r\n  if(lm){\r\n    let allowance=Number(lm[1])*10;\r\n    if(code===\"1257L\") allowance=baseAllowance(ani,cfg,blind);\r\n    else if(blind) allowance+=cfg.blindAllowance;\r\n    return {kind:\"bands\",allowance,label:code};\r\n  }\r\n  return {error:\"This tax code is not supported by the annual-estimate engine. Try a standard L code, BR, D0, D1, 0T, NT or K code, or request a tax-code review.\"};\r\n}\r\nfunction taxBandsFor(region,cfg){ return region===\"scotland\"?cfg.scotlandBands:cfg.rukBands; }\r\nfunction progressiveTax(taxable,bands){\r\n  let tax=0,lower=0,rows=[],marginal=0;\r\n  for(const b of bands){\r\n    const upper=b.upper;\r\n    const slice=Math.max(0,Math.min(taxable,upper)-lower);\r\n    const t=roundPence(slice*b.rate);\r\n    rows.push({name:b.name,income:slice,rate:b.rate,tax:t});\r\n    if(slice>0)marginal=b.rate;\r\n    tax+=t; lower=upper;\r\n    if(taxable<=upper)break;\r\n  }\r\n  return {tax:roundPence(tax),rows,marginal};\r\n}\r\nfunction calcIncomeTax(taxable,region,cfg,taxCode){\r\n  if(taxCode.kind===\"nt\")return {tax:0,rows:[{name:\"NT \u2014 no tax\",income:taxable,rate:0,tax:0}],marginal:0};\r\n  if(taxCode.kind===\"flat\"){\r\n    const tax=roundPence(taxable*taxCode.rate);\r\n    return {tax,rows:[{name:taxCode.label+\" tax code\",income:taxable,rate:taxCode.rate,tax}],marginal:taxCode.rate};\r\n  }\r\n  return progressiveTax(taxable,taxBandsFor(region,cfg));\r\n}\r\nfunction payrollPeriods(freq){return freq===\"weekly\"?52:freq===\"fortnightly\"?26:freq===\"fourweekly\"?13:freq===\"monthly\"?12:1}\r\nfunction periodThreshold(base,freq){\r\n  if(freq===\"weekly\")return base.weekly;\r\n  if(freq===\"fortnightly\")return base.weekly*2;\r\n  if(freq===\"fourweekly\")return base.weekly*4;\r\n  if(freq===\"monthly\")return base.monthly;\r\n  return base.annual;\r\n}\r\nfunction calcNI(annualNiPay,freq,cfg){\r\n  const periods=payrollPeriods(freq), pay=annualNiPay\/periods;\r\n  const th=periodThreshold(cfg.ni,freq);\r\n  const main=Math.max(0,Math.min(pay,th.uel)-th.pt);\r\n  const upper=Math.max(0,pay-th.uel);\r\n  const perMain=roundPence(main*cfg.ni.mainRate), perUpper=roundPence(upper*cfg.ni.upperRate);\r\n  return {\r\n    annual:roundPence((perMain+perUpper)*periods),\r\n    rows:[\r\n      {label:\"Above primary threshold to upper earnings limit\",rate:cfg.ni.mainRate,amount:roundPence(perMain*periods)},\r\n      {label:\"Above upper earnings limit\",rate:cfg.ni.upperRate,amount:roundPence(perUpper*periods)}\r\n    ]\r\n  };\r\n}\r\nfunction calcLoan(annualLoanPay,plan,freq,cfg){\r\n  if(!plan||plan===\"none\")return 0;\r\n  const rule=cfg.loans[plan], periods=payrollPeriods(freq), pay=annualLoanPay\/periods;\r\n  const threshold=periodThreshold(rule,freq);\r\n  const per= Math.floor(Math.max(0,(pay-threshold)*rule.rate)); \/\/ payroll deductions use whole pounds after calculation\r\n  return roundPence(per*periods);\r\n}\r\nfunction pensionFromInputs(gross,advanced){\r\n  if(!advanced){\r\n    const p=cap(cleanNum(q(\"#lfukstc-pension-quick\")),0,100);\r\n    return {method:p>0?\"net_pay\":\"none\",grossContribution:roundPence(gross*p\/100),takehomeContribution:roundPence(gross*p\/100),salarySacrifice:0,taxRelief:roundPence(gross*p\/100*0.20)};\r\n  }\r\n  const method=q(\"#lfukstc-pension-method\").value,type=q(\"#lfukstc-pension-type\").value,v=Math.max(0,cleanNum(q(\"#lfukstc-pension-value\")));\r\n  let grossContribution=type===\"percent\"?gross*v\/100:type===\"monthly_fixed\"?v*12:v;\r\n  grossContribution=Math.min(gross,roundPence(grossContribution));\r\n  if(method===\"salary_sacrifice\")return {method,grossContribution,takehomeContribution:0,salarySacrifice:grossContribution,taxRelief:0};\r\n  if(method===\"net_pay\")return {method,grossContribution,takehomeContribution:grossContribution,salarySacrifice:0,taxRelief:0};\r\n  if(method===\"relief_at_source\"){\r\n    const paid=roundPence(grossContribution*0.80);\r\n    return {method,grossContribution,takehomeContribution:paid,salarySacrifice:0,taxRelief:roundPence(grossContribution-paid)};\r\n  }\r\n  return {method:\"none\",grossContribution:0,takehomeContribution:0,salarySacrifice:0,taxRelief:0};\r\n}\r\nfunction calculate(overrides){\r\n  const cfg=TAX_CONFIG[\"2026-27\"], advanced=mode===\"advanced\";\r\n  const salaryPeriod=q(\"#lfukstc-salary-period\").value;\r\n  const baseGross=overrides&&Number.isFinite(overrides.annualGross)?overrides.annualGross:annualise(Math.max(0,cleanNum(q(\"#lfukstc-gross\"))),salaryPeriod);\r\n  const bonus=advanced?periodicAnnual(Math.max(0,cleanNum(q(\"#lfukstc-bonus\"))),q(\"#lfukstc-bonus-period\").value):0;\r\n  const overtime=advanced?periodicAnnual(Math.max(0,cleanNum(q(\"#lfukstc-overtime\"))),q(\"#lfukstc-overtime-period\").value):0;\r\n  const benefits=advanced?Math.max(0,cleanNum(q(\"#lfukstc-benefits\"))):0;\r\n  const gross=roundPence(baseGross+bonus+overtime);\r\n  const pension=pensionFromInputs(gross,advanced);\r\n  const preTax=advanced?Math.max(0,cleanNum(q(\"#lfukstc-pre-tax\"))):0;\r\n  const postTax=advanced?Math.max(0,cleanNum(q(\"#lfukstc-post-tax\"))):0;\r\n  const region=q(\"#lfukstc-region\").value;\r\n  const freq=advanced?q(\"#lfukstc-pay-frequency\").value:(salaryPeriod===\"monthly\"?\"monthly\":salaryPeriod===\"weekly\"?\"weekly\":salaryPeriod===\"fortnightly\"?\"fortnightly\":salaryPeriod===\"fourweekly\"?\"fourweekly\":\"annual\");\r\n  const student=advanced?q(\"#lfukstc-student\").value:q(\"#lfukstc-student-quick\").value;\r\n  const hasPgl=advanced&&q(\"#lfukstc-pgl\").value===\"yes\";\r\n  const blind=advanced&&q(\"#lfukstc-blind\").checked;\r\n  const marriage=advanced&&q(\"#lfukstc-marriage\").checked;\r\n  const taxGross=Math.max(0,gross-pension.salarySacrifice-(pension.method===\"net_pay\"?pension.grossContribution:0)-preTax+benefits);\r\n  let taxCode;\r\n  if(advanced) taxCode=parseTaxCode(q(\"#lfukstc-taxcode\").value,region,cfg,taxGross,blind);\r\n  else taxCode={kind:\"bands\",allowance:baseAllowance(taxGross,cfg,false),label:\"1257L\"};\r\n  if(taxCode.error)return {error:taxCode.error};\r\n  let allowance=taxCode.allowance||0;\r\n  if(marriage){\r\n    const recipientUpper=region===\"scotland\"?43662:50270;\r\n    if(taxGross<=recipientUpper)allowance+=cfg.marriageTransfer;\r\n  }\r\n  let taxable=Math.max(0,taxGross-allowance);\r\n  if(taxCode.kind===\"k\"){ taxable=taxGross+taxCode.kAddition; allowance=0; }\r\n  const taxCalc=calcIncomeTax(taxable,region,cfg,taxCode);\r\n  \/\/ K-code annual estimate safeguard: PAYE cannot deduct more than 50% of pre-tax pay in a pay period.\r\n  const incomeTax=taxCode.kind===\"k\"?Math.min(taxCalc.tax,gross*0.50):taxCalc.tax;\r\n  const niPay=Math.max(0,gross-pension.salarySacrifice);\r\n  const niCalc=calcNI(niPay,freq,cfg);\r\n  const loanPay=Math.max(0,gross-pension.salarySacrifice);\r\n  const studentLoan=calcLoan(loanPay,student,freq,cfg);\r\n  const pgl=hasPgl?calcLoan(loanPay,\"pgl\",freq,cfg):0;\r\n  const other=postTax;\r\n  const deductions=incomeTax+niCalc.annual+pension.takehomeContribution+studentLoan+pgl+other;\r\n  const cashGross=gross-pension.salarySacrifice;\r\n  const net=roundPence(Math.max(0,cashGross-incomeTax-niCalc.annual-pension.takehomeContribution-studentLoan-pgl-other));\r\n  return {\r\n    cfg,advanced,region,freq,gross,baseGross,bonus,overtime,benefits,pension,preTax,postTax,taxGross,allowance,taxable,\r\n    incomeTax:roundPence(incomeTax),taxRows:taxCalc.rows,marginal:taxCalc.marginal,ni:niCalc.annual,niRows:niCalc.rows,\r\n    studentLoan,pgl,other,net,deductions:roundPence(deductions),taxCode,student,hasPgl\r\n  };\r\n}\r\nfunction validate(){\r\n  const errors=[],gross=cleanNum(q(\"#lfukstc-gross\")),period=q(\"#lfukstc-salary-period\").value;\r\n  if(!Number.isFinite(gross)||gross<=0)errors.push(\"Enter a gross salary greater than \u00a30.\");\r\n  if(gross>10000000)errors.push(\"Enter a gross salary below \u00a310,000,000.\");\r\n  if(period===\"hourly\"){\r\n    const h=cleanNum(q(\"#lfukstc-hours-week\")),w=cleanNum(q(\"#lfukstc-weeks-year\"));\r\n    if(h<=0||h>100)errors.push(\"Hours worked per week must be between 1 and 100.\");\r\n    if(w<=0||w>52)errors.push(\"Working weeks per year must be between 1 and 52.\");\r\n  }\r\n  if(period===\"daily\"){\r\n    const d=cleanNum(q(\"#lfukstc-days-week\")),w=cleanNum(q(\"#lfukstc-weeks-year\"));\r\n    if(d<=0||d>7)errors.push(\"Working days per week must be between 1 and 7.\");\r\n    if(w<=0||w>52)errors.push(\"Working weeks per year must be between 1 and 52.\");\r\n  }\r\n  if(mode===\"advanced\"){\r\n    const b=cleanNum(q(\"#lfukstc-bonus\")),o=cleanNum(q(\"#lfukstc-overtime\")),pre=cleanNum(q(\"#lfukstc-pre-tax\")),post=cleanNum(q(\"#lfukstc-post-tax\"));\r\n    if([b,o,pre,post].some(v=>v<0))errors.push(\"Bonus, overtime and deductions cannot be negative.\");\r\n    const pmethod=q(\"#lfukstc-pension-method\").value,pv=cleanNum(q(\"#lfukstc-pension-value\")),ptype=q(\"#lfukstc-pension-type\").value;\r\n    if(pmethod!==\"none\"&&pv<0)errors.push(\"Pension contribution cannot be negative.\");\r\n    if(ptype===\"percent\"&&pv>100)errors.push(\"Pension percentage cannot exceed 100%.\");\r\n  }else{\r\n    const p=cleanNum(q(\"#lfukstc-pension-quick\"));\r\n    if(p<0||p>100)errors.push(\"Pension contribution must be between 0% and 100%.\");\r\n  }\r\n  return errors;\r\n}\r\nfunction labelRegion(r){return r===\"scotland\"?\"Scotland\":r===\"wales\"?\"Wales\":r===\"ni\"?\"Northern Ireland\":\"England\"}\r\nfunction render(res){\r\n  lastResult=res;\r\n  q(\".lfukstc-annual-net\").textContent=money(res.net);\r\n  q(\".lfukstc-month-net\").textContent=money(res.net\/12);\r\n  q(\".lfukstc-week-net\").textContent=money(res.net\/52);\r\n  const weeks=cap(cleanNum(q(\"#lfukstc-weeks-year\"))||52,1,52),days=cap(cleanNum(q(\"#lfukstc-days-week\"))||5,1,7),hours=cap(cleanNum(q(\"#lfukstc-hours-week\"))||37.5,1,100);\r\n  q(\".lfukstc-day-net\").textContent=money(res.net\/(weeks*days));\r\n  q(\".lfukstc-hour-net\").textContent=money(res.net\/(weeks*hours));\r\n  q(\".lfukstc-net-pct\").textContent=pct(res.gross?res.net\/res.gross*100:0);\r\n  q(\".lfukstc-main-sub\").textContent=`Based on ${money(res.gross)} gross annual earnings \u2022 ${labelRegion(res.region)} \u2022 payroll frequency: ${res.freq.replace(\"fourweekly\",\"4-weekly\")}`;\r\n  q(\".lfukstc-result-summary\").textContent=`Tax year 2026\/27 using ${res.advanced?res.taxCode.label||\"advanced\":\"standard 1257L\"} annual tax-code assumptions.`;\r\n  q(\".lfukstc-eff-tax\").textContent=pct(res.gross?res.incomeTax\/res.gross*100:0);\r\n  q(\".lfukstc-eff-total\").textContent=pct(res.gross?res.deductions\/res.gross*100:0);\r\n  q(\".lfukstc-marginal\").textContent=pct(res.marginal*100);\r\n  q(\".lfukstc-region-out\").textContent=labelRegion(res.region);\r\n  q(\".lfukstc-gross-out\").textContent=money(res.gross);q(\".lfukstc-sacrifice-out\").textContent=\"\u2212\"+money(res.pension.salarySacrifice);\r\n  q(\".lfukstc-pa-out\").textContent=money(res.allowance);q(\".lfukstc-taxable-out\").textContent=money(res.taxable);q(\".lfukstc-tax-out\").textContent=\"\u2212\"+money(res.incomeTax);\r\n  q(\".lfukstc-ni-out\").textContent=\"\u2212\"+money(res.ni);q(\".lfukstc-pension-out\").textContent=\"\u2212\"+money(res.pension.takehomeContribution);q(\".lfukstc-student-out\").textContent=\"\u2212\"+money(res.studentLoan);\r\n  q(\".lfukstc-pgl-out\").textContent=\"\u2212\"+money(res.pgl);q(\".lfukstc-other-out\").textContent=\"\u2212\"+money(res.other);q(\".lfukstc-net-out\").textContent=money(res.net);\r\n  const total=res.gross||1, setbar=(sel,val)=>q(sel).style.width=(Math.max(0,val)\/total*100)+\"%\";\r\n  setbar(\".lfukstc-bar-net\",res.net);setbar(\".lfukstc-bar-tax\",res.incomeTax);setbar(\".lfukstc-bar-ni\",res.ni);setbar(\".lfukstc-bar-pension\",res.pension.takehomeContribution+res.pension.salarySacrifice);setbar(\".lfukstc-bar-loan\",res.studentLoan+res.pgl);setbar(\".lfukstc-bar-other\",res.other);\r\n  q(\".lfukstc-taxband-body\").innerHTML=res.taxRows.map(r=>`<tr><td>${r.name}<\/td><td>${money(r.income)}<\/td><td>${(r.rate*100).toFixed(0)}%<\/td><td>${money(r.tax)}<\/td><\/tr>`).join(\"\");\r\n  q(\".lfukstc-niband-body\").innerHTML=res.niRows.map(r=>`<tr><td>${r.label}<\/td><td>${(r.rate*100).toFixed(0)}%<\/td><td>${money(r.amount)}<\/td><\/tr>`).join(\"\");\r\n  const alerts=[];\r\n  if(res.taxGross>100000&&res.taxGross<125140)alerts.push(\"Your adjusted income is above \u00a3100,000, so the standard Personal Allowance is being reduced by \u00a31 for every \u00a32 above \u00a3100,000.\");\r\n  if(res.taxGross>=125140)alerts.push(\"At this income level the standard Personal Allowance is fully withdrawn.\");\r\n  if(res.region===\"scotland\")alerts.push(\"Scottish Income Tax bands apply to non-savings, non-dividend employment income. National Insurance remains subject to UK-wide Class 1 rules.\");\r\n  if(res.pension.method===\"salary_sacrifice\")alerts.push(\"Salary sacrifice has been applied before Income Tax and employee NI in this estimate. Actual scheme eligibility and contractual treatment depend on your employer arrangement.\");\r\n  if(res.taxCode.kind===\"k\")alerts.push(\"K-code result is an annual approximation and applies a 50% tax-deduction safeguard. Exact PAYE depends on payroll-period and cumulative data.\");\r\n  q(\".lfukstc-alerts\").innerHTML=alerts.map(a=>`<div class=\"lfukstc-alert\">${a}<\/div>`).join(\"\");\r\n  const shell=q(\".lfukstc-results-shell\");shell.classList.add(\"lfukstc-open\");shell.setAttribute(\"aria-hidden\",\"false\");\r\n  q('[data-action=\"calculate\"]').setAttribute(\"aria-expanded\",\"true\");q('[data-action=\"calculate\"]').textContent=\"Recalculate take-home pay\";\r\n  q(\".lfukstc-status\").textContent=`Calculation complete. Estimated annual take-home pay is ${money(res.net)}.`;\r\n  ROOT.dispatchEvent(new CustomEvent(\"lfukstc:calculation_completed\",{bubbles:true,detail:{taxYear:\"2026-27\",region:res.region,mode}}));\r\n  setTimeout(()=>q(\"#lfukstc-results-title\").scrollIntoView({behavior:\"smooth\",block:\"start\"}),100);\r\n}\r\nfunction showErrors(errors){\r\n  const box=q(\".lfukstc-errors\");\r\n  if(!errors.length){box.classList.remove(\"lfukstc-show\");box.innerHTML=\"\";return;}\r\n  box.innerHTML=\"<strong>Please correct the following:<\/strong><ul>\"+errors.map(e=>`<li>${e}<\/li>`).join(\"\")+\"<\/ul>\";box.classList.add(\"lfukstc-show\");box.scrollIntoView({behavior:\"smooth\",block:\"center\"});\r\n  ROOT.dispatchEvent(new CustomEvent(\"lfukstc:validation_error\",{bubbles:true,detail:{count:errors.length}}));\r\n}\r\nfunction setMode(newMode){\r\n  mode=newMode;qa(\".lfukstc-tab\").forEach(b=>b.setAttribute(\"aria-selected\",b.dataset.mode===mode?\"true\":\"false\"));\r\n  q(\".lfukstc-advanced\").classList.toggle(\"lfukstc-hidden\",mode!==\"advanced\");\r\n  ROOT.dispatchEvent(new CustomEvent(\"lfukstc:mode_selected\",{bubbles:true,detail:{mode}}));\r\n}\r\nfunction syncPeriodExtras(){\r\n  const p=q(\"#lfukstc-salary-period\").value;\r\n  q(\".lfukstc-hourly-extra\").classList.toggle(\"lfukstc-hidden\",p!==\"hourly\");\r\n  q(\".lfukstc-daily-extra\").classList.toggle(\"lfukstc-hidden\",p!==\"daily\");\r\n  q(\".lfukstc-workweeks-extra\").classList.toggle(\"lfukstc-hidden\",p!==\"hourly\"&&p!==\"daily\");\r\n}\r\nfunction resetAll(){\r\n  q(\"#lfukstc-gross\").value=\"500\";q(\"#lfukstc-salary-period\").value=\"weekly\";q(\"#lfukstc-region\").value=\"england\";q(\"#lfukstc-pension-quick\").value=\"0\";q(\"#lfukstc-student-quick\").value=\"none\";\r\n  q(\"#lfukstc-taxcode\").value=\"1257L\";q(\"#lfukstc-pay-frequency\").value=\"monthly\";q(\"#lfukstc-bonus\").value=\"0\";q(\"#lfukstc-overtime\").value=\"0\";q(\"#lfukstc-pension-method\").value=\"none\";q(\"#lfukstc-pension-value\").value=\"0\";\r\n  q(\"#lfukstc-student\").value=\"none\";q(\"#lfukstc-pgl\").value=\"no\";q(\"#lfukstc-pre-tax\").value=\"0\";q(\"#lfukstc-post-tax\").value=\"0\";q(\"#lfukstc-benefits\").value=\"0\";q(\"#lfukstc-marriage\").checked=false;q(\"#lfukstc-blind\").checked=false;\r\n  q(\".lfukstc-results-shell\").classList.remove(\"lfukstc-open\");q(\".lfukstc-results-shell\").setAttribute(\"aria-hidden\",\"true\");q('[data-action=\"calculate\"]').textContent=\"Calculate take-home pay\";q('[data-action=\"calculate\"]').setAttribute(\"aria-expanded\",\"false\");\r\n  q(\".lfukstc-compare-results\").classList.remove(\"lfukstc-show\");showErrors([]);setMode(\"quick\");syncPeriodExtras();lastResult=null;\r\n  ROOT.dispatchEvent(new CustomEvent(\"lfukstc:reset\",{bubbles:true,detail:{}}));\r\n}\r\nqa(\".lfukstc-tab\").forEach(b=>b.addEventListener(\"click\",()=>setMode(b.dataset.mode)));\r\nq(\"#lfukstc-salary-period\").addEventListener(\"change\",syncPeriodExtras);\r\nq('[data-action=\"calculate\"]').addEventListener(\"click\",()=>{\r\n  const errors=validate();showErrors(errors);if(errors.length)return;\r\n  const res=calculate();if(res.error){showErrors([res.error]);return;}render(res);\r\n});\r\nq('[data-action=\"reset\"]').addEventListener(\"click\",resetAll);\r\nq('[data-action=\"edit\"]').addEventListener(\"click\",()=>{q(\"#lfukstc-gross\").focus();q(\".lfukstc-body\").scrollIntoView({behavior:\"smooth\",block:\"start\"});ROOT.dispatchEvent(new CustomEvent(\"lfukstc:result_edited\",{bubbles:true,detail:{}}));});\r\nq('[data-action=\"print\"]').addEventListener(\"click\",()=>window.print());\r\nq('[data-action=\"copy\"]').addEventListener(\"click\",async()=>{\r\n  if(!lastResult)return;const text=`UK Salary Tax Calculator 2026\/27\\nGross annual earnings: ${money(lastResult.gross)}\\nIncome Tax: ${money(lastResult.incomeTax)}\\nEmployee NI: ${money(lastResult.ni)}\\nPension: ${money(lastResult.pension.takehomeContribution+lastResult.pension.salarySacrifice)}\\nStudent\/Postgraduate loans: ${money(lastResult.studentLoan+lastResult.pgl)}\\nEstimated annual take-home: ${money(lastResult.net)}\\nEstimated monthly take-home: ${money(lastResult.net\/12)}\\nEstimated weekly take-home: ${money(lastResult.net\/52)}`;\r\n  try{await navigator.clipboard.writeText(text);q(\".lfukstc-status\").textContent=\"Results copied to clipboard.\";ROOT.dispatchEvent(new CustomEvent(\"lfukstc:result_copied\",{bubbles:true,detail:{}}));}catch(e){q(\".lfukstc-status\").textContent=\"Copy was blocked by the browser. Select and copy the result manually.\";}\r\n});\r\nq('[data-action=\"compare\"]').addEventListener(\"click\",()=>{\r\n  if(!lastResult)return;const alt=cleanNum(q(\"#lfukstc-compare-salary\"));if(!(alt>0)){q(\".lfukstc-status\").textContent=\"Enter an alternative annual salary to compare.\";return;}\r\n  const altRes=calculate({annualGross:alt});if(altRes.error)return;\r\n  const gd=altRes.gross-lastResult.gross,nd=altRes.net-lastResult.net,retained=gd!==0?nd\/gd*100:0,marginal=100-retained;\r\n  q('[data-cmp=\"gross\"]').textContent=(gd>=0?\"+\":\"\")+money(gd);q('[data-cmp=\"net\"]').textContent=(nd>=0?\"+\":\"\")+money(nd);q('[data-cmp=\"retained\"]').textContent=pct(retained);q('[data-cmp=\"marginal\"]').textContent=pct(marginal);\r\n  q(\".lfukstc-compare-results\").classList.add(\"lfukstc-show\");ROOT.dispatchEvent(new CustomEvent(\"lfukstc:comparison_completed\",{bubbles:true,detail:{region:lastResult.region}}));\r\n});\r\nROOT.addEventListener(\"focusin\",e=>{if(!ROOT.dataset.started&&e.target.matches(\"input,select\")){ROOT.dataset.started=\"1\";ROOT.dispatchEvent(new CustomEvent(\"lfukstc:calculator_started\",{bubbles:true,detail:{}}));}});\r\nsyncPeriodExtras();\r\nROOT.dispatchEvent(new CustomEvent(\"lfukstc:calculator_viewed\",{bubbles:true,detail:{taxYear:\"2026-27\"}}));\r\n})();\r\n<\/script>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Free UK salary calculator Calculate Your Take-Home Pay For FY 20206\/27 Calculate estimated salary after Income Tax, employee National Insurance, pension and Student Loan deductions for the UK tax year 6 April 2026 to 5 April 2027. Tax year: 2026\/27 No sign-up required Quick calculation Advanced calculation Gross salary (before deductions) Salary period AnnualMonthlyEvery four [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":8987,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-12249","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/pages\/12249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/comments?post=12249"}],"version-history":[{"count":11,"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/pages\/12249\/revisions"}],"predecessor-version":[{"id":14313,"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/pages\/12249\/revisions\/14313"}],"up":[{"embeddable":true,"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/pages\/8987"}],"wp:attachment":[{"href":"https:\/\/legendfusions.com\/uk\/wp-json\/wp\/v2\/media?parent=12249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}