OPERATIONS
Ownership percentage benchmarks for South African startups
Benchmark data and guidelines for structuring founder, investor, and employee ownership across stages.

Last reviewed: 2025-02-04

Ownership Percentages

Definitions:

  • company.totalShares: Authorized share capital (maximum shares the company may issue under its MOI).
  • company.issuedShares: Shares currently outstanding (already issued to shareholders).

Fully diluted ownership for cap table visualizations is computed using issuedShares + (ESOP pool − exercised options) as the denominator. This ensures the sum of shareholder percentages and the ESOP pool equals 100% on a fully diluted basis without double-counting exercised options. Authorized shares are only used to enforce issuance limits and should not be used as the denominator.

Share Recycling Impact on Fully Diluted

The fully diluted calculation varies based on the scheme's recycleExercisedShares setting:

  • When recycleExercisedShares = false (default): FD = issuedShares + (poolSize − exercised)

    • Exercised options are excluded from the pool denominator since shares have been issued
    • This prevents double-counting: exercised shares appear in issuedShares and are removed from pool
  • When recycleExercisedShares = true: FD = issuedShares + poolSize

    • Exercised shares return to the pool, maintaining the full pool size in dilution calculations
    • Pool capacity refreshes as options are exercised, allowing additional grants up to pool size

Recycling is typically disabled for most schemes to maintain conservative dilution tracking and ensure exercised options cannot be re-granted without board approval.

When defining your option pool, calculate its size on a fully diluted basis:

  • Percentage pools: poolSize = floor(issuedShares * poolPercentage / (100 - poolPercentage))
    • Applied floor() to ensure pool size is an integer (shares are indivisible) and to enforce conservative pool allocation (never exceed configured pool cap)
    • Example: 100,000 issued shares at 10% = floor(100,000 * 10 / 90) = floor(11,111.111) = 11,111 options
  • Fixed pools: poolPercentage = poolSize / (issuedShares + poolSize) * 100

Upgrade Note (2025-09)

  • For percentage-based pools, Capsense now requires issuedShares (outstanding shares) to be provided during setup. Previously, if issuedShares was omitted, the system could fall back to totalShares (authorized) in some paths, resulting in oversized pools. The setup API now rejects percentage-based pool sizing when issuedShares is missing. Fixed pool sizes continue to work without issuedShares, but the derived poolPercentage is only calculated when issuedShares is available.
  • Action: Ensure step 1 of the setup wizard captures your company’s current outstanding shares before selecting a percentage-based pool.