๐Ÿ“ข New: the free Executive Toolkit. Seven interactive tools for leaders โ€” try them & download yours.
โœ”
'; } function genLtd(){ return standShell('Ltd vs Sole Trader โ€” take-home calculator', '
Sole trader take-homeโ€“
Ltd take-homeโ€“

', 'function sc(p){var PA=12570,t=Math.max(0,p-PA),bb=37700;var it=.2*Math.min(t,bb)+.4*Math.min(Math.max(t-bb,0),125140-PA-bb)+.45*Math.max(t-(125140-PA),0);var n=.06*Math.max(Math.min(p,50270)-12570,0)+.02*Math.max(p-50270,0);return p-it-n}'+ 'function lc(p){var s=12570,c;if(p<=50000)c=p*.19;else if(p<=250000)c=p*.25-(250000-p)*.015;else c=p*.25;var d=Math.max(0,p-s-c),x=Math.max(0,d-500),bb=37700,hr=74870;var t=.0875*Math.min(x,bb)+.3375*Math.min(Math.max(x-bb,0),hr)+.3935*Math.max(x-bb-hr,0);return s+d-t}'+ 'function f(x){return "\u00a3"+Math.round(x).toLocaleString("en-GB")}'+ 'function c(){var v=+document.getElementById("p").value||0;document.getElementById("r").value=v;var s=sc(v),l=lc(v),d=l-s;document.getElementById("s").textContent=f(s);document.getElementById("l").textContent=f(l);document.getElementById("v").textContent=d>500?"A limited company typically keeps about "+f(d)+" more per year at this profit.":(d<-500?"Staying sole trader typically keeps about "+f(-d)+" more per year.":"The two routes are close at this profit โ€” liability and administration decide it.");}'+ 'document.getElementById("p").oninput=c;document.getElementById("r").oninput=function(){document.getElementById("p").value=this.value;c()};c();'); } function genCash(){ return standShell('12-Month Cash Flow & Runway Forecaster', '
Month-12 balanceโ€“
Cash runwayโ€“

