a place for friends (8)

instruments / chronology / slips_v0_notes.md · raw

Slips by segment, v0: first reading (2026-10-10)

pipeline/slips.py on continuity_west.json (rerun today on the cleaned records: 0 landings changed). Run: slips.py --nulls 200 --gap 100000 --lam 0.5 --lam-mech 0.25 → slips_west.json/.txt. Segments are mechanical (a text split only where provenance changes, own-time or not); override with --segments. Nulls are per segment: each record's landing row rolled by its own random offset.

What it says (candidate readings, small n)

  1. No segment slip beats its null. 8 of 182 segments gain anything by slipping, and all sit inside what scrambled records gain (p 0.27–0.94). With the present density, the sky alone does not single out any slip.
  2. Pinned and unique are different things. 168 of 182 segments land at their own count beyond chance. But the number of offsets each segment fits as well is:
first yearsegmentspinnedfits per segment
< 10002516~35
1000–14701410~59
1470–170025241.2
≥ 17001181181.0

After ~1470 a text fits at one place. Before it, a text fits its own count and dozens of others: it is consistent with its label without being able to vouch for it.

  1. "Pinned" before 1470 depends on where the year number came from. Three kinds of label:
  2. the text's own count, converted by fixed arithmetic (Theophanes AM, al-Battani's era, Spanish era, Bede's own AD, Regiomontanus): a pin is independent evidence;
  3. AD printed by a modern edition (Irish annals' "later apparatus", other "AD as printed"): possibly corrected by editors against eclipse tables, so a pin can be circular;
  4. regnal or consular years placed by the received chronology (Dio, Pliny, Marcellinus, Marius, Hydatius, Malalas, Liudprand, Gregory): a pin shows agreement with the received chronology, which was itself built partly from eclipse calculations. Until each source is tagged, early pins should not be counted as continuity evidence.
  5. Misreading rescues: 31 of 47 misses land under a mechanism misreading (0.66; null 0.39). Most are ±1 (14), several match known mechanisms: Florence continuation +1 ×5 (its own year start), Flamsteed 1679 → 1678 (the text alternative the review found), Hydatius 452 → 451 (Mommsen's margin). Large jumps (−500, +400, +498) are individually weak: chance rescues 39% of scrambled records.

Next

  • Tag every source's label provenance (own count / edition apparatus / received placement) and report pins and slips separately per kind. Needs the researcher's judgement on borderline texts.
  • Enforce joints and own-time lifespans as hard links between segments.
  • Researcher-defined segments where a text is known to be layered.
  • Weights from the JEV quote-only provenance probabilities, after per-corpus recalibration.

ΔT as a variable (same day, later)

pipeline/deltat.py (→ deltat_landings.json): for every pre-1600 record, at every offset where its date lands, the ΔT values inside a physics band (fitted curve to tidal-only parabola, plus half the gap and a wobble margin; evaluated at the event's epoch) that make it visible / at its hour, via the exact longitude equivalence (δ hours = −15·δ° of observer longitude). At δ = 0 it reproduces continuity.py exactly (checked on Bede, Malmesbury). Design discussed with a Fable 5.1 consult: the standard ΔT is fitted to dated eclipses (mostly Babylonian/Chinese), so fixing it is circular for this project; one-Earth consistency is the non-circular test.

  • slips with ΔT free (slips.py --deltat → slips_west_deltat.*): no slip beats its null; same segments pinned; alias counts about unchanged. Own-count fits improve for the Frankish annals (4.6 → 5.7), the Anglo-Saxon Chronicle and Regiomontanus: some earlier misses were ΔT artifacts.
  • one Earth (one_earth.py → one_earth_*.txt): does one smooth spin curve thread the records a chronology lands? Visibility: 100% for the conventional chronology and for all 300 alias chronologies; no discrimination. Hours: conventional 41/42, aliases mean 97%, 5% as good (faint, borderline); firm sites only, no difference.

Reading (candidate): ΔT is not what makes the early record soft. Freeing it neither rescues nor dissolves anything much. The softness is alias density (few dated teeth per text) plus label provenance. The one-Earth test is built and would bite with more timed records from firm sites; today it cannot separate chronologies.

Correction, and year-number provenance (same day, later)

Correction. The "~35–60 offsets per segment before 1470" above was a MEAN, inflated by one-record segments (wendover 1218: 761 offsets; an Irish record: 541; cont_hispana: 139). Segments with several records fit at one or two offsets. Per-segment table: slips_west_deltat.txt (ΔT free in the physics band).

By year-number provenance (label_provenance_draft.json, agent draft; open questions run as branches: Florence +22 and Theophanes 16/8 as source mechanisms, --split asc:890 (no change: the own-time flag already splits there)): own-count contemporary texts before 1470 pin uniquely at their own count — Royal Frankish Annals 787–876 (11 records, 1 offset), al-Battani 882–901 (5, 1), Malmesbury 1131–40 (4, 2), Matthew Paris 1248–56 (3, 1), Florence continuation 1258–91 (11, 1), Regiomontanus 1457–71 (9, 1). Edition-apparatus Irish 689–1023 (11, 1) and own-count compiled Theophanes / ASC / John of Worcester also pin uniquely. Received-placement texts pin least (6 of 13). No slip beats its null in any class.

Reading (candidate): islands of self-dated, uniquely pinned records (790s–900, 1130s, 1250s–1290s, 1450s on) resist insertions between their writing and today; the gaps between islands have no independent pin of their own. Remaining loophole (the self-healing): eclipse entries added to texts later, computed from tables. Discriminator to build: precision beyond what the era's tables could predict (local visibility, magnitude, hour).

Seen or computed? (pipeline/precision.py → precision.txt)

Before Halley (1695) nobody knew the spin was slowing, so a past eclipse computed then (and written into a text) implicitly used ΔT = 0; before ~1000 that misplaces its local circumstances by 1–3 h (15–45° of longitude). Per pre-1470 record at its own count: fits the physical ΔT band only = seen; fits ΔT = 0 only = computed?; both; neither.

59 records land at their own count: seen 13, computed? 0, both 36, neither 10.

  • No backfill fingerprint anywhere. Most records (36) are not precise enough to tell (lunar eclipses are seen from half the Earth; many have no hour).
  • Seen, with the text's own year count: ASC 800, Bede 733, Florence 540, Frankish 820, Theophanes 693 and 760, Regiomontanus 1462 (weak: ΔT only 4 min there). Seen with edition or received years: Irish 664 and 921, Hydatius 458 and 464, Leo the Deacon 968, Pliny 59 (ΔT 2.8 h). For those, the hour proves an observation; the year label may still have been chosen by an editor.
  • Neither: the 540 solar eclipse in ASC and Bede (compiled from continental sources: likely seen elsewhere, the site trap), and hour-reading problems (Regiomontanus 1460–61, Frankish 807, al-Battani 901 with its damaged hour fraction).

Limits: the fingerprint catches a backfill done with good tables and ΔT = 0. A crude medieval-table backfill (timing errors ~1 h) would land at random, so 'seen' is evidence of observation, and 'neither' is not evidence of backfill. A label healed by a 19th-century editor (ΔT-aware tables) is not caught by this test; that is what the year-number provenance tags are for.

Western only; collecting the gaps (same day, later)

The researcher: the question is the Western record-keeping gap, and cross-tradition continuity (al-Battani, Byzantine texts) does not bear on it, since any linking was done after the fact. Western own-count contemporary islands that pin uniquely: Royal Frankish Annals 787–876; Malmesbury 1131–40; Matthew Paris 1248–56 with the Florence continuation 1258–91; Regiomontanus 1457–71 on. al-Battani is dropped from the island count. Caveat found: Regiomontanus 1457 has a year read from the sky (damaged numeral, "the only year with a total lunar eclipse on 3 September") — circular, must not count as a pin; 1460 is read from the log's sequence (internal, fine).

The gaps between islands are collection gaps first: no 10th–12th-century Latin annals (MGH Scriptores) and nothing 1291–1433 had been downloaded. Two collectors are gathering them into derived/gapfill/ (latin_900_1130.json, west_1291_1433.json), verbatim quotes plus where each year number sits (text/heading vs editor's margin).

Parked: editions as a layer with motives (researcher, 2026-10-10)

Not pursued, stored. Every printed edition has a context (MGH as a German national project, the Rolls Series, RIS² volumes of 1931–38 under Fascist Italy), and an editor can supply margin years, pick a manuscript, "correct" a date against eclipse tables, or drop a garbled passage. Motive is not something this project can debug; if it is ever taken up, the measurable forms are: (1) the same text's eclipse years and days compared across editions of different eras and countries (Villani 16th c. vs 1857; Muratori RIS vs RIS²); (2) the year checked in digitised manuscripts for a sample of the strongest records; (3) editor / date / country recorded per record, and whether pins cluster by editorial tradition. Until then the existing rule stands: a year that sits only in the editor's apparatus is not evidence.

Sidecar and holds (2026-10-10)

  • sidecar_claims.json: Illig, Fomenko/Nosovsky, Heinsohn, Morozov written as checkable shapes, to be read against results afterwards as 'oh interesting' — never fed into scores or segments.
  • Not open-sourcing yet. Before any release: a sanitization pass (srcutil.UA carries a personal email, check git history too; source-text licensing, e.g. RIS² 1931–38 volumes; another party's uncommitted pipeline files; publish derived records + re-fetch scripts rather than full texts; a methods README leading with limits).

The gaps, collected (2026-10-10, late)

Two collectors added 475 Latin-West records (derived/gapfill/: 271 from 92 texts, 900–1130; 205 from 80 texts, 1291–1433; every quote a verbatim substring of its OCR). Loaded by west_registry.py (texts split by where the year sits: id~kind; provenance in label_provenance_gapfill.json). New: pipeline/copies.py (witness groups by shared wording, never by the sky) and pipeline/islands.py (Western only, one witness per copy group).

Result (islands.txt; A = own count, contemporary, lands at its own year, text pinned with ≤2 fitting offsets): A witnesses per century 700s 2, 800s 2, 900s 5, 1000s 12, 1100s 15, 1200s 9, 1300s 51, 1400s 24 (Regiomontanus 1457 excluded: sky-read year). 120 A witnesses from 75 texts. Largest remaining gaps between A years: 1140–1230 (90 y, not yet collected: the first collector stopped at 1130), 840–926 (86 y), 733–787, 1044–1093. Reading (candidate): the 900–1130 and 1291–1433 holes were collection gaps. With copies collapsed, the Western self-dated record is continuous at this grain from the 920s, with islands back to 733. Limits: after ~1000 ΔT is too small for seen-vs-computed to discriminate (nearly all 'both'), and the 1300s had eclipse predictions (Parma 1333 'predicted by the sages of Bologna'; Forlì 1409 duration to the second, probably tabular), so the backfill loophole is open for the 1300s–1400s; misses at own year (1300s: 25 witnesses) not reviewed. JEV 'adds' (copy members vs origin, frozen predictions): 35% of copies add some detail (A1 ≤ 40% holds); origin vs member asymmetry 0.383 vs 0.369 (A2 nominal only); near-identical pairs 0.057 (A3 holds). Copies that add detail are candidate extra witnesses; grouping kept conservative. JEV 'who' (three-way, both option orders, 475 gap-fill quotes; jev_gapfill/results.json): W1 fails — P(compiled) separates the collectors' own_time false from true at AUROC 0.61 (quote) vs the frozen ≥ 0.65; W2 holds (0.68 with the text's name); W3 holds (order effect 0.045). From the words alone JEV calls most contemporary annal entries 'compiled' (147 of 207). Reading: a terse annal line carries almost no internal sign of being written at the time; contemporaneity rests on manuscript and hand evidence (and the editor's report of it), not on the passage.

Custody first (researcher, 2026-10-10, late)

"By default there is a mechanism to provide obfuscation. This isn't a claim about scope or intent, it is just now something we have evidence of. And paradoxically the more thorough an examination, the more potentially papered over one's own data set is; unless you maintain a framework of skepticism, everything starts pointing to simple continuity." Consequence: every source gets a custody record (derived/custody/SCHEMA.md): what we hold (OCR of a print, of a translation of a print, ...) and each link to the event marked verified / claimed-by-whom / unknown, with shared nodes (editor, edition, codex, translator). Agreement between witnesses counts only as far as their chains are disjoint. Status of the 120 tier-A witnesses before custody: an editor claims an autograph for ~18, a later copy for ~10, ~92 unrecorded; one ('I saw' — Regiomontanus 1461) states eyewitness in the passage. What we verify ourselves: quote = OCR, and the label agrees with the sky. Nothing else yet. Custody, older corpus (custody/custody_old.json, 28 sources, basis quotes verbatim): 11 held only as translations. Hits to the islands (checked by hand for the first three): Malmesbury's AD years are the 1847 translator's, "constructed on a careful examination and comparison of the Saxon Chronicle and Florence" (lines 595–597) — not an own count, and a shared node with ASC/Florence; Frankish 787 with its hours is an 11th-c. addition in one codex (Vienna 612), printed only in Kurze's apparatus, one witness with Fulda 787; florence_cont has three records filed '1258' that sit under printed headings 1258, 1261, 1265 (extraction error). Also: Hydatius 455–468 margins placed by Mommsen from the eclipses (circular); Tigernach years McCarthy's reconstruction partly from eclipses (circular); Pliny 59 from Brewster's computed date (circular); Wendover mixes two prints (1191 and 1208 double-counted; '1206' is a footnote). Custody, 900–1130 (custody/custody_g1.json, 92 sources, verbatim-checked): primary witness autograph 21, author-supervised 2, contemporary copy 7, later copy 41, unknown 14, mixed 7. Year numbers: ms heading original hand 32, ms text original hand 19, editor only 13, unknown 28. Pertz is editor under 41 of 92 (Waitz 11+6, Bethmann 9+3): a single claimant for most of links 2–3. Content nodes (shared codex / upstream text) make witnesses dependent; claim nodes (editor, translator) make their errors correlated. Both must be counted, differently. Late-entry eclipses: Thietmar 1017/1018 (interpolator c.1106–25), Marianus 1023 (second hand), Ekkehard 1007/1021 (recensions D/E, from Sigebert), Egmond 1129 (13th-c. quires), Paderborn 1093 (editor's bracketed restoration), Garsten 1093 (only in Vorau 111). Beneventani reprinted from Pratilli (a known forger — from memory, flagged).

The program from here (researcher, 2026-10-11)

"Not even not disclosed — lost over copies." Corrections can become the text in a later copy long before any editor. So the work is: (1) every attested reading of every eclipse entry — each manuscript variant the apparatus reports, each edition, each translation — in one ledger; (2) digital copies of the oldest witnesses wherever they exist; (3) look for a pattern of fixing. The fix-pattern test is the non-circular core: for one entry, order its readings by the age of the witness. Innocent copying drifts AWAY from the sky with each copy (errors accumulate); healing drifts TOWARD the sky (later copies or editions agree better than earlier ones). The same test applies across re-editions (Pertz 1839 → Waitz 1878, etc.). The direction of drift, not any single agreement, is the signal.

Recount with custody (2026-10-11; pipeline rerun after the Wendover / Florence-continuation fixes)

custody_islands.txt (pipeline/custody.py; grades on the 121 tier-A witnesses): A+ (year in the original hand, autograph / author-supervised / contemporary codex — as the editor reports) 33: 939 St Gall; 990, 1033 Hildesheim; 1042, 1096, 1107 Cava; 1093 Bernold; 1117 Liège; 1255 Paris; then 24 in 1301–1433 (St-Martial, Dore, Liège, Foligno, Jeroschin, Siena, Diessenhofen ×5, Montpellier ×3, Diario romano, Marseille ×2). A- (label attached by someone else) 24, incl. all of Malmesbury, the Florence continuation, Bede 733 (compiler), Frankish 787. Everything before 939 is A? or A-. Merging same-eclipse witnesses sharing a codex or source text: 121 → 114 chains. Claimants under A+: Pertz 11, Böhmer 6, Huber 5, then single-digit editors. A+ is still the editors' word; the facsimile hunt and the variant ledger (drift toward / away from the sky by witness age) are the checks on it. Gaps in A+: none before 939; 1117–1255; 1255–1301.

Drift, first look (2026-10-11; variants/ledger.json → pipeline/drift.py → variants/drift.txt)

Ledger: 180 entries, 589 readings (verbatim-checked), 22 extra editions fetched. Only 50 entries have >1 dated manuscript witness; most texts rest on one codex. 108 re-edition pairs: 14 differ in print/translation, 5 more look like OCR. Most re-editions agree (Hildesheim Pertz/Waitz, Flodoard, Thietmar, Altaich, Florence cont., Wendover, Bede, ASC, Malmesbury, Walsingham, Nangis, Villani's other six…). Five scoreable disagreements, older vs younger witness against the sky: away from the sky 3 (Villani 1321 → 1322 in Giunti 1587; Peter of Zittau's Johannis et Pauli → Francis's Petri et Pauli; Paris 1255 July → 'June' in Giles via Wats), both fit 1 (Forlì 1421, 17 vs 18 Feb), toward 1 (Montecassino: s. XII codices 1041 / V Id. Febr. → codex c.1240 and editors 1042 / V Id. Ian.; Peregrinius 1643 had already 'restored' 1042) — that one needs care: the year may be a year-start style difference, and which witness carries 'Febr.' is from Caracciolo's print, not checked in a codex. Reading (candidate, n = 5): where witnesses disagree, copies mostly degrade — the innocent pattern. The one move toward the sky is a 13th-c. codex plus early-modern editors in a single house tradition. Not yet scoreable: second-campaign date words INSIDE manuscripts (Paris 1255 'Margarete' over an erasure in the autograph; Bernold 1093 hour over an erasure; Annalista Saxo 'hora V' above the line; Villola 1354 time clause in other ink; Cronaca B 1431 hour corrected). What was erased is the question; only the manuscript can say.

JEV as second decider on custody (jev_custody/results.json; predictions frozen before the custody files existed)

C1 fails (manuscript kind: agreement 0.45 vs ≥ 0.70), C2 holds (year provenance lower, 0.38), C3 fails (JEV's confidence barely lower on disagreements). The disagreement is mostly one shape: the reader inferred a value (later_copy 152×, year original_hand 62×) where JEV, given only the quoted preface words, says "does not say". Reading: much of the custody certainty is the readers' inference from context (codex date vs author's floruit), not the editor's explicit statement — weaker than "claimed by the editor". Of the A+ sources' year-number calls, JEV confirms original hand from the quote alone for 5 (St Gall, Hildesheim, Siena, Foligno, Diario romano) and flags two the other way: Cava (later_hand 0.72 — the editor concedes notes were written "aliquo iam temporis spatio elapso" and sometimes "a vera temporum computatione paulisper recedant": the year slots are pre-written Easter tables, the notes may be late and misplaced) and Liège St-Jacques (the 1118–1348 tables are on added leaves, re-transcribed).

Facsimiles (variants/facsimiles.json; 52 page images in variants/facsimiles/)

Oldest manuscript digitised for 59 of 120 tier-A witnesses; the entry seen on an opened page for 54 (A+: 20 of 29). Not online: Cava, Siena, Foligno, Bologna, Forlì, Modena, Erfurt, Dore, the Cotton/Royal MSS (Lanercost, Malmesbury, Walsingham); BL Royal 14 C VII (Paris) digitised but offline since the 2023 cyberattack. Findings from the pages (hunter): Hildesheim 1109 note is in the right MARGIN of Paris lat. 6114 f.67r, not the text column (custody record wrong; the leaf is misbound); Zwettl 1321 has no 1321 heading — the entry closes the annal headed MCCCXX, so '1321' is the editor's inference; Grandes Chroniques 1341 MS 'dura par .ij. heures' vs print 'douze heures'; Flodoard 936 MS B (older than the base) 'pridie nonas' vs print 'II. nonas'; Liège 1117 entry squeezed between the 1116 and 1117 rows of the Easter table; Parma 1333 survives only in a 16th-c. Italian chronicle (the printed Latin may be a back-translation); St-Victor 1428/1433 in the Easter-table margin. Checked by eye (Claude, 2026-10-11): St Gall 939 (Cod. Sang. 915 p.209): year column pre-ruled in red ('A·XXX·VIIII') with many empty years, entries added in brown; the century is not written on the line (implied by the page's series); the 939 line reads 'Eclypsis solis facta e[st] circa horam…' with a hole. Hildesheim 1033 (lat. 6114 f.47v): 'MXXXIII' heading in the text with 'Ind. i', '…Eclipsis solis iii kl iul. f[eri]a vi Natali s[an]c[t]i Petri ap[osto]li hora diei vi accidit', same hand and ink as the surrounding years — the edition's reading holds on the page; but a uniform hand across years looks like a fair copy, not year-by-year entry (a paleographer's call, not ours). Criterion to apply on every page: year-by-year accretion (changes of ink/hand at each year) is the physical sign of contemporaneous keeping; a uniform hand across many years is a copy, however early.

Pages looked at (variants/page_checks.json, 17 pages, Claude by eye, 2026-10-11)

By physical form: accretive 9 (St Gall 939, Paderborn 1109 marginal, Liège 1117, St-Martial 1301 and 1320, Liège St-Jacques 1309, Melk 1321, St-Victor 1428 and 1433), diary 1 (Diario romano 1414), working copy 1 (Bernold 1093), fair copy 6 (Hildesheim 990 and 1033, Flodoard 936 MS B, Zbraslav 1330, Diessenhofen 1349 and 1356). Every page agrees with its edition on the eclipse words, except where the year is a judgement: Liège 1117 reads on the page as part of 1116 ('Interea' under the 1116 row); Paderborn 1109 is a marginal addition. Pattern: the Easter-table and year-grid annals show accretion (years laid out in advance, entries in changing hands); the narrative chronicles, including those graded 'autograph', are fair copies on the page. Hildesheim 990 is copied in one campaign with 986–991, so its 'own time' rests on the lost exemplar. Bernold 1093 (Clm 432 f.73r): he calls it "a sign in the sun", reports that some took it for an eclipse "especially since the moon was 28 days old that day", and cites "the excellent calculator lord Hermann" for an eclipse on the 28th moon in 1033. A contemporary reconciling an observation with computus and an earlier record: the habit that could heal a record is attested in the 1090s, in the open.

Pages, second pass (2026-10-11): 32 pages read; custody.py now carries a page grade

Of the 121 tier-A witnesses, 33 have now been looked at in the manuscript: kept-as-it-happened on the page 9 (Bede 733 in the Moore Bede, St Gall 939, Liège St-Jacques 1309, Heiligenkreuz 1310, St-Martial 1320, Melk 1321, Diario romano 1414, St-Victor 1428 and 1433), copy 19, unclear 4, marginal addition 1. New on the pages: Zwettl III files the 1321 eclipse under 1320 (the edition's 1321 is the editor's inference — a one-year correction toward the sky, the second case after Montecassino); the Grandes Chroniques' 'douze heures' is the print's misreading of the manuscript's '.ij.'; Bower's 1433 day is lost in the damaged margin; Quedlinburg survives only in a 16th-c. paper transcript; Matthew Paris's autograph (CCCC 16) is his copy of Wendover c. 1240s, not 1230. The Moore Bede (CUL Kk.5.16, c. 737) carries 733 within a few years — the strongest pre-900 page so far; caveat: the manuscript's date is partly inferred from these very annals. Computus on the page, again: Augsburg 1096 ('although it happened around the 14th moon, it is held natural'), Paris 1230 ('luna xiiii'), Villani 1330 (zodiac positions, astrologers' foreknowledge), Bernold 1093. Writers were checking eclipses against calculation in the open from the 1090s.

The 700–938 gap, collected (2026-10-11; gapfill/latin_700_938.json, custody/custody_g3.json, variants/facsimiles_g3.json)

The g3 collector found 109 eclipse records in 36 Western year-grid annals (MGH SS I–XX, Waitz's Hildesheim, Annales Cambriae). All 109 quotes re-checked here by substring against the cited OCR lines: 0 misses. Years are the texts' own numerals, read on the page images where the SS I–III OCR mangles digits.

Copy grouping had to be fixed twice before the new records could be counted (pipeline/copies.py):

  1. A bare note ('eclipsis solis.') is all formula, so it is wholly 'contained' in any longer note; as a hub it chained the 807, 809, 810 and 812 eclipses into one witness. Fix: links merge strongest first, and a merge is refused if the group would hold two records whose STATED dates differ by > 3 days of the year (text only, never the sky). The rule also split old over-chaining (Prague chronicles 1328–1337, Italian 1309–1312).
  2. Shared Roman dates counted as shared wording: Fulda's 'IIII Kal. Novembris' under 876 linked to Reichenau 878 at sim 0.51, made Fulda (the earliest own-time label) the origin of eleven 878 notes, and pulled them to a miss. Fix: date words and numerals are stripped before shingling (a shared date is evidence of the same event, not of copying). Fulda 876 now stands alone: an own-time writer two years off the 878 eclipse.

Known over-grouping left as is (conservative): all thirteen 840 notes are one witness with origin 'frankish' — they share the date and Louis the Pious's death in the same breath, so Lyon and Massay are not counted on their own.

Result: pre-939 tier A = 6 witnesses (733 Bede, 787/820/840 Frankish, 807/810 Salzburg). New A+: Salzburg 807 and 810, the first A+ before 939. Salzburg (Annales Iuvavenses maiores): the codex Pertz never saw is online, Würzburg UB M.p.th.f. 46 (1st half s. IX; origin Saint-Amand per the catalogue, consistent with Arn, abbot of Saint-Amand and archbishop of Salzburg). Looked at by eye: notes written into the 798–816 Easter table in several hands and inks, 807 beside its row, 810 beside its row (alignment fixed by Charles the Younger's death in Dec. 811 on the next row). Both say 'ab hora IIII usque in horam VII'. Suspected formula reuse; tested at Salzburg, Würzburg and Saint-Amand: both eclipses peak at the 5th seasonal hour at all three, so the shared span is the sky's coincidence, not a copied phrase. The 807 note's day (ii Id. Feb = 12th) is one day after the eclipse (11th, as Ghent and Einsiedeln have it). Custody updated: primary_witness 'contemporary_copy' (nearest schema kind for 'original entries, hands not paleographically dated'), link 3 verified for both entries.

Pages read by eye in this pass (variants/page_checks.json; 60 pages now, 'looked_by' says whose reading it is): accretive: Salzburg 807/810, Corvey 878/891 (B&W photo), Lyon 840 (tiny hand bracketed to its row; the 841 Fontenoy note is a different, larger hand), Massay 840. Fleury 878: accretive page, but the 878 note has no numeral and no row sign; 878 is Pertz's placement from the pope's visit to Troyes. copy campaigns: Sens 804–814 (one careful hand, codex s. IX ex.; the 809 note carries a full computus set: indiction, feria, moon age), Flavigny 760–798 (one hand, codex c. 816); Flavigny 803 is a marginal addition. Hildesheim 810 (regnal 41 vs printed 42): a layout displacement, not a year disagreement. The clause fills the end of the XLI line after a stroke; its content (the Saxon campaign; Hrotrud's and Pippin's deaths in XLII) and its parent (Laurissenses minores, under 42) put it in 810. Waitz followed the source text, not the sky. Massay 840 is the opposite of Zwettl/Montecassino: the page stands at the sky's year (row DCCCXL) and the edition moved it off (841 'aut 840'), following a death note that is itself a year late. Editors' one-year moves so far: two toward the sky (Montecassino 1041→1042, Zwettl 1320→1321), one away (Massay 840→841). No pattern of 'healing' yet; n = 3. Collector's descriptions accepted, not re-read: St Gall 840 (c. 956, copied from the Alamannici), Sens 840, Chronicon Aquitanicum, Angoulême, Lorsch 787 (c. 835), Weissenburg (c. 1075), Quedlinburg (16th c.), Hildesheim 878, Bèze 878 (s. XIII; reuses Lyon 840's words), Vedastini 878 (numerals retouched), Einsiedeln 878 (misaligned).

Unchanged by all this: no A+ between 810 and 990 (St Gall 939 is kept on the page but A-, a compiler's year); Hildesheim 990 is A+ by custody but a one-campaign copy on the page. The 9th-century keeping that survives as keeping is in Easter-table margins, and it is thin: two dated entries on one opening.

JEV on the two channels' transcripts (jev_transcripts/; sidecar only, predictions frozen in predictions.json)

1,210 chronology-relevant claims (a year 1450–1750, or chronology wording) from @Mylunchbreak and @TartariaArchive, sorted by JEV in both option orders. Kind: rhetoric 288, physical 262, event 251, records destroyed/altered 192, count 123 (10%), population 94. Instrument: archive 476, none 316, physical 262, custody 125, keeper 21, sky 10 (0.8%). J1 holds (count < 15%), J2 holds (sky < 5%; archive + none 65%). Order flips 22% (kind) and 17% (instrument): per-claim labels are soft. J3 by eye: of the 21 count claims routed to sky/custody/keeper, nearly all are unspecific ("phantom years were added", "records before 1776 are fabricated", "2024 is not the true year"); the testable ones are the phantom-years family, which is the shift test the sky already runs (no text fits better at an offset), and one specific custody item (a 1569 Mercator slide "dated 1885"). Coverage caveat: Tartaria Archive is fully extracted (61/61 videos); My Lunch Break only 85/300 (5,254 chunks never extracted).

Keepers and arrival (custody/keepers.json, .txt; 63 houses behind the 77 tier-A source ids; P6)

701 verbatim bases; re-checked here: 699 found at their cited lines (2 trivial: a capital letter, a line off). Survival of the house's own series (last own entry): before 1300 16, 1300–1499 32 (+6 lay), 1500–1650 5 (+1), 1651–1700 1, after 1700 1. So P6's threshold holds trivially (54 of 56 institutional series end before 1650), but its mechanism fails: 48 of 56 had already stopped before 1500, with no cause stated anywhere. Annal-keeping lapsed in the 1300s–1400s while the houses lived on. The Reformation closed 14 houses in 1500–1650 (all 11 British and Irish ones), and every one had a dead series by then (British last entries 734–1471). The continental break is 1785–1806 (27 houses). Three restarts in the 1600s (Zwettl, Miechów, Rebdorf) and several house histories read and copied the medieval texts: continuity of use, not a reset, and not independent witnesses. Arrival of 105 manuscripts: documented through a 1500–1803 dissolution/secularisation/confiscation 9 (+1 war booty, +8 probable), documented sale 9, never moved 8, moved without a break 9, sold after 1803 5, lost 9, route unknown

  1. Among known routes, broken and unbroken are about even. 96 whereabouts gaps; the first print came after the gap

55 times. The arrival clause of P6 is not shown. Applied: Melk A1 is now Cod. 391 (catalogue). Not applied (inferred, no catalogue says so): ÖNB Cod. 539 = MGH's 'bibl. caes. 939', ÖNB Cod. 1180 = '4480'.

Tables fingerprint and the computed control (tables_fingerprint.*, pipeline/period_tables.py, gapfill/control_predictions_1470_1750.json; P4, P5)

Tables rebuilt and validated against printed predictions (printed minus reconstruction, minutes): Alfonsine median +4.6, spread 2.7, 73/78 within 15 (Regiomontanus Kalendarium, Peurbach via Leovitius, Stöffler); Prutenic −5.1, 3.4, 20/21 (Maestlin, Reinhold; needs Reinhold's own meridians); Rudolphine +1.5, 1.7, 16/16 (Kepler). The Paris list 1330–86 is not reproduced by any reading. Control: 54 almanac/prognostication sources, 337 predictions (EEBO/ECCO/Evans, Zacut, Granollachs). Quotes re-checked here: 334/337 exact against the TEI text with tags stripped and whitespace ignored; 3 are column rows of a modern table transcription. Plus 125 predictions read off images (separate file, not substring-checkable). Results: the bridge astronomers sit closer to the sky than to their own era's table 41 vs 14, but only 4 records are precise enough to discriminate (2 each way); slope of their error on the table's error 0.10 (−0.12–0.33): no table error carried. The independent almanacs are NOT closer to the three tables (43%, slope 0.03); they sit far from both the sky and these tables (median 40 min from the sky 1551–1627, 17 min 1628–1700): they used other tables (Lansberg, Streete, Wing ...), which are not implemented. The instrument catches entries computed from the three implemented tables (prints of them: slope ≈ 1, partly circular since they validated the tables), and nothing else. P4: observation half weakly holds; almanac half fails. P5 fails for the independent control (AUC 0.47, p 0.81). Frozen rule applied: every pre-1700 'seen' is now reported as 'both' (precision.py keeps verdict_raw). Strictly the control tested the tables instrument, not the ΔT one; the lesson carries over all the same: computed entries carry 17–40 min of table error, so a 'seen' call is only meaningful where |ΔT| is much larger than that (the 1st–8th centuries), and even there it is uncontrolled until a computed control from a large-ΔT era exists (candidates: Ptolemy's computed eclipses; entries known to be backfilled). Caught in the act: Regiomontanus's 3 Jul 1460 lunar eclipse sits 0.8 min from the Alfonsine tables and 46 min from the sky: a table time recorded among his observations.

The everyday chain 1470–1750 (gapfill/west_1470_1700_continent.json, west_1470_1750_england.json; custody_g4c/g4e; P1, P2, P3, P7)

Collected 2026-10-11 by two collectors: 203 records, 127 sources (~120 writers): diaries, town chronicles, letters, journals, pamphlets, newspapers. Quotes 203/203 substring-verified (Claude, tags limited to real XML tags; a first check that stripped <...> greedily across stray OCR '<' gave 64 false misses). Coverage is thin where it matters: 55 of the 102 continental records are 1470–1499; none for the 1520s, 1550s, 1620s–30s; England 1470–1600 has 6. Almanac predictions (control set, computed_by_construction) are now skipped by west_registry: they were entering as witnesses and could stand as copy origins over observations. Pipeline rerun with deltat --until 1760.

P1 pegging (≥ 80% writer's own year): NOT MET, not refuted. Writer-pegged 134/203 (66%), editor/printer-supplied 18 (9%), unknown 51 (25%). Continent before 1580: 66/78 pegged. After 1580 the year mostly sits in editors' running heads of unstated origin (Héroard, Dangeau, Loret, Le Riche, Barcelona Dietari, Hearne ×9 in the OHS edition). The 18 'false' are mundane: undated diary entries under running heads (Knebel, Rous, Ormesson, Dubuisson-Aubenay), 1652 pamphlets dated by imprint, a regnal-year title. Melk "1495" is a duplicate of the 1485 entry written after the 1495 annal without a numeral; Wattenbach's reassignment reunites it (not a sky repair). Does it matter who pegged? Landing at own year by peg class: writer 84/106 (79%), unknown 33/40 (83%), editor 8/12 (67%). Editor years land no better than writers' years: no sign of editors placing entries by the sky.

P2 landing (≥ 70%): HOLDS. 125/158 dated records land at their own year (orbit + visibility + stated hour within tolerance); 131/158 at day level. No segment slips (112 segments, all k = 0 or unresolved). The 33 misses have no common offset: day errors in late compilations (the 1485 eclipse at 12/14 March in Campell, Ghirardacci, Zeiller, Memorabilia Tigurina; Passero's 6 March "at night"), hour mismatches with the day right (Anshelm, Nuremberg, Dangeau, Dubuisson-Aubenay, Le Riche), the Scottish 1598 days (15, 17, 24 Feb against 25), year-start (Lady Day) cases, Stow's 1580 "14 Jan", Evelyn's misfiled April 1652, Buchell's blood-red moon (no eclipse word), Ashmole (an astrologer's note, possibly ephemeris).

P3 calendar by place: HOLDS. Of 84 dated records 1582–1752 (Claude, scratchpad p3_calendar.py: Julian vs Gregorian reading of the stated day against the eclipse date ±1.5 d): Julian places 61/67 fit the Julian day (7 only with the 25 March year start: Black Saturday "25 Feb 1597" = 1598, Laud "Anno 1623" 24 March = 1624, Hearne Feb 1717/18); Gregorian places 16/17 fit Gregorian; no Julian place fits Gregorian. Writers visibly mixing: L'Estoile (Paris, a day 10 d after the Gregorian one; a month later "lendemain de l'éclipse, à ceux qui n'observent le retranchement des dix jours"), Auria (Palermo, gives the Julian day), GM Feb 1737 (heads 1737 over a letter dated "Feb. 21, 1736"). Weekdays in Gregorian-place records all agree with Gregorian arithmetic. A later fabricator would have to reproduce this place by place, year-start by year-start, and with the mixing.

P7 drift (later witnesses not closer to the sky): HOLDS on the cases available. Moves away: the 1485 eclipse (16 March in the contemporaries; 17 in Ursi and Nuremberg; 14 in Ghirardacci c. 1590; 12 in Campell 1570s, Zeiller 1653, Memorabilia 1742; 6 March in Passero's 1785 print); Stow's 1544 eclipse (24 Jan 1565 → 14 Jan 1580 → 24 in 1618, the last a reprint of 1565, not a correction); Evelyn 1652 ("29." under April in Bray 1819 → "29th April, 1652" in the 1901 reprint). Losses: Huguenin 1838 drops "esclipse" and "je vy" from Aubrion 1473; Bliss drops words from Hearne 1724; Prynne 1644 omits Laud's eclipse. Toward the sky only in editors' apparatus, with the text's year kept: Haton's editor ("probablement 3 février 1543" against the text's 1541). Weinsberg's autograph (HAStK Best. 7030 Nr. 49, opened) writes "zehin uren" where both editions print "10": spelling only.

What this says to the 1500–1700 discontinuity question: the count does not break. Everyday writers across ~120 independent hands land at their own years (79%; the 1300s records, same test: 89/132, 67%), carry the Julian/Gregorian and Lady Day mess exactly where the place kept it, and later copies drift away from the sky, not toward it. What does change after ~1580 is where the year is written in what we can read: editors' running heads in 19th–20th-century prints, with the manuscripts mostly unopened (one autograph opened: Weinsberg). That is a custody gap, not a count gap; the sky pins the years the editors printed, and editors' years do not land better than writers'.

Manuscript pass 1580–1750 (variants/page_checks_g4.json, hand_fetch_g4.md; M1, M2 frozen in predictions_g4_manuscripts.md)

Official endpoints only (openapi.bnf.fr IIIF, catalogue.bnf.fr SRU, data.bnf.fr SPARQL, IA); gallica.bnf.fr and babel.hathitrust.org sit behind a Cloudflare challenge and were not touched. Opened: Héroard only, BnF Fr. 4022 (1605) and Fr. 4023 (1608), autograph per Lelong/the edition. Claude checked Fr. 4022 by eye: f. 1r opens in the text hand "Année mil six cents et cinq / Janvier / Le premier jo[ur] Sapmedy" (1 Jan 1605 Gregorian is a Saturday: the writer's weekday pins his year); f. 147r has a small "1605 / 8bre" page head (lighter cursive; Héroard's or not unproven) and the eclipse "veu l'Eclypse du Soleil dans [une] chaudiere plein d'eau"; 12 Oct 1605 "Mecredy" is a Wednesday in Gregorian arithmetic. Later hands: Colbert 2601 / Regius 8943, Bibliotheca Regia stamp, foliation. The edition drops the child's words around both eclipses; days agree. M1: 2/2, one writer: untested. M2: no day differences. Not reachable or not extant: L'Estoile autograph (BnF Fr. 10300/10299, no ark found via the open endpoints; Troyes), Ormesson (Rouen BM Le Ber 5767), Dubuisson-Aubenay (autograph burned 1871; Mazarine copy; his autograph "Morbi relatio" Mazarine ms. 1778 b covers 8 Apr 1652), Dangeau (dictated; Luynes original not public; 18th-c. copies only), Le Riche (18th-c. copy), Loret 1654 sheets, Barcelona Dietari originals, Hearne's diaries (Bodleian, not digitised). The custody gap after 1580 stays open: it is a reading-room problem, not a count problem. Found on IA instead: Bulletin SCMHA vols 13, 14, 17 (Büheler; Specklin's Collectanées with eclipses 1485, 1540, 1544, and index entries 1407, 1448, 1478: pre-1580, not yet entered as records); vol. 15 (Trausch, Wencker) HTTP 500, retry. Round 2 (same day): Mazarinum (now bibnum.institutdefrance.fr), Rotomagus (Gallica white-label, SRU open) and the Troyes portal answer with no challenge, but neither Dubuisson-Aubenay's Morbi relatio (Mazarine ms. 1778 b) nor Ormesson's Le Ber 5767 is digitised (imaging requests needed). L'Estoile 1605: the right witness is the Troyes autograph, Ms. 1117 vols 2–3 (the Paris MS takes over only from July 1606); whether it is digitised is unknown (the Troyes search runs only in a browser app). Bulletin SCMHA vol. 15 obtained on retry (Trausch, Wencker, Brant): no eclipse. M1 stays 2/2 from one writer: untested. Troyes (headless browser, no challenge on that portal): Ms. 1117 is not digitised in the catalogue; the critical edition (Schrenck dir., t. V 1604–1606, Droz) transcribes both autographs (BnF Fr. 10300, Troyes Ms. 1117 2–3).

back to chronology