Escribe tu sueldo bruto, el que dice tu contrato antes de descuentos, y la calculadora te dice cuánto cobras de verdad en 2026: le resta el ISR, con el subsidio para el empleo si ganas poco, y las cuotas del IMSS que paga el trabajador. Todo se calcula en tu navegador: no se envía nada.
Es una estimación para hacer cuentas, no asesoría fiscal ni laboral. Supone un sueldo fijo, sin horas extra, comisiones, vales ni otras percepciones, y sin descuentos como el crédito Infonavit, Fonacot o pensión alimenticia. Si no escribes tu salario base de cotización, se estima con las prestaciones mínimas de ley. Tu recibo de nómina (CFDI) trae las cifras exactas.
Cómo se calcula el sueldo neto
- Sueldo neto = sueldo bruto − ISR retenido − cuotas del IMSS. Con $18,000 al mes: $18,000 − $1,956.45 − $488.32 = $15,555.23.
- ISR: se aplica la tarifa mensual del artículo 96 de la Ley del ISR. Se busca el renglón en el que cae el sueldo, se resta su límite inferior, al excedente se le aplica el porcentaje y se suma la cuota fija. Con $18,000: el renglón empieza en $17,533.65, el excedente de $466.35 por 21.36 % da $99.61, y con la cuota fija de $1,856.84 el ISR queda en $1,956.45.
- Nómina quincenal, semanal o diaria: el sueldo se lleva a un mes de 30.4 días, se calcula el ISR del mes y se toma la parte de los días pagados. Es lo mismo que hacen las tarifas quincenal, semanal y diaria del Anexo 8, que salen de dividir la mensual.
- Subsidio para el empleo: si el ingreso del mes no pasa de $11,492.66, el patrón resta del ISR hasta $535.65 al mes, el 15.02 % de la UMA mensual. En periodos más cortos, la parte proporcional de los días pagados. Solo reduce el ISR: si el subsidio es mayor, la diferencia no se entrega en efectivo ni pasa a otro mes.
- Cuotas del IMSS: se calculan sobre el salario base de cotización (SBC), que suma al salario diario la parte proporcional del aguinaldo y la prima vacacional. Con las prestaciones mínimas de ley y un año de antigüedad, el factor es 1.0493: $600 diarios × 1.0493 = $629.59. Si tu empresa da más prestaciones, tu SBC es mayor: lo puedes ver en tu recibo o en la app del IMSS y escribirlo.
Las cuotas del IMSS que paga el trabajador
- Enfermedad y maternidad: 0.40 % de lo que el SBC pase de 3 UMA ($351.93 diarios en 2026), y 0.25 % de todo el SBC por prestaciones en dinero.
- Gastos médicos de pensionados: 0.375 % del SBC.
- Invalidez y vida: 0.625 % del SBC.
- Cesantía en edad avanzada y vejez: 1.125 % del SBC. Va a tu cuenta de ahorro para el retiro (Afore). La reforma de 2020 sube cada año la parte del patrón, no la del trabajador.
- Cuántos días: las cuotas se pagan por días. La calculadora usa 30.4 para un mes, el promedio del año, y los días exactos de la quincena, la semana o el día.
- Salario mínimo: quien gana el mínimo no paga cuotas: las cubre el patrón (artículo 36 de la Ley del Seguro Social). En 2026, $315.04 diarios en general y $440.87 en la zona libre de la frontera norte.
- Tope: el SBC llega como mucho a 25 UMA, $2,932.75 diarios en 2026.
Calcular el sueldo neto en Python
Con Decimal, para que los centavos salgan exactos:
from decimal import Decimal as D, ROUND_HALF_UP
UMA = D("117.31") # 2026, diaria
UMA_MENSUAL = D("3566.22")
SUBSIDIO = D("0.1502") # 15.02 % de la UMA mensual, de febrero a diciembre de 2026
TOPE_SUBSIDIO = D("11492.66")
# Tarifa mensual del ISR de 2026 (Anexo 8 de la RMF): límite inferior, cuota fija, % sobre el excedente
TARIFA = [("0.01", "0.00", "1.92"), ("844.60", "16.22", "6.40"), ("7168.52", "420.95", "10.88"),
("12598.03", "1011.68", "16.00"), ("14644.65", "1339.14", "17.92"), ("17533.65", "1856.84", "21.36"),
("35362.84", "5665.16", "23.52"), ("55736.69", "10457.09", "30.00"), ("106410.51", "25659.23", "32.00"),
("141880.67", "37009.69", "34.00"), ("425642.00", "133488.54", "35.00")]
TARIFA = [tuple(map(D, fila)) for fila in TARIFA]
# Cuotas obreras del IMSS: (ramo, tasa, ¿solo sobre lo que pasa de 3 UMA?)
IMSS = [("Enfermedad y maternidad (excedente)", D("0.0040"), True),
("Prestaciones en dinero", D("0.0025"), False),
("Gastos médicos de pensionados", D("0.00375"), False),
("Invalidez y vida", D("0.00625"), False),
("Cesantía y vejez", D("0.01125"), False)]
DIAS = {"mensual": (30, D("30.4")), "quincenal": (15, D(15)), "semanal": (7, D(7)), "diario": (1, D(1))}
def al_centavo(x):
return x.quantize(D("0.01"), ROUND_HALF_UP)
def isr_mensual(base):
if base <= 0:
return D(0)
li, cuota, pct = [f for f in TARIFA if base >= f[0]][-1]
return cuota + al_centavo((base - li) * pct / 100)
def dias_vacaciones(anios):
return 10 + 2 * anios if anios <= 5 else 20 + 2 * -(-(anios - 5) // 5)
def sueldo_neto(sueldo, periodo="mensual", anios=1, minimo=D("315.04"), sbc=None):
sueldo = D(str(sueldo))
dias, cotizados = DIAS[periodo]
diario = al_centavo(sueldo / dias)
# ISR: la tarifa mensual sobre el sueldo del mes (o el del periodo llevado a 30.4 días)
mensual = sueldo if periodo == "mensual" else al_centavo(sueldo * D("30.4") / dias)
isr = isr_mensual(mensual)
if periodo != "mensual":
isr = al_centavo(isr * dias / D("30.4"))
subsidio = D(0)
if mensual <= TOPE_SUBSIDIO:
subsidio = al_centavo(UMA_MENSUAL * SUBSIDIO)
if periodo != "mensual":
subsidio = al_centavo(subsidio * dias / D("30.4"))
isr_retenido = isr - min(subsidio, isr) # el subsidio solo reduce el ISR
# Salario base de cotización: con aguinaldo de 15 días y prima vacacional del 25 %
if sbc is None:
sbc = al_centavo(diario * (365 + 15 + dias_vacaciones(anios) * D("0.25")) / 365)
sbc = min(D(str(sbc)), 25 * UMA)
cuotas = {}
for ramo, tasa, excedente in IMSS:
base = max(sbc - 3 * UMA, D(0)) if excedente else sbc
cuotas[ramo] = D(0) if diario <= minimo else al_centavo(base * cotizados * tasa)
neto = sueldo - isr_retenido - sum(cuotas.values())
return {"isr": isr, "isr_retenido": isr_retenido, "sbc": sbc, **cuotas, "neto": neto}
for clave, valor in sueldo_neto("18000").items():
print(f"{clave:36} {valor:>10,.2f}")
print()
print(sueldo_neto("9000", "quincenal")["neto"]) # quincena de $9,000
print(sueldo_neto("10000")["isr_retenido"]) # con subsidio para el empleo$ python3 sueldo.pyisr 1,956.45 isr_retenido 1,956.45 sbc 629.59 Enfermedad y maternidad (excedente) 33.76 Prestaciones en dinero 47.85 Gastos médicos de pensionados 71.77 Invalidez y vida 119.62 Cesantía y vejez 215.32 neto 15,555.23 7768.41 193.37
Para tu aguinaldo de diciembre, usa la calculadora de aguinaldo, y si dejas tu trabajo, la de finiquito y liquidación. Otras herramientas para México: la calculadora de IVA, calcular el RFC y los validadores de RFC, CURP y NSS. Todas, en decodigo.com/herramientas.
ISR: Ley del ISR, artículo 96; tarifa mensual de 2026: Anexo 8 de la RMF 2026 (DOF del 28 de diciembre de 2025). Subsidio para el empleo: decreto que modifica el que otorga el subsidio para el empleo, DOF del 31 de diciembre de 2025: 15.02 % de la UMA mensual (15.59 % solo en enero) para ingresos de hasta $11,492.66; los considerandos estiman $536.22, pero con la UMA publicada por el INEGI el resultado es $535.65. Que el remanente no se entrega ni se acredita después, en el decreto de mayo de 2024, según el resumen de KPMG. Cuotas obreras: Ley del Seguro Social, artículos 25, 28, 36, 106, 107, 147 y 168. Aguinaldo y vacaciones para el SBC: Ley Federal del Trabajo, artículos 76, 80 y 87. UMA 2026 ($117.31 diarios y $3,566.22 mensuales): INEGI, en vigor desde el 1 de febrero. La herramienta y la función de Python se compararon en 30,000 cálculos al azar, con sueldos, periodos, antigüedades y zonas distintos: coinciden al centavo en todos.