', 'function f(x){return "\u00a3"+Math.round(x).toLocaleString("en-GB")}'+ 'function c(){var o=+document.getElementById("o").value||0,s=+document.getElementById("s").value||0,g=+document.getElementById("g").value||0,co=+document.getElementById("c").value||0,l=+document.getElementById("l").value;'+ 'var bal=o,inf=[],neg=null,pts=[];for(var m=0;m<12;m++){inf.push(s*Math.pow(1+g/100,m));var i2=m-l>=0?inf[m-l]:s;bal+=i2-co;pts.push(bal);if(bal<0&&neg===null)neg=m;}'+ 'document.getElementById("b12").textContent=f(pts[11]);document.getElementById("rw").textContent=neg===null?"12+ months":neg+" months";'+ 'document.getElementById("v").textContent=neg===null?"No negative month in the next 12 โ€” keep investing the surplus wisely.":"Warning: cash turns negative in month "+(neg+1)+". Act now on pricing, costs or collection speed.";'+ 'var mn=Math.min(0,Math.min.apply(null,pts)),mx=Math.max(0,Math.max.apply(null,pts));var W=600,H=160,P=10;function y(v){return H-P-((v-mn)/(mx-mn||1))*(H-2*P)}'+ 'var pl=pts.map(function(v,i){return (P+i*(W-2*P)/11)+","+y(v)}).join(" ");'+ 'document.getElementById("ch").innerHTML="";}'+ 'c();'); } function genAI(){ return standShell('AI Readiness Scorecard & 90-Day Roadmap', '
', 'var Q='+JSON.stringify(AIQ)+', F='+JSON.stringify(AI_FIX)+';var pick=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];'+ 'document.getElementById("qz").innerHTML=Q.map(function(qq,i){return "
"+(i+1)+". "+qq[1]+"
"+qq[2].map(function(a,j){return ""}).join("")+"
"}).join("");'+ 'function score(){if(pick.some(function(p){return p<0})){alert("Please answer all 10 questions.");return;}'+ 'var cats={};Q.forEach(function(qq,i){(cats[qq[0]]=cats[qq[0]]||[]).push(pick[i]);});'+ 'var tot=pick.reduce(function(a,b){return a+b},0),pct=Math.round(tot/20*100);'+ 'var band=pct<40?"Foundations stage":(pct<70?"Emerging":"Front-runner");'+ 'var keys=Object.keys(cats).map(function(k){return [k,cats[k].reduce(function(a,b){return a+b},0)/cats[k].length]}).sort(function(a,b){return a[1]-b[1]});'+ 'var weak=keys.slice(0,2);'+ 'var html="
Readiness score"+pct+"%
Stage"+band+"
";'+ 'html+="

Your 90-day roadmap (focus: "+weak.map(function(w){return w[0]}).join(" + ")+"):

";'+ 'document.getElementById("rs").innerHTML=html;}'); } function genHire(){ return standShell('Hire vs Contractor vs Automate Comparator', '
Employee/yrโ€“
Contractor/yrโ€“
Automate/yrโ€“
Verdictโ€“

', 'function f(x){return "\u00a3"+Math.round(x).toLocaleString("en-GB")}'+ 'function c(){var s=+document.getElementById("a").value||0,h=+document.getElementById("b").value||0,d=+document.getElementById("d").value||0,u=+document.getElementById("e").value||0,m=+document.getElementById("m").value||0;'+ 'var emp=s*(h/37.5)*1.3+3000*(h/37.5),con=d*(h/7.5)*48,aut=u+m*12+s*(h*0.2/37.5);'+ 'document.getElementById("r1").textContent=f(emp);document.getElementById("r2").textContent=f(con);document.getElementById("r3").textContent=f(aut);'+ 'var best=Math.min(emp,con,aut),w=best===emp?"Employee":(best===con?"Contractor":"Automate");document.getElementById("r4").textContent=w;'+ 'document.getElementById("v").textContent=w==="Automate"?"Automation wins at this volume โ€” setup pays back in about "+Math.max(1,Math.round(u/Math.max(1,(Math.min(emp,con)-aut)/12)))+" months.":(w==="Contractor"?"Contracting is cheapest for this workload โ€” but watch continuity and day-rate creep.":"Employing is cheapest here โ€” factor in recruitment time and capacity risk.");}'+ 'c();'); } function genPrice(){ return standShell('Pricing Power & Margin Protector', '
New price neededโ€“
= price riseโ€“
Current marginโ€“
Volume you can loseโ€“

', 'function c(){var p=+document.getElementById("a").value||1,co=+document.getElementById("b").value||0,inf=+document.getElementById("i").value||0;'+ 'var mg=(p-co)/p,nc=co*(1+inf/100),need=nc/(1-mg),inc=(need/p-1)*100,oc=p-co,ncn=need-nc,vol=(1-oc/ncn)*100;'+ 'document.getElementById("r1").textContent="\u00a3"+need.toFixed(2);document.getElementById("r2").textContent="+"+inc.toFixed(1)+"%";'+ 'document.getElementById("r3").textContent=(mg*100).toFixed(1)+"%";document.getElementById("r4").textContent=vol.toFixed(1)+"%";'+ 'document.getElementById("v").textContent="Raise to \u00a3"+need.toFixed(2)+" and you protect margin even if you lose up to "+vol.toFixed(1)+"% of volume. Under-inflating your price silently donates profit.";}'+ 'c();'); } function genTurn(){ return standShell('True Cost of Staff Turnover Calculator', '
Leavers/yrโ€“
Cost per leaverโ€“
Total churn cost/yrโ€“
Retention could saveโ€“

', 'function f(x){return "\u00a3"+Math.round(x).toLocaleString("en-GB")}'+ 'function c(){var h=+document.getElementById("a").value||0,s=+document.getElementById("b").value||0,r=+document.getElementById("c").value||0,rm=+document.getElementById("d").value||0;'+ 'var lv=Math.round(h*r/100),per=s*0.15+s*(rm/12)*0.5+s*0.1,tot=lv*per;'+ 'document.getElementById("r1").textContent=lv;document.getElementById("r2").textContent=f(per);document.getElementById("r3").textContent=f(tot);document.getElementById("r4").textContent=f(tot/3);'+ 'document.getElementById("v").textContent="Churn is costing you about "+f(tot)+" a year โ€” "+(tot/(h*s)*100).toFixed(1)+"% of payroll. Simple retention fixes typically cut a third of that.";}'+ 'c();'); } /* ================= videos ================= */ var NV='#1b2a5e', GD='#d9a017', GN='#146b4a', RD='#b3402e', BL='#7db6d9'; function sk(d,c,w){ return ''; } function cir(x,y,r,c,w){ return ''; } function txt(x,y,s,c,size){ return ''+s+''; } function wrapSVG(inner){ return ''+inner+''; } var VIDEO_A = { scenes:[ {cap:'Two ways to grow money: a plain savings account, or long-term investing inside a trust fund. Very different outcomes.', svg:wrapSVG(txt(110,120,'TRUST FUND INVESTMENT',NV,40)+txt(290,170,'vs',GD,36)+txt(160,225,'SAVING INVESTMENT',GN,40)+sk('M120 250 H500',GD,6))}, {cap:'Savings = cash in the bank. Safe, easy to reach, but interest is usually below inflation.', svg:wrapSVG(''+sk('M395 205 h50 M370 300 v18 M470 300 v18 M498 240 q18 8 0 22',GN,5)+cir(420,160,16,GD)+txt(413,168,'ยฃ',GD,22)+txt(280,110,'SAVINGS = cash in the bank',NV,32)+txt(300,340,'safe ยท easy ยท ~1% interest',BL,26))}, {cap:'Inflation quietly eats idle cash: ยฃ100 today buys roughly ยฃ55 of goods in 20 years at 3% inflation.', svg:wrapSVG(txt(90,100,'ยฃ100 today',NV,34)+sk('M230 90 H340 M325 78 L340 90 L325 102',GD,5)+txt(360,100,'buys ยฃ55 in 20 yrs',RD,30)+txt(140,260,'ยฃ',NV,96)+txt(300,265,'ยฃ',GD,64)+txt(420,268,'ยฃ',RD,42)+txt(120,335,'inflation eats idle cash',RD,28))}, {cap:'A trust fund invests for the long term โ€” shares, bonds, property โ€” and lets compounding do the growing.', svg:wrapSVG(sk('M320 320 V200 M320 240 L270 200 M320 220 L375 185',GN,8)+cir(270,180,26,GN)+cir(330,150,30,GN)+cir(385,190,24,GN)+txt(262,190,'ยฃ',GD,26)+txt(322,160,'ยฃ',GD,26)+txt(377,200,'ยฃ',GD,26)+txt(150,90,'TRUST FUND INVESTMENT',NV,34)+txt(180,345,'planted now ยท compounds for years',GN,28))}, {cap:'ยฃ200 a month for 20 years: about ยฃ49k saved at 1%โ€ฆ around ยฃ104k invested at 7%. Time in the market is the magic.', svg:wrapSVG(sk('M90 60 V300 H560',NV,5)+sk('M90 280 H560',BL,5)+sk('M90 280 C 250 270 400 200 560 90',GN,6)+txt(100,50,'ยฃ200/month for 20 yrs',NV,28)+txt(430,80,'invested @7%',GN,26)+txt(430,270,'saved @1%',BL,26)+txt(470,120,'โ‰ˆ ยฃ104k',GN,30)+txt(470,300,'โ‰ˆ ยฃ49k',BL,30))}, {cap:'Investments carry risk and need 5+ years. Savings suit emergencies. The answer is balance, not either/or.', svg:wrapSVG(sk('M320 296 L298 330 H342 Z',NV,5)+sk('M140 270 L500 230',GD,7)+txt(105,240,'SAVINGS',BL,28)+txt(95,266,'emergency pot',BL,22)+txt(430,205,'INVESTED',GN,28)+txt(435,231,'5+ years',GN,22)+txt(170,90,'balance both โ€” don\'t pick one',NV,32))}, {cap:'Rule of thumb: emergency pot in savings, long-term money invested. Certax will map your mix in a free 20-minute chat.', svg:wrapSVG(txt(120,120,'Emergency pot โ†’ SAVINGS',BL,30)+txt(120,175,'Long-term money โ†’ INVEST',GN,30)+txt(120,235,'Not sure? Talk to Certax โ€”',NV,30)+txt(120,290,'free 20-minute plan chat',GD,30)+cir(540,240,40,GD)+txt(532,252,'ยฃ',GD,34))} ]}; var VIDEO_B = { scenes:[ {cap:'Sole trader or limited company? The right answer depends on profit, risk and plans. Here\'s the 90-second tour.', svg:wrapSVG(txt(170,130,'LIMITED COMPANY',NV,40)+txt(290,180,'vs',GD,36)+txt(200,230,'SOLE TRADER',GN,40)+sk('M170 255 H470',GD,6))}, {cap:'Sole trader: simple and low admin โ€” but you ARE the business, and profits are taxed as income at 20โ€“45% plus NICs.', svg:wrapSVG(sk('M360 260 h120 v60 h-120 z M400 260 v-18 h40 v18',NV,5)+txt(330,120,'SOLE TRADER',GN,34)+txt(330,180,'simple ยท low admin',NV,26)+txt(330,215,'you = the business',NV,26)+txt(320,350,'Income Tax 20โ€“45% + NICs',RD,26)+cir(150,250,40,GN)+txt(142,262,'ยฃ',GN,34))}, {cap:'A limited company is a separate legal person: Corporation Tax 19โ€“25%, and you pay yourself by salary plus dividends.', svg:wrapSVG(sk('M380 320 V140 H540 V320 M410 180 h30 M470 180 h30 M410 230 h30 M470 230 h30',NV,6)+sk('M460 140 V100 L500 112 L460 124',GD,5)+txt(80,120,'LIMITED COMPANY',NV,34)+txt(80,170,'separate legal person',NV,26)+txt(80,210,'Corporation Tax 19โ€“25%',RD,26)+txt(80,250,'salary + dividends',GN,26))}, {cap:'At ยฃ30k profit the tax bills are similar. Above ยฃ40โ€“50k kept in the business, a Ltd often saves ยฃ1,500โ€“ยฃ4,000 a year.', svg:wrapSVG(sk('M90 60 V300 H560',NV,5)+sk('M140 300 V210 H200 V300',GN,6)+sk('M230 300 V205 H290 V300',NV,6)+sk('M380 300 V150 H440 V300',GN,6)+sk('M470 300 V190 H530 V300',NV,6)+cir(500,168,16,GD)+txt(120,330,'sole ยฃ30k',GN,22)+txt(215,330,'Ltd ยฃ30k',NV,22)+txt(360,330,'sole ยฃ60k',GN,22)+txt(455,330,'Ltd ยฃ60k',NV,22)+txt(140,80,'tax bill (higher bar = more tax)',NV,26)+txt(360,120,'Ltd often saves ยฃ1.5โ€“4k/yr',GD,26))}, {cap:'The price of those savings: more admin โ€” annual accounts, confirmation statement, payroll and a Corporation Tax return.', svg:wrapSVG(sk('M360 300 h150 v-26 h-150 z M370 274 h130 v-26 h-130 z M380 248 h110 v-26 h-110 z',NV,5)+txt(90,110,'Ltd = more admin',RD,32)+txt(90,160,'annual accounts',NV,24)+txt(90,195,'confirmation statement',NV,24)+txt(90,230,'payroll & CT return',NV,24))}, {cap:'Big Ltd advantage: limited liability. The company owns the risks โ€” your house and savings stay protected.', svg:wrapSVG(sk('M420 140 l70 20 v60 c0 50 -35 80 -70 95 c-35 -15 -70 -45 -70 -95 v-60 z',GN,6)+sk('M390 210 l22 24 44-50',GD,7)+txt(90,110,'limited liability',GN,32)+txt(90,160,'personal assets protected',NV,26)+cir(170,250,40,NV)+txt(162,262,'ยฃ',GD,34))}, {cap:'Rule of thumb: under ยฃ30k stay sole trader; ยฃ30โ€“50k model both; ยฃ50k+ retained usually means Ltd. Certax checks it free in 20 minutes.', svg:wrapSVG(sk('M140 80 V320 M420 80 V320',NV,6)+sk('M140 130 H420 M140 200 H420 M140 270 H420',GD,5)+txt(160,120,'under ยฃ30k โ†’ stay sole trader',GN,24)+txt(160,190,'ยฃ30โ€“50k โ†’ model both',GD,24)+txt(160,260,'ยฃ50k+ kept in โ†’ usually Ltd',NV,24)+txt(150,345,'Free 20-min check with Certax',RD,28))} ]}; var PLAYERS = []; function playerHTML(k){ return '
'; } function makePlayer(k, video){ var stage=q('#stage'+k), cap=q('#cap'+k), dots=q('#dots'+k), playBtn=q('#play'+k); var len=video.scenes.length, idx=0, timer=null, mode='idle', startT=0, remain=0, capIv=null; dots.innerHTML=video.scenes.map(function(_,i){ return ''; }).join(''); qa('button',dots).forEach(function(b){ b.addEventListener('click',function(){ show(+b.dataset.s,false); }); }); q('#prev'+k).addEventListener('click',function(){ show(idx-1,false); }); q('#next'+k).addEventListener('click',function(){ show(idx+1,false); }); q('#re'+k).addEventListener('click',function(){ show(0,true); }); var api={k:k, stopExternal:function(){ if(mode!=='idle'){ clearTimeout(timer); mode='idle'; playBtn.textContent='โ–ถ'; setStatic(); cap.textContent=video.scenes[idx].cap; } }}; PLAYERS.push(api); function setStatic(){ qa('[data-d]',stage).forEach(function(el){ el.style.animation='none'; if(el.tagName==='text'){ el.style.opacity=1; } else { el.style.strokeDashoffset=0; } el.style.animationPlayState=''; }); } function typeCap(t){ clearInterval(capIv); var i=0; cap.textContent=''; capIv=setInterval(function(){ cap.textContent=t.slice(0,++i); if(i>=t.length) clearInterval(capIv); },22); } function show(i, animate){ idx=(i+len)%len; var sc=video.scenes[idx]; stage.innerHTML=sc.svg; var els=qa('[data-d]',stage); els.forEach(function(el,j){ el.setAttribute('data-d',j); }); qa('button',dots).forEach(function(d,j){ d.classList.toggle('on',j===idx); }); clearTimeout(timer); if(animate){ PLAYERS.forEach(function(p){ if(p.k!==k) p.stopExternal(); }); typeCap(sc.cap); els.forEach(function(el,j){ var dl=j*0.7; el.style.animation = el.tagName==='text' ? 'fadein .5s '+dl+'s forwards' : 'dash .9s '+dl+'s forwards'; }); mode='playing'; playBtn.textContent='โธ'; startT=Date.now(); remain=els.length*0.7+3.2; timer=setTimeout(function(){ show(idx+1,true); }, remain*1000); } else { cap.textContent=sc.cap; clearInterval(capIv); setStatic(); mode='idle'; playBtn.textContent='โ–ถ'; } } playBtn.addEventListener('click',function(){ if(mode==='playing'){ clearTimeout(timer); remain-=(Date.now()-startT)/1000; qa('[data-d]',stage).forEach(function(el){ el.style.animationPlayState='paused'; }); mode='paused'; playBtn.textContent='โ–ถ'; } else if(mode==='paused'){ qa('[data-d]',stage).forEach(function(el){ el.style.animationPlayState='running'; }); PLAYERS.forEach(function(p){ if(p.k!==k) p.stopExternal(); }); mode='playing'; playBtn.textContent='โธ'; startT=Date.now(); timer=setTimeout(function(){ show(idx+1,true); }, Math.max(remain,1.5)*1000); } else show(idx,true); }); show(0,false); } function videosView(){ return '
Whiteboard explainers

Two-minute whiteboard videos

Hand-drawn whiteboard animations that answer the two questions we hear most often. Press play on one โ€” the other politely waits.

๐ŸŽฌ 1 ยท Trust Fund Investment vs Saving Investment

'+playerHTML('A')+'

๐ŸŽฌ 2 ยท Ltd Company vs Sole Trader

'+playerHTML('B')+'
'+ctaBandHTML('Want the numbers for YOUR situation?','The videos give the shape โ€” a free 20-minute consultation gives you the exact figures.')+'
'; } function videosInit(){ makePlayer('A', VIDEO_A); makePlayer('B', VIDEO_B); } /* ================= toolkit ================= */ function dlCard(id, blurb){ return '

Take it with you ๐ŸŽ

'+blurb+'

Fair play rule: one free tool per email. The complete Executive Toolkit comes with your free 20-minute consultation.

'; } function toolsView(){ return '
Free tools

The Executive Toolkit

Seven interactive tools for leaders โ€” try each one live, then download your offline copy. One free tool per email; the full toolkit rides along with a free consultation.

'+ '

Ltd vs Sole Trader โ€” live

Sole trader take-homeโ€“
Ltd take-homeโ€“

Simplified 2026/27 illustration (PA ยฃ12,570; Class 4 NICs 6%/2%; CT 19โ€“25%; dividends after ยฃ500 allowance). Not personal advice.

'+dlCard('ltd','Download the standalone calculator that works offline in any browser โ€” no installation, no spreadsheets.')+'
'+ '

12-Month Cash Flow & Runway Forecaster

'+dlCard('cash','Download the offline forecaster โ€” model cash on a plane, in a boardroom, anywhere.')+'
'+ '

AI Readiness Scorecard + 90-Day Roadmap

Ten taps. Score out of 100, benchmark stage, and a personalised 90-day roadmap for your two weakest areas.

'+dlCard('ai','Download the scorecard as an offline tool for your leadership away-day.')+'
'+ '

Hire vs Contractor vs Automate

Employee / yrโ€“
Contractor / yrโ€“
Automate / yrโ€“
Verdictโ€“

'+dlCard('hire','Download the comparator for your next resourcing meeting.')+'
'+ '

Pricing Power & Margin Protector

New price neededโ€“
= price riseโ€“
Current marginโ€“
Volume you can loseโ€“

'+dlCard('price','Download the margin protector for your next pricing review.')+'
'+ '

True Cost of Staff Turnover

Leavers / yrโ€“
Cost per leaverโ€“
Total churn cost / yrโ€“
Retention could saveโ€“

'+dlCard('turn','Download the churn calculator for your next people-strategy meeting.')+'
'+ '

Live Meeting Cost Ticker

ยฃ0.00

Share it in your next leadership meeting โ€” watch faces change. (Hourly rate โ‰ˆ salary รท 1,800 working hours.)

Make it famous ๐Ÿ˜„

The ticker is free to use and share โ€” no download needed. Send colleagues here:

And when the meetings get cheaper, spend the savings wisely โ€” book a free consultation.

'+ '
'+ctaBandHTML('Want the complete Executive Toolkit?','One email unlocks one free tool. Book a free 20-minute consultation and we\'ll send all seven, plus a guided run-through for your leadership team.')+'
'; } function toolsInit(){ safe(function(){ qa('#toolTabs button').forEach(function(b){ b.addEventListener('click', function(){ qa('#toolTabs button').forEach(function(x){ x.classList.remove('sel'); }); b.classList.add('sel'); qa('.toolpanel').forEach(function(p){ p.classList.remove('on'); }); q('#tp_' + b.dataset.t).classList.add('on'); }); }); }); safe(function(){ var pin=q('#toolProfit'), rng=q('#toolRange'); function drawLtd(){ var v=Math.max(0,+pin.value||0); rng.value=Math.min(Math.max(v,10000),250000); var s=soleCalc(v), l=ltdCalc(v), d=l-s, mx=Math.max(s,l,1); q('#resSole').textContent=fmtGBP(s); q('#resLtd').textContent=fmtGBP(l); q('#barSole').style.width=Math.round(s/mx*100)+'%'; q('#barLtd').style.width=Math.round(l/mx*100)+'%'; q('#toolVerdict').textContent = d>500 ? 'At this profit, a limited company typically keeps about '+fmtGBP(d)+' more per year.' : (d<-500 ? 'At this profit, staying sole trader typically keeps about '+fmtGBP(-d)+' more per year.' : 'At this profit the two routes are close โ€” the decision comes down to liability and administration.'); } pin.addEventListener('input',drawLtd); rng.addEventListener('input',function(){ pin.value=rng.value; drawLtd(); }); drawLtd(); }); safe(function(){ function drawCF(){ var r=cashflowCalc({open:+q('#cf_open').value||0, sales:+q('#cf_sales').value||0, growth:+q('#cf_growth').value||0, costs:+q('#cf_costs').value||0, lag:+q('#cf_lag').value}); var vals=r.months.map(function(m){return m.bal;}); var mn=Math.min.apply(null,[0].concat(vals)), mx=Math.max.apply(null,[0].concat(vals)); var W=600,H=200,P=12; function y(v){ return H-P-((v-mn)/(mx-mn||1))*(H-2*P); } var pts=vals.map(function(v,i){ return (P+i*((W-2*P)/11))+','+y(v); }).join(' '); q('#cf_chart').innerHTML=''+vals.map(function(v,i){ return ''; }).join('')+''; q('#cf_out').textContent = r.firstNeg===null ? 'No negative month in the next 12 โ€” keep investing the surplus wisely.' : 'Warning: cash turns negative in month '+(r.firstNeg+1)+'. Act now on pricing, costs or collection speed.'; } ['cf_open','cf_sales','cf_growth','cf_costs','cf_lag'].forEach(function(id){ q('#'+id).addEventListener('input',drawCF); }); drawCF(); }); safe(function(){ var picks=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]; q('#ai_quiz').innerHTML=AIQ.map(function(qq,i){ return '

'+(i+1)+'. '+qq[1]+'

'+qq[2].map(function(a,j){ return ''; }).join('')+'
'; }).join(''); qa('#ai_quiz .opts button').forEach(function(b){ b.addEventListener('click',function(){ var i=+b.dataset.q; picks[i]=+b.dataset.v; qa('#ai_quiz .opts button[data-q="'+i+'"]').forEach(function(x){ x.classList.remove('sel'); }); b.classList.add('sel'); }); }); q('#ai_score').addEventListener('click',function(){ if(picks.some(function(p){ return p<0; })) return showToast('Please answer all 10 questions first.'); var cats={}; AIQ.forEach(function(qq,i){ (cats[qq[0]]=cats[qq[0]]||[]).push(picks[i]); }); var tot=picks.reduce(function(a,b){return a+b;},0), pct=Math.round(tot/20*100); var band = pct<40 ? 'Foundations stage' : (pct<70 ? 'Emerging' : 'Front-runner'); var weak=Object.keys(cats).map(function(k){ return [k, cats[k].reduce(function(a,b){return a+b;},0)/cats[k].length]; }).sort(function(a,b){ return a[1]-b[1]; }).slice(0,2); q('#ai_res').innerHTML='
Readiness score'+pct+'%
Stage'+band+'

Your 90-day roadmap (focus: '+weak.map(function(w){return w[0];}).join(' + ')+'):

    '+weak.map(function(w){ return AI_FIX[w[0]].map(function(a){ return '
  • '+a+'
  • '; }).join(''); }).join('')+'
'; showToast('Scored! Your 90-day roadmap is ready below the quiz.'); }); }); safe(function(){ function drawHire(){ var r=hireCalc({salary:+q('#h_sal').value||0, hours:+q('#h_hrs').value||0, day:+q('#h_day').value||0, setup:+q('#h_setup').value||0, month:+q('#h_month').value||0}); q('#h_emp').textContent=fmtGBP(r.emp); q('#h_con').textContent=fmtGBP(r.con); q('#h_aut').textContent=fmtGBP(r.auto); q('#h_best').textContent=r.best; q('#h_out').textContent = r.best==='Automate' ? 'Automation wins at this volume โ€” setup pays back in about '+Math.max(1,Math.round(r.payMonths||1))+' months.' : (r.best==='Contractor' ? 'Contracting is cheapest for this workload โ€” but watch continuity and day-rate creep.' : 'Employing is cheapest here โ€” factor in recruitment time and capacity risk.'); } ['h_sal','h_hrs','h_day','h_setup','h_month'].forEach(function(id){ q('#'+id).addEventListener('input',drawHire); }); drawHire(); }); safe(function(){ function drawPrice(){ var r=priceCalc({price:+q('#p_price').value||1, cost:+q('#p_cost').value||0, infl:+q('#p_infl').value||0}); q('#p_need').textContent='ยฃ'+r.need.toFixed(2); q('#p_inc').textContent='+'+r.inc.toFixed(1)+'%'; q('#p_mar').textContent=r.margin.toFixed(1)+'%'; q('#p_vol').textContent=r.volDrop.toFixed(1)+'%'; q('#p_out').textContent='Raise to ยฃ'+r.need.toFixed(2)+' and you protect margin even if you lose up to '+r.volDrop.toFixed(1)+'% of volume. Under-inflating your price silently donates profit.'; } ['p_price','p_cost','p_infl'].forEach(function(id){ q('#'+id).addEventListener('input',drawPrice); }); drawPrice(); }); safe(function(){ function drawTurn(){ var r=turnCalc({head:+q('#t_head').value||0, salary:+q('#t_sal').value||0, rate:+q('#t_rate').value||0, ramp:+q('#t_ramp').value||0}); q('#t_lv').textContent=r.leavers; q('#t_per').textContent=fmtGBP(r.per); q('#t_tot').textContent=fmtGBP(r.total); q('#t_save').textContent=fmtGBP(r.save); q('#t_out').textContent='Churn is costing about '+fmtGBP(r.total)+' a year โ€” '+r.pct.toFixed(1)+'% of payroll. Simple retention fixes typically cut a third of that.'; } ['t_head','t_sal','t_rate','t_ramp'].forEach(function(id){ q('#'+id).addEventListener('input',drawTurn); }); drawTurn(); }); safe(function(){ var mTimer=null, mTotal=0; var CAPS=[[50,'That\'s the coffee budgetโ€ฆ'],[200,'There goes the team lunch.'],[500,'A quarter\'s training budget, walking out the door.'],[1000,'You could have bought the new laptop.'],[Infinity,'Send this page to the chairperson. Gently.']]; function mDraw(){ q('#m_amt').textContent='ยฃ'+mTotal.toFixed(2); var c=null; for(var i=0;i0 && mTotal0) showToast('Meeting ended. That one cost ยฃ'+mTotal.toFixed(2)+'.'); }); q('#m_reset').addEventListener('click',function(){ clearInterval(mTimer); mTimer=null; mTotal=0; mDraw(); }); q('#m_share').addEventListener('click',function(){ var url=location.href.split('#')[0]+'#/tools'; function done(){ showToast('๐Ÿ”— Toolkit link copied โ€” share away!'); } if(navigator.clipboard) navigator.clipboard.writeText(url).then(done,done); else { var ta=document.createElement('textarea'); ta.value=url; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); ta.remove(); done(); } }); mDraw(); }); var GENS={ltd:genLtd, cash:genCash, ai:genAI, hire:genHire, price:genPrice, turn:genTurn}; Object.keys(GENS).forEach(function(id){ safe(function(){ q('#dl_'+id).addEventListener('click',function(){ var em=q('#dl_email_'+id).value.trim().toLowerCase(); if(!emailOK(em)) return showToast('Please enter a valid email to unlock the download.'); var unlocks=store.get('certax_unlocks',{}); if(unlocks[em] && unlocks[em]!==id){ q('#upsell_'+id).style.display='block'; return showToast('That email already unlocked its free tool โ€” book a free consult for the full toolkit.'); } var again = unlocks[em]===id; unlocks[em]=id; store.set('certax_unlocks',unlocks); var leads=store.get('certax_leads',[]); leads.push({email:em, tool:id, when:new Date().toISOString()}); store.set('certax_leads',leads); var blob=new Blob([GENS[id]()],{type:'text/html'}); var a=document.createElement('a'); a.href=URL.createObjectURL(blob); a.download='Certax-'+id+'-tool.html'; document.body.appendChild(a); a.click(); a.remove(); showToast(again ? 'Downloading your copy again โ€” no problem!' : '๐ŸŽ Downloaded! One tool per email โ€” the full toolkit comes with a free consult.'); }); }); }); } /* ================= views ================= */ function homeView(){ return '
Catford ยท Lewisham ยท SE London & UK-wide

Accountants who speak plain English, not jargon.

For 22 years Certax has helped the self-employed, landlords, startups and families of Catford & Lewisham keep more of what they earn โ€” in person or fully online, wherever you are.

โœ“ ACCA Regulatedโœ“ HMRC Registered Agentโœ“ Fixed-fee pricing
Accountant\'s desk overlooking the South East London skyline
๐Ÿ—“Free 20-minute
consultation โ€” no strings
๐Ÿงฎ7 free tools in the
Executive Toolkit
0Years in SE London
0Active clients
0% client retention
0Free executive tools
What we do

Every number looked after, from shoebox to strategy

Fixed fees agreed in writing before we start โ€” no surprise invoices, ever. See full services โ†’

'+svcGridHTML()+'
Certax Accounting office frontage on Catford Broadway, South East London
Your local firm

Rooted in Catford & Lewisham, working wherever you are

Founded on Catford Broadway in 2004, Certax has grown from a two-desk practice into a full-service chartered firm. We still believe the best advice happens over a proper conversation.

  • โœ“ Face-to-face in Catford or fully online โ€” your choice
  • โœ“ Same-day replies, a named accountant who knows your file
  • โœ“ Secure client portal for documents, deadlines and messages
  • โœ“ We handle the switch from your old accountant, for free
More about the firm
More than compliance

A practice built around you

๐Ÿงฎ Executive Toolkit

Seven free interactive tools: cash flow forecaster, AI scorecard, hire-vs-automate, pricing protector, turnover calculator and more.

Open the toolkit โ†’

๐Ÿ” Client portal & uploads

Register in a minute, upload documents straight to your accountant\'s desk, and watch your filing status update live.

Open the portal โ†’

๐ŸŽ Referral rewards

ยฃ75 fee credit per friend, ยฃ250 at three, ยฃ500 plus a free tax review at five. Good news should pay.

Get your referral code โ†’

๐ŸŽฌ Whiteboard videos

Hand-drawn explainers: Trust Fund Investment vs Saving, and Ltd vs Sole Trader โ€” on our Videos page.

Watch now โ†’
Tax insights ยท updated for 2026/27

Latest from the blog

'+postCardsHTML()+'
Client voices

Trusted from Catford to Leeds

'+testimonialsHTML()+'
Questions

Asked over the counter, answered here

'+faqHTML(HOME_FAQ)+'
'+ctaBandHTML('Ready when you are โ€” the kettle\'s on.','Book a free 20-minute consultation in our Catford office or on a video call. No obligation, no hard sell.')+'
'; } function servicesView(){ return '
Our services

