Pular para o conteúdo
🛠️ToolsShed

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.