--- slug: the-tanks-that-counted-themselves passed: 2026-10-14 by: the assay line (research/assay-line/cited-1014b/), Codex fixer directed by claude-assaying-boyle-1014; source record by Codex, checked by Codex and a Claude agent checked: 107 confirmed: 90 wrong: 16 unverifiable: 0 observed: 0 stale: 1 --- This was the directed repair pass for the 17 findings in research/assay-line/cited-1014b/the-tanks-that-counted-themselves/triage.json, against the page read at 67088387e0. The fixer re-read the evidence before editing, recomputed the disputed fractions, and kept the triage's levels: 3 WRONG lines (two describe one error), 13 MINOR lines, and 1 STALE metadata line; MINOR is included in wrong: 16. The 90 unchanged CONFIRMED claims below are carried forward from the source rereads recorded by both N2 checkers, with their evidence notes, rather than presented as a new full audit. Confirmations of wording superseded by these repairs are covered by the corresponding triage items. The HTML is directly authored; verify.mjs generates only artifact.json. Two public Corrected lines cover the two distinct WRONG findings; MINOR changes are recorded here and the dateModified exception needs no Updated line. ## Claims - MINOR | [X1; body-05-4] The serial number, meant only to track a part through a factory, quietly carries the size of the factory's output. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | Re-read pp. 73-74: markings traced manufacturing defects, including failures in the field, and supported spare-parts control. The factory-only purpose was too narrow. - MINOR | [X2; body-06-0] Below is one captured month, the same one the argument follows: k = 15 serials drawn from a run whose true size only the postwar ledgers would reveal. | research/the-tanks-that-counted-themselves/verify.mjs | The worked example chooses N0=270 and k0=15, then uses sampleWithoutReplacement with mulberry32(20260619). The HTML uses the same 15 serials and WORKED_N=270. This is simulated data; section VII already disclosed that fact. - WRONG | [X3; body-24-1] At k = 15 it is exactly 17/3 = 5.667: the estimator that throws away everything but the maximum has under a sixth the mean-squared error of the one that averages all the evidence. | research/the-tanks-that-counted-themselves/verify.mjs | At k=15, Var(twiceMean)/Var(MVUE)=17/3. Its reciprocal is 3/17=0.17647058823529413, greater than 1/6 and less than 1/5. Re-read the variance formulas and recomputed the comparison. Same error as K4. - WRONG | [X4; body-28-0] A frequentist returns a single best estimate. | https://epub.ub.uni-muenchen.de/2094/1/paper_499.pdf | Re-read printed pp. 2-3: Goodman is credited with both minimum-variance unbiased estimators and confidence intervals; section 2 gives the frequentist interval and its upper-endpoint rule. Frequentist inference is not confined to point estimation. - MINOR | [X5; body-31-3] The data don't just say "about 260"; they say "almost surely between 243 and 313, and here is how the plausibility is distributed across that range." From fifteen serial numbers. | https://epub.ub.uni-muenchen.de/2094/1/paper_499.pdf; research/the-tanks-that-counted-themselves/verify.mjs | Re-read the posterior and discrete-quantile derivations and code. For m=243,k=15, exact posterior mass through 313 is 1-C(242,14)/C(313,14)=0.9750264073212839. The positive remaining tail is 0.024973592678716166. This is not probability one. - MINOR | [X6; body-33-3] The shaded band is the central 95%; the gold line is the posterior mean; the teal line is the truth the ledgers later revealed. | public/strata/the-tanks-that-counted-themselves/index.html; research/the-tanks-that-counted-themselves/verify.mjs | The teal marker reads state.N, initialized to WORKED_N=270 and changed by setSample. The band uses the smallest integers whose cumulative posterior mass reaches 0.025 and 0.975. Its nominal level is 95%; the worked interval actually contains about 97.5%. - MINOR | [X7; citation-panther] The Panther road-wheel example (≈270 estimated vs. 276 recorded for February 1944) and the postwar finding that Allied statistical estimates outperformed both intelligence estimates and Germany's own figures are as reported in the standard secondary accounts of Ruggles & Brodie's study. | https://www.math.kth.se/matstat/gru/sf1901/F/fo9sf1901new.pdf#page=69; https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | Re-read Grandell and Koski, lecture 9, slide 58 (PDF page 69): the secondary account reports greater accuracy and timeliness than German estimates. Ruggles and Brodie pp. 73 and 89 instead use German production records as the benchmark. Preserve the secondary attribution and distinguish estimates from recorded output. - MINOR | [X8; dek-2] The trick is a single idea: the largest serial you have seen, plus the average gap between the ones you have, estimates the whole production almost exactly. | research/the-tanks-that-counted-themselves/verify.mjs | The stated variance gives SD=sqrt(271)=16.46207763315433 at N=270,k=15, about 6.1% of N. Section VII also discloses a 38.5% historical miss. Unbiasedness supplies no near-exact guarantee for an individual estimate; uncertainty depends on the sample. Same error as K8. - STALE | [X9; modified-date] "dateModified":"2026-06-19" | git show 26148524b64 -- public/strata/the-tanks-that-counted-themselves/index.html; git show 67088387e0:public/strata/the-tanks-that-counted-themselves/index.html | Re-read the August 1 commit: it added the factual checking placard while dateModified remained June 19. Today's content revision is dated 2026-10-14. The explicit JSON-LD exception applies; the Corrected lines date the revision, so no Updated line is required. - MINOR | [K1; body-01-1] [#2 body-01-1] Their spies guessed four to eight times too high. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | Re-read pp. 72, 80 and 89. The three production months are June 1940, June 1941 and August 1942; their conventional estimates were compiled in Munitions Record No. 24, August 10, 1942. Serial-number work began in early 1943 and reconstructed earlier output. The displayed overshoot ratios remain supported. Same timeline issue as K7. - MINOR | [K2; body-02-1] [#5 body-02-1] Their intelligence services, working from agent reports and captured documents, answered with figures that turned out to be four to eight times too high. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | Re-read pp. 73, 78 and 89: aggregate intelligence estimates used extrapolated prewar data or equipment tables based on the German order of battle. Secret reports concern plant-level information; captured documents were important inputs to serial-number analysis. The compressed source attribution needed clarification. - MINOR | [K3; body-02-3] [#7 body-02-3] They read the serial numbers stamped on the tanks the army captured and destroyed -- gearboxes, chassis, engines, the moulds that cast the road wheels -- and from those numbers estimated the whole. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | Re-read pp. 78, 81 and 83: captured log books, unit lists, repair records and technical publications supplied serial numbers, as did inspections of captured equipment. Later intensive tank inspections are explicitly described. Preserve both documentary and physical routes. - WRONG | [K4; body-24-1] [#58 body-24-1] At k = 15 it is exactly 17/3 = 5.667: the estimator that throws away everything but the maximum has under a sixth the mean-squared error of the one that averages all the evidence. | research/the-tanks-that-counted-themselves/verify.mjs | Duplicate of X3. Independently recomputed 3/17=17.647058823529413%, above 1/6=16.666666666666664%. The reciprocal comparison is false even though the displayed variance ratio is correct to its stated rounding. - MINOR | [K5; panther-method] [#90 panther-method] from the road wheels of just two Panther tanks -- the wheels were cast in numbered moulds, and counting the moulds, then the wheels per mould, then the tanks -- the method estimated 270 Panthers built in February 1944. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | Re-read the complete analysis on pp. 82-83. The numbered moulds made rubber bogie-wheel tyres. British manufacturing experience and replacement allowances supported a rate of 270 tanks per month by February 1944, conditional on assembly at bogie-wheel production capacity. Recorded output was 276. Their relative difference is 100*6/276=2.1739130434782608%, rounded to 2.2%. - MINOR | [K6; citation-panther] [#119 citation-panther] The Panther road-wheel example (≈270 estimated vs. 276 recorded for February 1944) and the postwar finding that Allied statistical estimates outperformed both intelligence estimates and Germany's own figures are as reported in the standard secondary accounts of Ruggles & Brodie's study. | https://www.math.kth.se/matstat/gru/sf1901/F/fo9sf1901new.pdf#page=69; https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | The contrary source evidence holds: slide 58 does report greater accuracy and timeliness than German estimates. The checker's no-source premise is rejected, as directed by the triage; the remaining attribution issue stays MINOR. Ruggles and Brodie use production records as their tank-validation benchmark. Same clarification as X7. - MINOR | [K7; dek-0] [#129 dek-0] In 1940 the Allies needed to know how many tanks Germany was building, and the spies kept guessing four to eight times too high. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | Re-read pp. 72, 80 and 89. The 1940 information-need framing is not disproved, but the estimates and analysis came later: August 1942 intelligence figures and serial-number work beginning in early 1943. Align the hypothetical analyst to 1943 and distinguish the production dates. Same error as K1. - MINOR | [K8; dek-2] [#131 dek-2] The trick is a single idea: the largest serial you have seen, plus the average gap between the ones you have, estimates the whole production almost exactly. | research/the-tanks-that-counted-themselves/verify.mjs | Duplicate of X8. The default estimator SD is sqrt(271), about 6.1% of N=270; the historical June 1940 row misses by 38.5%. The sampling assumptions support an estimate with uncertainty, not an almost-exact guarantee. - CONFIRMED | After the war the German production ledgers were opened, and it was the statisticians, not the spies, who had been close. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | body-02-4: Primary abstract says "After the war official statistics on German war production became available"; p. 89 supplies the superior statistical comparisons. - CONFIRMED | Somewhere in the Reich a factory is turning out tanks, each stamped at assembly with a serial number. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | body-03-1: Primary pp. 78-79 identify tank chassis and engine serial numbers, manufacturing dates and assemblers. The singular factory is part of the hypothetical setup, not a claim that all German tanks came from one plant. - CONFIRMED | You will never see the factory, the ledger, or most of the tanks. | git show 67088387e0:public/strata/the-tanks-that-counted-themselves/index.html | body-03-2: This describes the hypothetical analyst's limited information. Primary p. 78 documents partial information from captured records and machines; it cannot verify the literal future of a fictional analyst. - CONFIRMED | What you will see, over the months, is a scatter of captured and knocked-out machines, and you can read the numbers off them. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | body-03-3: Primary p. 78 explicitly describes technical personnel "inspecting captured equipment" and tanks available for examination in England and the United States. - CONFIRMED | From that handful of numbers you must estimate a quantity nobody on your side knows: how many were made. | git show 67088387e0:public/strata/the-tanks-that-counted-themselves/index.html | body-03-4: The hypothetical task matches the documented purpose of estimating production from sampled markings; it is not independently evidence about everything every Allied person knew. - CONFIRMED | Strip it to the model that makes it solvable. Suppose a month's tanks are numbered 1, 2, …, N with N unknown, and that the ones you observe are a fair sample of distinct serials drawn from that run. You see k of them; the largest is m. Estimate N. | https://web.williams.edu/Mathematics/sjmiller/public_html/math/papers/GermanTankProblem_MultipleFactories_v42.pdf | body-04: The multiple-factories paper p. 2 expressly assumes consecutive positive integers, a starting serial of 1 and equal capture probability. Distinct sampling is confirmed in its p. 6 proof. - CONFIRMED | They are consecutive, assigned in order by the enemy's own bookkeeping, and that order is a gift. | https://archive.org/download/CIA-RDP79R01001A001300010013-3/CIA-RDP79R01001A001300010013-3_djvu.txt | body-05-2: Read within the immediately preceding "Suppose" model. The primary historical source qualifies real numbering with bands and gaps; the page also states those qualifications in section VII. - CONFIRMED | It means the serials you hold are spread through the whole run, and the spacing between them is itself a measurement. | https://pmc.ncbi.nlm.nih.gov/articles/PMC11147940/ | body-05-3: The gap interpretation is given in the PMC paper, including the gap before the smallest serial. It describes information under uniform sampling, not guaranteed even spacing in any single sample. - CONFIRMED | The biggest number you have seen is your crudest guess [...] and it can never exceed the truth, so it always leans low. | git show 67088387e0:public/strata/the-tanks-that-counted-themselves/index.html | body-08-2: Every sampled serial is at most N, so m <= N. Its expectation is strictly below N when k < N, and equals N for a census. - CONFIRMED | The oxide marker adds one average gap past m to reach for the line you can't see; on a typical month it lands within a few percent of the teal truth. | git show 67088387e0:research/the-tanks-that-counted-themselves/verify.mjs | body-08-3: At default N=270,k=15 the exact probability of relative error at most 5 percent is 0.6213225. That supports the ordinary "typical month" phrasing at this default, not a guarantee across settings. - CONFIRMED | The blue marker [...] twice the average of all your serials [...] is also honest on average but jumps around far more, as the next instrument makes visible. | git show 67088387e0:research/the-tanks-that-counted-themselves/verify.mjs | body-08-4: The actual estimator is 2*mean-1, named explicitly in section IV. The panel's short name is interpreted consistently with that displayed formula; it is unbiased and has the larger variance for 1 < k < N. - CONFIRMED | The first instinct is to say: I have seen number 243, so there were at least 243; my best single guess is 243. | git show 67088387e0:research/the-tanks-that-counted-themselves/verify.mjs | body-09-0: The generated worked sample has m=243 and N=270; every admissible N is at least the largest observed serial. - CONFIRMED | This is, in fact, the maximum-likelihood estimate [...] the value of N under which your exact sample is most probable is N = m, because any larger N only spreads the probability thinner. | https://www.mjandrews.org/notes/germantank/ | body-09-1: The Andrews likelihood is maximized at N = max(x_1 ... x_n); for a fixed distinct sample its likelihood is proportional to 1/C(N,k). - CONFIRMED | It is also obviously an underestimate, and not by a little. | git show 67088387e0:research/the-tanks-that-counted-themselves/verify.mjs | body-09-2: For the specified worked sample the maximum is 243 against true N=270, an underestimate by 27. This sentence is not treated as a claim that every possible maximum is strictly below N. - CONFIRMED | You did not happen to capture the very last tank off the line; the true maximum is almost certainly above the largest you saw. | git show 67088387e0:research/the-tanks-that-counted-themselves/verify.mjs | body-09-3: The worked sample omits 270. In the default design P(m=N)=k/N=1/18; the page's usual-case statement is supported, with equality possible. - CONFIRMED | The MLE can never exceed what you have observed, and the truth almost always does. | git show 67088387e0:research/the-tanks-that-counted-themselves/verify.mjs | body-09-4: m equals the largest observation exactly; it cannot exceed it. At the default k/N only 1/18 of samples include the true maximum. - CONFIRMED | E[max] = k · (N + 1) / (k + 1). | https://web.williams.edu/Mathematics/sjmiller/public_html/math/papers/GermanTankProblem_HigherDim.pdf | body-11: The higher-dimensional paper equation (3.3), printed p. 8, gives E[M_k]=k(N+1)/(k+1). The source record's locator p. 7 is incorrect for the fetched PDF. - CONFIRMED | For N = 270, k = 15 that is 254.06 [...] so on average the largest serial you see falls about sixteen short of the truth. The bias is exactly | git show 67088387e0:research/the-tanks-that-counted-themselves/artifact.json | body-12: Independent exact arithmetic gives E[m]=4065/16=254.0625 and a shortfall of 15.9375; 254.06 is correct to two decimals. - CONFIRMED | E[max] − N = −(N − k) / (k + 1) = −15.94 here, | git show 67088387e0:research/the-tanks-that-counted-themselves/artifact.json | body-13: Subtracting N gives -255/16=-15.9375, rounded to -15.94. - CONFIRMED | The biggest number you've seen is a biased estimator, and we know the size and the sign of the lie: it always leans low, by about (N − k)/(k + 1). | https://web.williams.edu/Mathematics/sjmiller/public_html/math/papers/GermanTankProblem_HigherDim.pdf | body-14-1: Subtract N from the source's exact expectation: k(N+1)/(k+1)-N=-(N-k)/(k+1). Strict negative bias requires k1 and k=m. The prior is improper; the posterior is proper for k>1 and has a finite mean for k>2, satisfied by the interface's k>=3. - CONFIRMED | The likelihood of having drawn your particular sample given N is 1 / C(N, k) [...] one over the number of ways to choose k serials from N [...] so the posterior is proportional to 1/C(N, k), peaking at N = m and decaying as N grows past it. | https://www.mjandrews.org/notes/germantank/ | body-29-1: The Andrews posterior is proportional to inverse binomial coefficients on N>=m, which decrease strictly as N increases for k>0. - CONFIRMED | E[N | m, k] = (m − 1)(k − 1) / (k − 2), | https://epub.ub.uni-muenchen.de/2094/1/paper_499.pdf | body-30: Hohle and Held equation (5), printed p. 4, gives this mean for sample size greater than 2. The page's allowed sample sizes meet that condition. - CONFIRMED | which for the worked month gives 260.6. | git show 67088387e0:research/the-tanks-that-counted-themselves/artifact.json | body-31-0: Exact arithmetic gives 3388/13=260.6153846, rounded to 260.6. - CONFIRMED | The frequentist's 258.2 and the Bayesian's 260.6 sit within a percent of each other, both a little under the true 270. | git show 67088387e0:research/the-tanks-that-counted-themselves/artifact.json | body-31-1: The difference 2.4153846 is under one percent of either estimate and of N=270. Both values are below 270. - CONFIRMED | The curve is the plausibility of each possible production figure N given your serials; it can't drop below the largest tank you saw (left edge = m) and falls off like N−k above it. | git show 67088387e0:public/strata/the-tanks-that-counted-themselves/index.html | body-33-2: The posterior is zero for N ``` After: ```text ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:110](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:110) Before (old line 110): ```text ``` After: ```text ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:117](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:117) Before (old line 117): ```text ``` After: ```text ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:127](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:127) Before (old line 127): ```text

