Logistic Growth Calculator - Carrying Capacity & More

The ceiling the environment can sustain. The population approaches K but never crosses it.

Don't know k? Switch to 'Growth rate k from a second reading' mode and derive it from data.

days

Results

Population after 10 days

513.9

Growth rate at this point (dP/dt)

74.9 per day

Fastest possible rate (kK/4 at P = K/2)

75 per day

Inflection point (P = K/2)

t = 9.8 days

For comparison, unbounded exponential growth P₀·e^(kt) would predict 1,004.3 at the same time — past the carrying capacity of 1,000. The ceiling is doing real work here.

Share of carrying capacity51.4%

Step-by-step solution

A = (K − P₀)/P₀ = (1,000 − 50)/50 = 19

P(t) = K / (1 + A·e^(−kt))

P(10) = 1,000 / (1 + 19 × e^(−0.3 × 10))

P(10) = 1,000 / (1 + 0.946) = 513.9

Logistic curve: P(t) = K / (1 + A·e^(−kt)) — dashed gray: unbounded exponential

K = 1,000P₀ = 50t = 25.1 days

Time to each share of K = 1,000 with k = 0.3/day

Share of KPopulationReached atGrowth rate there
10%1002.5 days27/day
25%2506.2 days56.3/day
50%5009.8 days75/day
75%75013.5 days56.2/day
90%90017.1 days27/day
99%99025.1 days3/day

How to Use This Calculator

  1. Pick a mode in “Solve for” — population after a time, time to reach a target, or the growth rate k itself.
  2. Enter the starting size in “Initial population P₀” and the environmental ceiling in “Carrying capacity K”.
  3. If you know k, type it in “Growth rate k”. If you only have data, switch to the k mode and enter a “Second reading P₁” with its time t₁.
  4. Fill in the remaining field — elapsed time or target population — and read the answer plus the inflection point and fastest growth rate below it.
  5. Check the chart and milestone table: the dashed gray curve shows what unbounded exponential growth would have predicted, and the table lists when the population hits 10% through 99% of K.

Share this calculator

Help others solve their calculations

Found this calculator helpful? Share it with your friends, students, or colleagues who might need it!

Logistic Growth Calculator: Why Every Real Population Has a Ceiling

About the Author

Marko Šinko - Co-Founder & Lead Developer

Marko Šinko

Co-Founder & Lead Developer, AI Math Calculator

Lepoglava, Croatia
Advanced Algorithm Expert

Croatian developer with a Computer Science degree from University of Zagreb and expertise in advanced algorithms. Co-founder of award-winning projects, ensuring precise mathematical computations and reliable calculator tools.

📅 Published:
Logistic growth calculator graph showing an S-shaped population curve rising to its carrying capacity ceiling with inflection point marked

A logistic growth calculator answers the question exponential models dodge: what happens when growth runs out of room. Bacteria in a dish, fish in a pond, users on a platform, rumors in a school — all of them grow fast at first and then hit something. Food runs short, space fills up, everyone who was going to hear the rumor has heard it. The logistic equation dP/dt = kP(1 − P/K) is the simplest model that takes that ceiling seriously, and the calculator above solves it in every direction: population after any elapsed time, time to reach a target, or the growth rate k recovered from two observations. This article puts the logistic curve head-to-head against the exponential it replaces, works a full example with real numbers, and ends with the famous census prediction that shows exactly how far to trust a fitted carrying capacity.

Two Curves That Agree Early, Then Disagree Forever

Both models start from the same idea — growth proportional to current size — and for small populations they’re nearly indistinguishable. Run the calculator’s defaults (P₀ = 50, K = 1,000, k = 0.3 per day) and check day 2: the exponential predicts 91 organisms, the logistic 88. A 4% gap you’d never spot on a lab plot. By day 10 the stories have split completely: the exponential claims 1,004 — more than the dish can hold — while the logistic says 514. The factor (1 − P/K) is what changed. It sits near 1 while the population is tiny, so early growth looks fully exponential, then collapses toward 0 as P approaches K, throttling growth exactly when crowding says it should.

PropertyExponential P₀·e^(kt)Logistic K/(1 + A·e^(−kt))
Rate equationdP/dt = kPdP/dt = kP(1 − P/K)
ShapeJ-curve, ever steeperS-curve (sigmoid), levels off
Long-run behaviorUnbounded — doubles foreverApproaches K, never crosses it
Fastest growthAlways later — it only acceleratesAt P = K/2, rate kK/4, then slows
Honest domainEarly phase only (P ≪ K)The whole trajectory, both ends

One row of that table deserves a second look. Exponential growth is fastest at the end of any window you watch — it only ever accelerates. Logistic growth is fastest in the middle, at exactly half the carrying capacity, and everything after that midpoint is deceleration. That single structural difference is why S-curves show up in adoption forecasts, epidemiology, and enzyme kinetics: most real systems have a middle.

From Rate Equation to Closed Form

The logistic equation is a first-order differential equation, and a separable one at that: move every P to the left, every t to the right, and split 1/(P(1 − P/K)) with partial fractions. Integrating both sides and applying the initial condition P(0) = P₀ produces the formula the calculator runs:

P(t) = K / (1 + A·e^(−kt))

A = (K − P₀)/P₀

