Bundle review table

T12 FINDINGS — "Collapse Is Generation Against Harvest" (Vol. XIX #29)

Supplied working report; original verdicts not validated.

Review status: Needs review. This is an archival source note, not a passed proof.

FINDINGS.md

# T12 FINDINGS — "Collapse Is Generation Against Harvest" (Vol. XIX #29)

**Verdict: NOT SUPPORTED.**
On the pre-registered primary analysis, neither support rule holds. The logistic interaction between harvest pressure and generation time has the **opposite sign to the theory's prediction** (b3 = −0.76, p = 0.12), and collapse F/Fmsy does **not** decline across generation-time tertiles (medians 5.63 / 2.44 / 7.27; Spearman rho = +0.08, p = 0.60). In the 1/M sensitivity the interaction is significantly negative (b3 = −1.37, p = 4.9×10⁻⁶; region-controlled b3 = −1.23, p = 7.4×10⁻⁵) — i.e., the same F/Fmsy implies *lower*, not higher, collapse odds for longer-generation stocks. Every estimated interaction in every specification is negative; none is positive.

## 1. Headline numbers

| | primary (A50M) | sens ≥5y | sens gen=1/M | sens B/B0 |
|---|---|---|---|---|
| n stocks (complete case) | 54 | 54 | 172 | 11 |
| n collapsed (%) | 12 (22.2%) | 12 (22.2%) | 27 (15.7%) | 2 (18.2%) |
| median F/Fmsy, collapsed vs not | 5.51 vs 1.05 | same | 5.12 vs 1.67 | 2.18 vs 1.19 |
| interaction b3 (se) | **−0.761 (0.494)** | −0.761 (0.494) | **−1.375 (0.301)** | −1.019 (4.90) |
| interaction p (Wald) | 0.123 | 0.123 | **4.94×10⁻⁶** | 0.835 |
| Rule 1 | fail (wrong sign) | fail | **fail — significantly opposite** | fail (n=11) |
| tertile medians of collapse F/Fmsy | 5.63 / 2.44 / 7.27 | same | 5.16 / 5.12 / 3.12 | 0.75 / 7.37 / — |
| Spearman rho (collapsed stocks), one-sided p | +0.079, p=0.60 | +0.079, p=0.60 | −0.130, p=0.26 | — |
| Rule 2 | fail | fail | fail (monotone medians but rho ns) | fail |

Main effects in the primary model: log(F/Fmsy) b = +1.63 (p = 0.079) — collapse is (weakly) associated with harvest pressure, as expected; log(generation) main effect b = +0.03 (p = 0.96) — none.

Database-wide (all 1,371 stocks with any B/Bmsy in the views): 87/1,371 (6.3%) have min B/Bmsy < 0.2. Among the 143 stocks with a recorded age at 50% maturity (A50M-yr) and the 342 with M, most lack one of the two required series (typically F/Fmsy — e.g., Newfoundland cod COD2J3KL and Northern Gulf cod COD3Pn4RS have **no** F/Fmsy series and drop out of the primary sample).

## 2. Support-rule comparison (pre-registered in hypothesis.md §3)

- **Rule 1** (interaction positive, p<0.05): NOT MET. b3 = −0.76, p = 0.12 (primary). The theory needs b3 > 0; the point estimate is negative. Conditional verdict (b3 > 0, p < 0.10) also not met — b3 is not positive at all.
- **Rule 2** (median collapse F/Fmsy declines across generation tertiles; per-stock Spearman negative, p<0.05): NOT MET. Medians are not monotone (5.63 → 2.44 → 7.27); Spearman rho = +0.079 (positive), one-sided p = 0.60.
- Verdict rule (hypothesis.md §3.8): **Not supported** — there is no generation-time signal in the predicted direction in the primary specification, and the 1/M sensitivity provides significant evidence of the opposite sign.

## 3. Limitations (why this is not a decisive refutation)

1. **Sample attrition is severe.** Only 54 stocks have simultaneous B/Bmsy, F/Fmsy, and age-at-maturity; the most famous collapses (e.g., Northwest Atlantic cod) lack F/Fmsy series in RAMLDB and are excluded. The primary test is underpowered: a positive interaction of meaningful size cannot be excluded (95% CI for b3 ≈ −1.73 to +0.21).
2. **Generation-time proxy.** Age at 50% maturity is only a rough generation-time proxy (generation time depends on age structure, longevity, and mortality; maturity age ignores adult survival). Available for only ~10% of stocks. The 1/M proxy is better covered (n=172) but M values in RAMLDB are frequently assumed rather than estimated, and M is mechanically related to Fmsy reference points, which can induce a spurious (negative) interaction through the F/Fmsy normalization itself.
3. **Collapse definition.** "min B/Bmsy < 0.2 over the series" flags stocks that ever dipped below 20% of Bmsy, regardless of whether they stayed collapsed or were overfished *and then rebuilt*; the theory's own page says "collapse tracking biomass would remove generation time" — i.e., the theory claims a biomass-defined collapse outcome is exactly the wrong variable to see a generation signal, which biases this operationalization against the theory (we kept B/Bmsy because the programme pre-registered it; the B/B0 sensitivity is too small (n=11) to arbitrate).
4. **Fmsy normalization.** F/Fmsy mixes the theory's "harvest rate" with stock productivity; if Fmsy proxies are set relative to productivity, slow stocks' F/Fmsy is rescaled, attenuating or inverting the interaction. An absolute F (or harvest rate on its own scale) would test the theory more directly but was not pre-registered.
5. **Observational design.** Stocks are not randomly assigned harvest; managers target Fmsy regardless of generation time, so realized max F/Fmsy is compressed toward ~1, and long-generation stocks may simply have been fished harder historically (confounding). No causal claim is possible from this design.
6. **Pre-collapse F window.** For collapsed stocks we use max F/Fmsy up to the collapse year; for a few stocks the collapse year is near the start of the series, so "pre-collapse maximum" rests on few points.
7. **v4.491 vs v4.495.** The Zenodo record cited as v4.491 now serves v4.495; view CSVs named in the brief are no longer distributed and were reconstructed from the RData (PROVENANCE.md). Using v4.491 would not plausibly change the sign of these estimates.
8. **Implementation.** Pure-numpy logistic regression (IRLS) verified against an independent implementation and by gradient-norm checks; Spearman p via t-approximation; the region-control model for the 1/M sample is quasi-separated by region (region coefficients diverge) though the interaction SE remains finite.

## 4. What would change the conclusion

- **A larger sample with F/Fmsy.** Adding F series for the cod/clupeid collapses (or using the raw `timeseries` table's `FdivFmsy`-family tsids more aggressively) would decide whether the primary negative estimate is noise. Power analysis: with n=54 and 12 events the SE of b3 is ~0.49; detecting a modest positive interaction (b3 ≈ +0.3) at p<0.05 would need roughly 4–6× the sample.
- **A direct harvest-rate metric** (absolute F, or catch/biomass) instead of F/Fmsy, and **generation time from age-structured data** (e.g., mean age of spawners, or (1/K + t0)-based proxies) instead of maturity age.
- **A duration/severity outcome** (collapsed for ≥ X consecutive years, or B/Bmsy fall exceeding some amplitude) rather than a single min-threshold flag.
- **Within-stock comparative design** (e.g., paired fast/slow congener stocks in the same region) to break the productivity–reference-point confounding.
- If, with those fixes, b3 turned positive and significant and tertile medians declined, the verdict would flip to Supported/Conditional. As run, the data give no support and the strongest signal runs opposite to the theory.

## 5. Files

- `hypothesis.md` — quoted claim, pre-registered rules (written before fitting).
- `PROVENANCE.md` — URLs, timestamps, sha256 of all inputs.
- `code/01_export_rdata.py`, `code/02_prep_stock_level.py`, `code/03_analysis.py`, `code/common.py`, `code/pylibs/` (workspace-local rdata/xarray/narwhals).
- `data/` — RAMLDB v4.495 zip, extracted RData, exported view CSVs.
- `results/stock_level.csv` (per-stock table), `results/regression_table.csv`, `results/tertile_table.csv`, `results/sample_summary.csv`, `results/sample_counts.csv`, `results/summary.json`.

hypothesis.md

# T12 — Fishery Collapse: "Collapse Is Generation Against Harvest"

**Theory under test:** Incoprea Vol. XIX, Theory #29 — *Collapse Is Generation Against Harvest*
URL: https://incoprea.com/research-library/original-theories-vol19-20261030/theories/fishery-collapse-generation-harvest.html

**Verdict (applied post-analysis, per §3.8): NOT SUPPORTED** — see FINDINGS.md.

## 1. Claim quoted from the source page

> **The claim:** "Fishery collapse occurs when the ratio of generation time to harvest rate falls below a threshold, so a slow-growing stock collapses at a lower harvest than a fast-growing one."

> **Mechanism (section 01):** "Recruitment must replace removals before the next generation matures; the ratio determines whether replacement is possible."

> **Prediction (section 02):** "Collapse should track the ratio."

> **Refutation (section 03):** "Collapse tracking biomass would remove generation time."

Page status banner: "Working hypotheses, not findings · Not peer reviewed. Publication does not verify novelty or the cited evidence."
Page footer: "Written 30 October 2026."

**Operational reading.** The theory asserts that the *threshold* harvest pressure at which a stock collapses is set by the ratio (generation time / harvest rate). Empirically this implies an interaction between harvest pressure and generation time: at the same realized F/Fmsy, a stock with a longer generation time (slower growth) should have *higher* collapse probability — equivalently, longer-generation stocks should collapse at *lower* median F/Fmsy. Both implied tests are pre-registered below and run against the RAM Legacy Stock Assessment Database.

## 2. Data

RAM Legacy Stock Assessment Database, record https://zenodo.org/record/4824192 (cited in the programme brief as v4.491; the record currently serves **RAMLDB v4.495.zip**, md5 688d450bfd59849e0522c3c5e18d1b66 — see PROVENANCE.md). Individual view CSVs are no longer distributed on the record; the equivalent tables were reconstructed from `R Data/DBdata[asmt][v4.495].RData` with the pure-Python `rdata` reader and written to `data/*.csv` (see PROVENANCE.md for sha256).

Variables used:
- `BdivBmsypref` (timeseries_values_views): B/Bmsy, stockid × year, "preferred" (best) series. **Primary biomass metric.**
- `FdivFmsy` (timeseries_values_views): F/Fmsy, stockid × year. **Primary harvest-pressure metric.**
- `A50M-yr` (bioparams long table, bioid `A50M-yr`): age at 50% maturity (years). **Primary generation-time proxy.**
- `M-1/yr` / view column `M`: natural mortality (1/yr). **Sensitivity generation proxy (1/M).**
- `TB` (view) and `TB0` (bioparams_values_views): used for the B/B0 sensitivity.
- `stock` (stockid, region, primary_country, ISO3_code, areaid), `taxonomy` (family via tsn), `metadata` (region, taxGroup, FisheryType) for controls.

## 3. Pre-registered definitions and analysis rules (fixed BEFORE any model fitting)

### 3.1 Unit of analysis
One row per `stockid` (the DB's stock-level views are already "best-series" consolidated). Stocks with multiple assessments are collapsed to a single stock-level series as provided by the DB views.

### 3.2 Sample inclusion (primary analysis)
- Stock has **≥ 10 non-null years** of `BdivBmsypref` and **≥ 10 non-null years** of `FdivFmsy` (so min/max are not dominated by a stray point).
- Generation proxy (`A50M-yr`) available (any assessment of the stock).
Sensitivity A: same but **≥ 5 years** instead of 10. Sensitivity B: generation proxy = `1/M`.

### 3.3 Collapse (primary)
`collapse = 1` iff `min(BdivBmsypref) < 0.2` over the stock's assessed series. Collapse year = first year with `BdivBmsypref < 0.2`.
Sensitivity: `collapse_B0 = 1` iff `min(TB / TB0) < 0.2` (TB0 from bioparams_values_views; stocks without TB0 excluded).

### 3.4 Harvest pressure
- Collapsed stocks: `F_pressure = max(FdivFmsy)` over years **up to and including the collapse year** (pre-collapse maximum).
- Non-collapsed stocks: `F_pressure = max(FdivFmsy)` over all years.
(This asymmetry follows the programme brief and matches the theory: for collapsed stocks only pre-collapse harvest matters; using the full-series max for non-collapsed stocks is conservative against the theory — it can only attenuate the generation signal.)

### 3.5 Generation time
Primary proxy: age at 50% maturity `A50M-yr` (per-stock median across assessments). Sensitivity: `1/M` (M from bioparams_values_views).

### 3.6 SUPPORT RULE 1 — interaction in logistic regression
Model: `logit P(collapse) = b0 + b1·log(F_pressure) + b2·log(gen) + b3·[log(F_pressure)·log(gen)]`.
**Support = b3 > 0 and p < 0.05** (Wald test; SEs from the observed-information Hessian at the MLE).
The theory predicts b3 > 0: for longer-generation stocks the same F/Fmsy implies higher collapse odds.
Estimator: logistic regression via numpy gradient descent (no statsmodels/scipy), standardised inputs for stable optimisation, back-transformed coefficients reported. Sample limited to stocks with finite log(F_pressure) (F_pressure > 0).

### 3.7 SUPPORT RULE 2 — tertile trend of collapse harvest
- Split the analysis sample into **tertiles of log(generation proxy)** (equal-count tertiles over the whole analysis sample, collapsed and non-collapsed together).
- Among **collapsed** stocks, compute each tertile's **median F_pressure** (descriptive summary; support requires a monotone decline T1 > T2 > T3).
- Trend test (the inferential part): **per-stock Spearman rank correlation across collapsed stocks** between their generation tertile rank (1,2,3) and their F_pressure, one-sided. Support = **rho < 0 with p < 0.05**. *(Clarified before fitting: exact Spearman on only the 3 tertile medians can never attain p<0.05 because 3 points allow a minimum one-sided p of 1/6, so the significance test uses the per-stock ranks; the 3 medians are reported descriptively.)*

### 3.8 Verdict rule
- **Supported** = Rule 1 holds (b3 > 0, p < 0.05) AND Rule 2 holds (negative trend, p < 0.05).
- **Conditional** = b3 > 0 with p < 0.10 (weak interaction) OR only Rule 2 holds.
- **Not supported** = no generation-time signal (b3 ≤ 0 or p ≥ 0.10, and Rule 2 fails).

### 3.9 Controls and descriptives
- Report n, number/percent collapsed vs not, by region and taxGroup where sample allows.
- Secondary logistic model adds **region** fixed effects (regions with ≥ 20 stocks; others pooled as "Other") as a control — reported as a robustness check, not part of the verdict.

## 4. What would count against the theory
- Interaction coefficient b3 ≤ 0 (or indistinguishable from 0) → same F/Fmsy does NOT carry higher collapse odds for slower stocks.
- No negative tertile trend in collapse F/Fmsy → slow stocks do not collapse at lower harvest.
- Per the theory's own refutation clause, a null result on the biomass-defined outcome cannot be attributed to the collapse definition being "too biomass-tracking" unless the B/B0 sensitivity also disagrees.

## 5. Analysis environment
Python at `[local provenance path] (numpy 2.3.5, pandas 3.0.1; no scipy/statsmodels). Logistic regression implemented by hand in numpy (gradient descent + analytic Hessian SEs). Spearman implemented by hand. `rdata` 1.1.0 (pure Python) used to read the RData, installed with `pip --target` into `code/pylibs` (workspace-local; the compiled `pyreadr` wheel could not load in the code-signed dsh runtime).

Included code and results