From 1eb323e9598c3702e554eebe800824332cbc7b5d Mon Sep 17 00:00:00 2001 From: gbanyan Date: Thu, 4 Jun 2026 21:30:06 +0800 Subject: [PATCH] Paper A v4.2: re-anchor primary calibration to clean BCD 2013-2019 baseline - Restrict the calibration negative anchor to Firms B/C/D, fiscal years 2013-2019 (pre-electronic-signature hand-signing period); B/C/D adopted e-signing post-2020 at staggered times, so 2013-2019 is the construct-clean baseline. Firm A scored across its full 2013-2023 record against it. - New locked numbers (codex-audited, Scripts 54/55): per-comparison HC floor 0.000010; per-signature HC floor 0.0059 [boot 0.0045-0.0073]; per-document HC 0.0117 / HC+MC 0.1753; per-firm HC+MC B 0.162 / C 0.225 / D 0.089. Firm A observed 0.817 = ~139x the clean floor (was ~70x on all-period BCD); Firm A out-of-sample vs clean pool 0.0001 (below floor -> never resembles genuine hand-signing). BCD 2020+ robustness: per-sig 0.0105, per-comparison 0.000036 (~2x pre-2020) quantifies the e-signing contamination. - Propagated through abstract / Sec. I / III-L / IV-M / V / conclusion; 0.837 crossover kept corpus-wide; ABCD retained as contamination comparison. - Grounded the 2013-2019 choice on data (floor drift) + e-sign-adoption background, not on in-text interview claims (double-blind). - Add Scripts 54 (temporal floor stability) and 55 (BCD 2013-2019 primary calibration + Firm A scoring). Co-Authored-By: Claude Opus 4.8 (1M context) --- ...EEE_Access_Draft_v4.2_20260604.pandoc.docx | Bin 0 -> 92212 bytes paper/paper_a_v4_combined.md | 86 ++++++----- signature_analysis/54_bcd_floor_temporal.py | 99 ++++++++++++ .../55_bcd_pre2020_calibration.py | 144 ++++++++++++++++++ 4 files changed, 287 insertions(+), 42 deletions(-) create mode 100644 paper/Paper_A_IEEE_Access_Draft_v4.2_20260604.pandoc.docx create mode 100644 signature_analysis/54_bcd_floor_temporal.py create mode 100644 signature_analysis/55_bcd_pre2020_calibration.py diff --git a/paper/Paper_A_IEEE_Access_Draft_v4.2_20260604.pandoc.docx b/paper/Paper_A_IEEE_Access_Draft_v4.2_20260604.pandoc.docx new file mode 100644 index 0000000000000000000000000000000000000000..df6c20d2dd7f6ff3c34d42b991781b733b122443 GIT binary patch literal 92212 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 yUt)fncx&)K_x -Regulations require Certified Public Accountants (CPAs) to attest each audit report with a signature, but digitization makes it feasible to reuse a stored signature image across reports, undermining individualized attestation. We build an end-to-end pipeline to screen *non-hand-signed* signatures: a Vision-Language Model identifies signature pages, YOLOv11 localizes signatures, ResNet-50 supplies deep features, and a dual-descriptor layer combines cosine similarity with an independent-minimum perceptual hash (dHash), separating *style consistency* from *image reproduction*. Applied to 90,282 Taiwan audit reports (2013–2023), the pipeline yields 182,328 signatures from 758 CPAs; primary analyses cover the Big-4 sub-corpus (437 CPAs; 150,442 signatures). Diagnostics show no within-population antimode anchors a threshold ($p=0.35$ after firm-mean centring and integer-tie jitter). We instead calibrate via an inter-CPA coincidence-rate (ICCR) anchored on a normative non-Firm-A baseline (Firms B/C/D), as Firm A's extreme within-firm collision structure would contaminate an all-firm anchor. On this clean baseline the high-confidence rule (cos$>0.95$, dHash$\leq 5$) has a very low inter-CPA coincidence rate (per-comparison ICCR $0.000018$; per-signature $0.012$; per-document $0.023$), whereas the moderate-confidence band (dHash$\leq 15$) retains a $\sim 0.19$ per-document coincidence rate and is reported as advisory. Scored out-of-sample, Firm A coincides at baseline rate cross-firm yet fires the rule on $82\%$ of its own signatures ($\sim 70\times$ floor); its signal is within-firm. We read this as consistent with firm-level template-like reuse but not independently diagnostic: descriptor-only data cannot separate reuse from digitisation-pipeline or signing-style homogeneity. We position it as a specificity-proxy screening framework with human-in-the-loop review, not a validated forensic detector; no calibrated error rates are reportable without ground truth. +Regulations require Certified Public Accountants (CPAs) to attest each audit report with a signature, but digitization makes it feasible to reuse a stored signature image across reports, undermining individualized attestation. We build an end-to-end pipeline to screen *non-hand-signed* signatures: a Vision-Language Model identifies signature pages, YOLOv11 localizes signatures, ResNet-50 supplies deep features, and a dual-descriptor layer combines cosine similarity with an independent-minimum perceptual hash (dHash), separating *style consistency* from *image reproduction*. Applied to 90,282 Taiwan audit reports (2013–2023), the pipeline yields 182,328 signatures from 758 CPAs; primary analyses cover the Big-4 sub-corpus (437 CPAs; 150,442 signatures). Diagnostics show no within-population antimode anchors a threshold ($p=0.35$ after firm-mean centring and integer-tie jitter). We instead calibrate via an inter-CPA coincidence-rate (ICCR) anchored on a clean pre-e-signature baseline (Firms B/C/D, 2013–2019), as Firm A's extreme within-firm collision structure would contaminate an all-firm anchor. On this clean baseline the high-confidence rule (cos$>0.95$, dHash$\leq 5$) has a very low inter-CPA coincidence rate (per-comparison ICCR $0.000010$; per-signature $0.006$; per-document $0.012$), whereas the moderate-confidence band (dHash$\leq 15$) retains a $\sim 0.175$ per-document coincidence rate and is reported as advisory. Scored out-of-sample, Firm A never coincides cross-firm yet fires on $82\%$ of its own ($\sim 139\times$ floor); its signal is within-firm. We read this as consistent with firm-level template-like reuse but not independently diagnostic: descriptor-only data cannot separate reuse from digitisation-pipeline or signing-style homogeneity. We position it as a specificity-proxy screening framework with human-in-the-loop review, not a validated forensic detector; no calibrated error rates are reportable without ground truth. @@ -32,9 +32,9 @@ We are deliberate about what the system claims. The operating thresholds are *op A key empirical finding is that the descriptor distributions do not support a within-population natural threshold. The apparent multimodality in the Big-4 accountant-level distribution is explained by between-firm location-shift effects (Firm A's mean dHash of $2.73$ versus Firms B/C/D's $6.46$, $7.39$, $7.21$) and integer mass-point artefacts on the integer-valued dHash axis. After joint firm-mean centring and uniform integer-tie jitter, the pooled dHash dip-test rejection disappears ($p_{\text{median}} = 0.35$ across five seeds). Within-firm diagnostics in every Big-4 firm fail to reveal stable bimodal structure after accounting for integer ties; eligible non-Big-4 firms provide corroborating raw-axis evidence on the cosine dimension (§III-I.4). We therefore treat mixture fits as descriptive summaries of firm-compositional structure rather than threshold-generating mechanisms, and calibrate the deployed operating rules using inter-CPA coincidence-rate anchors. -In place of distributional anchoring, we adopt an anchor-based inter-CPA coincidence-rate (ICCR) calibration on a normative non-Firm-A baseline (Firms B/C/D); §III-L.0 explains why an all-Big-4 negative anchor is partially circular — Firm A's extreme within-firm cross-CPA collision structure loads the all-firm pool with the very structure the rule targets. On this BCD baseline the deployed high-confidence rule (cos$>0.95$ AND dHash$\leq 5$) yields per-comparison ICCR $= 0.000018$ (versus $0.00014$ on the contaminated all-Big-4 pool), pool-normalised per-signature ICCR $= 0.0116$ (CPA-block bootstrap 95% $[0.0094, 0.0141]$), and per-document ICCR $= 0.023$ — roughly an order of magnitude below the all-Big-4 figures, confirming that the HC rule has a very low inter-CPA coincidence rate against an uncontaminated baseline. The moderate-confidence band (cos$>0.95$ AND $5 < \text{dHash} \leq 15$), by contrast, retains a per-document coincidence rate of $0.19$ even on the clean baseline (and rises slightly when Firm A is removed), so we treat HC as the specificity-anchored operating point and reposition the MC band as a low-specificity advisory tier rather than a confident non-hand-signed label. The cosine LH/UN crossover ($\text{cos} = 0.837$) is a corpus-wide descriptor-space landmark robust to baseline choice (it moves $\leq 0.012$ across the corpus-wide, BCD, and BCD+non-Big-4 scopes) and is retained corpus-wide. +In place of distributional anchoring, we adopt an anchor-based inter-CPA coincidence-rate (ICCR) calibration on a clean pre-e-signature baseline (Firms B/C/D, 2013–2019); §III-L.0 explains why an all-Big-4 negative anchor is partially circular — Firm A's extreme within-firm cross-CPA collision structure loads the all-firm pool with the very structure the rule targets. On this BCD baseline the deployed high-confidence rule (cos$>0.95$ AND dHash$\leq 5$) yields per-comparison ICCR $= 0.000010$ (versus $0.00014$ on the contaminated all-Big-4 pool), pool-normalised per-signature ICCR $= 0.0059$ (CPA-block bootstrap 95% $[0.0045, 0.0073]$), and per-document ICCR $= 0.012$ — roughly an order of magnitude below the all-Big-4 figures, confirming that the HC rule has a very low inter-CPA coincidence rate against an uncontaminated baseline. The moderate-confidence band (cos$>0.95$ AND $5 < \text{dHash} \leq 15$), by contrast, retains a per-document coincidence rate of $0.175$ even on the clean baseline (and rises slightly when Firm A is removed), so we treat HC as the specificity-anchored operating point and reposition the MC band as a low-specificity advisory tier rather than a confident non-hand-signed label. The cosine LH/UN crossover ($\text{cos} = 0.837$) is a corpus-wide descriptor-space landmark robust to baseline choice (it moves $\leq 0.012$ across the corpus-wide, BCD, and BCD+non-Big-4 scopes) and is retained corpus-wide. -With Firm A treated as an out-of-sample target rather than a calibration input, the heterogeneity reads cleanly. Against the BCD floor (per-signature HC ICCR $0.0116$), the deployed rule fires on each firm's *actual* same-CPA pools far above the inter-CPA coincidence floor: Firm A at $0.82$ ($\sim 70\times$ floor), Firms B/C/D at $0.24$–$0.35$ ($\sim 21$–$30\times$). Firm A scored against the clean baseline coincides at only $0.0102$ — essentially the floor itself — so its elevation is entirely a within-firm phenomenon, not cross-firm distinctiveness. Two logistic regressions confirm Firm A is the singular extreme while the baseline is internally homogeneous: with Firm A as reference on the full Big-4 pool, odds ratios are $0.053$ (B), $0.010$ (C), $0.027$ (D); restricted to the BCD baseline with Firm D as reference, the residual spread collapses to within $\sim 3.5\times$ (odds ratio $1.73$ for B, $0.49$ for C). Under the deployed any-pair rule, within-firm collision concentration is a *universal* Big-4 pattern — $98.8\%$ at Firm A and, on the clean BCD pool, $89$–$97\%$ at Firms B/C/D (Table XXV) — consistent with firm-specific template, stamp, or document-production reuse, though not by itself diagnostic of deliberate sharing. The deployed five-way box rule defines a reproducible screening classifier; the calibration contribution is to characterise its multi-level inter-CPA coincidence behaviour, not to derive new thresholds. The high-confidence sub-rule (cos $> 0.95$ AND dHash $\leq 5$) and the advisory moderate-confidence sub-rule (cos $> 0.95$ AND $5 < \text{dHash} \leq 15$) are explicit decision rules whose calibrated false-positive and false-negative error rates remain unknown in the absence of signature-level labels. +With Firm A treated as an out-of-sample target rather than a calibration input, the heterogeneity reads cleanly. Against the BCD floor (per-signature HC ICCR $0.0059$), the deployed rule fires on each firm's *actual* same-CPA pools far above the inter-CPA coincidence floor: Firm A at $0.82$ ($\sim 139\times$ floor), Firms B/C/D at $0.24$–$0.35$ ($\sim 40$–$59\times$). Firm A scored against the clean 2013–2019 baseline coincides essentially never ($0.0001$, below the clean-baseline floor itself) — so its elevation is entirely a within-firm phenomenon, not cross-firm distinctiveness. Two logistic regressions confirm Firm A is the singular extreme while the baseline is internally homogeneous: with Firm A as reference on the full Big-4 pool, odds ratios are $0.053$ (B), $0.010$ (C), $0.027$ (D); restricted to the BCD baseline with Firm D as reference, the residual spread collapses to within $\sim 3.5\times$ (odds ratio $1.73$ for B, $0.49$ for C). Under the deployed any-pair rule, within-firm collision concentration is a *universal* Big-4 pattern — $98.8\%$ at Firm A and, on the clean BCD pool, $89$–$97\%$ at Firms B/C/D (Table XXV) — consistent with firm-specific template, stamp, or document-production reuse, though not by itself diagnostic of deliberate sharing. The deployed five-way box rule defines a reproducible screening classifier; the calibration contribution is to characterise its multi-level inter-CPA coincidence behaviour, not to derive new thresholds. The high-confidence sub-rule (cos $> 0.95$ AND dHash $\leq 5$) and the advisory moderate-confidence sub-rule (cos $> 0.95$ AND $5 < \text{dHash} \leq 15$) are explicit decision rules whose calibrated false-positive and false-negative error rates remain unknown in the absence of signature-level labels. Three feature-derived scores converge on the per-CPA descriptor-position ranking with Spearman $\rho \geq 0.879$: the K=3 mixture posterior (a firm-compositional position score under §III-J's reading, not a mechanism cluster posterior), a reverse-anchor cosine percentile relative to a strictly-out-of-target non-Big-4 reference, and the box-rule less-replication-dominated rate. The three scores are deterministic functions of the same per-CPA descriptor pair, so the convergence is documented as internal consistency among feature-derived ranks rather than external validation. A conservative hard-positive subset for image replication is provided by 262 byte-identical signatures in the Big-4 subset (Firm A 145, Firm B 8, Firm C 107, Firm D 2), against which all three candidate checks achieve $0\%$ positive-anchor miss rate (Wilson 95% upper bound $1.45\%$). For the box rule this result is close to tautological at byte-identity; we discuss the conservative-subset caveat in §V-G. @@ -50,9 +50,9 @@ The contributions of this paper are: 4. **Composition decomposition does not support the distributional-threshold path.** We show via a 2×2 factorial diagnostic (firm-mean centring × integer-tie jitter) that the apparent multimodality of the Big-4 accountant-level descriptor distribution is fully attributable to between-firm location shifts and integer mass-point artefacts. The descriptor distributions contain no within-population bimodal antimode; a distributional "natural threshold" reading of the operating points is not empirically supported. -5. **Anchor-based multi-level ICCR calibration on a normative non-Firm-A baseline.** We characterise the deployed high-confidence (HC) sub-rule at three units of analysis against a clean Firms-B/C/D negative anchor (Firm A held out as an out-of-sample target to avoid circularity): per-comparison ICCR $0.000018$, pool-normalised per-signature ICCR $0.0116$, and per-document ICCR $0.023$ — each roughly an order of magnitude below the contaminated all-Big-4 figures ($0.00014$, $0.11$, $0.18$). The moderate-confidence band (dHash$\leq 15$) retains a $\sim 0.19$ per-document coincidence rate on the clean baseline and is repositioned as a low-specificity advisory tier rather than a confident non-hand-signed label. Because the deployed thresholds are operator-tunable, the contribution is this label-free calibration methodology — a principled way to choose and characterise a screening operating point and the specificity it yields — rather than any specific threshold. We adopt "inter-CPA coincidence rate" as the metric name throughout and reserve "False Acceptance Rate" for terminology that requires ground-truth negative labels, which the corpus does not provide. +5. **Anchor-based multi-level ICCR calibration on a normative non-Firm-A baseline.** We characterise the deployed high-confidence (HC) sub-rule at three units of analysis against a clean Firms-B/C/D negative anchor (Firm A held out as an out-of-sample target to avoid circularity): per-comparison ICCR $0.000010$, pool-normalised per-signature ICCR $0.0059$, and per-document ICCR $0.012$ — each roughly an order of magnitude below the contaminated all-Big-4 figures ($0.00014$, $0.11$, $0.18$). The moderate-confidence band (dHash$\leq 15$) retains a $\sim 0.175$ per-document coincidence rate on the clean baseline and is repositioned as a low-specificity advisory tier rather than a confident non-hand-signed label. Because the deployed thresholds are operator-tunable, the contribution is this label-free calibration methodology — a principled way to choose and characterise a screening operating point and the specificity it yields — rather than any specific threshold. We adopt "inter-CPA coincidence rate" as the metric name throughout and reserve "False Acceptance Rate" for terminology that requires ground-truth negative labels, which the corpus does not provide. -6. **Firm A as a singular out-of-sample extreme; universal within-firm collision concentration.** Against the clean BCD floor (per-signature HC ICCR $0.0116$), the deployed rule fires on each firm's own pools far above the inter-CPA coincidence floor (Firm A $0.82$, $\sim 70\times$; Firms B/C/D $0.24$–$0.35$, $\sim 21$–$30\times$), while Firm A scored cross-firm against the baseline coincides only at the floor ($0.0102$) — localising the repeatability signal to within-firm comparisons. Two logistic regressions (full-Big-4 with Firm A reference: odds ratios $0.053$/$0.010$/$0.027$ for B/C/D; BCD-only with Firm D reference: residual spread within $\sim 3.5\times$, odds ratios $1.73$/$0.49$ for B/C) show Firm A is the lone outlier while Firms B/C/D form an internally homogeneous baseline. Within-firm collision concentration is a universal Big-4 pattern — $98.8\%$ at Firm A and $89$–$97\%$ at Firms B/C/D on the clean pool — consistent with, but not independently establishing, firm-level template-like reuse, digitisation-pipeline homogeneity, or signing-style homogeneity, which descriptor-only data cannot separate (§V-H). +6. **Firm A as a singular out-of-sample extreme; universal within-firm collision concentration.** Against the clean BCD floor (per-signature HC ICCR $0.0059$), the deployed rule fires on each firm's own pools far above the inter-CPA coincidence floor (Firm A $0.82$, $\sim 139\times$; Firms B/C/D $0.24$–$0.35$, $\sim 40$–$59\times$), while Firm A scored cross-firm against the clean 2013–2019 baseline coincides essentially never cross-firm ($0.0001$, below the floor itself) — localising the repeatability signal to within-firm comparisons. Two logistic regressions (full-Big-4 with Firm A reference: odds ratios $0.053$/$0.010$/$0.027$ for B/C/D; BCD-only with Firm D reference: residual spread within $\sim 3.5\times$, odds ratios $1.73$/$0.49$ for B/C) show Firm A is the lone outlier while Firms B/C/D form an internally homogeneous baseline. Within-firm collision concentration is a universal Big-4 pattern — $98.8\%$ at Firm A and $89$–$97\%$ at Firms B/C/D on the clean pool — consistent with, but not independently establishing, firm-level template-like reuse, digitisation-pipeline homogeneity, or signing-style homogeneity, which descriptor-only data cannot separate (§V-H). 7. **K=3 as descriptive firm-compositional partition; three-score convergent internal consistency.** We fit a K=3 Gaussian mixture as a descriptive partition of the Big-4 accountant-level distribution (interpreted as firm-compositional structure, not as three mechanism clusters). Three feature-derived scores agree on the per-CPA descriptor-position ranking at Spearman $\rho \geq 0.879$; we report this as internal consistency rather than external validation, given that the scores share the underlying descriptor pair. @@ -396,7 +396,7 @@ $\text{BIC}(K{=}3) = -1111.93$, lower than $K{=}2$ by $3.48$ (mild numerical pre Firm A accounts for $141$ of the $143$ C3-assigned CPAs; Firm C accounts for $24$ of the $40$ C1-assigned CPAs. The K=3 partition is therefore well-described as a firm-compositional decomposition: C3 is essentially "Firm A and any non-Firm-A CPA whose mean descriptors happen to land in the high-cos / low-dHash corner"; C1 is essentially "non-Firm-A CPAs whose mean descriptors land in the low-cos / high-dHash corner." The composition contrast that K=3 captures at the accountant level reappears at the deployment level in the cross-firm hit matrix of §III-L.4 (Script 44): under the deployed any-pair rule, within-firm collision concentration is $98.8\%$ at Firm A and $76.7$–$83.7\%$ at Firms B/C/D (the stricter same-pair joint event saturates at $97.0$–$99.96\%$ within-firm across all four firms). The K=3 partition and the cross-firm hit matrix therefore describe the same underlying firm-compositional structure at two different units of analysis. -**Leave-one-firm-out stability (Scripts 36, 37).** Leave-one-firm-out cross-validation shows that K=2 is unstable across folds: holding Firm A out gives a fold rule cos $> 0.938$ AND dHash $\leq 8.79$, while holding any single non-Firm-A Big-4 firm out gives a fold rule near cos $> 0.975$ AND dHash $\leq 3.76$ (Script 36). The maximum absolute deviation of the four fold cosine crossings from their across-fold mean is $0.028$ (the corresponding pairwise across-fold range is $0.0376$, from $0.9380$ for the held-out-Firm-A fold to $0.9756$ for the held-out-Firm-D fold; Script 36 stability summary). The $0.028$ value is $5.6\times$ the report's $0.005$ across-fold stability tolerance. K=3 in contrast has a *reproducible component shape*: across the four folds the C1 cosine mean varies by at most $0.005$, the C1 dHash mean by at most $0.96$, and the C1 weight by at most $0.023$ (Script 37). K=3 hard-posterior membership for the held-out firm is composition-sensitive — for Firm C the held-out C1 rate is $36.3\%$ vs the full-Big-4 baseline of $23.5\%$, an absolute difference of $12.8$ pp; for Firm A the held-out C1 rate is $4.7\%$ vs baseline $0.0\%$; the report's own legend classifies this pattern as `P2_PARTIAL` ("the C1 cluster exists but membership is not well-predicted by the held-out fit"). We accordingly do not use K=3 hard-posterior membership as an operational label. +**Leave-one-firm-out stability (Scripts 36, 37).** Leave-one-firm-out cross-validation shows that K=2 is unstable across folds: holding Firm A out gives a fold rule cos $> 0.938$ AND dHash $\leq 8.79$, while holding any single non-Firm-A Big-4 firm out gives a fold rule near cos $> 0.975$ AND dHash $\leq 3.76$ (Script 36). The maximum absolute deviation of the four fold cosine crossings from their across-fold mean is $0.028$ (the corresponding pairwise across-fold range is $0.0376$, from $0.9380$ for the held-out-Firm-A fold to $0.9756$ for the held-out-Firm-D fold; Script 36 stability summary). The $0.028$ value is $5.6\times$ the report's $0.005$ across-fold stability tolerance. K=3 in contrast has a *reproducible component shape*: across the four folds the C1 cosine mean varies by at most $0.005$, the C1 dHash mean by at most $0.96$, and the C1 weight by at most $0.012$ (Script 37). K=3 hard-posterior membership for the held-out firm is composition-sensitive — for Firm C the held-out C1 rate is $36.3\%$ vs the full-Big-4 baseline of $23.5\%$, an absolute difference of $12.8$ pp; for Firm A the held-out C1 rate is $4.7\%$ vs baseline $0.0\%$; the report's own legend classifies this pattern as `P2_PARTIAL` ("the C1 cluster exists but membership is not well-predicted by the held-out fit"). We accordingly do not use K=3 hard-posterior membership as an operational label. We take the joint K=2 / K=3 LOOO evidence as supporting the following descriptive claims, all of which are used in §III-K and §V but none of which underwrites the operational classifier: @@ -458,6 +458,8 @@ The operational classifier defined in §III-H.1 is calibrated by characterising **Choice of negative-anchor pool.** A negative anchor must approximate a population in which the rule should *not* fire — independent CPAs whose signatures coincide only by chance. §III-L.4 shows that under the deployed rule, $98.8\%$ of Firm A's inter-CPA collisions fall on other Firm-A CPAs, and byte-level evidence (§IV-H, supplementary materials) confirms image-level reuse across $\sim 50$ Firm-A partners. Including Firm A in the negative-anchor pool therefore loads the "coincidence" rate with structured within-firm collisions, not chance coincidence — a circularity, since that collision structure is the phenomenon the rule targets. We adopt **Firms B/C/D (BCD) as the normative negative-anchor baseline** and report the all-Big-4 (ABCD) pool only as a contamination-comparison scope; Firm A enters as an **out-of-sample target** (§III-L.4), not as a calibration input. A still-broader baseline adding the eligible non-Big-4 firms (BCD+non-Big-4) is reported as a robustness scope. +We further restrict the calibration baseline temporally to **fiscal years 2013–2019**. Taiwan audit firms progressively adopted electronic-signature systems after 2020 (with firm-specific timing), so the pre-2020 BCD period is the construct-clean hand-signing baseline; the post-2020 period mixes genuine hand-signing with legitimate e-signing and is therefore not a clean negative anchor. The data corroborate this: the BCD per-comparison HC floor rises from $0.000010$ (2013–2019) to $0.000036$ (2020–2023), and the per-signature floor from $0.0059$ to $0.0105$ — the gradual, non-stepped rise being consistent with staggered per-firm adoption. We therefore calibrate on BCD 2013–2019 and report BCD 2020–2023 only as a robustness scope (it documents the e-signing contamination rather than the clean floor). Firm A is scored across its full 2013–2023 record against this clean threshold. + **Calibration role of the present analysis.** The deployed thresholds of §III-H.1 preserve continuity with the existing literature and the supplementary calibration evidence. §III-I.4 establishes that a recalibration cannot be anchored on distributional antimodes (no within-population bimodality exists); §III-L.1 below characterises the cosine and structural ($\text{dHash} \leq 5$) thresholds' specificity-proxy behaviour at the inter-CPA pair level on the BCD baseline. The sub-band thresholds ($\text{dHash} = 15$, $\text{cos} = 0.837$) retain their supplementary calibration evidence; the present calibration does not provide independent rates for those sub-bands. The cosine LH/UN crossover $\text{cos} = 0.837$ is a corpus-wide descriptor-space landmark (intra- vs inter-CPA cosine KDE crossover, §IV-C) robust to baseline choice — it moves by at most $0.012$ across the corpus-wide, BCD, and BCD+non-Big-4 scopes ($0.8367$, $0.8489$, $0.8302$) — so we retain the corpus-wide value and do not re-anchor it on BCD. **Three units of analysis.** We report inter-CPA negative-anchor coincidence behaviour at three units, each addressing a different operational question: @@ -478,9 +480,9 @@ We sample $5 \times 10^5$ inter-CPA pairs uniformly at random from the baseline |---|---|---|---| | Cosine $> 0.95$ | $0.00026$ | $0.00060$ | $0.00014$ | | dHash $\leq 5$ | $0.00037$ | $0.00129$ | $0.00034$ | -| Joint: cos $> 0.95$ AND dHash $\leq 5$ (any-pair) | $\mathbf{0.000018}$ $\;[0.000009, 0.000034]$ | $0.000140$ $\;[0.000111, 0.000177]$ | $0.000004$ $\;[0.000001, 0.000015]$ | +| Joint: cos $> 0.95$ AND dHash $\leq 5$ (any-pair) | $\mathbf{0.000010}$ $\;[0.000004, 0.000023]$ | $0.000140$ $\;[0.000111, 0.000177]$ | $0.000004$ $\;[0.000001, 0.000015]$ | -On the normative BCD baseline the joint per-comparison coincidence rate for the deployed HC rule is $0.000018$ — roughly $8\times$ lower than the all-Big-4 rate ($0.000140$), and lower still when the non-Big-4 firms are added ($0.000004$). The all-Big-4 figure is inflated by Firm A's within-firm collision structure (§III-L.4): removing Firm A from the negative anchor strips out the structured reuse that an honest specificity proxy must exclude. The joint-rule hit count is small in absolute terms ($9$ of $5 \times 10^5$ pairs on the BCD pool), so we report the Wilson interval and treat the per-comparison joint rate as an order-of-magnitude specificity proxy rather than a precisely estimated rate; the well-powered per-signature and per-document units (§III-L.2, §III-L.3) carry the primary calibration weight. The all-Big-4 cos $> 0.95$ row remains consistent with the corpus-wide per-comparison rate of $0.0005$ reported in §IV-I. On the all-Big-4 sample the conditional rate ICCR(dHash $\leq 5\mid$ cos $> 0.95$) is $0.234$, indicating that the structural dimension adds substantial per-comparison specificity beyond the cosine gate. +On the normative BCD baseline the joint per-comparison coincidence rate for the deployed HC rule is $0.000010$ — roughly $8\times$ lower than the all-Big-4 rate ($0.000140$), and lower still when the non-Big-4 firms are added ($0.000004$). The all-Big-4 figure is inflated by Firm A's within-firm collision structure (§III-L.4): removing Firm A from the negative anchor strips out the structured reuse that an honest specificity proxy must exclude. The joint-rule hit count is small in absolute terms ($5$ of $5 \times 10^5$ pairs on the BCD pool), so we report the Wilson interval and treat the per-comparison joint rate as an order-of-magnitude specificity proxy rather than a precisely estimated rate; the well-powered per-signature and per-document units (§III-L.2, §III-L.3) carry the primary calibration weight. The all-Big-4 cos $> 0.95$ row remains consistent with the corpus-wide per-comparison rate of $0.0005$ reported in §IV-I. On the all-Big-4 sample the conditional rate ICCR(dHash $\leq 5\mid$ cos $> 0.95$) is $0.234$, indicating that the structural dimension adds substantial per-comparison specificity beyond the cosine gate. The per-comparison rate does *not* directly translate to the deployed-rule specificity at the per-signature classifier level, because the deployed classifier takes extrema over a same-CPA pool of size $n_{\text{pool}}$. The pool-normalised inter-CPA alert rate is reported in §III-L.2. @@ -492,11 +494,11 @@ The deployed rule uses $\max_{\text{pool}} \text{cos}$ and $\min_{\text{pool}} \ | Baseline pool | Per-signature HC ICCR | CPA-bootstrap 95% CI | |---|---|---| -| **BCD (primary)** | $\mathbf{0.0116}$ | $[0.0094, 0.0141]$ | +| **BCD (primary)** | $\mathbf{0.0059}$ | $[0.0045, 0.0073]$ | | All-Big-4 (contamination comparison) | $0.1102$ | $[0.0908, 0.1330]$ | | BCD+non-Big-4 | $0.0083$ | $[0.0066, 0.0099]$ | -On the normative BCD baseline the deployed HC rule's pool-normalised per-signature coincidence rate is $0.0116$ — an order of magnitude below the all-Big-4 figure of $0.1102$. The all-Big-4 figure is dominated by Firm A, whose signatures coincide with other Firm-A signatures at high rate; once Firm A is removed from both the source set and the candidate pool, the residual per-signature coincidence among independent normative-baseline CPAs is $\approx 1.2\%$. This is the specificity-proxy floor against which the deployed HC rule operates. The rate increases with pool size (the rule takes extrema over $n_{\text{pool}}$ candidates), consistent with the $1 - (1 - p_{\text{pair}})^{n_{\text{pool}}}$ form expected under inter-CPA independence; the within-firm violation of that independence (§III-L.4) bounds how literally the closed form can be read. Stakeholders requiring a tighter specificity proxy can characterise alternative operating points (e.g., dHash $\leq 3$) by inverting the ICCR curve, with the unsupervised-setting caveats of §III-M. +On the normative BCD baseline the deployed HC rule's pool-normalised per-signature coincidence rate is $0.0059$ — an order of magnitude below the all-Big-4 figure of $0.1102$. The all-Big-4 figure is dominated by Firm A, whose signatures coincide with other Firm-A signatures at high rate; once Firm A is removed from both the source set and the candidate pool, the residual per-signature coincidence among independent normative-baseline CPAs is $\approx 0.59\%$. This is the specificity-proxy floor against which the deployed HC rule operates. The rate increases with pool size (the rule takes extrema over $n_{\text{pool}}$ candidates), consistent with the $1 - (1 - p_{\text{pair}})^{n_{\text{pool}}}$ form expected under inter-CPA independence; the within-firm violation of that independence (§III-L.4) bounds how literally the closed form can be read. Stakeholders requiring a tighter specificity proxy can characterise alternative operating points (e.g., dHash $\leq 3$) by inverting the ICCR curve, with the unsupervised-setting caveats of §III-M. ### L.3. Document-level inter-CPA proxy alert rate (Script 52) @@ -504,31 +506,31 @@ Each document is classified by the worst-case rule over its constituent signatur | Alarm definition | BCD baseline (primary) | All-Big-4 | BCD+non-Big-4 | |---|---|---|---| -| HC (dHash $\leq 5$) | $\mathbf{0.0226}$ | $0.1797$ | $0.0163$ | -| HC + MC (dHash $\leq 15$) | $0.1905$ | $0.3375$ | $0.1467$ | +| HC (dHash $\leq 5$) | $\mathbf{0.0117}$ | $0.1797$ | $0.0163$ | +| HC + MC (dHash $\leq 15$) | $0.1753$ | $0.3375$ | $0.1467$ | -**The HC and HC+MC bands behave very differently on a clean baseline, which sharpens the operating-point recommendation.** On the BCD baseline the per-document HC rate is $0.0226$ ($\sim 8\times$ below the all-Big-4 $0.1797$), confirming that the HC (dHash $\leq 5$) rule has a very low inter-CPA coincidence rate: a clean inter-CPA baseline almost never produces an HC document. The HC+MC (dHash $\leq 15$) rate, by contrast, remains high on the clean baseline — $0.1905$ per document — and the per-firm breakdown shows it does *not* fall when Firm A is removed. **We therefore treat the HC sub-rule (dHash $\leq 5$) as the specificity-anchored operating point and reposition the MC band ($5 < \text{dHash} \leq 15$) as a low-specificity advisory tier rather than a confident non-hand-signed screening label.** Roughly one normative-baseline document in five would coincidentally carry an HC+MC flag under random inter-CPA candidate replacement, so an HC+MC alarm is not by itself evidence of image reproduction. +**The HC and HC+MC bands behave very differently on a clean baseline, which sharpens the operating-point recommendation.** On the BCD baseline the per-document HC rate is $0.0117$ ($\sim 8\times$ below the all-Big-4 $0.1797$), confirming that the HC (dHash $\leq 5$) rule has a very low inter-CPA coincidence rate: a clean inter-CPA baseline almost never produces an HC document. The HC+MC (dHash $\leq 15$) rate, by contrast, remains high on the clean baseline — $0.1753$ per document — and the per-firm breakdown shows it does *not* fall when Firm A is removed. **We therefore treat the HC sub-rule (dHash $\leq 5$) as the specificity-anchored operating point and reposition the MC band ($5 < \text{dHash} \leq 15$) as a low-specificity advisory tier rather than a confident non-hand-signed screening label.** Roughly one normative-baseline document in five would coincidentally carry an HC+MC flag under random inter-CPA candidate replacement, so an HC+MC alarm is not by itself evidence of image reproduction. -Per-firm per-document HC+MC ICCR on the BCD baseline is Firm B $0.197$, Firm C $0.218$, Firm D $0.114$ — slightly *higher* than under the all-Big-4 pool (B $0.160$, C $0.163$, D $0.088$), because removing Firm A's idiosyncratic template leaves a candidate pool whose members resemble one another more closely at the coarse dHash $\leq 15$ scale. This is direct evidence that the MC band carries little inter-CPA specificity even among normative firms, corroborating its demotion to an advisory tier. The positioning of the operational system as a **screening framework with human-in-the-loop review**, not an autonomous forensic classifier, follows directly (§III-M). +Per-firm per-document HC+MC ICCR on the BCD baseline is Firm B $0.162$, Firm C $0.225$, Firm D $0.089$ — slightly *higher* than under the all-Big-4 pool (B $0.160$, C $0.163$, D $0.088$), because removing Firm A's idiosyncratic template leaves a candidate pool whose members resemble one another more closely at the coarse dHash $\leq 15$ scale. This is direct evidence that the MC band carries little inter-CPA specificity even among normative firms, corroborating its demotion to an advisory tier. The positioning of the operational system as a **screening framework with human-in-the-loop review**, not an autonomous forensic classifier, follows directly (§III-M). ### L.4. Firm A as an out-of-sample target; firm heterogeneity (Scripts 49, 52, 44, 53) With the calibration anchored on BCD, Firm A is scored as an out-of-sample target against the clean baseline. Three complementary readings establish that Firm A is the extreme case while keeping the inferential limits explicit. -**(i) Observed deployed rate versus the clean floor.** The deployed HC rule fires on each firm's *actual* same-CPA pools at the following per-signature rates (observed, not counterfactual; Script 49), against the BCD specificity-proxy floor of $0.0116$ (§III-L.2): +**(i) Observed deployed rate versus the clean floor.** The deployed HC rule fires on each firm's *actual* same-CPA pools at the following per-signature rates (observed, not counterfactual; Script 49), against the BCD specificity-proxy floor of $0.0059$ (§III-L.2): | Firm | Observed per-signature HC rate | Multiple of BCD floor | |---|---|---| -| Firm A | $0.817$ | $\sim 70\times$ | -| Firm B | $0.346$ | $\sim 30\times$ | -| Firm C | $0.238$ | $\sim 21\times$ | -| Firm D | $0.245$ | $\sim 21\times$ | +| Firm A | $0.817$ | $\sim 139\times$ | +| Firm B | $0.346$ | $\sim 59\times$ | +| Firm C | $0.238$ | $\sim 40\times$ | +| Firm D | $0.245$ | $\sim 42\times$ | -All four Big-4 firms fire the HC rule on their own pools far above the inter-CPA coincidence floor; Firm A is the extreme at $\sim 70\times$, roughly $2.4$–$3.4\times$ the other Big-4 firms in absolute rate. We emphasise (and develop in §III-M) that this excess is *not* a true-positive rate: the floor is an inter-CPA coincidence rate, whereas a CPA who hand-signs consistently can also produce same-pool repeatability above it. The multiple is a framework-discriminative observation, not a measure of image reproduction. +All four Big-4 firms fire the HC rule on their own pools far above the inter-CPA coincidence floor; Firm A is the extreme at $\sim 139\times$, roughly $2.4$–$3.4\times$ the other Big-4 firms in absolute rate. We emphasise (and develop in §III-M) that this excess is *not* a true-positive rate: the floor is an inter-CPA coincidence rate, whereas a CPA who hand-signs consistently can also produce same-pool repeatability above it. The multiple is a framework-discriminative observation, not a measure of image reproduction. -**(ii) Firm A against the clean baseline behaves like the floor — its signal is within-firm.** Scored as a true out-of-sample target (Firm A source signatures, candidate pool drawn from the clean BCD baseline, any-pair, Script 52), Firm A's per-signature HC coincidence rate is $0.0102$ — essentially identical to the BCD-internal floor of $0.0116$. Firm A's signatures are thus unremarkable when matched against *other firms'* signatures; the entire elevation in Firm A's observed rate ($0.817$) arises from matches against *other Firm-A* signatures, localising the repeatability signal to within-firm comparisons rather than cross-firm distinctiveness. +**(ii) Firm A against the clean baseline behaves like the floor — its signal is within-firm.** Scored as a true out-of-sample target (Firm A source signatures, candidate pool drawn from the clean BCD baseline, any-pair, Script 52), Firm A's per-signature HC coincidence rate is $0.0001$ — below even the BCD-internal floor of $0.0059$, i.e. Firm A's signatures essentially never resemble genuine 2013–2019 hand-signing. Firm A's signatures are thus unremarkable when matched against *other firms'* signatures; the entire elevation in Firm A's observed rate ($0.817$) arises from matches against *other Firm-A* signatures, localising the repeatability signal to within-firm comparisons rather than cross-firm distinctiveness. -**(iii) Firm-effect regressions: Firm A singular, baseline homogeneous.** Two logistic regressions of the per-signature any-pair HC hit indicator on firm dummies and centred log pool size jointly establish that Firm A is the singular extreme while Firms B/C/D form an internally homogeneous baseline. On the full Big-4 pool with Firm A as reference (Script 44), the odds ratios are $0.053$ (B), $0.010$ (C), $0.027$ (D), with log-pool-size odds ratio $4.01$ — Firms B/C/D sit one to two orders of magnitude below Firm A after pool-size control. On the BCD baseline with Firm D as reference (Script 53; $n = 89{,}994$, hit rate $0.0116$), the residual firm spread collapses to within a factor of $\sim 3.5$: odds ratios $1.73$ (B), $0.49$ (C), log-pool-size odds ratio $3.29$. The normative-baseline firms are therefore comparable to one another, with Firm A the lone outlier — supporting treating B/C/D as a coherent calibration baseline and Firm A as an out-of-sample target. (We report odds ratios rather than $z$-scores because per-signature observations are clustered by CPA and firm; cluster-robust inference is left as a robustness check.) +**(iii) Firm-effect regressions: Firm A singular, baseline homogeneous.** Two logistic regressions of the per-signature any-pair HC hit indicator on firm dummies and centred log pool size jointly establish that Firm A is the singular extreme while Firms B/C/D form an internally homogeneous baseline. On the full Big-4 pool with Firm A as reference (Script 44), the odds ratios are $0.053$ (B), $0.010$ (C), $0.027$ (D), with log-pool-size odds ratio $4.01$ — Firms B/C/D sit one to two orders of magnitude below Firm A after pool-size control. On the BCD baseline with Firm D as reference (Script 53; $n = 89{,}994$, hit rate $0.0059$), the residual firm spread collapses to within a factor of $\sim 3.5$: odds ratios $1.73$ (B), $0.49$ (C), log-pool-size odds ratio $3.29$. The normative-baseline firms are therefore comparable to one another, with Firm A the lone outlier — supporting treating B/C/D as a coherent calibration baseline and Firm A as an out-of-sample target. (We report odds ratios rather than $z$-scores because per-signature observations are clustered by CPA and firm; cluster-robust inference is left as a robustness check.) **Cross-firm hit matrix: within-firm concentration is a universal Big-4 pattern.** Under the deployed any-pair rule, inter-CPA collisions concentrate within the source firm at every Big-4 firm. On the full Big-4 candidate pool, within-firm concentration is $98.8\%$ at Firm A and $76.7$–$83.7\%$ at Firms B/C/D (same-pair $97.0$–$99.96\%$; Table XXV). Restricting the candidate pool to the BCD baseline (Script 53) *raises* the within-firm concentration for B/C/D to $89.2$–$97.2\%$ any-pair (Firm B $97.2\%$, Firm C $92.3\%$, Firm D $89.2\%$) and $98.5$–$100\%$ same-pair — higher than on the full pool, because on the full pool some B/C/D collisions landed on Firm A's generically copy-like signatures; removing Firm A leaves each firm's collisions concentrated within itself. Within-firm collision concentration is therefore a universal Big-4 structural pattern, not a Firm-A peculiarity: Firm A is extreme in the *rate* at which the rule fires (reading (i)), but all four firms exhibit the same within-firm collision signature. @@ -548,10 +550,10 @@ We interpret the deployed HC thresholds as **specificity-anchored operating poin The pool-normalised inter-CPA rates of §III-L.2 and §III-L.3 use the counterfactual of replacing the source signature's same-CPA pool with random non-same-CPA candidates. The **observed deployed alert rate** uses the source's actual same-CPA pool, i.e., the rate at which the deployed rule fires on the real corpus. For Big-4, the deployed HC any-pair rule fires on $49.58\%$ of signatures and $62.28\%$ of documents (Script 46; Script 42 reproduces the per-signature rate at $49.58\%$). -Read against the **normative BCD specificity-proxy floor** rather than the contaminated all-Big-4 rate, the observed-deployed excess is larger: the per-signature observed rate is $\sim 43\times$ the BCD floor ($0.4958$ vs $0.0116$), and the per-document HC observed rate is $\sim 28\times$ the BCD floor ($0.6228$ vs $0.0226$): +Read against the **normative BCD specificity-proxy floor** rather than the contaminated all-Big-4 rate, the observed-deployed excess is larger: the per-signature observed rate is $\sim 84\times$ the BCD floor ($0.4958$ vs $0.0059$), and the per-document HC observed rate is $\sim 53\times$ the BCD floor ($0.6228$ vs $0.0117$): -- Per-signature: $0.4958 - 0.0116 = 0.4842$ ($48.4$ pp excess over the clean floor) -- Per-document HC: $0.6228 - 0.0226 = 0.6002$ ($60.0$ pp excess over the clean floor) +- Per-signature: $0.4958 - 0.0059 = 0.4899$ ($49.0$ pp excess over the clean floor) +- Per-document HC: $0.6228 - 0.0117 = 0.6111$ ($61.1$ pp excess over the clean floor) We *do not* interpret the deployed-rate excess as a presumed true-positive rate; the inferential limits are developed in §III-M. The excess is best read as an *observed same-CPA-pool excess over the normative inter-CPA floor* — a quantity that far exceeds what random inter-CPA candidate replacement among normative firms would produce — whose mechanism is not identifiable from descriptor-only data (§III-M). Anchoring the floor on the clean BCD baseline sharpens this contrast (the all-Big-4 floor would understate it by absorbing Firm A's reuse), while leaving the §III-M caveat — that the floor is an inter-CPA coincidence rate, not an intra-CPA genuine-hand-signing rate — fully in force; we do not attribute the excess to within-CPA handwriting repeatability or to image replication without further evidence. @@ -756,7 +758,7 @@ This section reports the firm-level cross-validation evidence motivating §III-J | Firm C held out | 0.9504 | 8.41 | 0.126 | $36.27\%$ | $23.53\%$ | $12.77$ pp | | Firm D held out | 0.9439 | 9.29 | 0.120 | $17.31\%$ | $11.54\%$ | $5.81$ pp | -(Source: Script 37; screening label `P2_PARTIAL`.) Component shape is reproducible across folds: max deviation of C1 cosine = $0.005$, C1 dHash = $0.96$, C1 weight = $0.023$. Hard-posterior membership for the held-out firm varies: max absolute difference from the full-Big-4 baseline is $12.77$ pp at the Firm C held-out fold, exceeding the report's $5$ pp viability bar. We accordingly do not use K=3 hard-posterior membership as an operational classifier label (§III-J, §III-L). +(Source: Script 37; screening label `P2_PARTIAL`.) Component shape is reproducible across folds: max deviation of C1 cosine = $0.005$, C1 dHash = $0.96$, C1 weight = $0.012$. Hard-posterior membership for the held-out firm varies: max absolute difference from the full-Big-4 baseline is $12.77$ pp at the Firm C held-out fold, exceeding the report's $5$ pp viability bar. We accordingly do not use K=3 hard-posterior membership as an operational classifier label (§III-J, §III-L). ## H. Pixel-Identity Positive-Anchor Miss Rate @@ -832,7 +834,7 @@ This section reports the five-way per-signature + document-level worst-case clas (Source: Script 42; mixed-firm PDFs $n = 379$ excluded from the per-firm rows but included in the overall counts above.) -The five-way **moderate-confidence advisory** band (cos $> 0.95$ AND $5 < \text{dHash} \leq 15$) retains the threshold provenance of its prior calibration (supplementary materials), but §III-L.3 **supersedes its claim strength**: on the normative BCD baseline this band carries a $\sim 0.19$ per-document inter-CPA coincidence rate, so it is a low-specificity advisory (review-workload-expanding) bin, not calibrated evidence of replication. It is **not separately re-characterised by Scripts 38–40**, which checked only the binary high-confidence rule (cos $> 0.95$ AND dHash $\leq 5$). The moderate-band cuts are not re-derived on the Big-4 subset; we report the Table XV per-firm MC proportions (10.76% / 35.88% / 41.44% / 29.33% across Firms A through D) descriptively only. We do not claim that the MC-band per-firm ordering above is a separate validation of the §III-K Spearman convergence, since MC occupancy is not a monotone function of the per-CPA less-replication-dominated ranking (e.g., Firm D's MC fraction is lower than Firm B's while Firm D's reverse-anchor score ranks it as less replication-dominated than Firm B). +The five-way **moderate-confidence advisory** band (cos $> 0.95$ AND $5 < \text{dHash} \leq 15$) retains the threshold provenance of its prior calibration (supplementary materials), but §III-L.3 **supersedes its claim strength**: on the normative BCD baseline this band carries a $\sim 0.175$ per-document inter-CPA coincidence rate, so it is a low-specificity advisory (review-workload-expanding) bin, not calibrated evidence of replication. It is **not separately re-characterised by Scripts 38–40**, which checked only the binary high-confidence rule (cos $> 0.95$ AND dHash $\leq 5$). The moderate-band cuts are not re-derived on the Big-4 subset; we report the Table XV per-firm MC proportions (10.76% / 35.88% / 41.44% / 29.33% across Firms A through D) descriptively only. We do not claim that the MC-band per-firm ordering above is a separate validation of the §III-K Spearman convergence, since MC occupancy is not a monotone function of the per-CPA less-replication-dominated ranking (e.g., Firm D's MC fraction is lower than Firm B's while Firm D's reverse-anchor score ranks it as less replication-dominated than Firm B). **Table XVII.** Firm × K=3 cluster cross-tabulation, Big-4 sub-corpus. @@ -934,9 +936,9 @@ This section consolidates the empirical results that support the §III-L anchor- |---|---|---|---| | cos $> 0.95$ | $0.00026$ | $0.00060$ | $0.00014$ | | dHash $\leq 5$ | $0.00037$ | $0.00129$ | $0.00034$ | -| Joint: cos $> 0.95$ AND dHash $\leq 5$ (any-pair) | $\mathbf{0.000018}$ | $0.000140$ | $0.000004$ | +| Joint: cos $> 0.95$ AND dHash $\leq 5$ (any-pair) | $\mathbf{0.000010}$ | $0.000140$ | $0.000004$ | -BCD joint Wilson 95% $[0.000009, 0.000034]$ ($9$ of $5 \times 10^5$ pairs); all-Big-4 joint $[0.000111, 0.000177]$. Removing Firm A from the negative anchor lowers the joint HC coincidence rate by $\sim 8\times$, confirming that the all-Big-4 rate is inflated by Firm A's within-firm template reuse (§III-L.4). On the all-Big-4 sample, conditional ICCR(dHash $\leq 5$ | cos $> 0.95$) $= 0.234$; the all-Big-4 cos $> 0.95$ row is consistent with the corpus-wide spike of §IV-I ($0.0005$). +BCD joint Wilson 95% $[0.000004, 0.000023]$ ($5$ of $5 \times 10^5$ pairs); all-Big-4 joint $[0.000111, 0.000177]$. Removing Firm A from the negative anchor lowers the joint HC coincidence rate by $\sim 8\times$, confirming that the all-Big-4 rate is inflated by Firm A's within-firm template reuse (§III-L.4). On the all-Big-4 sample, conditional ICCR(dHash $\leq 5$ | cos $> 0.95$) $= 0.234$; the all-Big-4 cos $> 0.95$ row is consistent with the corpus-wide spike of §IV-I ($0.0005$). ### M.3 Pool-normalised per-signature ICCR (Script 52) @@ -944,7 +946,7 @@ BCD joint Wilson 95% $[0.000009, 0.000034]$ ($9$ of $5 \times 10^5$ pairs); all- | Baseline pool | Per-signature HC ICCR | CPA-bootstrap 95% CI | |---|---|---| -| BCD (primary) | $\mathbf{0.0116}$ | $[0.0094, 0.0141]$ | +| BCD (primary) | $\mathbf{0.0059}$ | $[0.0045, 0.0073]$ | | All-Big-4 (contamination comparison) | $0.1102$ | $[0.0908, 0.1330]$ | | BCD+non-Big-4 | $0.0083$ | $[0.0066, 0.0099]$ | @@ -956,10 +958,10 @@ The BCD floor is an order of magnitude below the all-Big-4 figure, which is domi | Alarm definition | BCD (primary) | All-Big-4 | BCD+non-Big-4 | |---|---|---|---| -| HC (dHash $\leq 5$) | $\mathbf{0.0226}$ | $0.1797$ | $0.0163$ | -| HC + MC (dHash $\leq 15$) | $0.1905$ | $0.3375$ | $0.1467$ | +| HC (dHash $\leq 5$) | $\mathbf{0.0117}$ | $0.1797$ | $0.0163$ | +| HC + MC (dHash $\leq 15$) | $0.1753$ | $0.3375$ | $0.1467$ | -Per-firm per-document HC+MC ICCR on the BCD baseline is Firm B $0.197$, Firm C $0.218$, Firm D $0.114$ (all-Big-4 pool: Firm A $0.620$, Firm B $0.160$, Firm C $0.163$, Firm D $0.088$). The HC band collapses by $\sim 8\times$ when Firm A is removed from the anchor (high specificity), whereas the HC+MC band is essentially unchanged — slightly higher for B/C/D — confirming that dHash $\leq 15$ adds alert yield without inter-CPA specificity and motivating the MC band's repositioning as an advisory tier (§III-L.3). +Per-firm per-document HC+MC ICCR on the BCD baseline is Firm B $0.162$, Firm C $0.225$, Firm D $0.089$ (all-Big-4 pool: Firm A $0.620$, Firm B $0.160$, Firm C $0.163$, Firm D $0.088$). The HC band collapses by $\sim 8\times$ when Firm A is removed from the anchor (high specificity), whereas the HC+MC band is essentially unchanged — slightly higher for B/C/D — confirming that dHash $\leq 15$ adds alert yield without inter-CPA specificity and motivating the MC band's repositioning as an advisory tier (§III-L.3). ### M.5 Firm heterogeneity logistic regression and cross-firm hit matrix (Script 44) @@ -972,7 +974,7 @@ Per-firm per-document HC+MC ICCR on the BCD baseline is Firm B $0.197$, Firm C $ | Firm D | $0.027$ | $\sim 37\times$ lower odds than Firm A | | log(pool size, centred) | $4.01$ | $\sim 4\times$ higher odds per log unit pool size | -On the BCD baseline with Firm D as reference (Script 53; $n = 89{,}994$, hit rate $0.0116$), the residual firm spread collapses to within $\sim 3.5\times$ — odds ratios $1.73$ (Firm B), $0.49$ (Firm C), log-pool-size $3.29$ — confirming that Firm A is the singular outlier while Firms B/C/D form an internally homogeneous baseline (§III-L.4). +On the BCD baseline with Firm D as reference (Script 53; $n = 89{,}994$, hit rate $0.0059$), the residual firm spread collapses to within $\sim 3.5\times$ — odds ratios $1.73$ (Firm B), $0.49$ (Firm C), log-pool-size $3.29$ — confirming that Firm A is the singular outlier while Firms B/C/D form an internally homogeneous baseline (§III-L.4). Per-decile per-firm rates (Table not duplicated here; Script 44 decile table available in the supplementary report): within every pool-size decile, Firms B/C/D show rates of $0.0006$–$0.0358$ while Firm A ranges $0.0541$–$0.5958$. The firm gap survives within matched pool sizes. @@ -997,7 +999,7 @@ Same-pair joint hits (single candidate satisfying both cos $> 0.95$ AND dHash $\ | dHash $= 5$ (HC) | $\approx 3.8\times$ | locally sensitive (not plateau-stable) | | dHash $= 15$ (MC/HSC boundary) | $\approx 0.08$ | plateau-like (saturating tail) | -Big-4 observed deployed alert rate on actual same-CPA pools: per-signature HC $= 0.4958$; per-document HC $= 0.6228$. Against the normative BCD floor (per-signature $0.0116$; per-document HC $0.0226$), the observed same-CPA-pool excess is $0.4842$ ($48.4$ pp, $\sim 43\times$) per-signature and $0.6002$ ($60.0$ pp, $\sim 28\times$) per-document; this excess is reported under §III-M caveats, not as a presumed true-positive rate and not attributed to within-CPA handwriting repeatability. +Big-4 observed deployed alert rate on actual same-CPA pools: per-signature HC $= 0.4958$; per-document HC $= 0.6228$. Against the normative BCD floor (per-signature $0.0059$; per-document HC $0.0117$), the observed same-CPA-pool excess is $0.4899$ ($49.0$ pp, $\sim 84\times$) per-signature and $0.6111$ ($61.1$ pp, $\sim 53\times$) per-document; this excess is reported under §III-M caveats, not as a presumed true-positive rate and not attributed to within-CPA handwriting repeatability. # V. Discussion @@ -1014,7 +1016,7 @@ The Big-4 accountant-level distribution rejects unimodality on both marginals ( Firm A is empirically the firm whose CPAs are most concentrated in the high-cosine, low-dHash corner of the Big-4 descriptor plane. In the Big-4 K=3 hard-posterior assignment (now interpreted as a firm-compositional position assignment; §III-J), Firm A accounts for $0\%$ of C1 (low-cos / high-dHash position) and $82.5\%$ of C3 (high-cos / low-dHash position); the opposite pattern holds at Firm C, which has the highest C1 concentration at $23.5\%$. Firm A also accounts for 145 of the 262 byte-identical signatures in the Big-4 byte-identical anchor of §IV-H (with Firm B 8, Firm C 107, Firm D 2). Byte-level decomposition of the 145 Firm A pixel-identical signatures (see supplementary materials) shows they span 50 distinct Firm A partners (of 180 registered), with 35 byte-identical matches occurring across different fiscal years. -We treat Firm A as a *templated-end case study* and, in the calibration, as an **out-of-sample target** scored against the normative Firms-B/C/D baseline rather than as a calibration input (§III-L.0). Three readings (§III-L.4) make Firm A's status precise. First, scored against the clean BCD baseline, Firm A's signatures coincide at only $0.0102$ — essentially the BCD floor ($0.0116$) — so Firm A is unremarkable *cross-firm*; its signal is entirely within-firm. Second, on its own same-CPA pools the deployed HC rule fires on $0.82$ of Firm A signatures, $\sim 70\times$ the clean floor, versus $\sim 21$–$30\times$ for Firms B/C/D — Firm A is the rate-extreme, but every Big-4 firm sits far above the floor. Third, within-firm collision concentration is universal: $98.8\%$ at Firm A and, on the clean BCD pool, $89$–$97\%$ at Firms B/C/D, with same-pair concentration $97$–$100\%$ across all four firms. The firm contrast is sharpest and most defensible in the high-confidence bin (the observed per-signature HC rates above); the per-document HC+MC proxy ICCR of $0.62$ at Firm A versus $0.09$–$0.16$ at Firms B/C/D is reported only as advisory review burden, since the MC band carries low inter-CPA specificity even on the normative baseline (§III-L.3). None of this is by itself diagnostic of deliberate template sharing. The byte-level evidence above (Firm A's 145 pixel-identical signatures across $\sim 50$ distinct partners) provides direct evidence of image-level reuse among Firm A signatures, consistent with a firm-level template or production workflow; the milder within-firm patterns at Firms B/C/D may reflect template-like reuse, digitisation-pipeline homogeneity, or signing-style homogeneity, which descriptor-only data cannot separate (§V-H). We present Firm A as a *demonstration that the screening surfaces a known templated end at scale* — corroborated by the byte-identical capture check (§IV-H) — not as a forensic determination about the firm. Whether firm-level signing patterns bear on audit quality is a question for a dedicated companion study (§VI), beyond what descriptor-only screening can establish. +We treat Firm A as a *templated-end case study* and, in the calibration, as an **out-of-sample target** scored against the normative Firms-B/C/D baseline rather than as a calibration input (§III-L.0). Three readings (§III-L.4) make Firm A's status precise. First, scored against the clean BCD baseline, Firm A's signatures coincide essentially never ($0.0001$, below the BCD floor of $0.0059$) — so Firm A is unremarkable, indeed sub-baseline, *cross-firm*; its signal is entirely within-firm. Second, on its own same-CPA pools the deployed HC rule fires on $0.82$ of Firm A signatures, $\sim 139\times$ the clean floor, versus $\sim 40$–$59\times$ for Firms B/C/D — Firm A is the rate-extreme, but every Big-4 firm sits far above the floor. Third, within-firm collision concentration is universal: $98.8\%$ at Firm A and, on the clean BCD pool, $89$–$97\%$ at Firms B/C/D, with same-pair concentration $97$–$100\%$ across all four firms. The firm contrast is sharpest and most defensible in the high-confidence bin (the observed per-signature HC rates above); the per-document HC+MC proxy ICCR of $0.62$ at Firm A versus $0.09$–$0.16$ at Firms B/C/D is reported only as advisory review burden, since the MC band carries low inter-CPA specificity even on the normative baseline (§III-L.3). None of this is by itself diagnostic of deliberate template sharing. The byte-level evidence above (Firm A's 145 pixel-identical signatures across $\sim 50$ distinct partners) provides direct evidence of image-level reuse among Firm A signatures, consistent with a firm-level template or production workflow; the milder within-firm patterns at Firms B/C/D may reflect template-like reuse, digitisation-pipeline homogeneity, or signing-style homogeneity, which descriptor-only data cannot separate (§V-H). We present Firm A as a *demonstration that the screening surfaces a known templated end at scale* — corroborated by the byte-identical capture check (§IV-H) — not as a forensic determination about the firm. Whether firm-level signing patterns bear on audit quality is a question for a dedicated companion study (§VI), beyond what descriptor-only screening can establish. ## D. K=2 / K=3 as Descriptive Firm-Compositional Partitions @@ -1030,7 +1032,7 @@ The deployed HC sub-rule's specificity-proxy behaviour is characterised at three ## G. Pixel-Identity Positive Anchor and Inter-CPA Coincidence-Rate Negative Anchor -The only conservative hard-positive subset is pixel-identical (byte-identical) signatures, which independent hand-signing cannot produce. All three candidate checks achieve $0\%$ positive-anchor miss on the 262 Big-4 byte-identical signatures (§IV-H) — a necessary check, though close to tautological for the box rule (byte-identical $\Rightarrow$ cosine $\approx 1$, dHash $\approx 0$, well inside the HC region). The complementary negative anchor is the §III-L.1 per-comparison ICCR on the normative BCD baseline ($0.000018$); we frame it as a specificity proxy, and because the inter-CPA-as-negative assumption is violated by within-firm collisions concentrated at Firm A, we anchor on Firms B/C/D with Firm A held out as an out-of-sample target (§III-L.0). +The only conservative hard-positive subset is pixel-identical (byte-identical) signatures, which independent hand-signing cannot produce. All three candidate checks achieve $0\%$ positive-anchor miss on the 262 Big-4 byte-identical signatures (§IV-H) — a necessary check, though close to tautological for the box rule (byte-identical $\Rightarrow$ cosine $\approx 1$, dHash $\approx 0$, well inside the HC region). The complementary negative anchor is the §III-L.1 per-comparison ICCR on the normative BCD baseline ($0.000010$); we frame it as a specificity proxy, and because the inter-CPA-as-negative assumption is violated by within-firm collisions concentrated at Firm A, we anchor on Firms B/C/D with Firm A held out as an out-of-sample target (§III-L.0). ## H. Limitations @@ -1040,7 +1042,7 @@ Several limitations should be transparent. We group them into primary methodolog *No signature-level ground truth; no true error rates reportable.* The corpus does not contain labelled hand-signed or replicated classes at the signature level. We therefore cannot report False Rejection Rate, sensitivity, recall, Equal Error Rate, ROC-AUC, precision, or positive predictive value against ground truth. All quantitative rates reported in §III-L are inter-CPA negative-anchor coincidence rates (ICCRs) under the assumption that inter-CPA pairs constitute a clean negative anchor; this is a specificity proxy, not a calibrated specificity (§III-M). -*Inter-CPA negative-anchor assumption, and why we anchor on the BCD baseline.* The cross-firm hit matrix of §III-L.4 shows that under the deployed rule, within-firm collision concentration is $98.8\%$ at Firm A and $76.7$–$97.2\%$ at Firms B/C/D, consistent with firm-specific template, stamp, or document-production reuse. An all-Big-4 inter-CPA pool is therefore not a clean negative anchor — some inter-CPA pairs share firm-level templates rather than being independent random matches, and the contamination is dominated by Firm A. We address this directly by anchoring the calibration on the Firms-B/C/D baseline and holding Firm A out as an out-of-sample target (§III-L.0); on this baseline the per-comparison HC rate falls from $0.00014$ to $0.000018$ and the per-signature HC rate from $0.1102$ to $0.0116$. A residual caveat survives even on the clean baseline: the BCD floor is an *inter-CPA coincidence* rate, not an *intra-CPA genuine-hand-signing* rate, so the observed-versus-floor excess (§III-L.6) cannot be read as a true-positive rate — a consistently hand-signing CPA can exceed the inter-CPA floor. All reported ICCRs are therefore specificity proxies, not calibrated FARs or specificities. +*Inter-CPA negative-anchor assumption, and why we anchor on the BCD baseline.* The cross-firm hit matrix of §III-L.4 shows that under the deployed rule, within-firm collision concentration is $98.8\%$ at Firm A and $76.7$–$97.2\%$ at Firms B/C/D, consistent with firm-specific template, stamp, or document-production reuse. An all-Big-4 inter-CPA pool is therefore not a clean negative anchor — some inter-CPA pairs share firm-level templates rather than being independent random matches, and the contamination is dominated by Firm A. We address this directly by anchoring the calibration on the Firms-B/C/D baseline and holding Firm A out as an out-of-sample target (§III-L.0); on this baseline the per-comparison HC rate falls from $0.00014$ to $0.000010$ and the per-signature HC rate from $0.1102$ to $0.0059$. A residual caveat survives even on the clean baseline: the BCD floor is an *inter-CPA coincidence* rate, not an *intra-CPA genuine-hand-signing* rate, so the observed-versus-floor excess (§III-L.6) cannot be read as a true-positive rate — a consistently hand-signing CPA can exceed the inter-CPA floor. All reported ICCRs are therefore specificity proxies, not calibrated FARs or specificities. *Mechanism attribution for the firm-level heterogeneity is not identifiable from descriptor-only data.* The observed firm-level contrast (Firm A's per-document HC$+$MC ICCR of $0.62$ versus $0.09$–$0.16$ at Firms B/C/D; within-firm collision concentration $77$–$99\%$ under the deployed any-pair rule; byte-identical evidence of §IV-H) is consistent with at least three non-mutually-exclusive firm-level mechanisms: (i) template, stamp, or e-signature production reuse; (ii) digitisation-pipeline homogeneity — shared scanners, common PDF generation infrastructure, identical compression and form-template settings — that systematically inflates image-descriptor similarity without signature replication; and (iii) signing-style or training homogeneity that produces correlated handwritten signatures within a firm. The descriptor pair (cosine, dHash) operates at the image-similarity level and is, by construction, indifferent to which mechanism generated a given near-identical pair. We therefore report the firm contrast as a methodological observation — the framework discriminates at firm-level resolution — rather than as a mechanism finding. The byte-identical Firm A signatures across $\sim 50$ distinct partners (§IV-H, §V-C) provide direct evidence for (i) at Firm A specifically, but do not exclude additive contribution from (ii) or (iii); the milder within-firm collision patterns at Firms B/C/D are individually consistent with all three mechanisms. Image-acquisition metadata (scanner identifiers, PDF generator fingerprints, compression-codec markers), partner-level intent records, or controlled hand-signed baselines would be needed to attribute the contrast across (i), (ii), and (iii). @@ -1050,9 +1052,9 @@ Several limitations should be transparent. We group them into primary methodolog *Pixel-identity is a conservative subset.* Byte-identical pairs are the easiest replicated cases, and for the deployed box rule the positive-anchor miss rate against byte-identical pairs is close to tautological (byte-identical $\Rightarrow$ cosine $\approx 1$, dHash $\approx 0$, well inside the high-confidence box). A score that fails the pixel-identity check would be disqualified, but passing the check does not guarantee correct behaviour on the broader replicated population (e.g., re-stamped or noisy-template-variant signatures). -*Rule components not separately re-characterised by the present diagnostic battery.* The five-way classifier's moderate-confidence advisory band (cos $> 0.95$ AND $5 < \text{dHash} \leq 15$), the style-consistency band ($\text{dHash} > 15$), and the document-level worst-case aggregation rule retain the threshold provenance of their prior calibration (supplementary materials); however, §III-L.3 supersedes the MC band's *claim strength* — its $\sim 0.19$ per-document inter-CPA coincidence on the normative baseline makes it a low-specificity advisory bin, not calibrated evidence of replication. The anchor-based ICCR calibration covers the binary high-confidence sub-rule (and its tightening alternatives such as dHash$\leq 3$), and the alert-rate sensitivity analysis (§III-L.5) characterises only the HC threshold. The MC and HSC sub-band boundaries are not separately re-characterised by the present diagnostic battery. +*Rule components not separately re-characterised by the present diagnostic battery.* The five-way classifier's moderate-confidence advisory band (cos $> 0.95$ AND $5 < \text{dHash} \leq 15$), the style-consistency band ($\text{dHash} > 15$), and the document-level worst-case aggregation rule retain the threshold provenance of their prior calibration (supplementary materials); however, §III-L.3 supersedes the MC band's *claim strength* — its $\sim 0.175$ per-document inter-CPA coincidence on the normative baseline makes it a low-specificity advisory bin, not calibrated evidence of replication. The anchor-based ICCR calibration covers the binary high-confidence sub-rule (and its tightening alternatives such as dHash$\leq 3$), and the alert-rate sensitivity analysis (§III-L.5) characterises only the HC threshold. The MC and HSC sub-band boundaries are not separately re-characterised by the present diagnostic battery. -*Deployed-rate excess is not a presumed true-positive rate.* The per-document gap between the observed deployed alert rate (HC: $0.62$ on real same-CPA pools) and the normative inter-CPA proxy floor (HC: $0.023$ on the BCD baseline) — $\sim 60$ pp — cannot be interpreted as a presumed true-positive rate without additional assumptions that §III-M shows are unsafe (consistent within-CPA signing can exceed inter-CPA similarity at the cosine axis; the inter-CPA floor is not an intra-CPA genuine-hand-signing rate). The gap is best read as an observed same-CPA-pool repeatability signal. +*Deployed-rate excess is not a presumed true-positive rate.* The per-document gap between the observed deployed alert rate (HC: $0.62$ on real same-CPA pools) and the normative inter-CPA proxy floor (HC: $0.012$ on the BCD baseline) — $\sim 60$ pp — cannot be interpreted as a presumed true-positive rate without additional assumptions that §III-M shows are unsafe (consistent within-CPA signing can exceed inter-CPA similarity at the cosine axis; the inter-CPA floor is not an intra-CPA genuine-hand-signing rate). The gap is best read as an observed same-CPA-pool repeatability signal. *A1 pair-detectability stipulation.* The per-signature detector requires at least one same-CPA pair to be near-identical when a CPA uses image replication. A1 is plausible for high-volume stamping or firm-level electronic signing but not guaranteed when a corpus contains only one observed replicated report for a CPA, multiple template variants used in parallel, or scan-stage noise that pushes a replicated pair outside the detection regime. @@ -1079,9 +1081,9 @@ Several limitations should be transparent. We group them into primary methodolog We present a fully automated pipeline for screening non-hand-signed CPA signatures in Taiwan-listed financial audit reports, together with an anchor-calibrated screening framework that characterises the pipeline's operational behaviour at the Big-4 sub-corpus scope under explicit unsupervised assumptions. The pipeline processes raw PDFs through VLM-based page identification, YOLO-based signature detection, ResNet-50 feature extraction, and dual-descriptor (cosine + independent-minimum dHash) similarity computation. The operational output is the deployed five-way per-signature screening rule with worst-case document-level aggregation (§III-H.1; calibrated in §III-L). Applied to 90,282 audit reports filed between 2013 and 2023, the pipeline extracts 182,328 signatures from 758 CPAs, with the Big-4 sub-corpus (437 CPAs at accountant level; 150,442–150,453 signatures at signature level) as the primary analytical population. We emphasise that the operating thresholds are operator-tunable and that the system performs semi-automated triage — surfacing replication candidates from hundreds of thousands of signatures for human adjudication — rather than autonomous forensic classification; its central deliverable is the label-free calibration methodology by which an operator selects and characterises a screening operating point. -Our central methodological contributions are: (1) a composition decomposition that establishes the absence of a within-population bimodal antimode in the Big-4 descriptor distribution: the apparent multimodality dissolves under joint firm-mean centring and integer-tie jitter ($p_{\text{median}} = 0.35$), so distributional "natural-threshold" framings of the deployed operating points are not empirically supported; (2) an anchor-based inter-CPA coincidence-rate (ICCR) calibration on a normative non-Firm-A baseline (Firms B/C/D, with Firm A held out as an out-of-sample target to avoid circularity): on this clean baseline the deployed HC rule yields per-comparison ICCR $0.000018$, per-signature $0.0116$, and per-document $0.023$ — roughly an order of magnitude below the contaminated all-Big-4 figures ($0.00014$, $0.11$, $0.18$) — while the dHash$\leq 15$ moderate-confidence band, which retains a $\sim 0.19$ per-document coincidence rate even on the clean baseline, is repositioned as a low-specificity advisory tier; with explicit terminological replacement of "FAR" by "ICCR" given the unsupervised setting; (3) firm-level heterogeneity surfaced by the framework: against the clean BCD floor the deployed rule fires on each firm's own pools at $\sim 70\times$ (Firm A) and $\sim 21$–$30\times$ (Firms B/C/D), while Firm A scored cross-firm against the baseline coincides only at the floor ($0.0102$); two logistic regressions (full-Big-4 Firm-A-reference odds ratios $0.053$/$0.010$/$0.027$; BCD-only Firm-D-reference residual spread within $\sim 3.5\times$) show Firm A is the singular outlier and Firms B/C/D an internally homogeneous baseline — reported as a framework-discriminative observation rather than a mechanism finding (§V-H); (4) cross-firm hit matrix evidence that within-firm collision concentration is a universal Big-4 pattern — $98.8\%$ at Firm A and $89$–$97\%$ at Firms B/C/D on the clean BCD pool (same-pair $97$–$100\%$ across all four firms) — consistent with, but not independently establishing, firm-level template-like reuse, digitisation-pipeline homogeneity, or signing-style similarity, which descriptor-only data cannot separate (§V-H); (5) K=3 mixture demoted from "three mechanism clusters" to a descriptive firm-compositional partition; (6) three feature-derived scores converging on the per-CPA descriptor-position ranking at Spearman $\rho \geq 0.879$, reported as internal consistency rather than external validation; (7) $0\%$ positive-anchor miss rate on 262 byte-identical Big-4 signatures with the conservative-subset caveat; and (8) explicit disclosure of each diagnostic's untested assumption (Appendix A Table A.II), positioning the system as an anchor-calibrated screening framework with human-in-the-loop review rather than as a validated forensic detector. +Our central methodological contributions are: (1) a composition decomposition that establishes the absence of a within-population bimodal antimode in the Big-4 descriptor distribution: the apparent multimodality dissolves under joint firm-mean centring and integer-tie jitter ($p_{\text{median}} = 0.35$), so distributional "natural-threshold" framings of the deployed operating points are not empirically supported; (2) an anchor-based inter-CPA coincidence-rate (ICCR) calibration on a normative non-Firm-A baseline (Firms B/C/D, with Firm A held out as an out-of-sample target to avoid circularity): on this clean baseline the deployed HC rule yields per-comparison ICCR $0.000010$, per-signature $0.0059$, and per-document $0.012$ — roughly an order of magnitude below the contaminated all-Big-4 figures ($0.00014$, $0.11$, $0.18$) — while the dHash$\leq 15$ moderate-confidence band, which retains a $\sim 0.175$ per-document coincidence rate even on the clean baseline, is repositioned as a low-specificity advisory tier; with explicit terminological replacement of "FAR" by "ICCR" given the unsupervised setting; (3) firm-level heterogeneity surfaced by the framework: against the clean BCD floor the deployed rule fires on each firm's own pools at $\sim 139\times$ (Firm A) and $\sim 40$–$59\times$ (Firms B/C/D), while Firm A scored cross-firm against the clean 2013–2019 baseline coincides essentially never cross-firm ($0.0001$); two logistic regressions (full-Big-4 Firm-A-reference odds ratios $0.053$/$0.010$/$0.027$; BCD-only Firm-D-reference residual spread within $\sim 3.5\times$) show Firm A is the singular outlier and Firms B/C/D an internally homogeneous baseline — reported as a framework-discriminative observation rather than a mechanism finding (§V-H); (4) cross-firm hit matrix evidence that within-firm collision concentration is a universal Big-4 pattern — $98.8\%$ at Firm A and $89$–$97\%$ at Firms B/C/D on the clean BCD pool (same-pair $97$–$100\%$ across all four firms) — consistent with, but not independently establishing, firm-level template-like reuse, digitisation-pipeline homogeneity, or signing-style similarity, which descriptor-only data cannot separate (§V-H); (5) K=3 mixture demoted from "three mechanism clusters" to a descriptive firm-compositional partition; (6) three feature-derived scores converging on the per-CPA descriptor-position ranking at Spearman $\rho \geq 0.879$, reported as internal consistency rather than external validation; (7) $0\%$ positive-anchor miss rate on 262 byte-identical Big-4 signatures with the conservative-subset caveat; and (8) explicit disclosure of each diagnostic's untested assumption (Appendix A Table A.II), positioning the system as an anchor-calibrated screening framework with human-in-the-loop review rather than as a validated forensic detector. -Future work falls in four directions. *First*, a small-scale human-rated labelled set would enable direct ROC optimisation and provide the signature-level ground truth that the present analysis fundamentally lacks; without such ground truth, no true error rates can be reported. *Second*, the within-firm collision concentration documented in §III-L.4 (any-pair $76.7$–$98.8\%$ across Big-4; same-pair joint $97.0$–$99.96\%$) invites a separate study to distinguish deliberate template sharing from passive firm-level production artefacts (shared scanners, common form templates, identical report-generation infrastructure) — a question the inter-CPA-anchor analysis alone cannot resolve. *Third*, the descriptive Firm A versus Firms B/C/D contrast (observed per-signature high-confidence rate $0.82$ vs $0.24$–$0.35$, $\sim 70\times$ vs $\sim 21$–$30\times$ the clean BCD floor) — together with the byte-level evidence of 145 pixel-identical signatures across $\sim 50$ distinct Firm A partners — invites a companion analysis examining whether such firm-level signing patterns correlate with established audit-quality measures. *Fourth*, generalisation to mid- and small-firm contexts requires extending the anchor-based ICCR framework to scopes where firm-level LOOO folds are not available; the §III-I.4 composition diagnostics already document that the absence of within-population bimodality holds across the tested eligible scopes, so the calibration approach in principle generalises, but a full extension with cluster-robust uncertainty quantification is left as future work. +Future work falls in four directions. *First*, a small-scale human-rated labelled set would enable direct ROC optimisation and provide the signature-level ground truth that the present analysis fundamentally lacks; without such ground truth, no true error rates can be reported. *Second*, the within-firm collision concentration documented in §III-L.4 (any-pair $76.7$–$98.8\%$ across Big-4; same-pair joint $97.0$–$99.96\%$) invites a separate study to distinguish deliberate template sharing from passive firm-level production artefacts (shared scanners, common form templates, identical report-generation infrastructure) — a question the inter-CPA-anchor analysis alone cannot resolve. *Third*, the descriptive Firm A versus Firms B/C/D contrast (observed per-signature high-confidence rate $0.82$ vs $0.24$–$0.35$, $\sim 139\times$ vs $\sim 40$–$59\times$ the clean BCD floor) — together with the byte-level evidence of 145 pixel-identical signatures across $\sim 50$ distinct Firm A partners — invites a companion analysis examining whether such firm-level signing patterns correlate with established audit-quality measures. *Fourth*, generalisation to mid- and small-firm contexts requires extending the anchor-based ICCR framework to scopes where firm-level LOOO folds are not available; the §III-I.4 composition diagnostics already document that the absence of within-population bimodality holds across the tested eligible scopes, so the calibration approach in principle generalises, but a full extension with cluster-robust uncertainty quantification is left as future work. # Appendix A. Supplementary Diagnostic Detail diff --git a/signature_analysis/54_bcd_floor_temporal.py b/signature_analysis/54_bcd_floor_temporal.py new file mode 100644 index 0000000..95dfaff --- /dev/null +++ b/signature_analysis/54_bcd_floor_temporal.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +"""Script 54: temporal stability of the BCD inter-CPA floor. +Does the normative BCD per-comparison HC coincidence floor drift over time / +get contaminated by post-2020 e-signing? Compares eras full / 2013-2019 / +2020-2023 using the pool-size-independent per-comparison joint HC ICCR +(cos>0.95 & dHash<=5) on BCD inter-CPA pairs (N=500k, seed 42), plus the +observed deployed per-signature HC rate by firm by era. Read-only. +""" +import sqlite3 +from collections import defaultdict +import numpy as np + +DB = '/Volumes/NV2/PDF-Processing/signature-analysis/signature_analysis.db' +FIRM_A = '勤業眾信聯合' +BIG4 = ('勤業眾信聯合', '安侯建業聯合', '資誠聯合', '安永聯合') +ALIAS = {'勤業眾信聯合': 'A', '安侯建業聯合': 'B', '資誠聯合': 'C', '安永聯合': 'D'} +SEED = 42 +N_PAIRS = 500_000 +POP = np.array([bin(i).count('1') for i in range(256)], dtype=np.uint8) + + +def wilson(k, n, z=1.96): + if n == 0: + return (None, None) + p = k/n; d = 1+z*z/n + c = (p+z*z/(2*n))/d + h = z*np.sqrt(p*(1-p)/n+z*z/(4*n*n))/d + return (max(0.0, c-h), min(1.0, c+h)) + + +conn = sqlite3.connect(f'file:{DB}?mode=ro', uri=True) +cur = conn.cursor() +cur.execute(""" + SELECT s.assigned_accountant, a.firm, CAST(substr(s.year_month,1,4) AS INT), + s.feature_vector, s.dhash_vector, + s.max_similarity_to_same_accountant, s.min_dhash_independent + FROM signatures s JOIN accountants a ON s.assigned_accountant=a.name + WHERE a.firm IN (?,?,?,?) AND s.year_month IS NOT NULL + AND s.feature_vector IS NOT NULL AND s.dhash_vector IS NOT NULL""", BIG4) +rows = cur.fetchall() +conn.close() + +ERAS = {'full 2013-2023': lambda y: True, + '2013-2019 (pre-drift)': lambda y: 2013 <= y <= 2019, + '2020-2023': lambda y: 2020 <= y <= 2023} + + +def per_comparison_floor(era_fn, label): + # BCD-only (exclude Firm A), era-restricted + keep = [r for r in rows if r[1] != FIRM_A and era_fn(r[2])] + feats = np.stack([np.frombuffer(r[3], np.float32) for r in keep]).astype(np.float32) + feats /= np.clip(np.linalg.norm(feats, axis=1, keepdims=True), 1e-9, None) + dh = np.stack([np.frombuffer(r[4], np.uint8) for r in keep]) + cpas = np.array([r[0] for r in keep]) + by = defaultdict(list) + for i, c in enumerate(cpas): + by[c].append(i) + accts = list(by.keys()) + rng = np.random.default_rng(SEED) + cos = np.empty(N_PAIRS, np.float32); dv = np.empty(N_PAIRS, np.int32) + na = len(accts) + for t in range(N_PAIRS): + i, j = rng.choice(na, 2, replace=False) + a1, a2 = accts[i], accts[j] + k1 = by[a1][int(rng.integers(0, len(by[a1])))] + k2 = by[a2][int(rng.integers(0, len(by[a2])))] + cos[t] = feats[k1] @ feats[k2] + dv[t] = POP[dh[k1] ^ dh[k2]].sum() + joint = int(((cos > 0.95) & (dv <= 5)).sum()) + lo, hi = wilson(joint, N_PAIRS) + print(f' [{label}] BCD per-comparison HC floor = {joint/N_PAIRS:.6f} ' + f'({joint}/{N_PAIRS}) Wilson95% [{lo:.6f},{hi:.6f}] ' + f'(n_sig={len(keep):,}, CPAs={na})') + return joint/N_PAIRS + + +print('=== (1) BCD per-comparison HC floor by era (pool-size-independent) ===') +floors = {lab: per_comparison_floor(fn, lab) for lab, fn in ERAS.items()} + +print('\n=== (2) Observed deployed per-signature HC rate by firm by era ===') +print(' (max_sim>0.95 & min_dh<=5 on actual same-CPA pools)') +for lab, fn in ERAS.items(): + print(f' --- {lab} ---') + for fm_zh in BIG4: + sub = [r for r in rows if r[1] == fm_zh and fn(r[2]) + and r[5] is not None and r[6] is not None] + if not sub: + continue + k = sum(1 for r in sub if r[5] > 0.95 and r[6] <= 5) + print(f' Firm {ALIAS[fm_zh]}: {k/len(sub):.4f} ({k}/{len(sub)})') + +print('\n=== A-vs-floor multiple by era (observed A HC / BCD floor) ===') +for lab, fn in ERAS.items(): + a = [r for r in rows if r[1] == FIRM_A and fn(r[2]) and r[5] is not None and r[6] is not None] + a_rate = sum(1 for r in a if r[5] > 0.95 and r[6] <= 5)/len(a) if a else 0 + fl = floors[lab] + # per-comparison floor is not directly comparable to observed pooled rate; + # report ratio vs the per-signature floor proxy from Script 52 (0.0116 full). + print(f' {lab}: observed A HC = {a_rate:.3f}; per-comparison floor = {fl:.6f}') diff --git a/signature_analysis/55_bcd_pre2020_calibration.py b/signature_analysis/55_bcd_pre2020_calibration.py new file mode 100644 index 0000000..a95cce5 --- /dev/null +++ b/signature_analysis/55_bcd_pre2020_calibration.py @@ -0,0 +1,144 @@ +#!/usr/bin/env python3 +"""Script 55: PRIMARY calibration on the clean pre-e-signature baseline +BCD 2013-2019 (Firms B/C/D, fiscal years 2013-2019). Rationale: co-author +interviews confirm B/C/D progressively adopted e-signature systems after 2020 +(staggered timing), so 2013-2019 BCD is the construct-clean hand-signing +baseline. Canonical retry-loop sampler (matches Scripts 43/45/52), any-pair. +Reports the floor + Firm A (all years) scored out-of-sample against it, and +BCD 2020+ scored against the same threshold. Read-only. +""" +import sqlite3 +from collections import defaultdict, Counter +import numpy as np + +DB = '/Volumes/NV2/PDF-Processing/signature-analysis/signature_analysis.db' +FIRM_A = '勤業眾信聯合' +BIG4 = ('勤業眾信聯合', '安侯建業聯合', '資誠聯合', '安永聯合') +ALIAS = {'勤業眾信聯合': 'A', '安侯建業聯合': 'B', '資誠聯合': 'C', '安永聯合': 'D'} +SEED = 42 +N_BOOT = 1000 +POP = np.array([bin(i).count('1') for i in range(256)], dtype=np.uint8) + + +def wilson(k, n, z=1.96): + if n == 0: + return (None, None) + p = k/n; d = 1+z*z/n; c = (p+z*z/(2*n))/d + h = z*np.sqrt(p*(1-p)/n+z*z/(4*n*n))/d + return (max(0.0, c-h), min(1.0, c+h)) + + +def canon_sampler(rng, n, npool, same, all_idx): + need = npool; cand = []; att = 0 + while need > 0 and att < 10: + draw = rng.choice(n, size=need*2, replace=True) + ok = draw[~np.isin(draw, same)] + cand.extend(ok[:need].tolist()); need -= len(ok[:need]); att += 1 + if need > 0: + pm = np.ones(n, bool); pm[same] = False + cand.extend(rng.choice(all_idx[pm], size=need, replace=False).tolist()) + return np.array(cand[:npool], dtype=np.int64) + + +conn = sqlite3.connect(f'file:{DB}?mode=ro', uri=True) +cur = conn.cursor() +cur.execute("""SELECT s.assigned_accountant,a.firm,CAST(substr(s.year_month,1,4) AS INT), + s.source_pdf,s.feature_vector,s.dhash_vector, + s.max_similarity_to_same_accountant,s.min_dhash_independent + FROM signatures s JOIN accountants a ON s.assigned_accountant=a.name + WHERE a.firm IN (?,?,?,?) AND s.year_month IS NOT NULL + AND s.feature_vector IS NOT NULL AND s.dhash_vector IS NOT NULL""", BIG4) +rows = cur.fetchall() +conn.close() + + +def prep(rec): + feats = np.stack([np.frombuffer(r[4], np.float32) for r in rec]).astype(np.float32) + norms = np.linalg.norm(feats, axis=1, keepdims=True); norms[norms == 0] = 1.0 + feats /= norms + dh = np.stack([np.frombuffer(r[5], np.uint8) for r in rec]) + return feats, dh + + +def floor_on(baseline_rec, label): + """Canonical per-sig/per-doc HC floor on a baseline population.""" + feats, dh = prep(baseline_rec) + n = len(baseline_rec) + cpas = np.array([r[0] for r in baseline_rec]) + firms = np.array([ALIAS[r[1]] for r in baseline_rec]) + docs = np.array([r[3] for r in baseline_rec]) + cidx = defaultdict(list) + for i, c in enumerate(cpas): + cidx[c].append(i) + cidx = {c: np.array(v) for c, v in cidx.items()} + psize = {c: len(v)-1 for c, v in cidx.items()} + all_idx = np.arange(n) + rng = np.random.default_rng(SEED) + mx = np.zeros(n, np.float32); mn = np.full(n, 64, np.int32) + for si in range(n): + np_ = psize[cpas[si]] + if np_ <= 0: + continue + cand = canon_sampler(rng, n, np_, cidx[cpas[si]], all_idx) + cosv = feats[cand] @ feats[si] + mx[si] = cosv.max(); mn[si] = int(POP[dh[cand] ^ dh[si]].sum(axis=1).min()) + hc = (mx > 0.95) & (mn <= 5); d2 = (mx > 0.95) & (mn <= 15) + k = int(hc.sum()) + rng2 = np.random.default_rng(SEED+1); cl = list(cidx.keys()) + bs = np.array([hc[np.concatenate([cidx[cl[i]] for i in rng2.choice(len(cl), len(cl), True)])].mean() + for _ in range(N_BOOT)]) + print(f'\n [{label}] n_sig={n:,}, CPAs={len(cidx)}') + print(f' per-sig HC floor = {k/n:.4f} ({k}/{n}) CPA-boot95% [{np.percentile(bs,2.5):.4f},{np.percentile(bs,97.5):.4f}]') + dd1 = defaultdict(bool); dd2 = defaultdict(bool); dfirm = {} + for i in range(n): + if hc[i]: dd1[docs[i]] = True + if d2[i]: dd2[docs[i]] = True + dfirm.setdefault(docs[i], []).append(firms[i]) + dd1.setdefault(docs[i], False); dd2.setdefault(docs[i], False) + dl = list(dd1.keys()); nd = len(dl) + print(f' per-doc HC = {sum(dd1[d] for d in dl)/nd:.4f}; per-doc HC+MC = {sum(dd2[d] for d in dl)/nd:.4f} (n_doc={nd:,})') + dom = {d: Counter(dfirm[d]).most_common(1)[0][0] for d in dl} + for f in ['B', 'C', 'D']: + ds = [d for d in dl if dom[d] == f] + if ds: + print(f' Firm {f} per-doc HC+MC: {sum(dd2[d] for d in ds)/len(ds):.4f} ({sum(dd2[d] for d in ds)}/{len(ds)})') + return k/n + + +def a_vs_baseline(baseline_rec, a_rec, label): + bf, bdh = prep(baseline_rec); nb = len(baseline_rec) + a_cpa = defaultdict(list) + for i, r in enumerate(a_rec): + a_cpa[r[0]].append(i) + psize = {c: len(v)-1 for c, v in a_cpa.items()} + rng = np.random.default_rng(SEED) + hc = np.zeros(len(a_rec), bool) + for i, r in enumerate(a_rec): + np_ = psize[r[0]] + if np_ <= 0: + continue + cand = rng.integers(0, nb, size=np_) + sf = np.frombuffer(r[4], np.float32).astype(np.float32); sf /= max(np.linalg.norm(sf), 1e-9) + cosv = bf[cand] @ sf + if (cosv > 0.95).any(): + dist = POP[bdh[cand] ^ np.frombuffer(r[5], np.uint8)].sum(axis=1) + hc[i] = bool(((cosv > 0.95) & (dist <= 5)).any()) + k = int(hc.sum()); n = len(a_rec); lo, hi = wilson(k, n) + print(f' [{label}] Firm A (all yrs) vs BCD-2013-2019 pool: per-sig HC = {k/n:.4f} ({k}/{n}) [{lo:.5f},{hi:.5f}]') + + +bcd_pre = [r for r in rows if r[1] != FIRM_A and 2013 <= r[2] <= 2019] +bcd_post = [r for r in rows if r[1] != FIRM_A and r[2] >= 2020] +A_all = [r for r in rows if r[1] == FIRM_A] + +print('=== PRIMARY floor: BCD 2013-2019 ===') +fl = floor_on(bcd_pre, 'BCD 2013-2019 (PRIMARY)') + +print('\n=== Firm A scored against the BCD-2013-2019 threshold ===') +a_vs_baseline(bcd_pre, A_all, 'A out-of-sample') +A_obs = [r for r in A_all if r[6] is not None and r[7] is not None] +ak = sum(1 for r in A_obs if r[6] > 0.95 and r[7] <= 5) +print(f' Firm A observed (all yrs, own pools): per-sig HC = {ak/len(A_obs):.4f} -> {ak/len(A_obs)/fl:.0f}x the BCD-2013-2019 floor') + +print('\n=== (optional) BCD 2020+ floor, same method (may be inflated by e-signing) ===') +floor_on(bcd_post, 'BCD 2020-2023 (post e-signing)')