Con los datos que te da tu empresa, esta calculadora de PTU te dice cuánto te toca de reparto de utilidades (PTU): la parte por los días que trabajaste, la parte por tu salario, el tope de tres meses de salario que puso la reforma de 2021, cuánto está exento y cuánto ISR te pueden retener. Si no conoces los datos de la empresa, te dice el máximo que te pueden pagar y qué pedir. Todo se calcula en tu navegador: no se envía nada.
Es una ayuda para hacer cuentas, no asesoría laboral ni fiscal. Calcula la PTU de las utilidades de 2026, que se paga en mayo y junio de 2027. La parte exenta y el ISR usan la UMA y la tarifa de 2026, porque las de 2027 todavía no se publican: la UMA nueva entra en vigor el 1 de febrero de 2027 y la cifra cambiará un poco. El ISR es una estimación: toma como sueldo del mes tu salario diario × 30.4, sin el subsidio para el empleo ni otros ingresos. Si tu empresa no te paga o no te da los datos, puedes pedir asesoría gratuita en la Procuraduría Federal de la Defensa del Trabajo (PROFEDET).
Cómo se calcula tu parte
La empresa reparte el 10 % de su renta gravable, una cifra que sale de su declaración anual de impuestos. Ese monto se divide en dos mitades iguales (artículo 123 de la Ley Federal del Trabajo):
- Mitad por días trabajados: se divide entre la suma de los días que trabajaron todos los que tienen derecho, y sale un factor por día. Tu parte es ese factor × tus días. Con $1,250,000 a repartir y 36,500 días en total, el factor es de $17.123288 por día, y con 365 días te tocan $6,250.
- Mitad por salarios: se divide entre la suma de los salarios del año de todos, y tu parte es ese factor × tu salario del año. Con $25,550,000 de salarios y $650 diarios × 365 días = $237,250, te tocan $5,803.57.
- Qué salario cuenta: solo la cuota diaria en efectivo. No entran las horas extra, el aguinaldo, los bonos ni otras prestaciones (artículo 124). Si tu salario es variable, se usa el promedio de lo que ganaste en el año.
- Qué días cuentan: además de los días laborados, la STPS cuenta las vacaciones, los descansos semanales, los festivos, los permisos con goce de sueldo, las incapacidades por riesgo de trabajo y la licencia de maternidad (artículo 127, fracción IV).
El tope de tres meses de la reforma de 2021
Desde la reforma de subcontratación, publicada en el DOF el 23 de abril de 2021, la PTU de cada trabajador tiene un límite: tres meses de su salario o el promedio de la PTU recibida en los últimos tres años, lo que más le favorezca (artículo 127, fracción VIII). La guía de la STPS lo aplica así:
- Los tres meses son 90 días de salario. Con $650 diarios, el tope es de $58,500.
- Si el promedio de los últimos tres años es mayor que esos 90 días, se paga el promedio. Para quien tiene menos de tres años en la empresa se usa el promedio que se pagó en su categoría o puesto.
- El tope solo cambia algo cuando tu parte calculada pasa de ese límite, lo que ocurre sobre todo en empresas con pocos trabajadores y muchas utilidades.
- Trabajadores de confianza: aparte del tope anterior, para la mitad por salarios su salario no puede pasar del que gana el trabajador sindicalizado (o de planta) mejor pagado, más un 20 % (artículo 127, fracción II). La calculadora lo aplica si eliges «De confianza» y escribes ese salario.
Impuestos: la parte exenta y la retención
- Exento: la PTU no paga impuestos hasta 15 veces la UMA diaria. Con la UMA de 2026, de $117.31, son $1,759.65 (artículo 93, fracción XIV, de la Ley del ISR; la ley todavía dice «15 días de salario mínimo», pero desde la reforma constitucional de 2016 esas referencias se leen como UMA). La PTU que se paga en 2027 usará la UMA de 2027.
- Gravado: lo que pasa de esa cifra. En el ejemplo, $12,053.57 − $1,759.65 = $10,293.92.
- Método del artículo 96 de la LISR: se suma lo gravado al sueldo del mes (salario diario × 30.4) y se calcula el ISR con la tarifa mensual; la retención es la diferencia con el ISR del mes sin la PTU. Con $650 diarios, el ISR de $30,053.92 es de $4,531.17 y el de $19,760, de $2,332.39: se retienen $2,198.78.
- Método del artículo 174 del Reglamento: es opcional para el patrón y la ley lo menciona expresamente para la PTU. Lo gravado se divide entre 365 y se multiplica por 30.4, y con esa parte se saca una tasa que se aplica a todo lo gravado. Cuando la PTU es grande, suele retener menos.
- Si te retienen de más: la retención es un pago a cuenta del impuesto del año. En la declaración anual se calcula el ISR completo y lo retenido de más se puede pedir como saldo a favor.
Quién tiene derecho y quién no
- Tienen derecho los trabajadores de planta, sindicalizados o no, y los de confianza (con el tope de salario de arriba). También las personas que trabajan en plataformas digitales, si trabajaron más de 288 horas en el año (artículo 127, fracción IX).
- Eventuales: participan si trabajaron al menos 60 días en el año (artículo 127, fracción VII).
- No participan los directores, administradores y gerentes generales (fracción I) ni las personas trabajadoras del hogar (fracción VI). Tampoco quien cobra por honorarios, porque no es una relación de trabajo.
- Empresas que no reparten (artículo 126): las de nueva creación durante su primer año, las que elaboran un producto nuevo durante sus dos primeros años, las extractivas nuevas durante la exploración, las instituciones de asistencia privada sin fines de lucro, el IMSS y las instituciones públicas descentralizadas con fines culturales, asistenciales o de beneficencia, y las que tienen un capital menor al que fija la STPS.
- Si ya no trabajas ahí: te toca la PTU de los días que trabajaste en el año, aunque ya te hayas ido cuando llegue el pago.
Cuándo se paga
Dentro de los 60 días siguientes a la fecha en que la empresa debe presentar su declaración anual (artículo 122 de la LFT). Las empresas (personas morales) la presentan a más tardar el 31 de marzo y las personas físicas con actividad empresarial, en abril. Por eso la PTU de 2026 se paga a más tardar el 30 de mayo de 2027 si trabajas para una empresa y el 29 de junio de 2027 si tu patrón es una persona física. La PTU que no se cobra se suma al reparto del año siguiente, y el derecho a reclamarla prescribe en un año (artículo 516).
Preguntas frecuentes
- ¿De dónde saco los totales de la empresa? El patrón debe darte una copia de su declaración anual dentro de los 10 días siguientes a presentarla (artículo 121), y una comisión de trabajadores y empresa prepara el proyecto de reparto con los días y salarios de cada uno, que se pone en un lugar visible (artículo 125). Tienes 15 días para hacer observaciones.
- ¿Y si la empresa dice que no tuvo utilidades? Si la renta gravable es cero, no hay reparto. Los trabajadores pueden objetar la declaración ante el SAT dentro de los 30 días siguientes, por medio del sindicato o de la mayoría.
- ¿Se puede compensar con las pérdidas de otros años? No: la PTU de un año con ganancias no se reduce por las pérdidas de años anteriores (artículo 128 de la LFT y artículo 9 de la Ley del ISR).
- ¿La PTU cuenta para mi finiquito o mi indemnización? No forma parte del salario para calcular indemnizaciones (artículo 129), pero sí te la deben pagar aparte.
Calcular la PTU en Python
Con Decimal, para que los centavos salgan exactos. El ejemplo es el de la calculadora:
from decimal import Decimal as D, ROUND_HALF_UP, getcontext
getcontext().prec = 60
UMA_2026 = D("117.31") # la PTU se paga en mayo de 2027: actualizar con la UMA de 2027
# 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]
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 ptu(monto, total_dias, total_salarios, diario, dias, maximo_planta=None, anteriores=()):
"""monto a repartir (10 % de la renta gravable); totales de la empresa; salario diario y días del trabajador.
maximo_planta: salario diario del sindicalizado o de planta mejor pagado (solo trabajadores de confianza).
anteriores: PTU recibida en los últimos tres años (o la de su puesto)."""
monto, total_salarios, diario = D(str(monto)), D(str(total_salarios)), D(str(diario))
diario_ptu = diario
if maximo_planta is not None: # LFT art. 127 fr. II: el más alto + 20 %
diario_ptu = min(diario, al_centavo(D(str(maximo_planta)) * D("1.2")))
salario_anual = diario_ptu * dias
# LFT art. 123: una mitad por días trabajados y la otra por salarios devengados
por_dias = al_centavo(monto * dias / (2 * total_dias))
por_salarios = al_centavo(monto * salario_anual / (2 * total_salarios))
calculada = por_dias + por_salarios
# LFT art. 127 fr. VIII: tres meses de salario o el promedio de los últimos tres años, lo que más favorezca
tope = al_centavo(90 * diario)
if anteriores:
tope = max(tope, al_centavo(sum(D(str(a)) for a in anteriores) / len(anteriores)))
total = min(calculada, tope)
# LISR art. 93 fr. XIV: exento hasta 15 UMA; el resto se grava
exento = min(total, 15 * UMA_2026)
gravado = total - exento
mensual = al_centavo(diario * D("30.4"))
isr_96 = isr_mensual(mensual + gravado) - isr_mensual(mensual)
parte = al_centavo(gravado * D("30.4") / 365) # RLISR art. 174
isr_174 = D(0)
if parte > 0:
isr_174 = al_centavo(gravado * (isr_mensual(mensual + parte) - isr_mensual(mensual)) / parte)
return {"factor_dia": (monto / 2 / total_dias).quantize(D("0.000001"), ROUND_HALF_UP),
"factor_salario": (monto / 2 / total_salarios).quantize(D("0.000001"), ROUND_HALF_UP),
"por_dias": por_dias, "por_salarios": por_salarios, "tope": tope, "ptu": total,
"exento": exento, "gravado": gravado, "isr_art_96": isr_96, "isr_art_174": isr_174,
"neto_art_174": total - isr_174}
# El ejemplo de la calculadora: $1,250,000 a repartir entre 100 personas que suman 36,500 días y $25,550,000 de
# salarios; la trabajadora gana $650 diarios y trabajó los 365 días.
for clave, valor in ptu("1250000", 36500, "25550000", "650", 365).items():
print(f"{clave:15} {valor:>12,}")
print()
print(ptu("1250000", 36500, "25550000", "650", 120)["ptu"]) # entró en septiembre: 120 días
print(ptu("9000000", 3650, "2555000", "700", 365)["ptu"]) # reparto muy grande: tope de 90 días
print(ptu("9000000", 3650, "2555000", "700", 365, anteriores=["70000", "65000", "75000"])["ptu"])$ python3 ptu.pyfactor_dia 17.123288 factor_salario 0.024462 por_dias 6,250.00 por_salarios 5,803.57 tope 58,500.00 ptu 12,053.57 exento 1,759.65 gravado 10,293.92 isr_art_96 2,198.78 isr_art_174 2,198.76 neto_art_174 9,854.81 3962.81 63000.00 70000.00
También te pueden servir la calculadora de aguinaldo, la de vacaciones y prima vacacional, la de sueldo neto y la de finiquito y liquidación. Todas, en decodigo.com/herramientas.
Reparto de utilidades: Ley Federal del Trabajo, artículos 117 a 131 (artículo 127 reformado en el DOF del 23 de abril de 2021 y del 24 de diciembre de 2024) y 516. Porcentaje del 10 %: Resolución de la Sexta Comisión Nacional para la Participación de los Trabajadores en las Utilidades de las Empresas (DOF del 18 de septiembre de 2020). Tope de 90 días: STPS, Guía para cumplir con las obligaciones en materia de reparto de utilidades (2022). Plazos de la declaración anual y renta gravable: Ley del ISR, artículos 9, 76 y 150; parte exenta, artículo 93, fracción XIV, y retención, artículo 96; método opcional: Reglamento de la Ley del ISR, artículo 174. Tarifa mensual de 2026: Anexo 8 de la RMF 2026. UMA 2026: INEGI, comunicado 1/26, en vigor desde el 1 de febrero de 2026. La herramienta y la función de Python se compararon en 20,000 cálculos al azar: coinciden al centavo en todos.