Every number looked after, from shoebox to strategy

Fixed fees are agreed in writing before we start โ€” your exact quote is confirmed at your free consultation, and it never changes mid-engagement.

'+svcGridHTML()+'
How it works

From first call to filed, in four steps

1 ยท Free consult

20 minutes to understand you and quote a fixed fee in writing.

2 ยท Onboarding

Portal access, software setup and we collect files from your old accountant.

3 ยท Doing the work

Bookkeeping, filings and planning โ€” with live status in your portal.

4 ยท Planning ahead

Two tax-planning meetings a year so there are never January surprises.

'+ctaBandHTML('Not sure which service you need?','That\'s exactly what the free 20-minute consultation is for. Bring last year\'s return and we\'ll point out the levers.')+'
'; } function aboutView(){ return '
About us

A Catford practice with national reach

Chartered accountants, registered agents, and โ€” if our clients are to be believed โ€” decent tea makers.

Daniel Carter, founding partner, in the Catford office
Our story

Two desks in 2004. Four hundred eighty clients laterโ€ฆ

Daniel Carter opened Certax above a bakery on Catford Broadway with one client and a borrowed laptop. The bakery is still there; so is our habit of treating every client like the first.

Today the team spans personal tax, bookkeeping, payroll and advisory, serving tradespeople, landlords, startups and families across Catford, Lewisham, Greenwich, Bromley, Bexley and Dartford โ€” and fully remote clients across the whole UK.

  • โœ“ Plain English, always โ€” jargon left at the door
  • โœ“ Fixed fees agreed in writing before any work starts
  • โœ“ Local at heart, cloud-first by design
