| configuration | niter | nburnin | thin | nchains | retained_draws |
|---|---|---|---|---|---|
| rasch_normal | 8000 | 4000 | 2 | 4 | 8000 |
| rasch_dpm | 12000 | 4000 | 2 | 4 | 16000 |
| twopl_normal | 40000 | 20000 | 10 | 4 | 8000 |
| twopl_dpm | 36000 | 12000 | 6 | 4 | 16000 |
Appendix C — Computation and reproducibility record
C.1 The frozen analysis layer
All model fitting, output computation and claim freezing happened in the v1 repository (DPMirt-case-study/), whose stores this edition reads and never writes: the run store (78 production bundles, 78 seed-B replicates, with per-person summaries, item parameters, and, for DP arms, the full draw-level latent-density store), the tables layer (P0–P4), and the manifest (frozen coordinates and the claim register with its hashes). This repository adds an auditable derived layer, the standardized-shape placement gate, current sim-v3 evidence joins, figure programs and this book; its build asserts input provenance and re-derives the quantities used by current tables and prose.
Two freezes anchor the record. The coordinates freeze covers the 26 placements and their analysis-sample seeds (SHA-256 prefix 3a596f5b1d1121d0, taken 2026-08-04 02:29:55 UTC, before the first production fit). The claim-register freeze covers the 11 claims and their 27 input tables (prefix 59063e73f7af9694), taken before the results chapters of the first edition were written.
C.2 Sampling budgets and diagnostics
| item_model | prior_family | fits | median_minutes | max_minutes | core_hours | median_max_rhat | worst_max_rhat | min_ess_theta | ok | estimates_ok |
|---|---|---|---|---|---|---|---|---|---|---|
| rasch | Gaussian | 13 | 13.2 | 59.5 | 4.9 | 1.00 | 1.00 | 2265 | 13 | 13 |
| rasch | Dirichlet process | 26 | 230.0 | 560.8 | 108.6 | 1.01 | 1.28 | 68 | 26 | 26 |
| twopl | Gaussian | 13 | 14.9 | 53.6 | 4.0 | 1.00 | 1.02 | 2863 | 13 | 13 |
| twopl | Dirichlet process | 26 | 222.4 | 421.7 | 104.5 | 1.01 | 1.11 | 1000 | 26 | 26 |
C.3 Seeds
Every random step is deterministic from a recorded seed: the analysis samples (seeds in the frozen coordinates), the samplers (per-fit seeds in the fit records), and the estimate extractions, whose GR rank call is seeded even though exact posterior-rank ties are rare; the seed-B replicates re-derive all three from a tagged seed tree. Verification checks in the frozen layer (V-1 through V-8) pin the output metrics to the simulation’s implementations, reproduce the warehouse characterizations, and audit sample integrity; their pass record ships with the v1 repository.
C.4 Rebuilding this book
The build is driven by code/R/99-build.R: shape audit, data assembly, derivation, facts, tables, figures, semantic QA and a clean Quarto render. The heavy inputs are the 52 draw-level density stores (roughly 4 GB); their audited plotting cache is reused unless DPMIRT_REBUILD_DENSITIES=1 is set. Numbers in prose are computed at render time from the facts store; the build fails on an assertion, missing source, semantic-QA failure or render error.