# Experiment ledger

## Truth boundary

| Layer | Training sees | Evaluation may see | Claim boundary |
|---|---|---|---|
| Synthetic randomized | factual `(X,A,Y)` | oracle location surface and derivative | recovery under randomized assignment |
| Synthetic observational | factual `(X,A,Y)` | oracle location surface and derivative | recovery under observed-covariate exchangeability |
| Synthetic contamination | independently corrupted train and validation factual labels | clean oracle test surface | outcome-robustness diagnostic |
| Hidden-confounding negative control | factual records without hidden `H` | oracle surface marginalized at symmetric `H` | failure diagnostic; no identification claim |
| Official VCNet Simu1 | official factual matrix | official oracle ADRF grid | population average-curve comparison |
| Official VCNet IHDP semi-synthetic | 25 real covariates with semi-synthetic dose/outcome | official oracle ADRF grid | population average-curve comparison; not a real individual effect |
| Official VCNet News semi-synthetic | 498 real document covariates with semi-synthetic dose/outcome | official oracle ADRF grid | high-dimensional population average-curve comparison; not a real individual effect |
| Logistic-normal support stress | factual records under increasingly concentrated dose assignment | exact treatment density and oracle surface | separates supported interpolation from low-support extrapolation; this is assignment-support stress, not Unit Selection Variable drift |

Oracle fields never enter training, early stopping, or checkpoint selection.

All original headline metrics are dose-wise marginal or population-curve
metrics. They cannot by themselves distinguish a shared unit from independently
resampling a unit at each queried dose. The implementation now enforces a
one-time `abduce(X)` plus `response_parameters_from_unit(Q_i, A)` interface, and
the separate `unit_semantics_smoke_v1` diagnostic checks the corresponding
same-unit contrast algebra without modifying the frozen 100-fit matrix.

## Frozen confirmatory protocol

- seeds: `101..105`;
- sample size: 2,400 per replication;
- split: 65% train, 15% validation, 20% test;
- evaluation: each held-out covariate context crossed with 31 doses on `[0.05,0.95]` while reusing one fixed `Q_i`;
- models: HCGM-Dose Cauchy/Gaussian, direct Cauchy/Gaussian, five-bin Cauchy;
- selection: factual validation likelihood only;
- contamination: 5% independent `+12/-12` replacement shifts in train and validation;
- hidden confounding: negative control only.

The machine-readable freeze is `implementation/outputs/synthetic_confirmatory/config.json`.

## Metrics

- integrated absolute location-surface error;
- local derivative MAE;
- finite-dose contrast error for `0.8` versus `0.2`;
- oracle grid-policy regret.

The binned model is piecewise constant. Its derivative is scored as zero inside bins and is undefined at bin boundaries.

## Executed evidence

The final grid contains 100 rows: four scenarios, five models, and five unique seeds per cell. The artifact renderer fails unless this grid is complete and finite.

Checked headline ratios:

- under observational contamination, HCGM-Dose Gaussian surface error is `4.872x` HCGM-Dose Cauchy;
- HCGM-Dose Cauchy contaminated error is `0.955x` its clean observational error;
- hidden confounding raises HCGM-Dose Cauchy error to `8.615x` its clean observational error.

Artifacts:

```text
implementation/outputs/synthetic_confirmatory/per_seed_metrics.csv
implementation/outputs/synthetic_confirmatory/summary.csv
implementation/outputs/synthetic_confirmatory/checked_claims.json
generated/surface_table.tex
generated/detail_table.tex
figures/surface_mae.png
implementation/outputs/official_simu1_confirmatory/
implementation/outputs/official_ihdp_confirmatory/
implementation/outputs/official_news_confirmatory/
implementation/outputs/official_benchmark_checked_claims.json
generated/official_benchmark_table.tex
implementation/outputs/support_sensitivity_confirmatory/
implementation/outputs/support_sensitivity_checked_claims.json
generated/support_sensitivity_table.tex
figures/support_sensitivity.png
```

## Official benchmark result boundary

The pinned official protocols produce opposite rankings:

- Simu1: VCNet-TR `0.016 ± 0.003`, DRNet-TR `0.025 ± 0.004`, HCGM-Dose-Gaussian `0.038 ± 0.016`, HCGM-Dose-Cauchy `0.043 ± 0.014`.
- IHDP semi-synthetic: HCGM-Dose-Gaussian `0.107 ± 0.018`, HCGM-Dose-Cauchy `0.168 ± 0.030`, VCNet-TR `0.373 ± 0.143`, DRNet-TR `0.743 ± 0.165`.
- News semi-synthetic: HCGM-Dose-Gaussian `0.034 ± 0.010`, DRNet-TR `0.038 ± 0.003`, HCGM-Dose-Cauchy `0.039 ± 0.012`, VCNet-TR `0.047 ± 0.011`.

The paper reports this as an inductive-bias tradeoff, not a universal ranking. Simu1 uses five independently generated datasets; IHDP and News each use five splits of one seeded semi-synthetic response surface. News contains 498 real document covariates and 2,000/993 train/test rows per split. VCNet or DRNet wins two of its five individual splits, so the lower HCGM-Gaussian mean is not a per-split dominance claim. The external VCNet repository has no explicit license and remains a runtime-only pinned dependency.

## Support-sensitivity result

Using the exact logistic-normal treatment density and threshold `f(A=a|X=x) >= 0.10`, increasing selection strength from `0.5` to `3.0` changes HCGM-Dose-Cauchy as follows:

- supported grid fraction: `0.916 -> 0.545`;
- full-grid surface MAE: `0.070 -> 0.105` (`1.51x`);
- strong-support surface MAE: `0.065 -> 0.062` (`0.96x`);
- at strength `3.0`, low-support error is `2.52x` strong-support error.

This validates the diagnostic value of the paper's support boundary. It does not establish that one density threshold is universally optimal.

## Evidence still missing

The current evidence now includes pinned VCNet/DRNet Simu1, IHDP, and News protocols. Direct SCIGAN execution, TCGA, formal finite-sample uncertainty, and a genuinely real continuous-treatment causal design remain future evidence gates.

## Fixed-unit semantic diagnostic

`implementation/outputs/unit_semantics_smoke_v1/` is a separate analytic guard;
it does not overwrite the frozen 100-fit predictive study. As common prognostic
loading increases from `0` to `4`, the correctly shared-unit, independent-event
contrast scale stays fixed at `0.353362`, because the common term cancels
through `w(a)-w(a')`. The observationally equivalent independent-unit
counterworld grows from `0.353362` to `1.659721` (`4.691x`). This demonstrates
why marginal surface accuracy cannot validate unit identity across queries.
