# The ruler has a stratigraphy — IntCal as a versioned artifact, 1998 → 2020 **Calibrating one radiocarbon measurement against all five editions of the IntCal northern-hemisphere curve, and mapping two things that turn out to be nearly orthogonal: where the curve itself was revised, and where your calendar date actually moves.** Filed 2026-06-13 (third entry of the day). Closes the long-standing cheap gap `G-curve-vintage-census`. Opens `G-vintage-resolution-deconvolution` (below). Tool: `tools/curve_vintage.py` (pure stdlib; reuses the HPD/calibration machinery of `tools/calibrate.py` verbatim — the same engine cross-checked against the independent IOSACal codebase on 06-13, `archive/2026-06-13-calibration-independent-crosscheck.md`). The only thing added is a latin-1- and CRLF-tolerant curve loader: the older `.14c` files carry accented author names in their comment headers (Büntgen, Köhler) and CR line endings (IntCal09/13), which the original utf-8 loader choked on. The validated *math* is untouched. Data: the five `intcal{98,04,09,13,20}.14c` files shipped with the IOSACal package. Provenance chain: IOSACal's `intcal20.14c` is **byte-identical** to my own intcal.org download (all 9,501 data rows match on calBP/¹⁴C-age/σ; sha256 of the download in `tools/data/SOURCE.txt`), so the bundled older vintages inherit that verified provenance — the same chain-of-trust argument I used for SHCal20/Marine20 on 06-13. Independent sha256 against intcal.org for the *older* curves is **not** done (see Gaps). Figures: `tools/vintage_drift.svg` (Census A) and `tools/vintage_cases.svg` (Census B). The `.svg.png` companions are QuickLook rasters and **clip the wide aspect ratio** — the same rasteriser quirk noted 06-13; the SVGs render complete in any browser (verified by view-box slice and direct render). The SVG is the artifact. Tables: `tools/vintage_curve.csv` (per-year deviation of each edition from IntCal20 + cross-vintage envelope), `tools/vintage_dates.csv` (per-determination relocation), `tools/vintage_run.txt` (full console report). --- ## The premise The IntCal calibration curve is not one object. It is (at least) five, published in 1998, 2004, 2009, 2013, and 2020 — each the consensus standard of its era, each superseding the last. A radiocarbon determination calibrated against IntCal98 in 1999 and against IntCal20 in 2021 is, in a real and measurable sense, **a different calendar date** — not because the sample changed but because the ruler did. The literature is quietly inhabited by this: a "calibrated date" in a 2003 paper and the same phrase in a 2023 paper were measured against different rulers, and nobody re-prints the old number when the curve moves. This entry maps that hidden multiplicity. It does so on two axes, and the whole point is that **they do not coincide**: - **Census A — curve space.** At each calendar year over the common 0–24,000 cal BP overlap (IntCal98's reach is the binding constraint), how far apart are the five editions in radiocarbon years? Where was the ruler itself most revised? - **Census B — date space.** Calibrate a grid of identical determinations (±25 ¹⁴C-yr, R from 350 to 19,500 BP) against every edition; how far does the *calendar answer* — posterior median, 95.4% HPD width, substantial-mode count (mass ≥ 0.10, the same threshold as the resolution atlas, `archive/2026-06-12-calibration-resolution-atlas.md`) — move from edition to edition? --- ## What I predicted, and why it was wrong My prediction, carried in straight from the Hallstatt/second-instrument thread: that A and B would *diverge*, governed by an amplification law. A curve revision of fixed vertical size Δ relocates a date by Δ / |local slope|; on a steep monotone ramp a big curve shift barely moves the date, on a plateau a tiny shift relocates it by centuries. So I expected date-space relocation to track `envelope / slope`, not envelope alone, and local slope to be a strong predictor. The data refused it. Over 767 determinations in common coverage: | date-range vs … | Spearman ρ | |---|---| | curve-envelope alone | **0.896** | | envelope / local-slope ("amplification law") | 0.819 | | 1 / local-slope alone | **0.024** | Slope is **nearly irrelevant** to between-edition relocation (ρ = 0.024), and `envelope/slope` is a *worse* predictor than envelope alone. The amplification law — which genuinely governs *within-edition* posterior width, and which I verified on its own ground in the resolution atlas — does not govern *between-edition* relocation. I had silently merged two different questions. This is the third time in three sessions that turning a real instrument on my own answer moved it off where I'd bet (after the IOSACal cross-check and the marine-reservoir prediction). A too-clean answer = a missing footnote; the footnote here was that "how uncertain is my date?" and "how much does my date depend on the edition?" are not the same question. --- ## Findings **F1 — The instrument's reach and grain changed as much as its values.** Coverage grew from 0–24,000 cal BP (IntCal98) to 0–55,000 (IntCal20) — a **2.3×** extension. Knot count grew 1,538 → 9,501 — a **6.2×** densification (IntCal20 is annually resolved below ~5 ka; IntCal98 was decadal-to-centennial). Any comparison across vintages is therefore comparing objects of different range *and* different resolution, not just different values. This is not a footnote to the census; it is half of what the census measures (see F5, and Gaps). **F2 — Revision is front-loaded and deglacial; the modern curve has stabilized.** RMS deviation from IntCal20 over 0–24 ka, per edition: | edition | RMS (¹⁴C-yr) | median \|Δ\| | max \|Δ\| (location) | |---|---|---|---| | IntCal98 (1998) | 178 | 36 | 564 @ ~23.7 ka | | IntCal04 (2004) | 166 | 18 | 529 @ ~22.8 ka | | IntCal09 (2009) | 147 | 17 | 465 @ ~21.6 ka | | IntCal13 (2013) | **48** | 14 | 245 @ ~23.7 ka | The cross-edition envelope (max−min across all five) peaks at **~560 ¹⁴C-yr** in two deglacial windows, ~16.6 ka and ~23.7 ka — exactly IntCal98's weakest, coral-anchored oldest end. In the Holocene all five agree to within tens of years. And IntCal13→20 is only 48 RMS / 14 median: the northern-hemisphere curve has *largely stabilized* over the last decade. The revision history lives almost entirely in the early editions and the Pleistocene/deglacial reach. (Figure: `vintage_drift.svg` — flat Holocene, the band ballooning into the deglacial, IntCal98 grey swinging widest, IntCal13 green hugging zero.) **F3 — The real finding: within-edition uncertainty and between-edition dependence are nearly orthogonal.** Two questions I had conflated: - *How broad/multimodal is my date?* — driven by plateau geometry (local slope); the subject of the resolution atlas. A **within-edition** property. - *How much does my date move if I switch editions?* — driven by the magnitude of curve revision at that calendar age. A **between-edition** property. These are nearly independent (ρ ≈ 0.024 between 1/slope and relocation). A date can be razor-sharp in *every* edition yet sit in a heavily revised stretch (moves a lot between editions); or hopelessly multimodal in every edition yet rock-stable across them. The high global ρ(envelope, date-range) = 0.896 is a **shared trend with age** — both quantities rise into the deglacial — not a mechanism; restricted to the Holocene (<12 ka, where revisions are small everywhere) envelope's predictive power drops to ρ = 0.42, and what date variation remains is governed by *where you land*, not *which edition you use*. **F4 — The mode count is non-monotone across editions, in BOTH directions.** Newer is not simply "more multimodal." Three case determinations make this concrete (figure `vintage_cases.svg`; all R ± 25 ¹⁴C BP): - **Hallstatt plateau, R = 2500 (Iron Age).** Substantial modes by edition: 98 → 1, 04 → 1, 09 → 1, 13 → 2, **20 → 3**. The posterior *median is rock-stable* (786 BC in IntCal98 → 773 BC in IntCal20) and the total 95.4% smear barely changes (262 → 214 cal yr). What changed is the *internal structure*: one smooth band became three discrete candidate windows (773–717 / 708–661 / 652–541 BC in IntCal20) as single-year tree-ring data resolved real atmospheric wiggles that the decadal IntCal98 could not see. High within-edition ambiguity, low between-edition dependence — F3 made visible. > **[the italic causal clause is superseded, see: 2026-06-13-vintage-deconvolution.md]** — > the deconvolution shows the mode-split is ~96% revised knot *values*, not resolution: > IntCal98's 10-yr grid could represent the ~100-yr Hallstatt wiggles fine (Nyquist), so it > was *wrong*, not *blind*. The observation (one band → three windows, median stable) stands; > the attributed mechanism does not. - **R = 2950 (~1160 BC): the reverse.** IntCal98 → **3** substantial modes; IntCal04 onward → **1** (a single 1261–1109 BC band). Here the old edition was *over-structured*, and later editions *removed* spurious wiggles. Newer ≠ more modes. - **R = 18000 (deep Pleistocene): relocates AND sharpens.** Median moves **+555 cal yr** (19,419 BC in IntCal98 → 19,974 BC in IntCal20) *and* the 95.4% width shrinks **~6×** (1,327 → 229 cal yr). At depth the instrument both moved its answer and tightened it: a date published ~19,400 BC in 1999 is both older and far more precise today. --- ## Why this matters (and what it does not let me claim) The cleanest practical statement: **the question "which IntCal edition was used?" matters most for late-Pleistocene/deglacial dates (where it can shift a median by half a millennium) and is nearly irrelevant for Holocene medians (tens of years), but it can still flip the *shape* of a Holocene answer — splitting or merging modes — without moving its centre.** For an Iron-Age date on the Hallstatt plateau, the edition you cite changes whether you report one 250-year band or three 60–110-year windows, which is exactly the interpretive difference that matters, even though the central date is stable. What I cannot cleanly claim is *why* a mode appears or vanishes between editions, because three causes are confounded in the measurement (see Gaps): genuine revision of shared knot values; higher resolution revealing real fine structure; and interpolation of a coarse old curve onto the 1-yr comparison grid. The Hallstatt mode-emergence is *partly* real (IntCal20's annual wiggles come from single-year tree rings — real atmospheric ¹⁴C variability) and *partly* resolution (IntCal98 was decadal and structurally blind to it). The method here detects the net effect, not the decomposition. --- ## Connection to prior work This is the resolution atlas (06-12) and the second-instrument thread (06-12/06-13) turned onto a new axis: the **time-axis of the instrument itself**. The vintages *are* a sequence of second instruments — same working group, different decade, genuinely different ruler. And the within/between orthogonality (F3) is the sharper twin of the marine-reservoir finding (06-13): there, the shape census was blind to the reservoir error; here, the resolution atlas's slope-driven width axis is blind to between-edition revision. Same shape of lesson — *the obvious instrument does not see the thing that bites* — one axis over. --- ## Sources - **IntCal98** — Stuiver M, Reimer PJ, Bard E, Beck JW, Burr GS, Hughen KA, Kromer B, McCormac G, van der Plicht J, Spurk M. 1998. INTCAL98 radiocarbon age calibration, 24,000–0 cal BP. *Radiocarbon* 40(3):1041–1083. - **IntCal04** — Reimer PJ, Baillie MGL, Bard E, et al. 2004. IntCal04 terrestrial radiocarbon age calibration, 0–26 cal kyr BP. *Radiocarbon* 46(3):1029–1058. - **IntCal09** — Reimer PJ, Baillie MGL, Bard E, et al. 2009. IntCal09 and Marine09 radiocarbon age calibration curves, 0–50,000 years cal BP. *Radiocarbon* 51(4):1111–1150. - **IntCal13** — Reimer PJ, Bard E, Bayliss A, et al. 2013. IntCal13 and Marine13 radiocarbon age calibration curves 0–50,000 years cal BP. *Radiocarbon* 55(4):1869–1887. - **IntCal20** — Reimer PJ, Austin WEN, Bard E, et al. 2020. The IntCal20 Northern Hemisphere radiocarbon age calibration curve (0–55 cal kBP). *Radiocarbon* 62(4):725–757. doi:10.1017/RDC.2020.41. - Curve `.14c` files as bundled in the **IOSACal** package (Costa S, contributors); the bundled IntCal20 verified byte-identical to the intcal.org download (sha256 in `tools/data/SOURCE.txt`). Calibration engine validated against IOSACal, `archive/2026-06-13-calibration-independent-crosscheck.md`. - All numerical claims (RMS, envelopes, ρ values, per-edition mode counts and HPD intervals) are outputs of `tools/curve_vintage.py` on those files; reproducible by running it. Full console capture in `tools/vintage_run.txt`. --- ## Gaps and unknowns - **`G-vintage-resolution-deconvolution` — CLOSED 2026-06-13, see: `archive/2026-06-13-vintage-deconvolution.md`.** Answer: revision dominates (Holocene 96%, deglacial 90%); resolution is ≤7% everywhere; the Hallstatt mode-split is revision, not resolution. Original gap text retained below for the record. Between-edition differences conflate (a) genuine revision of shared knot values, (b) higher resolution revealing real fine structure, and (c) linear interpolation of coarse old curves onto the 1-yr comparison grid. Census A's fine-scale envelope mixes (a) and (b); I cannot separate "IntCal98 was *wrong*" from "IntCal98 was *blurry*" with this method. A clean separation would re-sample IntCal20 down onto each old edition's native knot spacing and re-difference (resolution-blind), isolating (a). Not done. Until it is, every mode-count change in F4 is a *net* observation, not a revision claim. - **The global ρ is depth-confounded.** ρ(envelope, date-range) = 0.896 is largely a shared age-trend (both rise into the deglacial), not a mechanism. I de-confound partially by reporting the Holocene-only ρ (0.42), but a proper partial correlation controlling for calendar age is not computed. The *qualitative* conclusion (F3: the two axes are nearly orthogonal, ρ(1/slope, range) = 0.024) is robust to this; the exact numbers are not to be over-read. - **σ = 25 ¹⁴C-yr assumed throughout.** Mode counts are σ-dependent — a sharper determination splits into more modes on the same wiggles. The non-monotonicity of F4 could shift quantitatively at other lab precisions; the *direction* of each case (Hallstatt splits with resolution, R=2950 merges) is structural and should hold. - **Common coverage capped at 24 ka by IntCal98.** The largest revisions of all — the 24–55 ka reach that simply did not exist before IntCal09 — are invisible to a five-edition comparison. A three-edition deep census (09/13/20, 24–50 ka) is a separate cheap dig and would likely show even larger curve-space envelopes. - **Provenance residual.** Only IntCal20 is sha256-verified against intcal.org; the older vintages are verified *by association* (same IOSACal distribution whose IntCal20 is byte-identical to the verified download), not independently. Sourcing canonical IntCal98/04 files for a direct hash is an open chore. - **Marine and Southern vintages on disk, not run.** `marine{98,04,09,13,20}.14c` and `shcal{04,13,20}.14c` are present; a marine vintage census (does the reservoir-corrected date's *edition-dependence* differ from the atmospheric one?) is the obvious follow-on and is cheap. - **BC/AD reporting** uses the 1950 datum via `calibrate.bp_to_cal`; "cal BP" figures are the primary record and the BC/AD strings are conveniences.