The team

The people behind the portal

Daniel Carter FCA

Founding partner. Personal tax, landlords and inheritance planning. Still answers the phone on Saturdays.

Michelle Osei ACCA

Tax partner. Corporation tax strategist and HMRC enquiry shield for our limited companies.

Tom Radcliffe

Bookkeeping & MTD lead. Xero-certified; turns shoeboxes into dashboards.

Sofia Marchetti

Payroll & CIS manager. 1,400 payslips a month and never a late submission.

The Certax team collaborating in the office
'+ctaBandHTML('Come and meet us','The free 20-minute consultation is the whole interview โ€” and you\'re the one doing the hiring.')+'
'; } function portalView(){ return '
Client portal

Your paperwork, progress and passwords โ€” in one safe place

Register in under a minute. Existing clients sign in to upload documents and track filings live.

๐Ÿ“ค

Upload documents securely

Bank statements, P60s, receipts โ€” encrypted in transit and at rest, straight to your accountant\'s desk.

โฑ

Live filing status

See exactly where your return is โ€” received, in review, filed to HMRC โ€” without emailing us.

๐Ÿงพ

Invoices & fee transparency

Every invoice and your fixed-fee agreement, downloadable any time.

๐Ÿ”’

Bank-grade security

256-bit encryption, UK-hosted servers and full GDPR compliance. Your data never leaves the UK.

