Vesting Schedule Calculator
Calcula tu cronograma de adquisición de capital con acantilado, vesting mensual, trimestral o anual.
Acerca de esta herramienta
Una calculadora de calendario de adquisición ayuda a los empleados y tenedores de opciones a entender cómo su compensación en acciones se vuelve disponible con el tiempo. La adquisición de acciones es un componente común de paquetes de compensación, especialmente en startups y empresas tecnológicas, pero la mecánica puede ser compleja con períodos de acantilado, períodos de adquisición y diferentes calendarios de aceleración. Esta herramienta te permite modelar tu escenario de adquisición específico—ya sea un acantilado seguido de adquisición mensual, hitos trimestrales o asignaciones anuales—para que puedas ver exactamente cuándo tus acciones u opciones se convierten en tuyas para conservar o vender.
Para usar la calculadora, ingresa tu cantidad total de acciones, el período de acantilado de adquisición (a menudo un año antes de que cualquier acción se adquiera) e tu intervalo de adquisición preferido—mensual, trimestral o anual. La herramienta mostrará una línea de tiempo que muestra cuántas acciones se adquieren en cada intervalo, el progreso acumulado de adquisición y la cantidad restante no adquirida. Esto es especialmente útil al evaluar ofertas de trabajo, planificar tu estrategia financiera o verificar tu elegibilidad para ejercer opciones antes de un evento de la empresa.
Preguntas Frecuentes
Implementación de Código
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta
def generate_vesting_schedule(
total_shares, grant_date, vesting_years=4,
cliff_months=12, frequency="monthly"
):
freq_map = {"monthly": 1, "quarterly": 3, "annually": 12}
period_months = freq_map[frequency]
total_months = vesting_years * 12
schedule = []
cumulative = 0
month = period_months
while month <= total_months:
vest_date = grant_date + relativedelta(months=month)
is_cliff = cliff_months > 0 and month == max(
(cliff_months // period_months) * period_months, period_months
) and month >= cliff_months
if cliff_months > 0 and month < cliff_months:
month += period_months
continue
if is_cliff:
cliff_shares = round(cliff_months / total_months * total_shares)
period_shares = cliff_shares
elif month + period_months > total_months:
period_shares = total_shares - cumulative
else:
period_shares = round(period_months / total_months * total_shares)
cumulative += period_shares
schedule.append({
"date": vest_date, "period_shares": period_shares,
"cumulative": cumulative, "pct": cumulative / total_shares * 100,
"is_cliff": is_cliff
})
month += period_months
return schedule
# 10,000 shares, 4 years, 1-year cliff, monthly vesting
schedule = generate_vesting_schedule(10000, date.today())
for row in schedule[:6]:
cliff = " (CLIFF)" if row["is_cliff"] else ""
print(f"{row['date']}: +{row['period_shares']} shares | {row['cumulative']:,} total | {row['pct']:.1f}%{cliff}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.