Vesting Schedule Calculator
Calcule seu cronograma de vesting de capital com cliff, vesting mensal, trimestral ou anual.
Sobre esta ferramenta
Uma calculadora de cronograma de aquisição ajuda funcionários e detentores de opções a entender como sua compensação em ações se torna disponível ao longo do tempo. A aquisição de ações é um componente comum de pacotes de compensação, especialmente em startups e empresas de tecnologia, mas a mecânica pode ser complexa com períodos de penhora, períodos de aquisição e diferentes cronogramas de aceleração. Esta ferramenta permite que você modele seu cenário de aquisição específico—seja uma penhora seguida de aquisição mensal, marcos trimestrais ou concessões anuais—para que você possa ver exatamente quando suas ações ou opções se tornam suas para manter ou vender.
Para usar a calculadora, insira sua quantidade total de ações, o período de penhora de aquisição (geralmente um ano antes de qualquer ação ser adquirida) e seu intervalo de aquisição preferido—mensal, trimestral ou anual. A ferramenta exibirá um cronograma mostrando quantas ações são adquiridas em cada intervalo, o progresso cumulativo de aquisição e o valor remanescente não adquirido. Isso é especialmente útil ao avaliar ofertas de emprego, planejar sua estratégia financeira ou verificar sua elegibilidade para exercer opções antes de um evento da empresa.
Perguntas Frequentes
Implementação 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.