The constant A is just a repackaged initial condition — how many times the starting population fits into the remaining headroom. Start at 5% of capacity and A = 19; start at half capacity and A = 1; start above capacity and A goes negative, which the formula handles without complaint: the population decays smoothly back down to K. That last case comes up more than students expect — a fish pond stocked past what it can feed is a logistic decline problem, same formula, no new math. And since the only t in the formula lives inside e^(−kt), every solve-for-time question reduces to isolating that exponential and taking one logarithm.

A Bacteria Culture, Start to Ceiling

Stay with the defaults: 50 bacteria in a dish that supports 1,000, growing at k = 0.3 per day. First, A = (1000 − 50)/50 = 19. Population after 10 days:

P(10) = 1000 / (1 + 19·e^(−0.3 × 10))

P(10) = 1000 / (1 + 19 × 0.0498) = 1000 / 1.946

P(10) ≈ 514 bacteria

Ten days to cover the first 464 organisms. Now ask how long until the culture hits 900 — flip the formula and solve for t: t = (1/0.3)·ln(19 × 900/100) = (1/0.3)·ln(171) ≈ 17.1 days. Read those two answers together and the S-curve’s whole personality is visible. The climb from 50 to 514 took 10 days. The climb from 514 to 900 takes 7 more. Pushing from 900 to 990 costs another 8 days on top of that — the last 10% of capacity is slower than the first 46%. Crowding taxes every additional organism harder than the one before it, which is why “when do we hit 90% of capacity?” is usually the honest planning question. Waiting for 99% means waiting through the flattest part of the curve.

Growth Peaks at Exactly Half the Carrying Capacity

Take the derivative of the growth rate kP(1 − P/K) with respect to P and set it to zero: the maximum lands at P = K/2, no matter what P₀ or k are. The peak rate is kK/4 — for the culture above, 0.3 × 1000/4 = 75 bacteria per day, reached at t = ln(19)/0.3 ≈ 9.8 days, when the dish holds 500. That’s the inflection point the calculator marks with a hollow dot: concave up before it, concave down after, steepest tangent exactly there.

This midpoint carries practical weight. In epidemiology it’s the peak of new daily infections — the moment case counts stop accelerating, half the eventual total has already been infected. In product forecasting it’s peak adoption velocity: the quarter that looks best in every growth report is, mathematically, the beginning of the slowdown. And it cuts the other way too. If your data still shows growth speeding up, you haven’t reached K/2 yet, and any carrying capacity you extrapolate is a guess about a bend the curve hasn’t made. Which brings up the cautionary tale.

The Census Fit That Made This Curve Famous — and Its Cautionary Ending

Pierre Verhulst introduced the logistic equation in 1838 and used it to estimate Belgium’s ultimate population at about 9.4 million. In 1920, biologists Raymond Pearl and Lowell Reed fitted the same curve to every U.S. census from 1790 to 1910 — and the fit was gorgeous, tracking twelve decades of data within a few percent. Their fitted carrying capacity for the United States: roughly 197 million people. The U.S. crossed 197 million around 1967, passed 300 million in 2006, and Belgium left 9.4 million behind decades ago. The history of the logistic function is littered with beautiful fits and busted ceilings.

The lesson isn’t that the model is wrong — for a closed dish of bacteria it’s nearly exact. The lesson is that K is a fitted parameter, not a law of nature. Pearl and Reed’s curve quietly assumed the constraints of 1920 — its agriculture, medicine, and borders — would define the ceiling forever. Humans moved the ceiling. Whenever you fit a logistic curve to data that hasn’t clearly bent past its inflection point, the estimated K is extrapolated from curvature the data barely shows, and small measurement errors swing it wildly. That’s worth remembering every time an S-curve forecast lands on your desk with a suspiciously confident ceiling attached.

Feeding Real Measurements Into a Logistic Growth Calculator

Textbook problems hand you k and K. Real data doesn’t. If you know K but not k — a dish of known size, a pond with a rated stocking limit — two observations are enough, and that’s the calculator’s third mode: from P₀ = 50 and a reading of 200 five days later, it returns k = (1/5)·ln(19 × 200/800) ≈ 0.312 per day.

If you know neither k nor K, there’s a classical trick worth having. Take three observations equally spaced in time. Because 1/P is linear in e^(−kt), the three reciprocals pin down both parameters at once:

1/K = (1/(P₀·P₂) − 1/P₁²) / (1/P₀ + 1/P₂ − 2/P₁)

Feed it the culture’s own readings — 50, 191, and 514 at days 0, 5, and 10 — and it returns K ≈ 998, recovering the true ceiling of 1,000 from nothing but three counts. This is essentially how Pearl and Reed got 197 million, which doubles as the warning label: the formula is exact on perfect logistic data and touchy on noisy data, because it leans on small differences of reciprocals. With more than three points, run a proper regression instead. And when the model itself needs modifying — a seasonal k, or a harvesting term like dP/dt = kP(1 − P/K) − h — the closed form disappears entirely, and a numerical stepper such as Euler’s method or a general differential equation calculator takes over from the formula. The pure logistic curve is the rare bounded-growth model you can solve with one logarithm — that’s exactly what makes it the baseline everything else gets compared against.

Frequently Asked Questions

Still Have Questions?

The detailed content on this page provides comprehensive explanations and examples to help you understand better.