In 1940 the Allies needed a number they could not see: how many tanks was Germany building each month? Their spies guessed four to eight times too high. A handful of statisticians read the serial numbers off the captured tanks \u2014 and were right.

``` After: ```text

In 1940 the Allies needed a number they could not see: how many tanks was Germany building each month? The Allied intelligence figures compiled in August 1942 guessed four to eight times too high for the three months shown below. Beginning in early 1943, a handful of statisticians used serial numbers from captured records and inspected tanks to reconstruct earlier production, and came much closer.

``` ### [public/strata/the-tanks-that-counted-themselves/index.html:131](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:131) Before (old line 131): ```text

In the summer of 1940 the Western Allies needed a number they could not see: how many tanks was Germany actually building each month? Their intelligence services, working from agent reports and captured documents, answered with figures that turned out to be four to eight times too high. A different answer came from a small group of economists and statisticians, who did not ask the spies anything. They read the serial numbers stamped on the tanks the army captured and destroyed \u2014 gearboxes, chassis, engines, the moulds that cast the road wheels \u2014 and from those numbers estimated the whole. After the war the German production ledgers were opened, and it was the statisticians, not the spies, who had been close. This layer is that method, worked end to end, with the real wartime figures recomputed beside it \u2014 and made playable, so you can draw a month of captured serials and watch the estimate land.

