Operating Agreements
Ownership, Equity, and Vesting
How to structure co-founder equity, standard vesting schedules, acceleration provisions, and capital contribution documentation.
The Equity Conversation Nobody Wants to Have
Equity is the most important conversation co-founders avoid. Many teams launch with verbal agreements ("we'll figure it out later") or default to equal splits without thinking it through. Both approaches create disasters.
Equal vs. Proportional Equity Splits
Equal splits (e.g., 50/50, 33/33/33) are common and not inherently wrong. They work well when:
- Co-founders bring genuinely comparable contributions
- All founders are committed full-time from day one
- The team has built significant trust through prior work together
- There's a clear deadlock resolution mechanism for 50/50 splits
Proportional splits reflect differences in contribution, risk, or commitment. Factors to consider:
- Who had the original idea (usually worth less than people think)
- Who has been working on it longer / invested more time
- Who is going full-time vs. part-time
- Who brings unique, hard-to-replace skills
- Who is contributing capital to the entity
Practical advice: Have the equity conversation early, explicitly, and in writing. Use a framework to guide the discussion, not just intuition.
Vesting: Why It's Essential
Vesting is the mechanism by which equity is earned over time. Without vesting, a co-founder who leaves after one month walks away with their full equity stake — leaving the remaining founders diluted and demoralized.
Standard 4-Year Vesting with 1-Year Cliff
The industry standard for founder vesting:
- Total vesting period: 4 years
- 1-year cliff: No equity vests for the first 12 months. At month 12, 25% of total equity vests at once.
- Monthly vesting after cliff: The remaining 75% vests in equal monthly installments over the following 36 months.
Concrete example: Alice has 30% of the LLC (valued at $100K total = $30K equity).
| Milestone | Equity Vested | Notes |
|---|---|---|
| Month 6 (leaves) | 0% | Before cliff — forfeits all equity |
| Month 12 (cliff) | 25% (7.5%) | Cliff triggers 1-year grant |
| Month 24 | 50% (15%) | Monthly vesting continues |
| Month 36 | 75% (22.5%) | Three-quarter vested |
| Month 48 | 100% (30%) | Fully vested |
Acceleration Provisions
Single trigger acceleration: Equity immediately fully vests upon a single event — usually acquisition or change of control. Protects founders from being acquired and then fired before vesting completes.
Double trigger acceleration: Equity vests fully only when TWO events occur — typically (1) change of control AND (2) termination without cause. Preferred by investors because it incentivizes the founding team to stay through an acquisition.
Capital Contributions
Every member must document what they are contributing to the LLC:
- Cash contributions — Documented in the operating agreement (e.g., "Alice contributes $10,000")
- Property contributions — Physical or intellectual property; must be valued at fair market value
- Services contributions — Work performed; must be valued and may have tax implications
- IP contributions — Software, patents, trade secrets; must be formally assigned to the LLC (see the IP Assignment lesson)
A contribution that is not documented is a contribution that can be disputed. Every capital contribution, regardless of type, should be listed in the operating agreement with a date and value.
Example
// Vesting calculator
interface VestingSchedule {
totalEquityPercent: number;
totalShares: number;
vestingYears: number;
cliffMonths: number;
startDate: Date;
}
function calculateVestedEquity(
schedule: VestingSchedule,
monthsElapsed: number
): { vestedPercent: number; unvestedPercent: number; vestedShares: number } {
const { totalEquityPercent, totalShares, vestingYears, cliffMonths } = schedule;
const totalMonths = vestingYears * 12;
if (monthsElapsed < cliffMonths) {
return { vestedPercent: 0, unvestedPercent: totalEquityPercent, vestedShares: 0 };
}
const vestedFraction = Math.min(monthsElapsed / totalMonths, 1);
const vestedPercent = totalEquityPercent * vestedFraction;
const unvestedPercent = totalEquityPercent - vestedPercent;
const vestedShares = Math.floor(totalShares * vestedFraction);
return { vestedPercent, unvestedPercent, vestedShares };
}
const aliceVesting: VestingSchedule = {
totalEquityPercent: 30,
totalShares: 3000000,
vestingYears: 4,
cliffMonths: 12,
startDate: new Date('2025-01-01'),
};
console.log('Month 6:', calculateVestedEquity(aliceVesting, 6));
// { vestedPercent: 0, unvestedPercent: 30, vestedShares: 0 }
console.log('Month 12 (cliff):', calculateVestedEquity(aliceVesting, 12));
// { vestedPercent: 7.5, unvestedPercent: 22.5, vestedShares: 750000 }
console.log('Month 48 (fully vested):', calculateVestedEquity(aliceVesting, 48));
// { vestedPercent: 30, unvestedPercent: 0, vestedShares: 3000000 }