๐ŸŽ

Referral rewards built in

Grab your personal code from the referrals page and earn ยฃ75 per friend.

By registering you agree to our terms and privacy policy.

'+ctaBandHTML('Prefer to talk it through?','Book a free 20-minute consultation and we\'ll set your portal up together over a cup of tea.')+'
'; } function referralsView(){ return '
Refer a friend

Good news travels fast.
Get rewarded when it does.

Know someone drowning in receipts in Bromley, or a mate in Dartford who just went self-employed? Refer them and you both benefit the moment they become a client.

  1. 1Generate your code โ€” one click, uniquely yours.
  2. 2Share it โ€” WhatsApp, email or over the garden fence.
  3. 3Get credited โ€” ยฃ75 off as soon as they sign and pay their first invoice.
ยฃ75fee credit per successful referral
ยฃ250bonus at 3 referrals in a year
ยฃ500+ free tax review at 5 referrals

Generate your personal referral link

We track everything automatically โ€” you just share.

Your code
โ€”
'+ctaBandHTML('Questions about the scheme?','The small print lives in our terms & conditions โ€” and the big print lives in your next invoice credit.')+'
'; } function bookView(){ return '
Book an appointment

Pick a time that suits you

Your first 20-minute consultation is completely free, in person in Catford or on a video call. No obligation, no hard sell.