``` After: ```text

In 1940 the Western Allies needed a number they could not see: how many tanks was Germany actually building each month? Their intelligence services estimated aggregate production from prewar extrapolations and equipment requirements inferred from the German order of battle. The Allied figures compiled in August 1942, for the three production months shown below, turned out to be four to eight times too high. A different answer came from a small group of economists and statisticians who began their serial-number work in early 1943. They read serial numbers from captured records and inspected equipment: gearbox, chassis and engine numbers, plus mould numbers on rubber road-wheel tyres. From those numbers they reconstructed earlier production. After the war the German production ledgers were opened, and it was the statisticians, not the spies, who had been close. This layer is that method, worked end to end, with the real wartime figures recomputed beside it, and made playable, so you can draw a month of captured serials and watch the estimate land.

``` ### [public/strata/the-tanks-that-counted-themselves/index.html:134](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:134) Before (old line 134): ```text

You are an Allied analyst in 1941. Somewhere in the Reich a factory is turning out tanks, each stamped at assembly with a serial number. You will never see the factory, the ledger, or most of the tanks. What you will see, over the months, is a scatter of captured and knocked-out machines, and you can read the numbers off them. From that handful of numbers you must estimate a quantity nobody on your side knows: how many were made.

``` After: ```text

You are an Allied analyst in 1943. Somewhere in the Reich a factory is turning out tanks, each stamped at assembly with a serial number. You will never see the factory, the ledger, or most of the tanks. What you will see, over the months, is a scatter of captured and knocked-out machines, and you can read the numbers off them. From that handful of numbers you must estimate a quantity nobody on your side knows: how many were made.

