RERUN
Claim 23

Does a 1986 figure for a forest pest's timing hold up?

Independent rebuild

A 1986 study gave one number for how spread out a forest pest's development is. The Lab couldn't retrace it fairly, so there's no verdict.

Why not the authors' own code?

The original analyses from 1986 and 1991 were written for SAS and GLIM, older statistics software the Lab can't run. SAS is also paid. This claim runs a rebuild in R by another researcher, published in a peer-reviewed journal.

See the rebuild, which includes the original code

Spruce budworm strips forests across North America. Can a rebuild land on a number printed in a table 40 years ago?

What this result means

We test-ran this code once while building the Lab, so we've already seen one result. Its official run came after forecasting closed.

We test one thing: does this code and data give this number? That's not the same as the science being right. The forecast price never changes the verdict.

See the proof
1.559model setting, the paper says. Counts if between 1.48105 and 1.63695.
Where the number comes fromdennis_par = c(…, 599.57, 1.559)The last value on this line is from Kemp et al. 1986, Table 1, copied into the replication's code

The exact claim as posted

A timing model for a forest pest: the 1986 spread value of 1.559

Kemp, Dennis and Beckwith (1986) report a spread value of 1.559 in their model of spruce budworm life stages. This re-runs an independent R replication by Boersch-Supan, published in ReScience C. He notes that this value came out about 9% different, while the overall fit still agrees well with the original. A difference here is not a finding that the original work is wrong.

RERUNCLAIM #0023

Does a 1986 figure for a forest pest's timing hold up?

Measured in
model setting
Paper says
1.559
Counts if
1.48105 to 1.63695
Lab got
no number
VerdictInconclusiveAn independent rebuild got a different number, which could be the rebuild's doing and not the paper's.
19ef61085d1bfae1011dNov 09, 2026

This result is final

An independent rebuild got a different number, which could be the rebuild's doing and not the paper's.

This slip is the Lab's .

✓ Verified on NEAR. See the contract's history

See the full receipt

  1. People forecast
  2. Forecasting ends
  3. The Lab retraces it
  4. Verdict posted, open to challenge
  5. Winners collect

What we didn't check

  • Whether the sample was fair or large enough.
  • Whether test data leaked into training or tuning.
  • Whether the result holds on new data.
  • Whether the study's method was the right one for its question.

Reading how the odds moved…

How much evidence is behind this?

Each step is a tougher test. Only the first one decides who wins the market.

  1. 1. !

    The Lab's retrace of the code and data named in the claim

    The test couldn't be run fairly, for example because the data changed. Every share pays back half.

  2. 2. –

    Stress test: does the number depend on luck?

    Fetching the extra runs…

  3. 3. –

    Rebuilt from the description (experimental)

    Fetching the AI's rebuild…

Coming next: a data-leakage check, for the same rows in training and test data, and a maths check on the statistics a paper reports. Neither has run on this claim.

Even all three steps can't prove the science is true. They show how well this result stands up to checking.

Verified

Your browser just re-checked these itself, so you don't have to trust this site.

Checking…

What the Lab retraces

Source
https://doi.org/10.5281/zenodo.5006005
Replication: P. H. Boersch-Supan. Original: W. P. Kemp, B. Dennis, R. C. Beckwith., CC-BY-4.0
Code, at this exact version
https://github.com/pboesu/replication_candy_1991
commit 98329d447ef025c260879f28316015fc0b24fb08
Commands
r4.4
$ mkdir -p /work/.rlib
$ Rscript --vanilla -e "install.packages('gtools', lib='/work/.rlib', repos='https://cloud.r-project.org')"
$ Rscript --vanilla -e "library(dplyr); e <- parse('code/03_fit_dennis_et_al_model.R'); for (x in e[3:5]) eval(x); cat(sprintf('spread %.6f\n', logit_cm_dennis_nll\$par[7]))" > rerun_output.txt
Where the result is read
rerun_output.txt using regex spread (-?[0-9.]+)
Data files
None
Limits
2 CPU, 2 GB, 15 minutes
19ef61085d1bfae1011de7c8c5006c243a97c56f2066c7bbea8d1179e60c8a0f
Show the claim exactly as stored on the blockchain
{"artifact":{"commit":"98329d447ef025c260879f28316015fc0b24fb08","data":[],"entrypoint":"Rscript --vanilla -e \"library(dplyr); e <- parse('code/03_fit_dennis_et_al_model.R'); for (x in e[3:5]) eval(x); cat(sprintf('spread %.6f\\n', logit_cm_dennis_nll\\$par[7]))\" > rerun_output.txt","output":{"extractor":{"expr":"spread (-?[0-9.]+)","type":"regex"},"path":"rerun_output.txt"},"repo_url":"https://github.com/pboesu/replication_candy_1991","runtime":"r4.4","setup":["mkdir -p /work/.rlib","Rscript --vanilla -e \"install.packages('gtools', lib='/work/.rlib', repos='https://cloud.r-project.org')\""]},"metric":{"comparison":"within_tolerance","name":"spread value (b squared) of the logit model","reported_value":"1.559","tolerance":{"type":"rel","value":"0.05"}},"private_data":null,"resources":{"cpu":2,"max_minutes":15,"mem_gb":2},"source":{"authors":"Replication: P. H. Boersch-Supan. Original: W. P. Kemp, B. Dennis, R. C. Beckwith.","doi":"10.5281/zenodo.5006005","license":"CC-BY-4.0","type":"paper","url":"https://doi.org/10.5281/zenodo.5006005"},"statement":"Kemp, Dennis and Beckwith (1986) report a spread value of 1.559 in their model of spruce budworm life stages. This re-runs an independent R replication by Boersch-Supan, published in ReScience C. He notes that this value came out about 9% different, while the overall fit still agrees well with the original. A difference here is not a finding that the original work is wrong.","title":"A timing model for a forest pest: the 1986 spread value of 1.559","version":1}

Community notes

Notes are people's own words, kept on the blockchain. They never change a verdict, and the Lab's AI never reads them. Posting costs a little NEAR for storage, and what isn't used comes back.