Month

Weekends closed ยท Evening slots on Thursdays by request.

1 ยท Appointment type

2 ยท Choose a day & time

Select a date on the calendar first.

3 ยท Your details

'; } function insightsView(){ return '
Tax insights

Plain-English guides to every new tax change

Updated the moment HMRC or the Treasury moves โ€” written for humans, optimised for search, free forever.

'+postCardsHTML()+'

๐Ÿ“ฌ Never miss a change again

One short email a month when the rules move. No spam, ever.

'; } function articleView(id){ var p = null; for(var i=0;i
Home โ€บ Tax Insights โ€บ '+p.tag+'
'+p.title+'
'+p.tag+''+p.date+'ยท'+p.read+'

'+p.title+'

'+p.body.map(function(b){ return (b.h ? '

'+b.h+'

' : '') + (b.p ? '

'+b.p+'

' : ''); }).join('')+'

Want this applied to your numbers?

Bring your situation to a free 20-minute consultation โ€” we\'ll show you exactly where the levers are.

Book free consult

Keep reading

'+related.map(function(r){ return ''; }).join('')+'
'; } var JOBS = [ {id:'tax-manager', t:'Senior Tax Manager', dept:'Tax & Advisory', type:'Full-time', loc:'Catford / Hybrid', sal:'ยฃ55,000 โ€“ ยฃ68,000 + bonus', blurb:'Lead our personal tax team of four, own our landlord and HNW portfolio, and shape the advisory offering.', duties:['Review and sign off personal tax and trust returns','Lead HMRC enquiries and disclosures','Mentor two semi-seniors through ATT/CTA','Run two client planning meetings per year'], reqs:['CTA or ACCA qualified, 5+ years in practice','Strong landlord / property tax experience','Confident with Xero, FreeAgent and CCH','Plain-English communicator (our house style)']}, {id:'bookkeeper', t:'Bookkeeper & MTD Specialist', dept:'Client Services', type:'Full-time or Part-time', loc:'Catford / Hybrid', sal:'ยฃ30,000 โ€“ ยฃ38,000 pro rata', blurb:'Own a portfolio of 60 MTD clients and be the person who makes quarterly updates a non-event.', duties:['Run cloud bookkeeping in Xero & FreeAgent','Submit quarterly MTD updates on time','Onboard new clients onto digital capture','Chase (politely) and reconcile'], reqs:['2+ years bookkeeping in practice','Xero or FreeAgent certification','AAT level 3+ preferred','Patience of a saint with receipt chasers']}, {id:'trainee', t:'Trainee Accountant (AAT/ACCA)', dept:'Mixed', type:'Full-time', loc:'Catford', sal:'ยฃ24,000 โ€“ ยฃ28,000 + full study support', blurb:'Learn the whole craft โ€” accounts, tax, payroll and client calls โ€” with paid study leave and a mentor.', duties:['Assist on accounts prep and tax returns','Learn payroll runs under Sofia','Shadow client meetings from month one','Keep the portal queues tidy'], reqs:['AAT level 2 or ACCA part-qualified (or keen to start)','Genuine curiosity and tidy working papers','Friendly on the phone','Lives within a reasonable commute โ€” the bakery helps']}, {id:'payroll', t:'Payroll Administrator', dept:'Payroll & CIS', type:'Part-time (3 days)', loc:'Hybrid', sal:'ยฃ28,000 โ€“ ยฃ33,000 pro rata', blurb:'Run 40 payrolls (1,400 payslips) with Sofia, plus CIS returns for our contractor clients.', duties:['End-to-end RTI payroll runs','Pensions auto-enrolment compliance','CIS verifications and returns','Holiday-pay and leaver calculations'], reqs:['3+ years payroll bureau or practice experience','Confident with BrightPay or Sage','Detail-obsessed in the best way','CIS experience a bonus']}, {id:'coordinator', t:'Client Coordinator & Reception', dept:'Front of house', type:'Full-time', loc:'Catford', sal:'ยฃ23,000 โ€“ ยฃ26,000', blurb:'The first smile every client sees. Own the diary, the phones and the tea rota.', duties:['Manage consultation bookings and diaries','Welcome clients and visitors','Keep the CRM and portal invites up to date','Order supplies (tea included)'], reqs:['Warm, organised, unflappable','Great written English','Confident with basic software','Bonus points if you water the plants without being asked']} ]; function careersView(){ return '
Careers

