Zum Inhalt springen
🛠️ToolsShed

Vesting Schedule Calculator

Berechne dein Equity-Vesting-Plan mit Cliff-, Monats-, Quartals- oder Jahres-Vesting.

Über dieses Tool

Ein Vesting-Zeitplan-Rechner hilft Arbeitnehmern und Optionsinhabern zu verstehen, wie ihre Aktienvergütung im Laufe der Zeit verfügbar wird. Aktienvesting ist eine häufige Komponente von Vergütungspaketen, besonders bei Startups und Technologieunternehmen, aber die Mechanik kann mit Cliff-Perioden, Vesting-Zeiträumen und unterschiedlichen Beschleunigungsplänen komplex sein. Mit diesem Tool können Sie Ihr spezifisches Vesting-Szenario modellieren—ob eine Cliff-Periode gefolgt von monatlichem Vesting, vierteljährlichen Meilensteinen oder jährlichen Zuweisungen—sodass Sie genau sehen können, wann Ihre Aktien oder Optionen Ihnen gehören, um sie zu behalten oder zu verkaufen.

Um den Rechner zu verwenden, geben Sie Ihren Gesamtaktienbestand ein, die Cliff-Periode beim Vesting (oft ein Jahr, bevor Aktien verfallen) und Ihr bevorzugtes Vesting-Intervall—monatlich, vierteljährlich oder jährlich. Das Tool zeigt eine Zeitlinie mit dem Aktienbestand, der in jedem Intervall verfällt, dem kumulativen Vesting-Fortschritt und dem verbleibenden unversteckten Betrag. Dies ist besonders nützlich bei der Bewertung von Stellenangeboten, der Planung Ihrer Finanzstrategie oder der Überprüfung Ihrer Berechtigung zum Ausüben von Optionen vor einem großen Unternehmensereignis.

Häufig gestellte Fragen

Code-Implementierung

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.