Arte SheetsLearn. Try. Understand.

Math

Verhulst Logistic S-Curve Growth & Carrying Capacity formula (EXP & LN)

Model bounded market adoption and population saturation via P(t) = K / (1 + ((K - P0)/P0) * EXP(-r * t)) and solve for the K/2 peak-growth inflection time.

A constant-capacity logistic growth scenario

The model assumes constant carrying capacity K and intrinsic rate r. For r>0 and0<P0<K, the curve approaches K and has peak instantaneous growth at K/2. It does not establish a real market’s total addressable size or account for changing conditions. Parameters here are supplied, not fitted to data.

This exercise accepts t>=0, r>=0 and0<=P0<=K with K>0. P0=0 and P0=K are constant equilibria; r=0 is also constant. These cases have no unique interior inflection. If P0>K/2, the formal inflection time is negative: the midpoint occurred before the chosen time origin.

S-Curve ParameterCellMarket Adoption InputLogistic Output
Initial Users (P0)B21,000 usersAt t = 0 -> P(0) = 1,000
Carrying Capacity / TAM (K)B350,000 usersMidpoint inflection = 25,000 users
Intrinsic Growth Rate (r)B40.50 per year (continuous intrinsic rate)Inflection time = LN(49)/0.5 = 7.78 yrs
Forecast Horizon (t)B58.0 yearsP(8) = 26,350.93 users (Just past peak!)

Closed-form Verhulst Logistic S-Curve level P(t)

The level is a continuous model estimate, rounded for display. r=0.5 per year is not a guaranteed50% annual increase: the instantaneous proportional rate also depends on P/K. A displayed rounded value of K at a long horizon does not mean the interior trajectory reaches K at a finite time.

=IF(OR(COUNT(B2:B5)<>4,B3<=0,B2<0,B2>B3,B4<0,B5<0),"Invalid inputs",IF(B2=0,0,ROUND(B3/(1+((B3-B2)/B2)*EXP(-B4*B5)),2)))

Time to reach S-curve midpoint inflection (P = K / 2)

The logarithmic expression applies only for r>0 and0<P0<K. It returns0 at P0=K/2 and a negative time if the initial level is already above the midpoint.

=IF(OR(COUNT(B2:B5)<>4,B3<=0,B2<0,B2>B3,B4<0,B5<0),"Invalid inputs",IF(OR(B2=0,B2=B3,B4=0),"No interior inflection",ROUND(LN((B3-B2)/B2)/B4,2)))

Try the example

Use the original values or change them to test your understanding.

Further reading