Source: https://guthlabs.ai/docs/instruments/population-growth-exponential-model/

instrument / verified-clean

# Population Growth: Exponential Model

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/population-growth-exponential-model/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/population-growth-exponential-model/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/population-growth-exponential-model/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/population-growth-exponential-model/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Biology, Medicine & Pharmacology (educational estimates only — every panel labeled not-medical-advice)

**Tranche**: tranche-6

**Evidence ID**: t6-029

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The model is mathematically standard for idealized unconstrained growth and the stated educational, not-medical-advice label is appropriate. NEEDS_REVIEW is required because the exact units of r and time, the plotted time domain, and the behavior and labeling of doubling time for r<=0 are unspecified.

### Formula and scope findings

- N(t)=N0·e^(rt) is the standard unconstrained continuous exponential-growth model.

- The specification does not state the doubling-time formula. For r>0 it should be Td=ln(2)/r; for r=0 it is infinite/undefined, and for r<0 the population has a halving time ln(2)/|r| rather than a positive doubling time.

- The valid input domain and interpretation are not stated: normally N0>=0, t>=0 for forward prediction, and r may be positive, zero, or negative.

### Unit assumptions

- r must have inverse-time units and t must use the matching time unit, so rt is dimensionless.

- N0 and N(t) are population counts or consistently scaled population measures; they have the same units.

- Doubling-time output has the same time unit as t.

- The unit of r and time is ambiguous in the specification; this must be explicit in the interface and plot labels.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The zero-growth input r=0 makes the requested doubling-time output undefined, so the instrument must reject it or explicitly display infinity/undefined. The specification also leaves unit conventions unenforced, allowing materially different population estimates from the same numeric inputs.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "inputs": {
    "N0": 1000,
    "r": 0.02,
    "r_unit": "per year",
    "sample_times": [
      0,
      10,
      20
    ],
    "time_unit": "years"
  },
  "expected_outputs": {
    "sampled_population": {
      "t=0": 1000,
      "t=10": 1221.402758,
      "t=20": 1491.824698
    },
    "doubling_time_years": 34.65735903,
    "curve_features": {
      "roots": [],
      "finite_extrema": [],
      "horizontal_asymptote": "N=0 as t approaches negative infinity",
      "initial_value": "N(0)=1000"
    }
  },
  "working": "N(0)=1000·e^(0.02·0)=1000·e^0=1000. N(10)=1000·e^(0.2)=1000·1.221402758=1221.402758. N(20)=1000·e^(0.4)=1000·1.491824698=1491.824698. Doubling time=ln(2)/0.02=0.6931471806/0.02=34.65735903 years. Since N0>0 and r>0, there are no roots or finite extrema; the horizontal asymptote is N=0 for t approaching negative infinity."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche6/tranche6-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