``` ### [public/strata/the-tanks-that-counted-themselves/index.html:136](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:136) Before (old line 136): ```text

It sounds like there is nothing to work with \u2014 you have a few numbers and want the size of a set you have mostly never seen. But the numbers are not arbitrary. They are consecutive, assigned in order by the enemy's own bookkeeping, and that order is a gift. It means the serials you hold are spread through the whole run, and the spacing between them is itself a measurement. The serial number, meant only to track a part through a factory, quietly carries the size of the factory's output. The tanks count themselves.

Below is one captured month, the same one the argument follows: k = 15 serials drawn from a run whose true size only the postwar ledgers would reveal. Draw a fresh month whenever you like, or change how many were built and how many you caught. Everything in the three instruments recomputes in your browser by the same formulas the offline verifier runs.

``` After: ```text

It sounds like there is nothing to work with: you have a few numbers and want the size of a set you have mostly never seen. But the numbers are not arbitrary. They are consecutive, assigned in order by the enemy's own bookkeeping, and that order is a gift. It means the serials you hold are spread through the whole run, and the spacing between them is itself a measurement. The serial number, meant to support production tracing and spare-parts control, quietly carries the size of the factory's output. The tanks count themselves.

Below is one simulated month, the same one the argument follows: k = 15 serials drawn from a run whose true size we chose as N = 270. Draw a fresh month whenever you like, or change how many were built and how many you caught. Everything in the three instruments recomputes in your browser by the same formulas the offline verifier runs.

``` ### [public/strata/the-tanks-that-counted-themselves/index.html:183](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:183) Before (old line 183): ```text

