Vesting Schedule Calculator
Calculer votre calendrier d'acquisition d'actions avec periods d'attente, acquisition mensuelle, trimestrielle ou annuelle.
À propos de cet outil
Une calculatrice de calendrier d'acquisition aide les salariés et les détenteurs d'options à comprendre comment leur rémunération en actions devient disponible au fil du temps. L'acquisition d'actions est une composante courante des packages de rémunération, en particulier dans les startups et les entreprises technologiques, mais la mécanique peut être complexe avec des périodes de falaise, des périodes d'acquisition et différents calendriers d'accélération. Cet outil vous permet de modéliser votre scénario d'acquisition spécifique—qu'il s'agisse d'une falaise suivie d'une acquisition mensuelle, de jalons trimestriels ou de concessions annuelles—afin que vous puissiez voir exactement quand vos actions ou options deviennent les vôtres à conserver ou à vendre.
Pour utiliser la calculatrice, entrez votre montant total d'actions, la période de falaise d'acquisition (souvent un an avant que toute action soit acquise) et votre intervalle d'acquisition préféré—mensuel, trimestriel ou annuel. L'outil affichera un calendrier montrant combien d'actions sont acquises à chaque intervalle, la progression cumulée de l'acquisition et le montant restant non acquis. Ceci est particulièrement utile lors de l'évaluation d'offres d'emploi, de la planification de votre stratégie financière ou de la vérification de votre admissibilité à exercer des options avant un événement majeur de l'entreprise.
Questions Fréquentes
Implémentation du Code
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.