(function(){
var ISR=[[0.01,8952.49,0,1.92],[8952.50,75984.55,171.88,6.40],[75984.56,133536.07,4461.94,10.88],[133536.08,155229.80,10723.55,16.00],[155229.81,185852.57,14194.54,17.92],[185852.58,374837.88,19682.13,21.36],[374837.89,590795.99,60049.40,23.52],[590796.00,1127926.84,110842.74,30.00],[1127926.85,1503902.46,271981.99,32.00],[1503902.47,4511707.37,392294.17,34.00],[4511707.38,1e15,1414947.85,35.00]];
var SUBL=11492.66,SUB=6427.8,TOPE=206588.10;
var reg=’sueldos’,pd=null;
var H1={sueldos:’Trabajadores con relación laboral. El ISR te lo retiene tu empleador mes a mes.’,actividad:’Personas físicas con actividad empresarial. Ingresos menos gastos autorizados con CFDI 4.0.’,honorarios:’Profesionistas independientes. Tus clientes te retienen 10% de ISR por honorarios facturados.’};
var H2={sueldos:’Total percepciones gravadas 2025. En tu constancia de retenciones.’,actividad:’Total ingresos facturados y cobrados durante 2025.’,honorarios:’Total honorarios facturados y cobrados durante 2025.’};
var LBL={sueldos:’Sueldos y salarios’,actividad:’Actividad empresarial’,honorarios:’Servicios profesionales’};
function g(id){return document.getElementById(id);}
function t(id,v){var e=g(id);if(e)e.textContent=v;}
function V(id){var e=g(id);if(!e)return 0;var v=parseFloat(e.value);return isNaN(v)||v<0?0:v;}
function on(id,fn){var e=g(id);if(e)e.addEventListener('click',fn);}
function step(s1,s2,s3){
var sc=function(id,c){var e=g(id);if(e)e.className='algr-st'+(c?' '+c:'');};
var sl=function(id,d){var e=g(id);if(e)e.className='algr-ln'+(d?' done':'');};
sc('algr-s1',s1);sc('algr-s2',s2);sc('algr-s3',s3);
sl('algr-l1',s2==='on'||s2==='done'||s3==='on'||s3==='done');
sl('algr-l2',s3==='on'||s3==='done');
}
function setReg(r){
reg=r;
var ids=['rs','ra','rh'],regs=['sueldos','actividad','honorarios'];
for(var i=0;i<ids.length;i++){var b=g('algr-'+ids[i]);if(b)b.className='algr-rb'+(regs[i]===r?' on':'');}
t('algr-rhint',H1[r]);t('algr-ihint',H2[r]);
var dw=g('algr-daw');if(dw)dw.style.display=(r==='actividad'||r==='honorarios')?'block':'none';
}
function goCalc(){
var el=g('algr-ii');var v=V('algr-ii');
if(v<1){if(el){el.classList.add('err');el.focus();}alert('Ingresa tus ingresos anuales brutos para continuar.');return;}
if(el)el.classList.remove('err');
pd={ing:v,ret:V('algr-ir'),da:V('algr-ida'),dm:V('algr-im'),ds:V('algr-is'),dc:V('algr-ic'),dh:V('algr-ih'),df:V('algr-iaf'),dd:V('algr-id'),reg:reg};
g('algr-p0').style.display='none';
g('algr-p1').className='algr-p1 show';
step('done','on','');window.scrollTo(0,0);
}
function submitHS(nom,em,tel,cb){
var xhr=new XMLHttpRequest();
xhr.open('POST','https://api.hsforms.com/submissions/v3/integration/submit/6180490/a03496be-f434-48ae-86fa-01759a412e67',true);
xhr.setRequestHeader('Content-Type','application/json');
xhr.timeout=6000;
xhr.onload=function(){cb();};xhr.onerror=function(){cb();};xhr.ontimeout=function(){cb();};
var fields=[{name:'firstname',value:nom},{name:'email',value:em}];
if(tel)fields.push({name:'phone',value:tel});
xhr.send(JSON.stringify({fields:fields,context:{pageUri:window.location.href,pageName:document.title}}));
}
function submitForm(){
var fnEl=g('algr-fn'),feEl=g('algr-fe'),ftEl=g('algr-ft');
var nom=(fnEl.value||'').trim(),em=(feEl.value||'').trim(),tel=(ftEl?ftEl.value:'').trim();
var ok=true;
if(nom.length<2){fnEl.classList.add('err');g('algr-en').style.display='block';ok=false;}
else{fnEl.classList.remove('err');g('algr-en').style.display='none';}
var re=/^[^s@]+@[^s@]+.[^s@]+$/;
if(!re.test(em)){feEl.classList.add('err');g('algr-ee').style.display='block';ok=false;}
else{feEl.classList.remove('err');g('algr-ee').style.display='none';}
if(!ok)return;
var btn=g('algr-fsb'),sp=g('algr-sp'),bt=g('algr-fbt');
btn.disabled=true;sp.style.display='inline-block';bt.textContent='Enviando…';
submitHS(nom,em,tel,function(){
btn.disabled=false;sp.style.display='none';bt.textContent='Ver mi resultado →';
g('algr-fw').style.display='none';
g('algr-ok').style.display='block';
});
}
function f2(n){return '$'+Number(n).toLocaleString('es-MX',{minimumFractionDigits:2,maximumFractionDigits:2});}
function f0(n){return '$'+Number(n).toLocaleString('es-MX',{minimumFractionDigits:0,maximumFractionDigits:0});}
function desglose(){
if(!pd)return;
var d=pd,esS=(d.reg==='sueldos');
var conT=d.dm+d.ds+d.dc+d.dh,sinT=d.df+d.dd;
var tope=Math.min(d.ing*0.15,TOPE),top=Math.min(conT,tope),exc=Math.max(0,conT-tope),dtot=top+sinT;
var base=esS?Math.max(0,d.ing-dtot):Math.max(0,d.ing-d.da-dtot);
var br=null,idx=-1;
for(var i=0;i=(ISR[i][0]-.005)&&base<=(ISR[i][1]+.005)){br=ISR[i];idx=i;break;}}
var isrA=0,cf=0,rate=0,marg=0;
if(br){cf=br[2];rate=br[3];marg=(base-br[0])*(rate/100);isrA=Math.max(0,cf+marg);}
var sub=0;if(esS&&d.ing/120,abs=Math.abs(saldo);
var via,viaT,viaD;
if(fav){
if(saldo<=10000){via='Devolución automática';viaT='Con contraseña SAT';viaD='Saldos hasta $10,000 MXN: contraseña SAT y CLABE a tu nombre. Depósito: 3–5 días hábiles.';}
else if(saldo0)rows.push([‘Deducciones autorizadas del negocio’,’-‘+f2(d.da)]);
if(conT>0){rows.push([‘Deducciones personales (sujetas a tope)’,f2(conT)]);if(exc>0)rows.push([‘Exceso sobre tope (no deducible)’,’-‘+f2(exc)]);rows.push([‘Deducciones personales aplicadas’,f2(top)]);}
if(sinT>0)rows.push([‘AFORE y donativos (sin tope)’,f2(sinT)]);
if(dtot>0)rows.push([‘Total deducciones’,’-‘+f2(dtot)]);
rows.push([‘Base gravable ISR’,f2(base)]);
if(br){rows.push([‘Tasa marginal del tramo’,rate.toFixed(2)+’%’]);rows.push([‘Cuota fija del tramo’,f2(cf)]);rows.push([‘Impuesto marginal’,f2(marg)]);}
rows.push([‘ISR del ejercicio (art. 152 LISR)’,f2(isrA)]);
if(sub>0)rows.push([‘Subsidio al empleo (art. 97 LISR)’,’-‘+f2(sub)]);
rows.push([‘ISR anual a cargo’,f2(neto)],[‘ISR retenido en 2025’,f2(d.ret)]);
var html=»;
for(var j=0;j<rows.length;j++)html+='
‘+rows[j][0]+’‘+rows[j][1]+’
‘;
html+=’
‘+(fav?’Saldo a favor — el SAT te debe’:’Saldo a cargo — debes al SAT’)+’‘+f2(abs)+’
‘;
g(‘algr-obd’).innerHTML=html;
g(‘algr-vb’).className=’algr-via’+(fav?»:’ neg’);
t(‘algr-ovl’,fav?’Vía de devolución recomendada’:’Qué hacer’);t(‘algr-ovt’,viaT);t(‘algr-ovd’,viaD);
var tb=g(‘algr-otbl’);tb.innerHTML=»;
for(var k=0;k<ISR.length;k++){
var tr=document.createElement('tr');
tr.innerHTML='
Descarga gratis la Guía de Facturación Electrónica 2026 para que tu negocio cumpla con el SAT
Gracias por compartirnos tus datos
Haz clic en el botón para descargar la guía. Entérate sobre los cambios fiscales del SAT, tips contables y mucho más en nuestro Instagram @AlegraMexico