The ratio depends on nothing but k \u2014 not on N, not on how many tanks were built, only on how many you caught. At k = 15 it is exactly 17/3 = 5.667: the estimator that throws away everything but the maximum has under a sixth the mean-squared error of the one that averages all the evidence. (The Monte-Carlo run lands on 5.65, the closed form's sampling shadow.) Drag the sample size below and watch the exact ratio move; it is one of those rare places where the messy-looking answer is a clean fraction.

``` After: ```text

The ratio depends on nothing but k, not on N, not on how many tanks were built, only on how many you caught. At k = 15 it is exactly 17/3 = 5.667: the estimator that throws away everything but the maximum has under a fifth the mean-squared error of the one that averages all the evidence. (The Monte-Carlo run lands on 5.65, the closed form's sampling shadow.) Drag the sample size below and watch the exact ratio move; it is one of those rare places where the messy-looking answer is a clean fraction.

``` ### [public/strata/the-tanks-that-counted-themselves/index.html:204](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:204) Before (old line 204): ```text

V · The Bayesian reads it the same way, and hands you an interval

A frequentist returns a single best estimate. A Bayesian returns the whole shape of what the data permit \u2014 and on this problem the two agree, which is itself a small reassurance that neither is doing something strange.

``` After: ```text

V · From a point estimate to a posterior

So far we have used a frequentist point estimate. Frequentist methods also provide confidence intervals. A Bayesian analysis gives a posterior distribution under a chosen prior; here its mean is close to the frequentist estimate.

``` ### [public/strata/the-tanks-that-counted-themselves/index.html:208](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:208) Before (old line 208): ```text

which for the worked month gives 260.6. The frequentist's 258.2 and the Bayesian's 260.6 sit within a percent of each other, both a little under the true 270. The Bayesian's bonus is the part a point estimate cannot give: a 95% credible interval, read straight off the posterior \u2014 for the worked month, [243, 313], with the truth sitting comfortably inside. The data don't just say "about 260"; they say "almost surely between 243 and 313, and here is how the plausibility is distributed across that range." From fifteen serial numbers.

``` After: ```text

which for the worked month gives 260.6. The frequentist's 258.2 and the Bayesian's 260.6 sit within a percent of each other, both a little under the true 270. The posterior also gives a nominal 95% credible interval, read straight off the posterior: for the worked month, [243, 313], with the truth sitting comfortably inside. The data don't just say "about 260"; they say "almost surely between 243 and 313, and here is how the plausibility is distributed across that range." Here "almost surely" is informal: under the stated flat prior, [243, 313] contains about 97.5% posterior probability, not probability one. From fifteen serial numbers.

``` ### [public/strata/the-tanks-that-counted-themselves/index.html:213](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:213) Before (old line 213): ```text ``` After: ```text ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:215](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:215) Before (old line 215): ```text
This posterior is the current month in Instrument I. Draw a new month up top and this reshapes. The curve is the plausibility of each possible production figure N given your serials; it can't drop below the largest tank you saw (left edge = m) and falls off like N−k above it. The shaded band is the central 95%; the gold line is the posterior mean; the teal line is the truth the ledgers later revealed. The interval is honest about its own width \u2014 catch fewer tanks and watch it yawn open.
``` After: ```text
This posterior is the current month in Instrument I. Draw a new month up top and this reshapes. The curve is the plausibility of each possible production figure N given your serials; it can't drop below the largest tank you saw (left edge = m) and falls off like N−k above it. The shaded band is the nominal 95% interval between the 2.5% and 97.5% discrete quantiles; the gold line is the posterior mean; the teal line is the simulation's chosen true N. The interval is honest about its own width: catch fewer tanks and watch it yawn open.
``` ### [public/strata/the-tanks-that-counted-themselves/index.html:230](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:230) Before (old line 230): ```text
Read the last two columns. Across these months the statistical estimate missed by about a fifth; the intelligence estimate overshot by a multiple. The most-cited single case is sharper still: from the road wheels of just two Panther tanks \u2014 the wheels were cast in numbered moulds, and counting the moulds, then the wheels per mould, then the tanks \u2014 the method estimated 270 Panthers built in February 1944. The German records gave 276: a miss of 2.2%, from the wheels of two tanks.
``` After: ```text
Read the last two columns. Across these months the statistical estimate missed by about a fifth; the intelligence estimate overshot by a multiple. The Panther case is sharper still: the rubber road-wheel tyres of two tanks bore numbered mould markings. From those markings, British production-capacity experience and an allowance for replacement tyres, the analysts estimated an assembly rate of 270 Panthers per month by February 1944, assuming assembly at bogie-wheel production capacity. The German records gave 276 built that month: the conditional estimate differs from recorded output by 2.2%.
``` ### [public/strata/the-tanks-that-counted-themselves/index.html:237](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:237) Before (old line 237): ```text
  • The clean model is an idealization the analysts had to earn. "Serials run 1…N, one tidy sequence, sampled uniformly" is the schoolbook version. Reality was messier: German production authorities handed manufacturers blocks of serial numbers (often in hundreds), filled them incompletely, and stamped several independent number-series on each tank \u2014 chassis, engine, gearbox, the road-wheel moulds \u2014 each with its own range. The real work was forensic: reconstruct how the enemy's bookkeeping actually assigned numbers, reconcile the part-series, and only then apply the estimator. The formula is the easy half; figuring out what counts as N was the hard half.
  • ``` After: ```text
  • The clean model is an idealization the analysts had to earn. "Serials run 1…N, one tidy sequence, sampled uniformly" is the schoolbook version. Reality was messier: German production authorities handed manufacturers blocks of serial numbers (often in hundreds), filled them incompletely, and stamped several independent number-series on each tank (chassis, engine, gearbox and road-wheel tyre mould numbers), each with its own range. The real work was forensic: reconstruct how the enemy's bookkeeping actually assigned numbers, reconcile the part-series, and only then apply the estimator. The formula is the easy half; figuring out what counts as N was the hard half.
  • ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:241](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:241) Before (old line 241): ```text
  • The history here is cited, not recomputed. The 1947 production table and the Panther road-wheel figures are reported from the literature; the page stores them and computes only the error percentages. What it does recompute from scratch \u2014 the bias of the maximum, the unbiasedness and variance of the MVUE, its exact (k+2)/3 edge over the mean estimator, the Bayesian posterior and its interval \u2014 runs on synthetic months whose true N it controls, so no claim about the model rests on getting a historical transcription right. The two kinds of fact are kept apart on purpose.
  • ``` After: ```text
  • The history here is cited, not recomputed. The 1947 production table and the conditional Panther tyre-mould estimate and recorded output are reported from the literature; the page stores them and computes only their percentage differences. What it does recompute from scratch (the bias of the maximum, the unbiasedness and variance of the MVUE, its exact (k+2)/3 edge over the mean estimator, the Bayesian posterior and its interval) runs on synthetic months whose true N it controls, so no claim about the model rests on getting a historical transcription right. The two kinds of fact are kept apart on purpose.
  • ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:257](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:257) Before (old line 257): ```text The Panther road-wheel example (≈270 estimated vs. 276 recorded for February 1944) and the postwar finding that Allied statistical estimates outperformed both intelligence estimates and Germany's own figures are as reported in the standard secondary accounts of Ruggles & Brodie's study. ``` After: ```text The Panther tyre-mould example is in Ruggles & Brodie, pp. 82-83: 270 per month estimated assuming assembly at bogie-wheel production capacity, against 276 recorded for February 1944. Their tank comparison on p. 89 uses German production records as its benchmark and shows the statistical estimates closer than the Allied intelligence estimates. Grandell & Koski, KTH lecture 9, slide 58 (2016), separately report that the statistical estimates were more accurate and timely than Germany's own estimates. That is the secondary account's claim about estimates, distinct from the recorded output used to check them. ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:275](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:275) Before (old line 275): ```text // the worked month the prose narrates: k=15 serials from a run of N=270, largest m=243 ``` After: ```text // the simulated worked month: k=15 serials from a chosen run of N=270, largest m=243 ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:552](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:552) Before (old line 552): ```text `95% credible interval [${post.lo}, ${post.hi}] ` + ``` After: ```text `nominal 95% credible interval [${post.lo}, ${post.hi}] ` + ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:595](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:595) Before (old line 595): ```text ok(`Panther road wheels: 270 estimated vs 276 recorded \u2014 ${round(100 * 6 / 276, 1)}% miss`); ``` After: ```text ok(`Panther tyre moulds: 270 per month assuming assembly at bogie-wheel production capacity vs 276 recorded; ${round(100 * 6 / 276, 1)}% difference`); ``` ### [public/strata/the-tanks-that-counted-themselves/index.html:599](/home/liam/aw-claude-assaying-boyle-1014/public/strata/the-tanks-that-counted-themselves/index.html:599) Before (old line 599): Not present. After: ```text

    Corrections

    Corrected 2026-10-14: This page said that at k = 15 the maximum-based estimator has under a sixth of the twice-the-mean estimator's mean-squared error. The fraction is 3/17, about 17.65%, which is greater than a sixth and less than a fifth (found by the assay line, 2026-10-14).

    Corrected 2026-10-14: This page said, "A frequentist returns a single best estimate." Frequentist methods also provide confidence intervals (found by the assay line, 2026-10-14).

    ``` ### [src/content/strata/the-tanks-that-counted-themselves.md:4](/home/liam/aw-claude-assaying-boyle-1014/src/content/strata/the-tanks-that-counted-themselves.md:4) Before (old line 4): ```text dek: "In 1940 the Allies needed to know how many tanks Germany was building, and the spies kept guessing four to eight times too high. A handful of statisticians answered the question better, by reading the serial numbers stamped on the tanks they captured. The trick is a single idea: the largest serial you have seen, plus the average gap between the ones you have, estimates the whole production almost exactly. Postwar the German records were opened, and the statisticians had been right. Draw a month of captured serials and watch the estimate land; race the estimators; read the posterior. Every figure recomputed and checked to the digit." plain: "The German tank problem: in World War II the Allies estimated how many tanks Germany was building each month from the serial numbers on captured ones, and beat their own spies by a wide margin. The estimate is the largest serial you have seen plus the average gap between the ones you have. Draw a month of serials, race the estimators against the truth, and read the Bayesian posterior." ``` After: ```text dek: "In 1940 the Allies needed to know how many tanks Germany was building. Allied intelligence figures compiled in August 1942 ran four to eight times too high for the three months shown here. Starting in early 1943, a handful of statisticians reconstructed earlier production more closely from serial numbers in captured records and on inspected tanks. The trick is a single idea: the largest serial you have seen, plus the average gap between the ones you have, estimates the whole production under the sampling assumptions, with uncertainty that depends on how many you catch. Postwar the German records were opened, and the statisticians had been right. Draw a month of captured serials and watch the estimate land; race the estimators; read the posterior. Every figure recomputed and checked to the digit." plain: "The German tank problem: in World War II the Allies estimated how many tanks Germany was building each month from serial numbers in captured records and on inspected tanks, and beat their own spies by a wide margin. The estimate is the largest serial you have seen plus the average gap between the ones you have. Draw a month of serials, race the estimators against the truth, and read the Bayesian posterior." ``` ### [src/content/strata/the-tanks-that-counted-themselves.md:26](/home/liam/aw-claude-assaying-boyle-1014/src/content/strata/the-tanks-that-counted-themselves.md:26) Before (old line 26): ```text German monthly tank production from the serial numbers stamped on captured and destroyed tanks \u2014 and beat their own intelligence services by a wide margin. The ``` After: ```text German monthly tank production from serial numbers in captured records and on inspected tanks, and beat their own intelligence services by a wide margin. The ``` ### [src/content/strata/the-tanks-that-counted-themselves.md:32](/home/liam/aw-claude-assaying-boyle-1014/src/content/strata/the-tanks-that-counted-themselves.md:32) Before (old line 32): ```text - **I · Read the serials.** A number-line that draws a month of captured serials (defaulting to the worked example the prose narrates \u2014 k = 15 from a run of 270, ``` After: ```text - **I · Read the serials.** A number-line that draws a simulated month of captured serials (defaulting to the worked example the prose narrates: k = 15 from a chosen run of 270, ``` ### [src/content/strata/the-tanks-that-counted-themselves.md:46](/home/liam/aw-claude-assaying-boyle-1014/src/content/strata/the-tanks-that-counted-themselves.md:46) Before (old line 46): ```text `(m−1)(k−1)/(k−2)`, the 95% credible interval shaded, and the truth marked ``` After: ```text `(m−1)(k−1)/(k−2)`, the nominal 95% credible interval shaded, and the truth marked ``` ### [src/content/strata/the-tanks-that-counted-themselves.md:50](/home/liam/aw-claude-assaying-boyle-1014/src/content/strata/the-tanks-that-counted-themselves.md:50) Before (old line 50): ```text (statistical estimate vs. secret-intelligence estimate vs. the actual German records, with the error columns recomputed live) and the Panther road-wheel pair (≈270 estimated vs. 276 recorded). Those rows are **cited data**; only arithmetic ``` After: ```text (statistical estimate vs. August 1942 Allied intelligence estimate vs. the actual German records, with the error columns recomputed live) and the Panther tyre-mould pair (270 per month estimated assuming assembly at bogie-wheel production capacity, vs. 276 recorded in February 1944; a 2.2% relative difference). Those rows are **cited data**; only arithmetic ``` ### [src/content/strata/the-tanks-that-counted-themselves.md:65](/home/liam/aw-claude-assaying-boyle-1014/src/content/strata/the-tanks-that-counted-themselves.md:65) Before (old line 64): Not present. After: ```text *Corrected 2026-10-14:* This page said that at k = 15 the maximum-based estimator has under a sixth of the twice-the-mean estimator's mean-squared error. The fraction is 3/17, about 17.65%, which is greater than a sixth and less than a fifth (found by the assay line, 2026-10-14). *Corrected 2026-10-14:* This page said, "A frequentist returns a single best estimate." Frequentist methods also provide confidence intervals (found by the assay line, 2026-10-14). ``` ### [research/the-tanks-that-counted-themselves/verify.mjs:7](/home/liam/aw-claude-assaying-boyle-1014/research/the-tanks-that-counted-themselves/verify.mjs:7) Before (old line 7): ```text // production from the serial numbers stamped on captured and destroyed tanks. ``` After: ```text // production from serial numbers in captured records and on inspected tanks. ``` ### [research/the-tanks-that-counted-themselves/verify.mjs:24](/home/liam/aw-claude-assaying-boyle-1014/research/the-tanks-that-counted-themselves/verify.mjs:24) Before (old line 24): ```text // (1947) monthly-production table \u2014 statistical estimate vs. secret-intelligence // estimate vs. the actual German records \u2014 recomputing how far each method missed. // Those three rows and the Panther road-wheel pair (270 estimated / 276 actual) ``` After: ```text // (1947) monthly-production table: statistical estimate vs. August 1942 Allied // intelligence estimate vs. the actual German records, recomputing each difference. // Those three rows and the conditional Panther tyre-mould pair (270 / 276) ``` ### [research/the-tanks-that-counted-themselves/verify.mjs:94](/home/liam/aw-claude-assaying-boyle-1014/research/the-tanks-that-counted-themselves/verify.mjs:94) Before (old line 94): ```text // One month, N tanks produced, numbered 1..N. The Allies log k serials. ``` After: ```text // One simulated month: choose N tanks numbered 1..N, then draw k serials. ``` ### [research/the-tanks-that-counted-themselves/verify.mjs:232](/home/liam/aw-claude-assaying-boyle-1014/research/the-tanks-that-counted-themselves/verify.mjs:232) Before (old line 232): ```text // a 95% credible interval (lower 2.5%, upper 97.5%) from the running CDF ``` After: ```text // a nominal 95% credible interval from the 2.5% and 97.5% discrete quantiles ``` ### [research/the-tanks-that-counted-themselves/verify.mjs:241](/home/liam/aw-claude-assaying-boyle-1014/research/the-tanks-that-counted-themselves/verify.mjs:241) Before (old line 241): ```text check(`Bayesian 95% credible interval [${BAYES.credible95[0]}, ${BAYES.credible95[1]}] contains the truth ${N0}`, ``` After: ```text check(`Bayesian nominal 95% credible interval [${BAYES.credible95[0]}, ${BAYES.credible95[1]}] contains the truth ${N0}`, ``` ### [research/the-tanks-that-counted-themselves/verify.mjs:275](/home/liam/aw-claude-assaying-boyle-1014/research/the-tanks-that-counted-themselves/verify.mjs:275) Before (old line 275): ```text // Panther road-wheel pair (cited): 270 estimated / 276 actual, Feb 1944. const PANTHER = { month: "February 1944", estimated: 270, actual: 276 }; PANTHER.relErrorPct = round(100 * Math.abs(PANTHER.estimated - PANTHER.actual) / PANTHER.actual, 1); check(`Panther road-wheel estimate 270 vs actual 276 \u2014 within ${PANTHER.relErrorPct}% (cited pair)`, PANTHER.relErrorPct < 3); ``` After: ```text // Panther tyre-mould pair (cited, Ruggles and Brodie pp. 82-83). // 270 per month assumes tank assembly at bogie-wheel production capacity, // with replacement use allowed for; 276 is recorded output in February 1944. const PANTHER = { month: "February 1944", estimated: 270, actual: 276, estimateAssumption: "tank assembly at bogie-wheel production capacity, with replacement use allowed for", }; PANTHER.relDifferencePct = round(100 * Math.abs(PANTHER.estimated - PANTHER.actual) / PANTHER.actual, 1); check(`Panther conditional capacity estimate 270 vs recorded output 276: ${PANTHER.relDifferencePct}% difference (cited pair)`, PANTHER.relDifferencePct < 3); ``` ### [research/the-tanks-that-counted-themselves/artifact.json:106](/home/liam/aw-claude-assaying-boyle-1014/research/the-tanks-that-counted-themselves/artifact.json:106) Before (old line 106): ```text "relErrorPct": 2.2 ``` After: ```text "estimateAssumption": "tank assembly at bogie-wheel production capacity, with replacement use allowed for", "relDifferencePct": 2.2 ``` ### [public/checks/research/the-tanks-that-counted-themselves/verify.mjs:7](/home/liam/aw-claude-assaying-boyle-1014/public/checks/research/the-tanks-that-counted-themselves/verify.mjs:7) Before (old line 7): ```text // production from the serial numbers stamped on captured and destroyed tanks. ``` After: ```text // production from serial numbers in captured records and on inspected tanks. ``` ### [public/checks/research/the-tanks-that-counted-themselves/verify.mjs:24](/home/liam/aw-claude-assaying-boyle-1014/public/checks/research/the-tanks-that-counted-themselves/verify.mjs:24) Before (old line 24): ```text // (1947) monthly-production table \u2014 statistical estimate vs. secret-intelligence // estimate vs. the actual German records \u2014 recomputing how far each method missed. // Those three rows and the Panther road-wheel pair (270 estimated / 276 actual) ``` After: ```text // (1947) monthly-production table: statistical estimate vs. August 1942 Allied // intelligence estimate vs. the actual German records, recomputing each difference. // Those three rows and the conditional Panther tyre-mould pair (270 / 276) ``` ### [public/checks/research/the-tanks-that-counted-themselves/verify.mjs:94](/home/liam/aw-claude-assaying-boyle-1014/public/checks/research/the-tanks-that-counted-themselves/verify.mjs:94) Before (old line 94): ```text // One month, N tanks produced, numbered 1..N. The Allies log k serials. ``` After: ```text // One simulated month: choose N tanks numbered 1..N, then draw k serials. ``` ### [public/checks/research/the-tanks-that-counted-themselves/verify.mjs:232](/home/liam/aw-claude-assaying-boyle-1014/public/checks/research/the-tanks-that-counted-themselves/verify.mjs:232) Before (old line 232): ```text // a 95% credible interval (lower 2.5%, upper 97.5%) from the running CDF ``` After: ```text // a nominal 95% credible interval from the 2.5% and 97.5% discrete quantiles ``` ### [public/checks/research/the-tanks-that-counted-themselves/verify.mjs:241](/home/liam/aw-claude-assaying-boyle-1014/public/checks/research/the-tanks-that-counted-themselves/verify.mjs:241) Before (old line 241): ```text check(`Bayesian 95% credible interval [${BAYES.credible95[0]}, ${BAYES.credible95[1]}] contains the truth ${N0}`, ``` After: ```text check(`Bayesian nominal 95% credible interval [${BAYES.credible95[0]}, ${BAYES.credible95[1]}] contains the truth ${N0}`, ``` ### [public/checks/research/the-tanks-that-counted-themselves/verify.mjs:275](/home/liam/aw-claude-assaying-boyle-1014/public/checks/research/the-tanks-that-counted-themselves/verify.mjs:275) Before (old line 275): ```text // Panther road-wheel pair (cited): 270 estimated / 276 actual, Feb 1944. const PANTHER = { month: "February 1944", estimated: 270, actual: 276 }; PANTHER.relErrorPct = round(100 * Math.abs(PANTHER.estimated - PANTHER.actual) / PANTHER.actual, 1); check(`Panther road-wheel estimate 270 vs actual 276 \u2014 within ${PANTHER.relErrorPct}% (cited pair)`, PANTHER.relErrorPct < 3); ``` After: ```text // Panther tyre-mould pair (cited, Ruggles and Brodie pp. 82-83). // 270 per month assumes tank assembly at bogie-wheel production capacity, // with replacement use allowed for; 276 is recorded output in February 1944. const PANTHER = { month: "February 1944", estimated: 270, actual: 276, estimateAssumption: "tank assembly at bogie-wheel production capacity, with replacement use allowed for", }; PANTHER.relDifferencePct = round(100 * Math.abs(PANTHER.estimated - PANTHER.actual) / PANTHER.actual, 1); check(`Panther conditional capacity estimate 270 vs recorded output 276: ${PANTHER.relDifferencePct}% difference (cited pair)`, PANTHER.relDifferencePct < 3); ``` ### [assay/records/the-tanks-that-counted-themselves.md:1](/home/liam/aw-claude-assaying-boyle-1014/assay/records/the-tanks-that-counted-themselves.md:1) Before: no file. After: the requested dated assay record, with the exact by field, 17 triage claim lines, 90 retained joint CONFIRMED claims, one disposition per triage item, source calculations, the two exact public correction lines, commands and results, shared-file exclusions and this complete before/after report. The record counts 3 WRONG plus 13 MINOR in wrong: 16, 90 CONFIRMED, and 1 STALE, for checked: 107. All triage outcomes are FIXED; the single STALE finding is [dated] under the metadata exception.