Vesting Schedule Calculator
Hitung jadwal vesting ekuitas Anda dengan cliff, vesting bulanan, triwulanan, atau tahunan.
Tentang alat ini
Kalkulator jadwal vesting saham membantu karyawan dan pemegang opsi memahami bagaimana kompensasi saham mereka menjadi tersedia seiring waktu. Vesting saham adalah komponen umum dari paket kompensasi, terutama di startup dan perusahaan teknologi, namun mekaniknya dapat menjadi kompleks dengan periode cliff, periode vesting, dan jadwal akselerasi yang berbeda. Alat ini memungkinkan Anda untuk memodelkan skenario vesting spesifik Anda—baik itu cliff yang diikuti oleh vesting bulanan, milestone triwulanan, atau alokasi tahunan—sehingga Anda dapat melihat dengan tepat kapan saham atau opsi Anda menjadi milik Anda untuk disimpan atau dijual.
Untuk menggunakan kalkulator, masukkan jumlah saham total Anda, periode cliff vesting (sering kali satu tahun sebelum saham apa pun menjadi vesting), dan interval vesting pilihan Anda—bulanan, triwulanan, atau tahunan. Alat ini akan menampilkan garis waktu yang menunjukkan berapa banyak saham yang menjadi vesting di setiap interval, kemajuan vesting kumulatif, dan jumlah yang belum menjadi vesting yang tersisa. Ini sangat berguna ketika mengevaluasi penawaran pekerjaan, merencanakan strategi keuangan Anda, atau memeriksa kelayakan Anda untuk menggunakan opsi sebelum acara perusahaan.
Pertanyaan yang Sering Diajukan
Implementasi Kode
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.