Do the best work of your career โ€” and still make the school run

Hybrid working, paid study support, and a firm that closes at 5:30 because planning beats panic.

The Certax team at work
๐ŸŽ“

Study support

Full AAT/ACCA/CTA fees paid, paid study leave and a mentor who\'s been through it.

๐Ÿก

Real hybrid

2โ€“3 office days that actually mean something; the rest is yours.

๐ŸŽ

Bonus & birthday off

Annual performance bonus plus your birthday as a proper holiday.

๐Ÿง“

Pension

5% employer contribution from day one, rising with tenure.

โค๏ธ

Health

Private medical after probation and an annual health check.

๐ŸŽ‰

Team life

Quarterly team lunches, summer away-day, and the legendary Christmas quiz.

Open roles

Current vacancies

Nothing right now that fits? Send a speculative application below โ€” we always read them.

'+JOBS.map(function(j){ return '

'+j.blurb+'

You\'ll own
    '+j.duties.map(function(x){return '
  • '+x+'
  • ';}).join('')+'
You\'ll bring
    '+j.reqs.map(function(x){return '
  • '+x+'
  • ';}).join('')+'
'; }).join('')+'
Apply

One form, five minutes, a human reply within two working days

No covering-letter theatre required. Tell us who you are, attach your CV if you have one, and Daniel or Michelle will come back to you personally.

  • โœ“ Interview process: one chat, one paid half-day trial
  • โœ“ We reply to every applicant โ€” always
  • โœ“ Your application is handled under our privacy policy
'; } function contactView(){ return '
Contact

Say hello โ€” we reply the same day

Pop in for a tea in Catford, call, email, or send the form. Whatever suits.

๐Ÿ“
Visit
Suite 4, 12 Catford Broadway, London SE6 4SU ยท near Catford station
๐Ÿ“ž
Call
020 7946 0810 Monโ€“Fri 9:00โ€“17:30 ยท Thu until 19:00
โœ‰๏ธ
๐Ÿš‡
Areas we cover
Catford ยท Lewisham ยท Greenwich ยท Bromley ยท Bexley ยท Dartford ยท Southwark ยท Croydon โ€” and all UK remotely
Certax office on Catford Broadway

Send us a message

We answer every message the same working day. See our privacy policy.

'; } function legalShell(title, inner){ return '
'; } function termsView(){ return legalShell('Terms & Conditions','

1. Who we are

Certax Accounting Ltd ("we", "us") is a firm of chartered accountants registered in England & Wales, regulated by the ACCA, with registered office at Suite 4, 12 Catford Broadway, London SE6 4SU.

2. Our engagement

Each piece of work is confirmed in a written engagement letter which sets out scope, responsibilities and the fixed fee.

3. Fees and payment

  • Fees are fixed and agreed in writing before work begins.
  • Invoices are payable within 14 days unless stated otherwise.
  • Referral credits apply once the referred client\'s first invoice is paid.
  • Free consultations and free tools carry no fee and no obligation.

4. Free tools

Each email address may unlock one free downloadable tool. The complete toolkit is provided with a free consultation. Tools are general illustrations, not personal advice.

5. Liability

Nothing limits liability for fraud. Subject to that, our aggregate liability is limited to three times the fees paid for the relevant engagement.

6. Client portal

You are responsible for keeping login credentials confidential.

7. Data protection

See our privacy policy.

8. Complaints

See our complaints procedure.

9. Governing law

These terms are governed by the laws of England and Wales.

'); } function privacyView(){ return legalShell('Privacy Policy','

1. Data we collect

  • Identity & contact data
  • Financial data needed to provide our services
  • Portal usage data and uploaded documents
  • Recruitment data
  • Emails submitted to unlock free tools or updates

2. Lawful bases

Contract, legal obligation, and legitimate interest in running our practice.

3. Sharing

Only with HMRC/Companies House as your agent, regulated UK/EEA providers, and advisers where law requires. We never sell data.

4. Retention

Client records 7 years; unsuccessful applications 6 months.

