Vesting Schedule Calculator
Calcola il tuo programma di vesting delle azioni con cliff, vesting mensile, trimestrale o annuale.
Informazioni sullo strumento
Un calcolatore del calendario di vesting aiuta dipendenti e detentori di opzioni a capire come la loro compensazione in azioni diventa disponibile nel tempo. Il vesting azionario è una componente comune dei pacchetti di compensazione, specialmente presso startup e aziende tecnologiche, ma la meccanica può essere complessa con periodi di cliff, periodi di vesting e diversi programmi di accelerazione. Questo strumento ti consente di modellare il tuo scenario di vesting specifico—sia un cliff seguito da vesting mensile, milestone trimestrali o assegnazioni annuali—in modo da poter vedere esattamente quando le tue azioni o opzioni diventano tue per mantenere o vendere.
Per utilizzare il calcolatore, inserisci l'importo totale delle azioni, il periodo di cliff del vesting (spesso un anno prima che qualsiasi azione vesta) e il tuo intervallo di vesting preferito—mensile, trimestrale o annuale. Lo strumento visualizzerà una sequenza temporale che mostra quante azioni vengono acquisite ad ogni intervallo, il progresso cumulativo del vesting e l'importo residuo non acquisito. Questo è particolarmente utile quando valuti offerte di lavoro, pianifichi la tua strategia finanziaria o verifichi la tua idoneità per esercitare opzioni prima di un evento importante dell'azienda.
Domande Frequenti
Implementazione del Codice
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.