1\section*{Reproducibility statement}\addcontentsline{toc}{section}{Reproducibility statement}2The analysis is a deterministic pipeline (seed 20261101) run from a single \texttt{Makefile}: \texttt{make ingest clean match validate features models robust tables figures paper}, with \texttt{make test} running the invariant tests on the cleaned panel. The raw snapshot is an owner-authorised, read-only copy of the Fabri-Ka database taken with \texttt{sqlite3.Connection.backup()} on 2026-11-01T17:38:30Z (SHA-256 \texttt{8d963ba9\ldots98fb}); the two tables containing personal data were dropped on the production node before transfer and nothing in production was modified. The snapshot is not redistributed (it contains merchant catalogues that belong to the merchants); the data dictionary, the sample-flow table, every intermediate aggregate, the labelled audit samples, the external-data manifest with URLs, licences, vintages and checksums, the run ledger with every API call and its cost, and the SHA-256 of every output are in the repository. LLM annotations (two independent models for the category audit and the matching validation; one model for the classifier training labels) are stored as CSV files so that the pipeline runs without API access; no empirical result depends on a live model call. Dependencies are pinned in \texttt{pyproject.toml} (Python 3.12).3