5. Your rights

Access, correction, deletion, restriction, portability, objection; complaint to the ICO.

6. Security

256-bit encryption, UK hosting, role-based access.

'); } function cookiesView(){ return legalShell('Cookie Policy','

What we store

Local storage only, strictly for features. No advertising or cross-site tracking.

  • certax_user โ€” portal session.
  • certax_docs_โ€ฆ โ€” document list.
  • certax_appts โ€” bookings.
  • certax_unlocks โ€” which free tool each email unlocked.
  • certax_leads โ€” tool-download emails.

Managing storage

Clear via browser settings at any time.

Analytics

Cookieless, aggregated page counts only.

'); } function complaintsView(){ return legalShell('Complaints Procedure','

We aim to get it right โ€” and to put it right quickly.

  1. Talk to your named accountant. Most concerns resolve within 48 hours.
  2. Escalate to the principal. Write to Daniel Carter or complaints@certaxaccounting.co.uk. Acknowledged in 2 working days, resolved within 10.
  3. Independent review. After 8 weeks unresolved, refer to our ombudsman scheme or the ACCA.

What we promise

A named handler, written updates, a full file review, and an apology where we got it wrong.

'); } function accessView(){ return legalShell('Accessibility Statement','

Our commitment

WCAG 2.2 AA across this website and our Catford office.

What we\'ve built in

  • Keyboard navigation and visible focus
  • Semantic headings and ARIA labels
  • AA contrast
  • Text resizable to 200%
  • Labelled forms with clear errors

Need another format?

Call 020 7946 0810.

'); } function sitemapView(){ return '
Sitemap

Every page, one click away

A complete index of the site โ€” handy for humans and for search engines alike.

'; } function notFoundView(){ return '
๐Ÿงญ

Page not found

That page seems to have gone the way of paper tax discs. Try one of these instead:

'; } /* ================= router ================= */ var ROUTES = { '/': {t:'Certax Accounting | Chartered Accountants Catford & Lewisham โ€” Home', v:homeView, i:homeInit}, '/about': {t:'About Us | Certax Accounting, Catford & Lewisham', v:aboutView}, '/services': {t:'Services | Certax Accounting, Catford & Lewisham', v:servicesView}, '/portal': {t:'Client Portal โ€” Register, Sign In & Upload | Certax Accounting', v:portalView, i:portalInit}, '/referrals': {t:'Referral Rewards โ€” ยฃ75 per Friend | Certax Accounting', v:referralsView, i:referralsInit}, '/book': {t:'Book an Appointment โ€” Free 20-Minute Consultation | Certax Accounting', v:bookView, i:bookInit}, '/videos': {t:'Whiteboard Videos | Certax Accounting', v:videosView, i:videosInit}, '/tools': {t:'Free Executive Toolkit โ€” 7 Interactive Tools | Certax Accounting', v:toolsView, i:toolsInit}, '/insights': {t:'Tax Insights Blog 2026/27 | Certax Accounting', v:insightsView, i:insightsInit}, '/careers': {t:'Careers โ€” Join Our Catford Team | Certax Accounting', v:careersView, i:careersInit}, '/contact': {t:'Contact Us | Certax Accounting, Catford SE6', v:contactView, i:contactInit}, '/terms': {t:'Terms & Conditions | Certax Accounting', v:termsView}, '/privacy': {t:'Privacy Policy | Certax Accounting', v:privacyView}, '/cookies': {t:'Cookie Policy | Certax Accounting', v:cookiesView}, '/complaints': {t:'Complaints Procedure | Certax Accounting', v:complaintsView}, '/accessibility': {t:'Accessibility Statement | Certax Accounting', v:accessView}, '/sitemap': {t:'Sitemap | Certax Accounting', v:sitemapView}, '/404': {t:'Page Not Found | Certax Accounting', v:notFoundView} }; var currentRoute = null; function resolveRoute(path){ if(path.indexOf('/insights/')===0){ var id = path.slice(10); var post = null; for(var i=0;i

Back to home

'; } document.title = r.t; window.scrollTo({top:0}); qa('#navLinks a').forEach(function(a){ a.classList.toggle('active', a.dataset.nav === path || (path.indexOf('/insights')===0 && a.dataset.nav === '/insights')); }); q('#navLinks').classList.remove('open'); attachReveals(); if(r.i) safe(r.i); try { if(location.hash !== '#' + path) location.hash = '#' + path; } catch(err){} } document.addEventListener('click', function(e){ var anchor = e.target.closest('a[href^="#/"]'); if(anchor){ e.preventDefault(); go(anchor.getAttribute('href').slice(1)); return; } var qBtn = e.target.closest('.qa .q'); if(qBtn){ var item = qBtn.parentElement, open = item.classList.contains('open'); qa('.qa').forEach(function(x){ x.classList.remove('open'); x.querySelector('.a').style.maxHeight = null; }); if(!open){ item.classList.add('open'); var a = item.querySelector('.a'); a.style.maxHeight = a.scrollHeight + 'px'; } return; } var jh = e.target.closest('.jobhead'); if(jh){ var job = jh.parentElement, open2 = job.classList.contains('open'); qa('.job').forEach(function(x){ x.classList.remove('open'); x.querySelector('.jobbody').style.maxHeight = null; }); if(!open2){ job.classList.add('open'); var b = job.querySelector('.jobbody'); b.style.maxHeight = b.scrollHeight + 'px'; } } }); window.addEventListener('hashchange', function(){ var p = currentPath(); if(p !== currentRoute) go(p); }); window.addEventListener('popstate', function(){ var p = currentPath(); if(p !== currentRoute) go(p); }); function currentPath(){ var h = location.hash.slice(1) || '/'; if(h.charAt(0) !== '/') h = '/' + h; return h.split('?')[0]; } /* ================= self-check (runs AFTER first render, can never blank the site) ================= */ function selfCheck(){ var results = []; Object.keys(ROUTES).forEach(function(path){ try { var html = ROUTES[path].v(); results.push({page:path, renders: !!(html && html.length > 100), chars: html.length}); } catch(err){ results.push({page:path, renders:false, chars:0, error:String(err)}); } }); POSTS.forEach(function(p){ try { results.push({page:'/insights/'+p.id, renders: articleView(p.id).length > 100, chars:1}); } catch(err){ results.push({page:'/insights/'+p.id, renders:false, error:String(err)}); } }); try { results.push({page:'videos', renders: VIDEO_A.scenes.length===7 && VIDEO_B.scenes.length===7, chars:14}); } catch(err){ results.push({page:'videos', renders:false, error:String(err)}); } [['genLtd',genLtd],['genCash',genCash],['genAI',genAI],['genHire',genHire],['genPrice',genPrice],['genTurn',genTurn]].forEach(function(pair){ try { var out = pair[1](); results.push({page:'download:'+pair[0], renders: out.indexOf('') !== -1 && out.indexOf('