# References Every paper the package's derivations are read off, in one place, with enough of a locator to find the passage a docstring or a document is pointing at. **How to read a citation in this repository.** Prose cites an author and a year, and the citation resolves here. Two examples are "the sequential regression of Bang & Robins (2005)" and "van der Laan (2014) Theorem 3". Where a document argues *against* a source, or transcribes a display from it, it carries a section or page number as well; those are the citations worth checking, and they are the ones that have them. **Nothing here is stored in the repository.** Two PDFs were, and were deleted once everything they were cited for had been transcribed into [the DR-TMLE contract](technical-reference/dr-tmle/index.md). That is why the two `DRTMLE` sources below carry page numbers where the rest carry none. A path to a file only a previous reader had is not a citation; a page number is. ## Targeted learning, in general - van der Laan & Rubin (2006), [*Targeted Maximum Likelihood Learning*](https://doi.org/10.2202/1557-4679.1043), DOI 10.2202/1557-4679.1043. Read first-hand. Sections 1 and 3 treat a pathwise differentiable Euclidean parameter and a submodel whose scores span every influence-curve component. Section 4.2, article pages 24–25, gives the expansion, remainder, Donsker, and $L_2$ conditions. Section 5.1, article pages 27–28, treats CAR-censored parameters. Its Equation (11) is the targeted influence-curve equation after the observed-data curve is known. It does not derive RM8's missing-outcome curve or response transfer. - Díaz Muñoz & van der Laan (2012), [*Population Intervention Causal Effects Based on Stochastic Interventions*](https://doi.org/10.1111/j.1541-0420.2011.01685.x), *Biometrics* 68(2):541–549, DOI 10.1111/j.1541-0420.2011.01685.x. Read first-hand in the PubMed Central author manuscript, PMC4117410, and not in the version of record. Journal page numbers are therefore not checked. Section 3, Result 1, Equation (5), gives the efficient influence curve of the shifted mean. Section 4.3 states that the TMLE variance estimate is consistent only if both the mechanism and the outcome regression estimates are consistent. RM18 design CD of the [roadmap](roadmap.md) computes its exact bound from Result 1. - Gruber & van der Laan (2010), *A targeted maximum likelihood estimator of a causal effect on a bounded continuous outcome*. Read first-hand in the [author working paper](https://biostats.bepress.com/ucbbiostat/paper265), U.C. Berkeley Division of Biostatistics Working Paper 265. That file prints no page numbers, so the locators below are its PDF pages. This audit did not compare them with the journal version. | locator | content | | --- | --- | | Section 2, PDF page 5 | assumes a known interval $Y \in [a, b]$ and maps $Y$ linearly to $[0, 1]$ | | Lemma 1, PDF page 7 | shows that the logistic loss identifies the conditional mean of the transformed outcome | | Section 3, PDF page 9 | sets $a$ and $b$ to the sample minimum and maximum, because the simulated outcome is unbounded | | Section 4, PDF pages 13–14 | recommends the observed minimum and maximum when no bounds are known a priori | The known-interval result supports a fixed `q_bounds` transform. Sections 3 and 4 state the data-derived bounds as a practice, and they give no separate derivation for that choice. - Smith et al. (2025), [*Performance of Cross-Validated Targeted Maximum Likelihood Estimation*](https://doi.org/10.1002/sim.70185), *Statistics in Medicine* 44(15-17):e70185, DOI 10.1002/sim.70185. Read first-hand. Section 2.1 describes a transform based on the observed minimum and maximum. Section 6 states that its simulations used binary outcomes only. The authors leave continuous-outcome performance for further research. The paper does not derive an interval result for a scale computed from every row before cross-fitting. - Gruber & van der Laan (2012), [*tmle: An R Package for Targeted Maximum Likelihood Estimation*](https://doi.org/10.18637/jss.v051.i13), *Journal of Statistical Software* 51(13), DOI 10.18637/jss.v051.i13. Section 2.1, page 5, defines marginal risk and odds ratios from two counterfactual risks. Section 2.7, page 10, reports intervals for both ratios on the log scale. Appendix A, page 34, gives their log-scale influence curves. The same article gives the missing-outcome construction for two arms. Page numbers are the journal's printed pages. | locator | content | | --- | --- | | Section 1, page 4 | states that the FAQ estimates a categorical treatment through the marginal mean under each level | | Section 2.3, pages 6–7 | observed data with a response indicator $\Delta$, the clever covariate $I(A = a, \Delta = 1) / g(A, \Delta \mid W)$ for a generic arm $a$ with $g = g_A g_\Delta$, and an outcome regression fit on complete observations | | Section 3.2, page 16 | warns that the default observed-range bounds can fail under missing outcomes, and encourages bounds from domain knowledge | | Section 3.3, page 17 | applies the propensity bound to the product $g_A g_\Delta$ when two arms have missing outcomes | | Section 6, pages 28–29 | states that the package takes only a binary treatment; for a categorical treatment, it estimates one level at a time as a population mean with the binary indicator $\Delta_a = I(A = a)$, in an example whose data have no missing outcomes; the example gives no variance for a contrast | | Appendix A, page 34 | states joint normality with the covariance matrix of a possibly multi-dimensional parameter, and estimates each variance as $\mathrm{VAR}(IC)/n$ | The printed Appendix A display for the ATE curve ends in $\bar Q_0(1, W) - \bar Q_0(A, W)$. The ATE curve needs $\bar Q_0(0, W)$ in the second term. Line 1606 of the `tmle` 2.1.1 source uses `Q[,"Q0W"]`, which is the corrected term. - CRAN `tmle` 2.1.1, source at commit [`f8d88a0`](https://github.com/cran/tmle/tree/f8d88a07a3d25c96688221b384043eef7a31fe68). [`R/tmle.R`](https://github.com/cran/tmle/blob/f8d88a07a3d25c96688221b384043eef7a31fe68/R/tmle.R) normalizes `obsWeights`. It routes them through outcome and treatment fitting, targeting, plug-in evaluation, and influence-curve calculations. This source supports the weighted ordinary-TMLE refit. It does not implement a simulated common-cause surface. The same file has a population-mean path for missing outcomes. Lines 1737–1739 set a missing or all-zero `A` to one. Lines 170–172 then label `EY1` as the population mean. Line 2008 keeps the respondent rows, and lines 2020–2021 fit the fluctuation on them with `subset=keep`. Line 1564 gives the influence curve `Delta / pDelta1 * (Y - QAW) + Q1W - mu1`. The table lists the lines that the audit read, from supplied predictions and scaling through the curves, variances, and intervals. | lines | behavior | | --- | --- | | 1091–1127 | `.initStage1` bounds the outcome and a supplied `Q`, then maps both to `[0, 1]` | | 1095–1096 | a missing `Qbounds` defaults to the respondent range, widened by one percent of each endpoint's magnitude | | 1120 | `ab <- range(Ystar, na.rm=TRUE)` sets the scale from every `Y` value that is not `NA`, also when `Qbounds` is supplied; a non-`NA` `Y` on a row with `Delta = 0` enters the range | | 1113, 1123 | `.initStage1` clips a supplied `Q` to `Qbounds` and then rescales it by `ab` | | 1192–1193 | a supplied `Q` skips the outcome fit and records `"user-supplied values"` | | 1328–1330 | line 1328 bounds the initial predictions; `qlogis` applies only when `maptoYstar` is set or the family is binomial | | 1841–1848 | a scalar `gbound` becomes `c(gbound, 1)`, also with two arms | | 1390–1521 | `estimateG` fits a mechanism; line 1396 skips the fit and lines 1505–1506 record `"user-supplied values"` for a supplied mechanism | | 1710–1711 | the defaults are `alpha = 0.9995` and `target.gwt = FALSE` | | 1747–1748 | a missing `gbound` defaults to `5/sqrt(sum(Delta))/log(sum(Delta))` | | 1901–1902 | two-arm missing-outcome fits bound the product of the treatment and response probabilities | | 2014–2016 | without `target.gwt`, the clever covariates are `A/g1W.total` and `(1-A)/g0W.total` | | 1592, 1606 | the two-arm `EY1` and ATE curves, which carry the `Delta` factor | | 1596, 1610 | each variance is `var(IC)/n` | | 1599, 1613 | a binary outcome bounds the `EY1` interval to `[0, 1]` and the ATE interval to `[-1, 1]` | | 1623–1624, 1635–1636 | the log-RR and log-OR curves | | 1650 | the returned list holds the five curves | | 2053–2061 | the `evalATT` path sets the ATT response probabilities; lines 2056–2058 use marginal means when more than 95% of the ATT rows respond, and only the else branch refits intercepts | An arm-indexed mean for three or more arms can use the population-mean path once for each arm `a`. The table lists the lines of that route. | lines | behavior | | --- | --- | | 1737–1739 | a missing or all-zero `A` becomes one, so a constant `A` selects the population-mean path; pass `Delta = 1{A = a} Delta` | | 1101–1104 | a supplied two-column `Q` becomes `QAW`, `Q0W`, and `Q1W`; pass `cbind(Q(a, W), Q(a, W))` | | 1505–1511 | a supplied mechanism records `"user-supplied values"`; pass `g1W` of ones with `pDelta1 = g_a pi_a`, or `g1W = g_a` with `pDelta1 = pi_a` | | 1814–1818 | a two-column `pDelta1` is duplicated into four named columns | | 1901 | the product of `g1W` and `pDelta1` is bounded as `g1W.total` | | 2008, 2015, 2020–2021, 2023, 2027 | the respondent rows, the covariate `A/g1W.total`, the fluctuation fit, and the update | | 2044–2045 | `calcParameters` evaluates the targeted predictions | | 1560–1568 | a constant `A` gives `EY1` and `IC.EY1 = Delta/pDelta1*(Y-QAW) + Q1W - mu1`, with variance `var(IC.EY1)/n` | | 2198 | the returned list holds `estimates` | The K returned `IC.EY1` curves share rows, so they give the joint covariance and each reference contrast. With a continuous outcome mapped to `[0, 1]`, line 1120 reads every non-`NA` `Y`. The route therefore sets `Y` to `NA` on rows with `A != a`. JSS page 16 states that the function "ignores the Y value for observations having Δ = 0". Line 1120 still reads that value when it is not `NA`. `cleverly` bounds the response probability and the propensity separately (`src/cleverly/estimators/targeting.py:333-337` and `349`). The R product bound at lines 1901–1902 is a different rule. A paired comparison must choose a `gbound` below every supplied product. It must also check that the package bounds clip no supplied value. The registered stacked MAR natural-course study supplies the stitched out-of-fold `Q(A,W)` and `pDelta1(A,W)` values. Its adapter duplicates each realized-arm prediction and passes a constant synthetic `A`. It carries the original treatment beside `W`, preserving the conditioning set represented by each supplied prediction. This selects the population-mean path without fitting a treatment mechanism. The R path uses the centered, `n - 1` divisor sample variance `var(IC) / n` and bounds its binary-outcome interval to `[0, 1]`. `cleverly` uses the uncentered second moment `mean(IC^2) / n` and an unbounded Wald interval. The registered comparison keeps both native rules. Its interior law does not activate the R interval bound. The registered ordinary MAR natural-course study uses the same call with the in-sample `Q(A,W)` and `pDelta1(A,W)` predictions of each `cleverly` fit. Its continuous law also plants the two `q_bounds` on two rows with `Delta = 0`, because line 1120 reads those rows. A non-cross-fitted natural-course fit in `cleverly` uses the centered rule, which equals the R `var(IC)/n`. The stacked study's `n/(n-1)` difference therefore does not apply to the ordinary study. - Zheng & van der Laan (2011), [*Cross-validated targeted minimum-loss-based estimation*](https://doi.org/10.1007/978-1-4419-9782-1_27), DOI 10.1007/978-1-4419-9782-1_27. Read first-hand in the [author working paper](https://biostats.bepress.com/ucbbiostat/paper273/), Working Paper 273. Page numbers below are the working paper's printed pages, which are the PDF pages minus two. This audit did not compare them with the Springer chapter. Sections 2 and 2.1, pages 2–6, train both the relevant initial estimator and its nuisance on each training complement. They choose one fluctuation by pooled validation loss and average the fold plug-ins. Section 2.1 leaves a linear empirical-distribution component untargeted. Theorem 2, pages 14–18, gives the partial-targeting expansion and conditions without a complexity restriction on the initial nuisance classes. Its split vector is an external random draw over a finite support. The common fluctuation must converge, and its finite-dimensional fluctuation class must satisfy the theorem's entropy condition. Set the theorem's updated component to the outcome regression, its nuisance to the response mechanism, and its empirical component to the distribution of `(A, W)`. The Díaz, Carone and van der Laan mean then has the theorem's required decomposition. Its empirical-law influence term is the centered targeted outcome regression. Its remaining term is the response-weighted residual. The Díaz exact product remainder supplies the theorem's second-order condition. This result supports the original pooled, fold-evaluated construction for one realized V-fold partition. It does not validate a stopping index selected by risk over every evaluation row, a separate fluctuation in each fold, or repeated-split aggregation. Its fold expectation also does not justify treating an arbitrarily imbalanced supplied partition as a row-weighted stacked sample. The arm-indexed audit uses four further locators. | locator | content | | --- | --- | | Section 2, page 2 | defines the target as $\Psi : \mathcal{M} \to \mathbb{R}^d$, so one fit can target a vector parameter | | Section 2, page 3 | assumes "a fixed d-variate function D(P)" as the canonical gradient, and a submodel whose score spans its components | | Theorem 1, page 7, and Theorem 2, pages 14–15 | assume that the split vector $B_n$ is uniformly distributed over a finite support | | Section 4, pages 19–21 | treats the ATE and maps an outcome in a known interval $(a, b)$ to $(Y - a)/(b - a)$ | | Section 4.1, Theorem 3, page 22, and Section 4.2, Theorem 4, page 31 | give the result under the squared-error loss and under the quasi-log-likelihood loss | Theorems 3 and 4 treat $O = (W, A, Y)$ with a binary treatment and no missing outcomes. The missing-outcome bounded-continuous cell therefore rests on Theorem 2 and the `(W, T_a, U)` reduction in the Levy entry. Section 4.2 and Theorem 4 support only the bounded-outcome transform. Theorem 2 keeps the $d$-variate setup of Section 2, so its expansion holds for the vector of K arm means. The joint covariance of that vector follows from the expansion. The paper does not state that covariance. The theorems place limit and rate conditions on the initial estimators. They do not prescribe how a training sample builds them. A pooled outcome regression evaluated at each arm, and separately bounded treatment and response probabilities, are therefore admissible initial estimators. - Polley (2010), [*Super Learner*](https://escholarship.org/content/qt4qn0067v/qt4qn0067v.pdf), U.C. Berkeley dissertation. Read first-hand. Section 1.1.2, PDF page 16 (printed page 4), defines V-fold assignment independently of the learning observations. Section 2.2, Theorem 1, PDF pages 24–25 (printed pages 12–13), states the Super Learner oracle result for that split. Theorem 1 assumes bounded data, squared-error loss, and a finite grid of metalearner values. The dissertation's software offers `stratifyCV` for a binary outcome (Appendix A, PDF pages 132–134). Theorem 1 does not cover that option. The package's Super Learner stratifies its inner folds on a classification target. In an iid point-treatment or longitudinal cross-fitted fit, those folds use only the outer-training rows. If the outer split reads no outcome, their fold assignment then reads no outer-held-out outcome. The C-TMLE selection folds cross the outer split ([F18](roadmap.md#f18-selector-path-c-tmle-inference)). Polley's oracle result does not establish a risk bound for the stratified inner folds. - Chernozhukov, Chetverikov, Demirer, Duflo, Hansen, Newey & Robins (2018), [*Double/debiased machine learning for treatment and structural parameters*](https://academic.oup.com/ectj/article/21/1/C1/5056401), *The Econometrics Journal* 21(1):C1-C68. Read first-hand. Section 3.4 defines the coordinatewise median point. Equation (3.14) defines the median of the within-partition variance plus squared split displacement. Corollary 3.3 gives the fixed-repeat interval under the paper's DML assumptions. It does not establish that a targeted MAR plug-in satisfies those assumptions. The arXiv v7 manuscript, [arXiv:1608.00060](https://arxiv.org/abs/1608.00060), gives the split in Definitions 3.1 and 3.2, pages 23–24. Each says "Take a K-fold random partition" of the indices, with folds of size $N/K$. Neither definition stratifies the partition. This audit did not compare that page with the journal version. The [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) cite this wording. - Rafi (2023), [*Efficient Semiparametric Estimation of Average Treatment Effects Under Covariate Adaptive Randomization*](https://arxiv.org/abs/2305.08340), arXiv:2305.08340v1. Read first-hand. The paper treats a binary treatment under covariate-adaptive randomization, with target proportions set by design. Assumption 4.2, page 20, splits each treatment-by-stratum cell into folds. The folds "depend only on" an independent uniform draw and the cell size. The estimator is a cross-fitted AIPW estimator, not a TMLE. The strata are covariate strata, not outcome strata. The paper therefore does not cover an observational cross-fitted fit, which is what the package draws its folds for. The [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) record this gap. - Lu, Shi, Liu and Ding (2025), [*Conditional cross-fitting for unbiased machine-learning-assisted covariate adjustment in randomized experiments*](https://arxiv.org/html/2508.15664v1), arXiv:2508.15664v1. Read first-hand. Section 3.1, Examples 5 and 6, splits observed treatment groups into two folds under complete randomization and each treatment-by-stratum cell under stratified randomization. Propositions 2 and 3 establish the conditional treatment-assignment law for those splits. Section 5.4, Proposition 8, gives a design-based variance result for the adjusted finite-population ATE under stratified randomization. The paper does not derive the shipped observational TMLE/LTMLE, outcome-stratified folds, or the package's ordinary EIF variance. The [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) record this boundary. - Bannick, Shao, Liu, Du, Yi & Ye (2025), [*A general form of covariate adjustment in clinical trials under covariate-adaptive randomization*](https://doi.org/10.1093/biomet/asaf029), *Biometrika* 112(3), asaf029, DOI 10.1093/biomet/asaf029. This entry records the abstract only. The abstract states a rigorous justification of machine learning with cross-fitting for AIPW estimators under covariate-adaptive randomization. It supports folds drawn independently of the outcomes, and it covers randomized trials only. It does not cover an observational cross-fitted fit. - zEpid 0.9.1, repeated cross-fit aggregation at commit [`16a0f96`, lines 1602-1641](https://github.com/pzivich/zEpid/blob/16a0f96f8b2c65df8715085801f21757d1478e1e/zepid/causal/doublyrobust/crossfit.py#L1602-L1641). The `calculate_joint_estimate` median branch implements the same point and variance calculation. It is secondary aggregation evidence and not a comparator for the complete estimator. In the same file, `targeting_step` ([lines 1644–1672](https://github.com/pzivich/zEpid/blob/16a0f96f8b2c65df8715085801f21757d1478e1e/zepid/causal/doublyrobust/crossfit.py#L1644-L1672)) fits a separate logistic fluctuation in each split. `SingleCrossfitTMLE` calls it at lines 1119–1122, and `DoubleCrossfitTMLE` calls it at lines 1545–1548. zEpid therefore targets inside each fold, not with one pooled fluctuation. - Levy (2018), [*An Easy Implementation of CV-TMLE*](https://arxiv.org/abs/1811.04573), arXiv:1811.04573. Read first-hand. The abstract distinguishes the original fold-wise plug-in evaluation from a stacked validation update and whole-sample plug-in. It states exact overlap for a pooled treatment-specific mean. Section 3.1 supplies the asymptotic expansion after the pooled score is solved. The conclusion limits the exact-overlap statement to parameters whose clever covariates contain no empirical means. Relabel the response indicator as Levy's binary treatment and `(A, W)` as its covariates. Let the observed pseudo-outcome be `U = Delta * Y`. Then `E(U | Delta = 1, A, W)` is the Díaz outcome regression, and Levy's treatment-specific mean is the missing-at-random natural-course mean. The map from `(X, Delta, Delta * Y)` to `(X, T, U)` is a bijective relabeling of the observed record. Levy's parameter and influence curve do not read the outcome regression under `T = 0`. They therefore reduce to the Díaz observed-data parameter and curve without adding an identification or tangent-space result. The respondent-row fluctuation covariate is `1 / pi`. Its efficient-influence-function multiplier is `Delta / pi`. Neither contains an empirical mean. Levy's exact finite-sample overlap applies when the folds have equal sizes. Package-generated near-balanced folds instead give the stacked and original fold weights a bounded $O(1/n)$ difference for fixed $V$. This difference is first-order negligible, but it is not zero when fold sizes differ. The mapping supports the implemented stacked, pooled, whole-sample construction for one near-balanced V-fold partition. Levy gives no repeated-split result. The arXiv v1 PDF prints page numbers that equal the PDF page minus two. Section 1, page 2, defines $B_n$ as a random split of the rows. Section 2, page 3, uses standard 10-fold cross-validation for an example whose clever covariate contains an empirical mean. Section 3.1, page 7, gives the remainder. The conclusion, page 8, states that the general class of valid parameters "remains to be more formally generalized". For an arm-indexed mean, let `T_a = 1{A = a} * Delta` and keep `U = Delta * Y`. The observed-data curve depends on the record only through `(W, T_a, U)`. Its multiplier is `T_a / (g_a * pi_a)`, and `g_a * pi_a` is `P(T_a = 1 | W)`. That multiplier contains no empirical mean, so the abstract's exact treatment-specific-mean overlap applies to each arm at equal fold sizes. The stacked plug-in weights fold `v` by `n_v / n`, while Zheng and van der Laan weight each fold by `1 / V`. The two agree exactly at equal fold sizes and differ by $O(1/n)$ for near-balanced folds at fixed $V$. Section 1, page 1, maps the model to $\mathbb{R}^d$ with a one-dimensional fluctuation parameter. The general definition places no binary restriction on the treatment. A joint K-dimensional fluctuation instead rests on the span condition in Zheng and van der Laan, Section 2, page 3. It also rests on arm separability. The package clever covariate has one nonzero column in each row for any K (`src/cleverly/fluctuation/submodel.py:463-466`). The fluctuation fits only the `observed` rows (`src/cleverly/fluctuation/iterative.py:523`). - Coyle et al., R package [`tmle3`](https://github.com/tlverse/tmle3), source at commit [`ed72f8a`](https://github.com/tlverse/tmle3/tree/ed72f8a20e64c914ab25ffe015d865f7a9963d27). `R/tmle3_Update.R` selects the `"validation"` likelihood when `cvtmle=TRUE` and fits one update to the stacked validation predictions; `R/Param_TSM.R` evaluates the treatment-specific mean and its influence curve from those validation likelihood values. `R/delta_functions.R` defines the log-risk and log-odds contrasts. Used as an implementation reference, not as an oracle for the estimand derivation or as a moving specification. The simulated-confounding surface reports its ratio movement on the same log scale. Levy (2018) is the stable marker for the default stacked construction. It is not an exact comparator for the stacked missing-outcome contracts. A generic treatment-specific outcome learner can use the `Delta = 0` pseudo-outcomes when it predicts under `Delta = 1`, while the package's missing-outcome regression trains on respondents only. - The fold/full prediction mechanism used by `tmle3` lives in its `sl3` dependency, pinned here at [`0e8f236`](https://github.com/tlverse/sl3/tree/0e8f2365bcbe54010b8120c04a7a2dcfc8119227). `R/Lrnr_cv.R` builds `fold_fits` and, when requested, a `full_fit`; `predict_fold(..., "validation")` assembles held-out predictions while `predict_fold(..., "full")` uses the all-training fit. This is the design source for C-TMLE's nested selection predictions. - The same pinned `tmle3` supplies `tmle_stratified`, the comparator of the [baseline-strata study](technical-reference/method-evidence/stratified-point-treatment-tmle.md). [`R/tmle3_Spec_stratified.R`, lines 14–63](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/tmle3_Spec_stratified.R#L14-L63) adds the stratum variable to `W` and wraps each base parameter in `Param_stratified`. `base_estimate = FALSE` drops the marginal parameter. [`R/Param_stratified.R`, lines 49–100](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/Param_stratified.R#L49-L100) weights each base clever covariate by `n / n_s` inside stratum `s` and by zero outside it. It evaluates the base parameter on the stratum's subset of the task and scales that curve by the same weight. The study pairs the treatment-specific-mean and ATE bases only, and its page states why it does not pair the ATT, ATC and PAR bases. [`R/tmle3_Fit.R`, lines 35–41 and 71](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/tmle3_Fit.R#L35-L71) store the initial estimates and the parameter names of a two-parameter stratified spec as matrices. [`R/utils.R`, lines 37–104](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/utils.R#L37-L104) then builds a 12-column summary and names it with 10 names, so `fit$summary` fails. The study's runner computes the same summary from `fit$estimates`. - van der Laan & Gruber (2016), *One-step targeted minimum loss-based estimation*. ## Point treatment and stochastic interventions - Hubbard & van der Laan (2008), [*Population intervention models in causal inference*](https://doi.org/10.1093/biomet/asm097), *Biometrika* 95(1):35–47. Read first-hand in the [author manuscript](https://pmc.ncbi.nlm.nih.gov/articles/PMC2464276/). Section 2 declares complete iid observations $O=(W,A,Y)$. Equation (2) defines intervention-minus-observed differences and intervention-to-observed ratios. Section 3 treats one fixed intervention. Equations (3)–(6) add the observed-outcome contribution to the intervention score. Section 4.4 treats relative risk. Section 4.6 and the Appendix give influence-curve covariance and asymptotic inference. `cleverly` reverses the paper's difference for PAR. It takes one minus the paper's ratio for PAF. The paper contains no response indicator, response propensity, or MAR targeting equation. It also supplies no simulated-confounding inference. - Díaz, Carone & van der Laan (2016), [*Second-Order Inference for the Mean of a Variable Missing at Random*](https://doi.org/10.1515/ijb-2015-0031), *International Journal of Biostatistics* 12(1):333–349 ([author manuscript](https://arxiv.org/abs/1511.08369)). Read first-hand. Section 2, journal pages 335–337, defines the marginal mean under missingness at random. Equations (1)–(3) give its expansion, efficient influence function, and exact remainder. Equation (4) and Steps 1–4 give the first-order TMLE. Equation (5) gives the remainder-rate condition for asymptotic linearity. The paper writes the observed data as `(W, A, AY)`, where `A` is its response indicator. Set its `W` to the package's `(A, W)` and its `A` to the package's `Delta`. The resulting target is the natural-course mean under the joint observed law of treatment and covariates. Its clever covariate is the inverse response score. It has no inverse treatment probability and needs no treatment positivity or exchangeability assumption. The source treats one bounded outcome mean from unweighted iid observations. It gives an equivalent weighted intercept fluctuation, which solves the same score equation through a different targeted regression. Its first-order result uses a Donsker condition. It does not establish weighted, clustered, stratified, cross-fitted, repeated-split, joint-target, or simultaneous inference. Section 5 bootstraps a second-order expansion. It does not establish the package's ordinary refit bootstrap. - Newey & Robins (2018), [*Cross-Fitting and Fast Remainder Rates for Semiparametric Estimation*](https://arxiv.org/abs/1801.09138), arXiv:1801.09138. Read first-hand. Section 3 treats a mean with randomly missing data. Its doubly robust construction estimates the outcome and inverse response regressions on distinct subsamples. It is not the package's complement-trained pooled CV-TMLE, so it does not govern the stacked missing-outcome contracts. - Missing-outcome natural-course implementation record (2026-09-11): the source above supports one scalar missing-at-random mean from iid observations, with its ordinary first-order interval. Its stated limits bound the [ordinary-TMLE contract](technical-reference/point-treatment-tmle.md#missing-outcomes-and-controlled-direct-effects). Zheng and van der Laan (2011) and Levy (2018) separately support the implemented stacked cross-fitted contract. None of these results covers population attributable risk or population attributable fraction by itself. The attributable-effect implementation record below composes them with the arm-mean parent. - Source audit of stacked CV-TMLE for arm-indexed means with missing outcomes (2026-09-14): it covers cross-fitted TMLE means `ψ_a = E_W E(Y | A = a, Delta = 1, W)` and their contrasts. The implemented [arm-indexed stacked contract](technical-reference/point-treatment-tmle.md#stacked-cv-tmle-for-arm-indexed-targets) follows this audit. The support chain has five links. | link | source | result | | --- | --- | --- | | parameter and curve | Díaz and van der Laan (2017), Section 2.1 and Equation (1); Gruber and van der Laan (2012), Section 2.3 | one arm indicator gives the curve `1{A = a} Delta / (g_a pi_a) (Y - Q(a, W)) + Q(a, W) - ψ_a` in the nonparametric model | | cross-fitting | Zheng and van der Laan (2011), Section 2, pages 2–3, and Theorems 1–2 | a vector parameter with a d-variate canonical gradient, an external uniform split, and initial estimators restricted only by limits and rates | | remainder | Díaz, Carone and van der Laan (2016), Equation (3) | the exact product remainder supplies the second-order condition for each arm | | stacked evaluation | Levy (2018), abstract and conclusion | each arm's multiplier has no empirical mean, so stacked and fold-evaluated points agree at equal fold sizes | | contrasts | Gruber and van der Laan (2012), Appendix A; `tmle` 2.1.1 lines 1606, 1623–1624, 1635–1636 | the ATE is linear, and the log RR and log OR curves combine the two same-row arm curves | Díaz and van der Laan state their Assumption 2 conditional on `W`. The curve in Equation (1) does not use the randomization, so it applies to observational treatment. The curve reads the record only through `(W, T_a, U)`, which the Levy entry defines. The same chain covers three or more arms. The table gives the locator for each link. Page numbers for Díaz and van der Laan are those of the arXiv v1 author manuscript. | link | locator | result | | --- | --- | --- | | per-arm curve | Díaz and van der Laan, Section 2.1, page 6; Equation (1), page 10; Equation (3), pages 11–12 | `A` is "a binary treatment arm indicator", and the application has "four such indicators" | | per-arm application | Díaz and van der Laan, Section 2.3, page 8; Tables 1–2, pages 8–9; Figure 1, pages 9–10 | the application fits missingness in each treatment arm and estimates four arm means, one indicator at a time | | reduction | Díaz and van der Laan, page 25 | a referee's alternative defines `T = AM` and estimates $E\{E(Y \mid T = 1, W)\}$; the authors reject it as "unsatisfactory because it ignores intrinsic properties of the variables A and M", and the package keeps separate `g_a` and `pi_a` fits | | generic arm | Gruber and van der Laan (2012), Section 2.3, page 7; Section 1, page 4; Section 6, pages 28–29 | the clever covariate is written for a generic arm, and a categorical treatment is estimated one level at a time | | joint vector | Zheng and van der Laan, Section 2, pages 2–3 | the target lies in $\mathbb{R}^d$ with a d-variate canonical gradient; the joint covariance follows from the expansion, and the paper does not state it | | stacked evaluation | Levy, Section 1, page 1 | the definition places no binary restriction on the treatment; its fluctuation parameter is one-dimensional | | joint fluctuation | Zheng and van der Laan, Section 2, page 3; `src/cleverly/fluctuation/submodel.py:463-466`; `src/cleverly/fluctuation/iterative.py:523` | the span condition and arm separability support one K-dimensional fluctuation | | reference contrasts | `src/cleverly/targets/builtin.py:311-353`, `419-449`; Gruber and van der Laan (2012), Appendix A, page 34 | each `ate`, `rr`, and `or` applies the Appendix A delta-method form to two coordinates of the joint vector | Assumption 1 of Díaz and van der Laan, page 7, is written for two arms: "Y = M{AY1 + (1 − A)Y0}". The arm mean uses only the `A = 1` branch, so the per-arm identification still holds. The FAQ in Gruber and van der Laan (2012) has no missing outcomes and gives no contrast variance. No reviewed source states the K-arm contrast curve. Each contrast curve is a standard consequence of the joint expansion and the Appendix A delta-method form, and the papers do not state it. The default simultaneous band uses Rademacher multiplier draws on the centered curves of the same rows (`src/cleverly/methods.py:329`). Its validity follows from the joint expansion and a conditional multiplier central limit theorem for a fixed number of estimands. That step is also a standard consequence that the papers do not state. The registered joint-coverage cells that measure the band are listed under [simultaneous bands](technical-reference/inference.md#simultaneous-bands). Two package facts bound the joint fit. Each row of the arm-indexed clever covariate has one nonzero column (`src/cleverly/fluctuation/submodel.py:463-466`). In `_newton_logistic` (`src/cleverly/fluctuation/iterative.py:696`), the gradient and Hessian separate by arm, but the line search and the stopping rule act on the whole vector. A joint fluctuation therefore equals the per-arm fits only to solver tolerance. The ordinary variance rule is `np.var(ic, ddof=1) / n` (`src/cleverly/inference/cluster.py:146`). It equals the R rule `var(IC) / n` at lines 1596 and 1610. The arm-indexed stacked fit uses this centered rule (`src/cleverly/estimators/tmle.py:3628-3630`). The stacked natural-course mean keeps the second-moment rule (`src/cleverly/inference/cluster.py:248-284`). A stacked curve has empirical mean zero to targeting tolerance, so the two rules agree to first order. The table gives the source verdict for each composition in the arm-indexed mean group. The [arm-indexed contract](technical-reference/scope-and-refusals.md#missing-outcome-arm-indexed-contract) admits or refuses each one. | composition | source verdict | reason | | --- | --- | --- | | binary outcome; `ey`, `ey0`, `ey1`, `ate` | source-supported | the five links | | binary outcome; `rr` and `or` on the log scale | source-supported | the five links and Appendix A, page 34 | | bounded continuous outcome with a fixed `q_bounds`; `ey`, `ey0`, `ey1`, `ate` | source-supported | Zheng and van der Laan, Theorem 2 with the `(W, T_a, U)` reduction; their Theorem 4 and Gruber and van der Laan (2010), Section 2 and Lemma 1, for the transform | | continuous outcome with `q_bounds=None` | no reviewed interval result | the scale depends on held-out outcomes, as the next paragraph states; the [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) require prespecified bounds | | three or more arms, with a binary outcome or a bounded continuous outcome with a fixed `q_bounds`; `ey`, and `ate` against the reference arm; `rr` and `or` against the reference arm for a binary outcome | source-supported | the three-arm table above, with the contrast curve as a standard consequence; the planned R comparator runs the population-mean path once for each arm | | simultaneous bands over the reported estimands, with the centered rule | source-supported via the vector expansion | Zheng and van der Laan, Theorem 2, give a joint expansion of the vector with curve `D`, so the estimates are jointly asymptotically normal; the default Rademacher multiplier band then follows from a conditional multiplier central limit theorem for a fixed number of estimands, a standard consequence that the paper does not state | | ATT or ATC | no source read | the clever covariate carries an empirical arm share, so the Levy overlap statement does not cover it | | more than one repeat, or fold-specific targeting | no source read | no direct interval result | | fold-evaluated construction | source-supported, separate estimator | Zheng and van der Laan, Sections 2 and 2.1 | | supplied split plan | no source read | the balance and weighting requirements are unaudited | | folds stratified on treatment or outcome | no reviewed result for this fit | the [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) require generated unstratified folds for every cross-fitted fit | | one fold with cross-fitting | not cross-fitting | one fold trains and evaluates on the same rows | | weights, clusters, or baseline strata | no source read | every source treats unweighted iid rows | | bootstrap inference | no source read | no source covers a bootstrap of this estimator | | linear fluctuation, one-step targeting, or weighted targeting | no source read | Zheng's Theorem 3 treats the squared-error loss without missing outcomes | | C-TMLE with cross-fitted arm-indexed missing outcomes | no source read | the collaborative score and selection risk are not derived | With `q_bounds=None`, `_scaler` builds the outcome scale from every observed outcome before the split (`src/cleverly/estimators/tmle.py:1212-1219`). The outcome learners train on the scaled outcome (`src/cleverly/estimators/_nuisance.py:1202`). A held-out outcome therefore sets the scale of the training fit. Gruber and van der Laan (2010) derive only the known-interval case. Gruber and van der Laan (2012), Section 3.2, warn about observed-range bounds under missingness. The audit did not examine five sibling surfaces. | sibling surface | fact | | --- | --- | | shift, incremental, regime, MSM, and controlled-direct-effect targets | under cross-fitting with missing outcomes, the fit raises `CapabilityError` before any learner is fitted. The in-sample fits remain. [X53](roadmap.md#x53-missing-outcome-cv-tmle-variants) part (d) holds the missing result | | ordinary arm-indexed missing-outcome study | it registers only binary `ey1`, `ey0`, and `ate` | | registered complete-outcome stacked study | it now declares unstratified folds and `q_bounds=(0, 1)` on a bounded law, and it asserts the realized scheme before it reports a row (`tests/studies/canonical_cvtmle.py`). The gap this row recorded is closed | | ordinary C-TMLE with missing outcomes | the audit did not read a source for it | | the `learner_folds` split inside a Super Learner | it stratifies on the outcome for a binary outcome learner (`src/cleverly/learners/super_learner.py:238-241`). In an iid point-treatment or longitudinal cross-fitted fit, the [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) find that its fold assignment reads no outer-held-out outcome. That finding requires an outer split that reads no outcome. The C-TMLE selection folds cross the outer split ([F18](roadmap.md#f18-selector-path-c-tmle-inference)). The audit finds no stratified Super Learner oracle result. The implemented preflight requires two rows in each class of the role target in every training complement, for each role whose resolved learner is a package `SuperLearner` with a classification task. At that count every inner training set holds both classes. The preflight cannot see a `SuperLearner` nested inside a user pipeline, which can still fail inside the fit | - Díaz & van der Laan (2017), [*Doubly robust inference for targeted minimum loss-based estimation in randomized trials with missing outcome data*](https://doi.org/10.1002/sim.7389), *Statistics in Medicine* 36:3807–3819 ([author manuscript](https://arxiv.org/abs/1704.01538)). Read first-hand. Sections 2.1–2.2 state the observed-data model, identification assumptions, and positivity conditions. Section 3, Equation (1), gives the treatment-by-response influence curve. Equation (3) gives the logistic TMLE. Conditions 1–2 and Equations (4)–(5) give its product-rate conditions. Section 2.1, page 6, defines `A` as a binary treatment arm indicator. It notes that the application has four such indicators. This locator comes from the arXiv v1 author manuscript, and this audit did not compare it with the journal version. The [DR-TMLE entry](#doubly-robust-inference-drtmle) for the same paper records its other locators. The paper fixes a randomized binary treatment. It does not establish the package's observational attributable-effect pair. Hubbard and van der Laan supply the complete-data treatment mechanism. The reviewed sources do not supply its joint observational response transfer. - R `tmle3` at commit `ed72f8a`, [`R/tmle3_Spec_PAR.R`, lines 20–42](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/tmle3_Spec_PAR.R#L20-L42), combines a treatment-specific mean with a natural-course mean. It declares $O=(W,A,Y)$. The file [`R/delta_functions.R`, lines 18–25 and 66–78](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/delta_functions.R#L18-L78) gives PAR as observed-minus-intervention and PAF as one minus intervention/observed. Its PAF interval transforms a log contrast. The `cleverly` fraction uses the identity scale, including for descriptive simulated-confounding displacement. The existing canonical study records that interval distinction. [`R/Param_mean.R`, lines 49–72](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/Param_mean.R#L49-L72) uses $Y-\psi$ and requests no update nodes. It has no response score or respondent residual. Therefore, `tmle3` is a complete-data reduction comparator rather than RM8 derivation evidence. - Missing-outcome attributable-effect source audit (2026-09-12): no reviewed paper presents the exact MAR PAR and PAF construction. [RM8](https://github.com/esbraun/cleverly-tmle/blob/4ce96cda2bda93ba9233026977e3ff63ea3e0003/docs/roadmap.md#rm8-missing-outcome-attributable-effects) records this bounded conclusion. The [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) record part (e), a stack of the two shipped parents, as a natural extension. The implementation record that follows states the construction the package ships. Díaz, Carone and van der Laan give the MAR natural-course parent, its remainder, and its rates. Hubbard and van der Laan give the complete-data reference parent and attributable transforms. Díaz and van der Laan give the treatment-by-response parent under randomized treatment. Van der Laan and Rubin govern finite-dimensional targeting only after the observed-data curve is known. None derives the package's observational natural-course and reference pair under an additional response process. The audit therefore cannot fix its joint curve, targeting equations, remainder, rate conditions, or covariance by citation. Package and comparator code do not remove that stop. - Missing-outcome attributable-effect implementation record (2026-10-03): the package ships PAR and PAF under missingness at random as a fixed-dimension stack of two shipped parents. No paper states the pair as one estimator. Each step is a standard step, so the extension needs no new limit theorem. | parent or step | source | | --- | --- | | natural-course mean $E\{m(A,W)\}$ | Díaz, Carone and van der Laan (2016), Section 2 and Equations (1)–(5), with their `W` set to the package's `(A, W)` | | reference-arm mean $E\{m(a_0,W)\}$ | Díaz and van der Laan (2017), Section 2.1 and Equation (1); Gruber and van der Laan (2012), Section 2.3 | | stacked cross-fitted forms of both | Zheng and van der Laan (2011); Levy (2018); the arm-indexed audit chain above | | PAR and PAF transforms | Hubbard and van der Laan (2008), Equation (2) | | joint normality, linearity, the delta method | both parents are asymptotically linear on the same rows | | fixed weights and clusters | a fixed weight defines a tilted law; the cluster is the unit of the same curves | Each parent keeps its own fluctuation. The stack needs only that each parent is asymptotically linear, so separate targeting is valid, and each coordinate is the shipped estimator. The union model is the intersection of the parents': a correct product $g\pi$ at the reference arm with a wrong $\pi$ rescues the reference arm and not the natural course. [PAR and PAF with missing outcomes](technical-reference/point-treatment-tmle.md#par-and-paf-with-missing-outcomes) gives the contract, and the [missing-outcome attributable-effect study](technical-reference/method-evidence/missing-outcome-attributable-effects-tmle.md) records the evidence. The `tmle3` rejection above stands. The R `tmle` 2.1.1 comparator reports no PAR, so the study composes it from the population-mean path, once for the natural course and once per arm with the indicator $1\{A=a\}\Delta$. - van der Laan (2010), [*Targeted Maximum Likelihood Based Causal Inference: Part I*](https://doi.org/10.2202/1557-4679.1211), DOI 10.2202/1557-4679.1211, and [*Part II*](https://doi.org/10.2202/1557-4679.1241), DOI 10.2202/1557-4679.1241. These provide the general causal-effect and practical TMLE constructions cited by the conditional-population and regimen targets. Part I, [Section 4](https://pmc.ncbi.nlm.nih.gov/articles/PMC3126670/), treats the effect among the treated as a parameter of the outcome and treatment factors. The simulated-confounding surface reuses that registered ATT functional, and its relabeled ATC counterpart, on each perturbed empirical law. The surface reports the changing group's share, and it claims no effect in the original treated group held fixed. - Robins (2004), *Optimal Structural Nested Models for Optimal Sequential Decisions*, in *Proceedings of the Second Seattle Symposium on Biostatistics*, pp. 189–326, DOI [10.1007/978-1-4419-9076-1_11](https://doi.org/10.1007/978-1-4419-9076-1_11). - Díaz & van der Laan (2013), [*Assessing the Causal Effect of Policies: An Example Using Stochastic Interventions*](https://doi.org/10.1515/ijb-2013-0014), *International Journal of Biostatistics* 9(2):161–174, DOI 10.1515/ijb-2013-0014. The companion to the 2012 paper above, cited for the stochastic-regime parameter rather than the population-intervention one. The byline differs between them: *Díaz Muñoz* in 2012 and *Díaz* in 2013. The prose follows each as published. - van der Laan, Luedtke & Díaz (2014), [*Discussion of Identification, Estimation and Approximation of Risk under Interventions that Depend on the Natural Value of Treatment Using Observational Data*](https://doi.org/10.1515/em-2014-0012), *Epidemiologic Methods* 3(1):21–31, DOI 10.1515/em-2014-0012. Section 5 distinguishes the population-law intervention from a realized learned intervention. The latter defines a data-adaptive target and needs its own inference conditions. [RM25](https://github.com/esbraun/cleverly-tmle/blob/4ce96cda2bda93ba9233026977e3ff63ea3e0003/docs/roadmap.md#rm25-declared-stochastic-regime-densities) uses this distinction when interpreting its exact-law odds-tilt witness. - Nordland & Holst (2026), [*Policy Learning with the polle Package*](https://doi.org/10.18637/jss.v116.i04), *Journal of Statistical Software* 116(4):1–51, DOI 10.18637/jss.v116.i04. Read first-hand in the version of record of 31 May 2026, on 2026-09-28. Section 3.4 defines the target conditional on the learned policy, and it gives the influence function when the learned policy has a limiting policy. Algorithm 4 learns each policy on the rows outside a fold. It pools the doubly robust scores with weight $1/N$, and it centres the variance estimate at the pooled estimate. This is a method distinct from the one that [RM30](https://github.com/esbraun/cleverly-tmle/blob/4ce96cda2bda93ba9233026977e3ff63ea3e0003/docs/roadmap.md#rm30-learned-policy-value-evaluation) implements, and [X11](roadmap.md#x11-learned-policy-follow-ups) part (e) holds it. [RM28](https://github.com/esbraun/cleverly-tmle/blob/4ce96cda2bda93ba9233026977e3ff63ea3e0003/docs/roadmap.md#rm28-declared-densities-of-user-written-interventions) requires `Rule`, and a `DynamicRegimen` with a callable node, to declare `rule_kind="known"`. It refuses a rule declared `"estimated"`. - van der Laan & Luedtke (2015), [*Targeted Learning of the Mean Outcome under an Optimal Dynamic Treatment Rule*](https://doi.org/10.1515/jci-2013-0022), *Journal of Causal Inference* 3(1):61–95, DOI 10.1515/jci-2013-0022. Read first-hand on 2026-09-26, 2026-09-27 and 2026-09-28 in the NIH author manuscript PMC4517487, which states that it was "Published in final edited form as" this article. The publisher page returned no text on 2026-09-28, so the locators are section, theorem, corollary, equation and appendix numbers, and no page numbers. Section 6, Theorem 5, treats the value of a rule fitted on all rows, subject to an empirical process condition. Section 7 defines the average value of rules fitted on training folds. Section 7.2, Theorem 6, gives the CV-TMLE expansion under a limiting rule, and Corollary 3 gives a conservative interval when each fold's treatment mechanism is an MLE under a correct model. Appendix B gives the CV-TMLE with one pooled fluctuation, "the fluctuation ε2 does not rely on j", with the loss of Equation (21). Section 8.1.1 treats the single time point as a special case. The manuscript's MathML prints $O_P$ where the context needs $o_P$. This is the governing method of [RM30](https://github.com/esbraun/cleverly-tmle/blob/4ce96cda2bda93ba9233026977e3ff63ea3e0003/docs/roadmap.md#rm30-learned-policy-value-evaluation), with a target distinct from the current fixed-rule fit and from the value of one rule fitted on all rows. `LearnedRuleValue` implements Appendix B at one time point ([learned rules](technical-reference/point-treatment-tmle.md#learned-rules)). - Montoya, van der Laan, Luedtke, Skeem, Coyle & Petersen (2023), [*The optimal dynamic treatment rule superlearner: considerations, performance, and application to criminal justice interventions*](https://doi.org/10.1515/ijb-2020-0127), *International Journal of Biostatistics* 19(1):217–238, DOI 10.1515/ijb-2020-0127. Read first-hand in the publisher's version on PubMed Central, PMC10238854, on 2026-09-28. Section 3.3, Step 6, estimates the risk of a candidate rule learner by the CV-TMLE of the average, over folds, of the value of each training-fold rule. The article uses that quantity as a selection risk and gives no interval for it. - Montoya, van der Laan, Skeem & Petersen (2023), [*Estimators for the value of the optimal dynamic treatment rule with application to criminal justice interventions*](https://doi.org/10.1515/ijb-2020-0128), *International Journal of Biostatistics* 19(1):239–259, DOI 10.1515/ijb-2020-0128. Read first-hand in the publisher's version on PubMed Central, PMC9722979, on 2026-09-28. Section 2.4 defines the target as the average of the true values of the training-fold rules, and it assigns control at a zero blip. Section 3.2, Step 2(c), fits the update "on persons in the validation set". Section 4.1.3 asks that the fold rules converge "to some fixed rule ... at any rate". Section 4.2 gives the variance $(1/V) \sum_v \sigma^2_{n,v}$, conservative with a correctly specified parametric treatment model. Section 5.4.3 reports 93.9% coverage for this target. The article supports the target and the variance of [RM30](https://github.com/esbraun/cleverly-tmle/blob/4ce96cda2bda93ba9233026977e3ff63ea3e0003/docs/roadmap.md#rm30-learned-policy-value-evaluation), and [X11](roadmap.md#x11-learned-policy-follow-ups) part (h) cites its fold-specific update. - Luedtke & van der Laan (2016), [*Super-learning of an optimal dynamic treatment rule*](https://doi.org/10.1515/ijb-2015-0052), *International Journal of Biostatistics* 12(1):305–332, DOI 10.1515/ijb-2015-0052. Read first-hand in the NIH author manuscript PMC6056197 on 2026-09-26, and its section structure again on 2026-09-28. Sections 4.1 to 4.3 give the blip and weighted-classification losses for a rule learner, and Section 6 gives the CV-TMLE of a rule's risk. It gives no interval for the value. [X11](roadmap.md#x11-learned-policy-follow-ups) part (g) cites it. - Luedtke & van der Laan (2016), [*Statistical inference for the mean outcome under a possibly non-unique optimal treatment strategy*](https://doi.org/10.1214/15-AOS1384), *Annals of Statistics* 44(2):713–742, DOI 10.1214/15-AOS1384. Read first-hand on 2026-09-26, 2026-09-27 and 2026-09-28 in the IMS reprint arXiv:1603.07573, whose pagination differs from the journal, so the locators are section numbers. The paper gives the pathwise differentiability condition for the population optimal-rule value. Section 4.1 states that at an exceptional law the rule estimate is not expected to converge to any fixed function, and that it fluctuates where the blip is zero. [F27](roadmap.md#f27-learned-policy-value-outside-the-published-conditions) cites Section 4.2 for a tool that the paper applies to the optimal value only. A learned optimal rule does not always require a first-order rule-estimation term; non-unique optima can cause nonregularity. The package's generic `Rule` path does not implement this optimal-value analysis. [RM28](https://github.com/esbraun/cleverly-tmle/blob/4ce96cda2bda93ba9233026977e3ff63ea3e0003/docs/roadmap.md#rm28-declared-densities-of-user-written-interventions) requires the `rule_kind="known"` declaration instead. The rest of this entry gives the package's own reasoning for its threshold witness, not a result of the paper. The witness uses a continuous covariate. On finite support, a threshold between support points stays locally constant, so its derivative is zero. A threshold at a support point can be discontinuous. In both witness laws, the treatment effect at the rule's node is 1 at every covariate value. The optimal rule therefore always treats. The witness rule uses a sample threshold. The paper's optimal-value result does not supply the curve for this threshold rule. - Scott (1979), *On optimal and data-based histograms*, *Biometrika* 66(3):605–610, DOI [10.1093/biomet/66.3.605](https://doi.org/10.1093/biomet/66.3.605). The bin width that minimises the integrated squared error of a histogram shrinks as $n^{-1/3}$. The default `density_bins=None` follows that rate, `max(20, ceil(2 n^(1/3)))`. A growing count is necessary for a consistent binned density, and the hazard learner must also be consistent. The constant 2 is the Rice rule, which the source does not give. - Haneuse & Rotnitzky (2013), *Estimation of the effect of interventions that modify the received treatment*, *Statistics in Medicine* 32(30):5260–5277, DOI [10.1002/sim.5907](https://doi.org/10.1002/sim.5907). - Díaz, Williams, Hoffman & Schenck (2023), [*Nonparametric Causal Effects Based on Longitudinal Modified Treatment Policies*](https://doi.org/10.1080/01621459.2021.1955691), *Journal of the American Statistical Association* 118(542):846–857, DOI 10.1080/01621459.2021.1955691. The package implements the modified treatment policies of Definition 1 at a point treatment and at each node of a longitudinal plan. Theorem 1 gives the identification. Equation (3) gives the policy density of a piecewise map from each piece's inverse and its derivative. Section 5.4 gives the density ratio by stacked classification, which `ratio="classifier"` implements. Read first-hand in the [published PDF](https://epiresearch.org/wp-content/uploads/2024/04/Nonparametric-Causal-Effects-Based-on-Longitudinal-Modified-Treatment-Policies.pdf). Section 5.2, journal page 852, defines random, approximately equal row folds and a continuous outcome transform with known bounds. Section 5.2, Steps 1 to 4, journal pages 852 and 853, give the cross-fitted TMLE. Step 3 fits each node's fluctuation "using all the data points in the sample". That fit uses the out-of-fold predictions as offset and the out-of-fold cumulative density ratio as weight. Theorem 3, page 853, gives the TMLE limit under its stated conditions. The proof in Section 6 of the arXiv v4 supplement conditions on each fold's initial nuisance fit being fixed given its training data. The pooled fluctuation still depends on the full sample and is handled as a low-dimensional class. The shipped cross-fitted longitudinal estimator implements these steps, and the [cross-fitting section](technical-reference/longitudinal-tmle.md#cross-fitting-the-recursion) gives the mapping. The registered comparison uses `lmtp` 1.5.4, which targets within each training fold instead ([method evidence](technical-reference/method-evidence/cross-fitted-end-of-study-longitudinal-tmle.md)). Upstream commit [`9996b04`](https://github.com/nt-williams/lmtp/commit/9996b04dcbb3ae0b1ef8862097c36d95e9f2fcf9) changed that behavior on 2026-06-09. The commit calls the training-fold fluctuation a bug because the EIF was not mean zero. It moves the fluctuation to validation rows and adds a mean-EIF test. The forthcoming 1.5.5 [NEWS](https://nt-williams.r-universe.dev/lmtp/NEWS) records the same fix. Neither upstream version runs the pooled update, so agreement with 1.5.4 compares two constructions under the registered paired margins. Section 2, journal page 849, admits a random regime whose randomizer is drawn independently of the units and whose law does not depend on $P$, and it places the randomizer in $L_t$. Section 4, page 850, keeps the efficiency theory to a regime that does not depend on $P$. The [known stochastic policies](technical-reference/longitudinal-tmle.md#known-stochastic-policies) section integrates the randomizer out of the Theorem 3 estimator. Section 2, journal page 849, allows a random regime $d(a_t, h_t, \varepsilon_t)$ with a randomizer that is "(i) drawn independently across units and independently of U, and (ii) its distribution does not depend on P". The section then places the randomizer in $L_t$ "without loss of generality". Section 4, journal page 850, says "Efficiency theory in this paper focuses on functions d that do not depend on P (recall that the function is deterministic but allowed to take a randomizer as argument)". The [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) use these locators for part (c). The same article gives a second estimator in Section 5.3, journal page 854. The section is titled "Sequential Regression Estimator Using SDR Unbiased Transformations". The locators below come from it. | locator | content | | --- | --- | | Section 5.3, Step 2, page 854 | computes each row's transform with the nuisances of the fold that holds the row out, then fits each fold's regression "using only data points" in that fold's training rows | | Section 5.3, Step 3, page 854 | defines the estimate as an average of influence-function values, and not as a plug-in of a targeted regression | | Lemma 4, page 854 | gives "$2\tau$-multiply robust consistency of SDR estimator" | | Theorem 4, page 854 | gives weak convergence at the nonparametric efficiency bound | This entry paraphrases the conditions of Theorem 4 rather than quoting them. The typeset text omits an equals sign in one condition, and Theorem 3 on the facing page prints that sign. The authors remark on page 854 that Theorems 3 and 4 need the same rates for root-n consistency. They add that the SDR estimator does not seem to confer asymptotic advantages with respect to the TMLE. Theorem 3 certifies the pooled fluctuation that the shipped cross-fitted longitudinal TMLE runs. Theorem 4 covers the SDR estimator, and the supplement prints no proof of it. Step 2 is a stitched transform: a training row's transform reads the folds that hold that row out, so the transform is not fixed given the fold's training rows. Section 5.4 states that cross-fitting keeps the independences that the proofs of Theorems 3 and 4 need, and the proof of Theorem 3 (supplement Section 6) conditions on a fit fixed given its training rows. The shipped [`SDR`](technical-reference/longitudinal-tmle.md#the-sequentially-doubly-robust-estimator) therefore runs a training-fold recursion, which is fold-measurable. With ratios that do not depend on the fold, it equals `lmtp::cf_sdr`. Section 2, journal page 849, lets $A_t$ be a vector. The [vector treatments](technical-reference/point-treatment-tmle.md#vector-treatments) section and part (z) of the [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) use that locator. The classifier route of a vector rests on Theorem 1, Section 5.4 and Theorem 3. The density route applies Equation (3) to each conditional factor of a dose, which part (z) records as an extension. - Hoffman et al. (2024), [*Studying continuous, time-varying, and/or complex exposures using longitudinal modified treatment policies*](https://arxiv.org/abs/2304.09460), *Epidemiology* 35(5). Read first-hand in the arXiv v3 text. The Introduction names interventions on several exposures at once, and the eAppendix algorithms compute the ratio by classification at every node. The text requires an exposure that is discrete or, if it is continuous, piecewise smooth and invertible. The journal page numbers are not checked, so the docs cite the Introduction by name. - Luedtke, Sofrygin, van der Laan & Carone (2017), [*Sequential double robustness in right-censored longitudinal models*](https://arxiv.org/abs/1705.02459), arXiv:1705.02459 v2, dated 2018-05-17. Read first-hand for the SDR plan. Section 2, Definitions 1 to 3, separates double robustness from sequential double robustness. Section 3 and Algorithm 2 give the doubly robust unbiased transformation, and state that a transform does not necessarily obey the outcome bounds. Condition DC of Section 4 is the Donsker-type condition that an in-sample `SDR` fit rests on. - Rotnitzky, Robins & Babino (2017), [*On the multiply robust estimation of the mean of the g-functional*](https://arxiv.org/abs/1705.08582), arXiv:1705.08582 v1. Read first-hand for the SDR plan. Section 4.7.1, Lemma 2, writes the bias as a sum of terms, each zero if either nuisance at its node is right. Section 5, Algorithm 6, builds every nuisance and the multiply robust outcome inside the training sample. The paragraph after Equation (72) calls the rate of that construction a conjecture, because of dependence within the training sample. Section 7.5 proposes multi-layer cross-fitting. The `SDR` contract assumes the rate, as Theorem 4 does. The cross-fitted longitudinal MSM projection runs Steps 1 to 4 for every regimen and horizon cell at once. Its stacked fluctuation solves the projected equations rather than each cell's own score, so the [longitudinal projection](technical-reference/msm-projections.md#the-longitudinal-projection) states the remainder argument. The [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) record it as part (l). [arXiv v4](https://arxiv.org/abs/2006.01366v4) matches these algorithm details. It has Sections 5.2 and 5.3, the all-row pooling clause, the influence-function average, and Lemma 4. The published article supplies the journal page locators above. The package no longer stratifies the first-node split, which the [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) record. - van der Laan & Rose (2011), *Targeted Learning: Causal Inference for Observational and Experimental Data*, Springer. Chapter 12 covers marginal structural model targets. The table records adjacent sources checked for the RM13, RM27, and RM28 function declarations. Each source supports its own estimator. None supplies inference for every function admitted by the public `Intervention`, `Rule`, `DynamicRegimen`, or `MSM` callables. | source | supported construction | limit for these declarations | | --- | --- | --- | | R Journal [CIMTx](https://journal.r-project.org/articles/RJ-2022-058/), TMLE subsection | multi-arm treatment effects, with `tmle` calls and bootstrap intervals | no learned rule, user-written intervention density, or learned MSM design | | R Journal [PSweight](https://journal.r-project.org/articles/RJ-2022-011/), Section 2.6 | a sandwich variance that includes fitted parametric propensity and outcome scores for weighted potential-outcome means | a different target and score. The article says its variance omits nuisance-estimation uncertainty when flexible models or external fits supply them | | [Martin, Santacatterina and Díaz (2024)](https://arxiv.org/html/2409.18782v1), Definition 1 | a longitudinal MSM projection with a user-given design transformation and projection distribution | no derivative for a design centred at the analysis sample's mean | | [Kennedy (2019)](https://arxiv.org/html/1704.00211v3), Section 3.3, and [de Aguas (2026)](https://arxiv.org/html/2511.11353) | influence functions for specified propensity-dependent intervention families | each family has its own derivative. Neither supplies one for an arbitrary user-written density | ## Known treatment mechanisms The contract of a declared known mechanism, in [known treatment mechanism](technical-reference/point-treatment-tmle.md#known-treatment-mechanism), reads these sources. Each was read first-hand in the copy named. | source | copy read | locator and content | | --- | --- | --- | | Moore & van der Laan (2009), *Covariate adjustment in randomized trials with binary outcomes: targeted maximum likelihood estimation*, *Statistics in Medicine* 28(1):39–64, DOI 10.1002/sim.3445 | the PubMed Central author manuscript, [PMC2857590](https://pmc.ncbi.nlm.nih.gov/articles/PMC2857590/). The publisher's version was not accessible, so its section numbers are not checked | Section 2: with a known mechanism the TMLE "is always consistent whatever the estimator for Q". Section 5: with the true mechanism, inference "is not conservative", and with an estimated one it is conservative. Section 4.2 states that estimating the mechanism increases efficiency when the outcome model is wrong. Section 7.3, Table IV, measures it with a parametric logistic mechanism: relative efficiency about 1.45 and coverage 0.98. The manuscript's own cross-references disagree with its numbering in two places | | Hahn (1998), *On the role of the propensity score in efficient semiparametric estimation of average treatment effects*, *Econometrica* 66(2):315–331 | the published abstract only. The full text was not accessible | the abstract states that the propensity score is ancillary for the ATE and not for the ATT. The numbering "Theorem 1, unknown score; Theorem 2, known score" comes from Liu & Qin (arXiv 2205.13200), Section 2.2, and is not checked first-hand | | van der Laan & Gruber (2012), *Targeted minimum loss based estimation of causal effects of multiple time point interventions*, *The International Journal of Biostatistics* 8(1) | the publisher's PDF | Section 2.3, page 12: the canonical gradient is the same in the model with $g_0$ known. Theorem 2, page 13: $P_0D^*(\bar Q, g, \Psi(\bar Q_0)) = 0$ if $\bar Q = \bar Q_0$ or $g = g_0$. Section 4, page 19: with $g_n = g_0$ the TMLE is asymptotically linear with curve $D^*(\bar Q^*, g_0, \psi_0)$ at the possibly misspecified limit. The paper does not write the remainder as a sum of terms in $(g - g_0)$; that form is a derivation | | Petersen, Schwab, Gruber, Blaser, Schomaker & van der Laan (2014), *J. Causal Inference* 2(2):147–185 | the publisher's PDF | Section 2.1, page 152: the model may assume a known intervention mechanism. Appendix B, Corollary 1, page 180: $-P_0D^*(Q, g_0) = \Psi(Q) - \psi_0$. Section 3.7, page 162: a maximum-likelihood mechanism in a correctly specified model gives the projected curve and a conservative interval | | Kennedy (2019), *JASA* 114(526):645–656 | [arXiv v3](https://arxiv.org/abs/1704.00211). The journal numbering is not checked | Theorem 2 and Corollary 2, Section 3.3: the incremental curve and its mechanism term. After Corollary 2: "If the propensity scores were known, the efficient influence function would just be the first weighted average term." Lemma 2, Section 8.2, gives the curve of a known stochastic intervention | | Benkeser, Carone, van der Laan & Gilbert (2017), *Biometrika* 104(4):863–880 | the publisher's version in PubMed Central, PMC5793673 | Theorem 1, Section 3.2, under "either $\bar Q = \bar Q_0$ or $g = g_0$". Step 6 of the algorithm of Section 3.2 fluctuates $g$ along $\bar Q_r / g$. Section 4 notes that $g_0$ "may be known to the experimenter" in a randomized trial | Tsiatis, Davidian, Zhang & Lu (2008), *Statistics in Medicine* 27(23):4658–4677, DOI 10.1002/sim.3113, was read in its author manuscript. This page does not cite it for the efficiency claim. Its estimators use the sample proportion of the treated, and Section 3 states only that they are consistent for any working model. ## Grouped folds and clustered cross-fitting A declared `id=` makes the cluster the independent unit, and it makes the outer split a draw of whole clusters. The sources below were read for that composition. The [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) carry the audit table and the verdicts. This section gives each source in full. Each entry names the version whose locators it gives. A locator is only meaningful against a named version. Numbering can move between an author manuscript and the published article. The Díaz, Williams, Hoffman and Schenck (2023) entry above gives the worked case. arXiv versions v1 and v2 number its estimator section as Section 4 and its SDR lemma as Lemma 3. Versions v3 and v4 match the published article, with Section 5 and Lemma 4. The theorem numbers match across all four preprint versions and the article. Internal pagination moves with the version as well. Most entries below name an author manuscript, a preprint or an online-first PDF as the copy this project read. Each of those paginates differently from the published issue. So no entry in this section quotes an internal page number. The Díaz entry sits in a different section. It quotes journal pages because it names the published article as the copy this project read. - Wang, Park, Small & Li (2024), [*Model-Robust and Efficient Covariate Adjustment for Cluster-Randomized Experiments*](https://doi.org/10.1080/01621459.2023.2289693), *Journal of the American Statistical Association* 119(548):2959-2971, DOI 10.1080/01621459.2023.2289693. Read first-hand in the NIHMS author manuscript ([PMC11795269](https://pmc.ncbi.nlm.nih.gov/articles/PMC11795269/)), which carries the published volume, issue, pages and DOI. Section 4.2 partitions "m clusters into K parts with roughly equal sizes (the size difference is at most 1)". That is the law a grouped `random_partition` draw follows. Remark 3, in Section 4.2 of the accepted manuscript, contrasts about 20 clusters with about 100, and it recommends parsimonious working models at about 20. The preprint arXiv:2210.07324v3 gives no counts in that remark. Roadmap item [X54](roadmap.md#x54-small-sample-evidence-for-clustered-intervals-and-boundary-nodes) part (h) cites the remark. Theorem 4(b) gives asymptotic normality and the efficiency bound when the nuisance estimators converge at the fourth root of the cluster count. The estimator is AIPW-type with a cluster-level treatment under cluster randomization, and not a TMLE with a row-level treatment. Remark 5 says a stratified cluster randomization needs treatment balance within each stratum of each fold, and it defers that construction to Rafi (2023). This source supports the split law. It does not prove the package's estimator. Section 2, Assumption 1(b), reads "The source population size $N_i$ follows an unknown distribution $\mathcal P_N$ over a finite support". So the cluster size is a bounded random cluster attribute. Section 2 defines the individual-average mean $\mu_I(a) = E\{\sum_{j=1}^{N_i} Y_{ij}(a)\}/E(N_i)$, which is a ratio of two cluster-level means. Assumption 3 lets the observed cluster size depend on the arm and on the cluster attributes. Section 4.2, Equation (2), estimates $\mu_I(a)$ by a ratio of cluster sums. The Section 5.1 simulation design, in the paragraph after the method list, multiplies the variance by $m/(m-5)$ and uses a $t$ reference with $m-5$ degrees of freedom, "where 5 is the number of adjusted baseline covariates" of its parametric working models. Remark 3, in Section 4.2 after Theorem 4, recommends machine learning only "when the number of clusters is sufficiently large, e.g., m = 100". It adds: "With a small number of clusters, e.g., m = 20, we caution against using complex working nuisance models, and instead recommend parsimonious parametric nuisance models". The Discussion points to "Remark 3" for the identifiability of the cluster-average effect, and that content is in Remark 4. This project cites the remarks by their content. The [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) use these locators for part (g). - Chiang, Kato, Ma & Sasaki (2022), [*Multiway Cluster Robust Double/Debiased Machine Learning*](https://doi.org/10.1080/07350015.2021.1895815), *Journal of Business and Economic Statistics* 40(3):1046-1056, DOI 10.1080/07350015.2021.1895815. Read first-hand in the Taylor and Francis online-first PDF, whose pagination differs from the issue, so the locators are sections. Sections 3.1.2 and 3.2 and Algorithm 1 partition the cluster indices at random into equal parts. Assumptions 1 and 3(i) and Theorem 1 give the result. It covers two-way clustering and linear Neyman-orthogonal DML scores. It has no stratification, no TMLE, and no one-way theorem. - Park & Kang, [*A More Efficient, Doubly Robust, Nonparametric Estimator of Treatment Effects in Multilevel Studies*](https://arxiv.org/abs/2110.07740), arXiv:2110.07740. Read first-hand in v3, which version 4 supersedes. Section 3.3 splits "at the cluster level instead of at the individual-level". Supplement A.1, Theorem A.1 under its modified condition (M1), gives the result for independent clusters of bounded size. It weights cluster averages, which equals row weighting only at equal cluster sizes. It is an unrefereed AIPW or DML result rather than a TMLE. - Karim (2026), [*Cross-Fitted Survey-Weighted TMLE with Design-Based Variance for Causal Machine Learning*](https://arxiv.org/abs/2606.30918), arXiv:2606.30918. Read first-hand in the v2 main text. The proofs are in a web appendix this project did not read. Section 3.3 and condition (C2) ask that folds be "formed of whole PSUs, assigned by a data-independent rule and balanced within every stratum". Theorems 1 and 2 give the result. This is the closest estimator read: a row-level TMLE with a pooled fluctuation. Its strata are survey sampling strata, and (C2) excludes treatment strata. It does not derive a longitudinal sequential estimator. The preprint is unrefereed. - Nugent, Kakande, Chamie et al. (2024), [*Causal Inference in Randomized Trials with Partial Clustering*](https://arxiv.org/abs/2406.04505v2), arXiv:2406.04505v2. Section 2.3 groups splits by independent cluster and aggregates cluster influence curves for a participant-weighted TMLE. It names R `ltmle` with `id=` as one variance implementation. The trial has partial clustering and point treatment. It does not derive this package's cross-fitted longitudinal recursion or its variance. The [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) and [longitudinal clusters](technical-reference/longitudinal-tmle.md#clusters) state the step the package takes. - Balkus, Laith & Hejazi (2026), [*On the use of cross-fitting in causal machine learning with correlated units*](https://arxiv.org/abs/2601.10899v3), arXiv:2601.10899v3. The paper shows that splitting correlated units across folds can still remove a key empirical-process term under its conditions. It gives no variance result for this package's longitudinal TMLE. Whole clusters remain the package's supported fold design, not a universal cross-fitting requirement. - Zeileis, Köll & Graham (2020), [*Various Versatile Variances: An Object-Oriented Implementation of Clustered Covariances in R*](https://www.jstatsoft.org/article/view/v095i01), *Journal of Statistical Software* 95(1). The paper treats clustered sandwich estimators and small-sample corrections for regression models. It does not supply a TMLE or grouped longitudinal theorem. - Benitez, Petersen, van der Laan, Santos, Butrick, Walker, Ghosh, Otieno, Waiswa & Balzer (2023), [*Defining and estimating effects in cluster randomized trials: A methods comparison*](https://doi.org/10.1002/sim.9813), *Statistics in Medicine* 42(19):3443-3466, DOI 10.1002/sim.9813. Read first-hand in the NIHMS author manuscript ([PMC10898620](https://pmc.ncbi.nlm.nih.gov/articles/PMC10898620/)). The package cites it as Benitez et al. (2023). The hard-stop review read the preprint arXiv:2110.09633v3, Sections 2, 3.1.2 and 3.2.1, which recommend a $t$ reference with $J - 2$ degrees of freedom. Section 3.2.1, Hierarchical TMLE, gives the cluster-sum aggregation for a row-weighted estimand. Section 3.1.2 aggregates the data to the cluster level first, and it estimates a cluster-level estimand. Section 3.2.1 states that sample splitting and variance estimation "must respect the cluster as the independent unit". The paper gives no fold law and no theorem for one. Two passages recommend a $t$ reference with $J - 2$ degrees of freedom, where $J$ is the cluster count. The paragraph on inference in Section 3.1.2 gives it "As a finite sample approximation to the normal distribution". The last paragraph of Section 3.2.1 repeats it. The paper states no threshold, and it does not compare the normal reference with $t$. The paper mentions 30 clusters twice, and neither passage concerns the reference distribution. Section 3.1.2 recommends leave-one-cluster-out cross-validation "for small trials (eg, J≤30)". Section 6 cites a warning against GEE with fewer than 30 clusters. - Balzer, Zheng, van der Laan & Petersen (2019), [*A new approach to hierarchical data analysis: Targeted maximum likelihood estimation for the causal effect of a cluster-level exposure*](https://doi.org/10.1177/0962280218774936), *Statistical Methods in Medical Research* 28(6):1761-1780, DOI 10.1177/0962280218774936. Read first-hand in the NIHMS author manuscript ([PMC6173669](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6173669/)). Section 3.1, Equation (9), and Section 4.2, Equations (20) and (21), give a cluster-level exposure and a cluster-level estimand. There is no cross-fitting and no split law. - Balzer, van der Laan & Petersen (2016), [*Adaptive pre-specification in randomized trials with and without pair-matching*](https://doi.org/10.1002/sim.7023), *Statistics in Medicine* 35(25):4528-4545, DOI 10.1002/sim.7023. Read first-hand in the NIHMS author manuscript ([PMC5084457](https://pmc.ncbi.nlm.nih.gov/articles/PMC5084457/)). Sections 3.1, 4.1, 5.1 and 6 select an adjustment variable by cross-validation over independent units, where a row is a cluster, in a randomized trial with a fixed GLM library. There is no post-selection theorem and no row-level C-TMLE. - Balzer, van der Laan, Ayieko, Kamya, Chamie, Schwab, Havlir & Petersen (2023), [*Two-Stage TMLE to reduce bias and improve efficiency in cluster randomized trials*](https://doi.org/10.1093/biostatistics/kxab043), *Biostatistics* 24(2):502-517, DOI 10.1093/biostatistics/kxab043. Sections 3.2 and 3.3 give a two-stage cluster-level estimator. There is no cross-fitting. - Nugent, Marquez, Charlebois, Abbott & Balzer (2024), [*Blurring cluster randomized trials and observational studies: Two-Stage TMLE for subsampling, missingness, and few independent units*](https://doi.org/10.1093/biostatistics/kxad015), *Biostatistics* 25(3):599-616, DOI 10.1093/biostatistics/kxad015. Read first-hand in the published version ([PMC11247188](https://pmc.ncbi.nlm.nih.gov/articles/PMC11247188/)). The hard-stop review read the preprint arXiv:2208.09508, whose version number is not printed, at the Introduction, Section 2.2 and the Section 3.1 discussion. Section 2 treats subsampling and missingness, with the estimator in Section 2.1.3. Section 3 treats few independent units. There is no cross-fitting. The last paragraph of Section 2.2 recommends a $t$ reference with $J - 2$ degrees of freedom, where $J$ is the cluster count. The paper writes $N$ for the cluster count: "In CRTs with fewer than 40 clusters randomized (N < 40)". It cites Hayes and Moulton (2009). The paper does not compare the normal reference with $t$. Section 1 mentions 30 clusters only in a discussion of GEE and GLMM. This project did not read Hayes and Moulton (2009). - Schnitzer, van der Laan, Moodie & Platt (2014), [*Effect of breastfeeding on gastrointestinal infection in infants: A targeted maximum likelihood approach for clustered longitudinal data*](https://doi.org/10.1214/14-AOAS727), *The Annals of Applied Statistics* 8(2):703-725, DOI 10.1214/14-AOAS727. Read first-hand in the [arXiv reprint](https://arxiv.org/abs/1407.8371), which reproduces the journal text. Section 3.4.1 gives a clustered longitudinal TMLE with a sandwich variance and no sample splitting. There is no cross-fitting theorem. No source above covers treatment-stratified grouped folds for an observational estimator, and the package refuses them. None covers cross-fitted longitudinal TMLE with whole-cluster folds directly. The package ships it as a natural extension of Díaz, Williams, Hoffman and Schenck (2023), Theorem 3, with the cluster as the unit ([longitudinal clusters](technical-reference/longitudinal-tmle.md#clusters)). The grouped point-treatment split rests on Wang et al. (2024) for the partition, and on the package's own estimating-equation argument for the rest. The [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) state that argument with its four conditions. The registered [clustered point-treatment CV-TMLE study](technical-reference/method-evidence/clustered-point-treatment-cv-tmle.md) is the only empirical witness for it. The pinned comparators aggregate a clustered curve in two ways at unequal cluster sizes. Each locator below is in the source tarball or commit that the repository's Dockerfiles pin. | comparator | locator | aggregation and reference | | --- | --- | --- | | R `ltmle` 1.3-0 | `R/ltmle.R`, lines 1025 to 1032 (`HouseholdIC`), 1063 and 1356; lines 1442 to 1448 (`GetPValue`) and 1608 to 1616 (`GetCI`) | the cluster sum of the curve times $J/n$, with variance over $J$. That equals this package's variance. A Student $t$ reference with $J-1$ degrees of freedom below 100 clusters, normal above | | R `tmle` 2.1.1 | `R/tmle.R`, lines 1555 to 1568 | `by(IC, id, mean)`, the cluster mean of the curve, with variance over $J$, and `qnorm` | | R `tmle3` at `ed72f8a` | `R/utils.R`, lines 44 to 48 and 59 | `by(IC, task$id, colMeans)`, the cluster mean, and a normal reference | | R `lmtp` 1.5.4 with `ife` 0.2.3 | the `ife` entry under longitudinal models | the cluster mean, and a normal reference | | R `drtmle` 1.1.2 at `538a3a2` | no cluster argument | not applicable | At equal cluster sizes the cluster mean and the cluster sum give the same variance. At unequal sizes only the cluster sum is the delta-method variance of the row mean ([unequal cluster sizes](technical-reference/inference.md#unequal-cluster-sizes)). ## Collaborative TMLE - Schnitzer, Lok & Gruber (2016), [*Variable selection for confounder control, flexible modeling and collaborative targeted minimum loss-based estimation in causal inference*](https://doi.org/10.1515/ijb-2015-0017), *The International Journal of Biostatistics* 12(1):97–115, DOI 10.1515/ijb-2015-0017. Read first-hand in the [publisher PDF](https://www.degruyterbrill.com/document/doi/10.1515/ijb-2015-0017/pdf?licenseType=free). Section 5.3, Table 3 and the following discussion report that ordinary influence-curve standard errors underestimate sampling spread and yield undercoverage for TMLE and C-TMLE with Super Learner in some simulated settings. These are empirical warnings about variance calibration, not a result for this package's global stopping-index selector or its joint targets. - van der Laan & Gruber (2010), [*Collaborative double robust targeted maximum likelihood estimation*](https://pmc.ncbi.nlm.nih.gov/articles/PMC2898626/), DOI 10.2202/1557-4679.1181. Section 2.4 selects candidate depth by cross-validated targeted loss. Theorem 2 establishes a population mean-zero identity and collaborative consistency when the outcome regression is correct; it does not establish the variance of the fitted estimator at a fixed inconsistent mechanism. Theorem 4 assumes both the required mean-zero rate and the expansion that defines the adaptive-mechanism influence contribution. It does not derive that expansion for the candidate-depth selector. Section 4.1 proposes a parametric delta method for a selected parametric mechanism model. Section 4.3 records random cross-validation over-selection and leaves its irregularity as an open area. - van der Laan (2014), [*Targeted estimation of nuisance parameters to obtain valid statistical inference*](https://doi.org/10.1515/ijb-2012-0038), DOI 10.1515/ijb-2012-0038. It targets both nuisance estimators and solves extra score equations for a binary treatment-specific mean. The shipped selector does not perform those targeting steps. This entry gives no section locator, because the RM19 review could not read the journal version, and the [DR-TMLE entry](#doubly-robust-inference-drtmle) for the same article states why. - Gruber & van der Laan (2010), [*An application of collaborative targeted maximum likelihood estimation in causal inference and genomics*](https://pmc.ncbi.nlm.nih.gov/articles/PMC3126668/), DOI 10.2202/1557-4679.1182. - Ju, Chambaz & van der Laan (2018), [*Collaborative targeted inference from continuously indexed nuisance parameter estimators*](https://arxiv.org/abs/1804.00102). Read first-hand. Theorem 1 permits an additional influence contribution along a twice-differentiable nuisance path for a binary scalar target; Lemma 2 makes that contribution zero in an important correct-outcome, product-rate regime. Separately, the estimator solves extra derivative-score equations and uses an undersmoothing condition. It does not cover the package's discrete selector paths, nested folds, or joint target vectors. Corollary 4 (Section 3.6, preprint page 15) gives the expansion of the paper's LASSO-C-TMLE. Its extra term $\Delta(P_1)$ is zero by Lemma 2 under a consistent outcome regression and a product rate. The paper gives no estimator of the term otherwise. Section 5.3 estimates the variance with the empirical variance of $D^*$, and Section 5.4 reports that those intervals fail to cover except at large `n`. The `lasso` strategy lies outside the corollary's conditions: its index is a discrete grid, and its stop rule, index rule and final step are the package's own. Section 4.2 (preprint page 17) states the goal of the derivative strategy of `CTMLE`. The first display solves $P_n d_h D^*(\bar{Q}^*, G_{n,\cdot}) = 0$ together with $P_n D^* = 0$. Steps 1 to 3 define LASSO-PSEUDO-C-TMLE: the cross-validated penalty, its nearest grid neighbour, and one fluctuation along display (33). Display (33) prints the second direction as $C(G)\,G'$. The goal needs $d_h C(G_h)$, which display (19) gives as $-G'/\ell G^2$. The two directions differ by a row-varying factor. The package fits the derivative of the clever covariate, as R `ctmle` does, and the [C-TMLE0 section](technical-reference/collaborative-tmle.md#c-tmle0-the-derivative-covariate) records this as reading D2. Section 5.3 applies Corollary 4 to the pseudo estimator, but that estimator uses the cross-validated penalty and a finite difference, which Corollary 4 does not cover. - Ju, Gruber, Lendle, Chambaz, Franklin, Wyss, Schneeweiss & van der Laan (2019), [*Scalable collaborative targeted learning for high-dimensional data*](https://pmc.ncbi.nlm.nih.gov/articles/PMC6086775/), *Statistical Methods in Medical Research* 28(2):532-554, DOI 10.1177/0962280217729845, PMID 28936917. Sections 4.1 through 5 define the general, greedy, and preordered binary-ATE paths. Section 7.4 forms each interval from the ordinary efficient influence curve. Read first-hand in the [author preprint](https://arxiv.org/pdf/1703.02237). Algorithm 1, PDF page 6, selects a candidate by cross-validated loss. Section 5.5, PDF pages 10–11, selects the pre-ordering and the number of covariates with one cross-validation. To save computation, the authors "do not rely on a nested cross-validation procedure to select k for each pre-ordering strategy m". The source does not describe inner folds that cross-fit nuisances within each selection-training fold, as the shipped selector does. It specifies no fold rule for the shipped selector at all. The selector now draws both layers unstratified, which the [fold and outcome-scale rules](technical-reference/cv-tmle.md#fold-and-outcome-scale-rules) record. - Ju, Schwab & van der Laan (2019), [*On adaptive propensity score truncation in causal inference*](https://doi.org/10.1177/0962280218774817), *Statistical Methods in Medical Research* 28(6):1741-1760, DOI 10.1177/0962280218774817. Read first-hand in the preprint, [arXiv:1707.05861v1](https://arxiv.org/abs/1707.05861), and the published numbering may differ. Section 3.3.2 selects a propensity truncation level with C-TMLE. The preprint states no theorem. Section 4.5 reports that the estimated variance of CV-TMLE, MV-TMLE, and C-TMLE was smaller than the true variance in its experiments. - Gruber, Phillips, Lee & van der Laan (2022), [*Data-adaptive selection of the propensity score truncation level for inverse-probability-weighted and targeted maximum likelihood estimators of marginal point treatment effects*](https://doi.org/10.1093/aje/kwac087), *American Journal of Epidemiology* 191(9):1640-1651, DOI 10.1093/aje/kwac087. The paper distinguishes the causal positivity assumption from finite-sample instability caused by estimated probabilities near a boundary. That distinction governs the RM18 learner-weight diagnostic's terminology. - Ju, Wyss, Franklin, Schneeweiss, Häggström & van der Laan (2019), [*Collaborative-controlled LASSO for constructing propensity score-based estimators in high-dimensional data*](https://doi.org/10.1177/0962280217744588), *Statistical Methods in Medical Research* 28(4):1044-1063, DOI 10.1177/0962280217744588. Read first-hand in the preprint, [arXiv:1706.10029v1](https://arxiv.org/abs/1706.10029), and the published numbering may differ. Section 4.2 states that the C-TMLE estimator is asymptotically linear under regularity conditions and cites earlier work for it. The data analysis in Section 7 forms its intervals from the analytic influence curve. The paper states no post-selection theorem. The section 4.2 display (preprint page 7) defines the lasso candidate. Appendix A, Algorithm 1 (preprint page 23), gives the indexed construction rule in steps 5 to 12 and the final step in steps 13 to 16. That final step fluctuates the selected candidate's initial fit. The `lasso` strategy of `CTMLE` follows steps 5 to 12. In the final step it fluctuates the targeted fit, as R `ctmleGlmnet` does. The second bullet of Section 4.2, equation (6) (preprint page 8), defines C-TMLE0. It is the TMLE with one extra fluctuation direction, the derivative of the clever covariate in the penalty. Appendix B, Algorithm 2 (preprint pages 23 to 24), states the same steps with a finite difference. Its printed treated-arm term lacks the square that equation (6) carries. The derivative strategy follows equation (6). Its interval rests on the TMLE results of van der Laan and Rubin (2006) and Zheng and van der Laan (2011), because the extra columns leave the efficient influence curve equation solved. - Liu (2018), [*Contributions to evolutionary dynamics and causal inference*](https://nrs.harvard.edu/urn-3:HUL.InstRepos:41129186), Harvard University dissertation. Chapter 2 derives asymptotic laws for C-TMLE coefficients, squared errors, prediction risks and M-fold cross-validation risks, and studies post-selection AMSE for a binary treatment-specific mean. The construction assumes the propensity candidates, outcome variance and covariate law are known. Its practical post-selection AMSE is obtained by Monte Carlo rather than an analytic formula, and the dissertation leaves practical longitudinal and high-dimensional extensions to future work. It does not establish inference for the package's learned nuisances, discrete stopping rule or joint targets. - Dang, Tarp, Abrahamsen et al. (2025), [*Experiment-selector cross-validated targeted maximum likelihood estimator for hybrid RCT-external data studies*](https://doi.org/10.1515/jci-2024-0041), *Journal of Causal Inference* 13:20240041, DOI 10.1515/jci-2024-0041, preprint [arXiv:2210.05802](https://arxiv.org/abs/2210.05802). Read first-hand. The construction performs experiment selection in each training fold and effect estimation in its held-out fold. It derives a nonstandard limit and Monte Carlo intervals for that selector. It is positive precedent for a fold-local selection redesign, but it does not cover the package's targeted-loss criterion, global shared stopping index or target family. The authors provide the R package [`EScvtmle`](https://cran.r-project.org/package=EScvtmle). - van der Laan, Qiu, Tarp & van der Laan (2026), [*Adaptive-TMLE for the average treatment effect based on randomized controlled trial augmented with real-world data*](https://doi.org/10.1515/jci-2024-0025), *Journal of Causal Inference* 14:20240025, DOI 10.1515/jci-2024-0025, preprint [arXiv:2405.07186](https://arxiv.org/abs/2405.07186). The paper proves asymptotic normality for its adaptive working-model estimator. It is adjacent to F18, and not a result for the shipped collaborative selector. - Karim (2026), [*When Does Real-World Data Make a Randomized Trial More Efficient? Selection-Aware Inference for Adaptive-TMLE*](https://arxiv.org/abs/2607.02787), arXiv:2607.02787. This entry records a simulation caution. It reports undercoverage for selection-unaware standard errors and studies a block jackknife in its RCT augmentation setting. It supplies no F18 theorem. Three 2019 *SMMR* papers have Cheng Ju as first author. The Ju, Gruber et al. entry above is volume 28(2), DOI 10.1177/0962280217729845. The Ju, Schwab and van der Laan entry is also volume 28(6), and the Ju, Wyss et al. entry is volume 28(4). Cite each one with its second author. - Ju, Benkeser & van der Laan (2020), [*Robust inference on the average treatment effect using the outcome highly adaptive lasso*](https://arxiv.org/abs/1806.06784), *Biometrics* 76(1):109-118, DOI 10.1111/biom.13121. This is another adaptive-propensity construction with explicit estimating equations and inference. It does not cover a generic selected candidate depth. Read first-hand in arXiv:1806.06784v3, and the published numbering may differ. Theorem 1, in Section 3.4 on PDF page 17, gives the influence function $D(O \mid \bar Q_0, \bar G(\bar Q_0), Q_0) - D_r(O \mid \bar Q_0, \bar G_{r,0})$. The second term is first order, and the authors attribute it to "the intentional inconsistent estimation" of the propensity. It vanishes when the propensity limit equals the true propensity. The shipped C-TMLE intervals carry no such term. - Benkeser, Cai & van der Laan (2020), [*A nonparametric super-efficient estimator of the average treatment effect*](https://doi.org/10.1214/19-STS735), DOI 10.1214/19-STS735 ([published PDF](https://projecteuclid.org/journals/statistical-science/volume-35/issue-3/A-Nonparametric-Super-Efficient-Estimator-of-the-Average-Treatment-Effect/10.1214/19-STS735.pdf), [Supplement A](https://projecteuclid.org/journals/supplementalcontent/10.1214/19-STS735/suppdf_1.pdf), [preprint](https://arxiv.org/abs/1901.05056)). Theorem 1 derives asymptotic linearity with the usual TMLE curve evaluated at the adaptive propensity limit for a treatment-specific mean. Its six regularity conditions require the relevant score to be negligible, quarter-rate convergence of the outcome and adaptive-propensity estimators, influence-curve convergence, smoothness, a higher-order remainder, and an empirical-process condition. Section 3.1 gives a cross-validated variance construction in which each fold's outcome and adaptive propensity are both learned without that fold's rows. No separate first-order generated-design term appears in the theorem's influence function. Section 3.1 of the [author preprint](https://arxiv.org/pdf/1901.05056), PDF page 9, randomly partitions rows into approximately equal folds for variance estimation. It gives no treatment- or outcome-stratified selection-fold rule. Appendix D explicitly constructs the binary ATE with one propensity fit on `(Qbar(1, W), Qbar(0, W))` and sketches a cross-validated C-TMLE. It does not derive treatment with more than two levels, the shipped joint all-arm fluctuation and covariance, or simultaneous inference. The published article and supplement are open, and this audit checked Theorem 1. The article points to Appendix G for the conditions while Supplement A labels that material Appendix F; this appears to be an internal cross-reference error. The author preprint (arXiv:1901.05056), Appendix D, subsection "Cross-validated CTMLE", printed page 26, was read first-hand. It fits $\bar Q^0_{n,v}$ and $\bar G^0_{n,v}(\cdot\mid\bar Q^0_{n,v})$ in each training sample. It finds one $\epsilon_n$ "by pooling over the validation samples". It states that sample splitting can "avoid the Donsker class condition in regularity condition (iv)". It calls the proof "completely analogous to" the CV-TMLE proof of Zheng and van der Laan (2011), combined with its own appendix proof. The [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) use this locator for part (k). The X17 row (2026-10-07) read preprint v1 first-hand for the per-arm design. The Remark on page 10 states the ATE route: "repeating the entire procedure but switching the labeling of the treatment". The proof on pages 30-31 splits the remainder into $R_{21}$ to $R_{24}$, and $R_{24}$ is the generated-regressor term that conditions (ii), (iii), (v) and (vi) make second order. Condition (v), on page 33, bounds a derivative of $P(A = 1 \mid \bar Q_n, \bar Q_0)$ in $\bar Q_0$. Page 33 calls it "a technical condition" that is sufficient and not necessary. It fails for a root-$n$ outcome regression on a continuous $W$, so $R_{24}$ is first order, and the per-arm study measured the resulting deficit. Section 4.1, page 12, reports that "the estimated standard errors of CTMLE had poor performance, often underestimating the true variability of the estimator". The Discussion, pages 17-18, calls the estimator "an irregular estimator" and notes "the poor behavior of the confidence intervals in both simulations". The published article was not reachable from this environment during X17. The RM5 audit above read it, but it recorded no page locators. So the [per-arm contract](technical-reference/collaborative-tmle.md#the-per-arm-outcome-adaptive-design) cites the preprint locators and says so. The preprint also names "Appendix 17" on page 3 and "Appendix XXX" on page 12, both placeholders, and its Appendix D cites "condition (iv) of Appendix E" for a condition that Appendix F states. The paired comparator of the per-arm study is R `drtmle` 1.1.2 at `538a3a2` by a binary recode: for each arm `a`, `A = as.numeric(A == a)` with `a_0 = c(1, 0)`, `adapt_g = TRUE` and `Qn = list(Qbar(a, W), Qbar(a, W))`. That call enters the two-level `glm_g` branch of `estimate_g` in `R/estimate.R`, whose design names the columns `Q1W` and `Q0W`, so level 1 is $P(A = a \mid \bar Q(a, W))$. With `a_0` equal to every level, `drtmle` fits a sequential conditional-binary chain over the levels instead (`R/estimate.R`, lines 337-371). `drtmle` returns no TMLE influence curve: `ic_drtmle` belongs to its own drtmle stage. The runner therefore rebuilds each arm's TMLE regression on its one-dimensional submodel at the reported estimate, and it refuses a fit unless that curve reproduces `tmle$cov[1, 1]` to `1e-8`. - van der Vaart, Dudoit & van der Laan (2006), [*Oracle inequalities for multi-fold cross validation*](https://doi.org/10.1524/stnd.2006.24.3.351), *Statistics & Decisions* 24(3):351-371, DOI 10.1524/stnd.2006.24.3.351. The paper bounds the risk of a cross-validation selector by the oracle risk. A risk bound is not a limit law. It supplies no sampling distribution for a smooth functional of the selected estimator. It also does not show that the selected index converges. This entry records the abstract only. - Shao (1993), [*Linear model selection by cross-validation*](https://doi.org/10.1080/01621459.1993.10476299), *Journal of the American Statistical Association* 88(422):486-494, DOI 10.1080/01621459.1993.10476299. In its linear-model setting, ordinary leave-a-fixed-fraction-out cross-validation need not consistently select the true model. It supports requiring a separate selector-stability argument rather than inferring stability from prediction-risk control. - Leeb & Pötscher (2006), [*Can one estimate the conditional distribution of post-model-selection estimators?*](https://doi.org/10.1214/009053606000000821), *Annals of Statistics* 34(5):2554-2591, DOI 10.1214/009053606000000821. The paper proves that no estimator of the conditional distribution of a post-model-selection estimator is uniformly consistent in its finite-dimensional regression and subset-selection setting. The result extends to linear functions of that estimator. Read first-hand from arXiv:math/0702703. Nobody here has established that its hypotheses transfer to this candidate-path stopping index, so it is a warning against a universal repair rather than a theorem about this estimator or its bootstrap. - Leeb & Pötscher (2008), [*Can one estimate the unconditional distribution of post-model-selection estimators?*](https://arxiv.org/abs/0704.1584), *Econometric Theory* 24(2):338-376, DOI 10.1017/S0266466608080158. Read first-hand. The paper gives local minimax lower bounds and rules out locally uniform consistency for the unconditional distribution in finite-dimensional regression model selection. This is the closer warning for a refit bootstrap, but its transfer to the shipped targeted-loss selector is likewise unproved. - Loftus (2015), [*Selective inference after cross-validation*](https://arxiv.org/abs/1511.08866), arXiv:1511.08866. Read first-hand. Under a Gaussian linear model, squared-error cross-validation combined with a training procedure whose selection events are linear or quadratic can itself be represented by quadratic constraints, allowing conditional selective tests for selected-model regression parameters. The package's targeted Bernoulli or squared-error losses, nuisance estimation, and causal target curve have not been reduced to this Gaussian quadratic-selection setting. - Markovic, Xia & Taylor (2017), [*Unifying approach to selective inference with applications to cross-validation*](https://arxiv.org/abs/1703.06559), arXiv:1703.06559v3. The method conditions on selection and derives selectively valid pivots when the vector of model-quality criteria and the inference statistics are jointly asymptotically Gaussian; it also develops Gaussian-randomized variants. The shipped selector neither randomizes its criterion nor establishes the required joint Gaussian limit for its nested targeted-loss vector and joint target statistic. The paper is therefore a candidate repair, not a validation of the reported covariance. - Hubbard, Kherad-Pajouh & van der Laan (2016), [*Statistical inference for data adaptive target parameters*](https://doi.org/10.1515/ijb-2015-0013), *International Journal of Biostatistics* 12(1):3-19, DOI 10.1515/ijb-2015-0013. The paper defines a sample-split data-adaptive target parameter. Read first-hand from the authors' eScholarship manuscript. Honest splitting permits arbitrarily adaptive parameter generation. Theorem 3 also permits same-sample generation under a uniform asymptotic expansion, Donsker, and influence-curve convergence conditions. Either route reports a data-adaptive estimand rather than automatically recovering the fixed target reported by the package. The publisher page returned no text on 2026-09-28. The RM30 declaration (commit `edc70d7f`) cites this entry for the definition of the sample-split data-adaptive target only. - van der Laan (L.), Carone, Luedtke & van der Laan (M.) (2026), [*Adaptive debiased machine learning using data-driven model selection techniques*](https://arxiv.org/abs/2307.12544), arXiv:2307.12544v2. Read first-hand. The hard-stop review read Sections 1, 1.1, 2.2, 4.2, 4.3 (Theorem 4) and 5.1. It did not read Theorem 5 or Corollary 1. The framework gives regular, locally uniform inference for an oracle projection parameter and names collaborative targeted learning as an application. Its working model must approximate a fixed oracle model; a cross-validated sieve may use a limiting dimension only when that limit exists and is nonrandom. Under the paper's approximation and remainder conditions, selection is higher order and the model-based curve can be valid. The oracle efficiency bound is *typically*, not necessarily, smaller than the nonparametric bound. The shipped selector chooses one global depth from nested targeted-loss folds, and this audit has not proved convergence to a fixed nonrandom oracle model or the required remainders. Applicability could ratify the present curve or require a different one; it does not predetermine that verdict. - Cui & Tchetgen Tchetgen (2024), [*Selective machine learning of doubly robust functionals*](https://doi.org/10.1093/biomet/asad055), *Biometrika* 111(2):517-535, DOI 10.1093/biomet/asad055. Read first-hand in [arXiv:1911.02029v6](https://arxiv.org/abs/1911.02029), and the published numbering may differ. The paper selects nuisance learners by a cross-validated pseudo-risk. Theorem 5.1 is an oracle inequality for that selector, and Theorem 5.2 gives its consistency. Neither gives a limit law. Section 6 says a Wald interval at the selected learners "is completely blind to the model selection step, it may not yield uniformly valid confidence intervals". It describes a split-and-swap estimator and a smoothed selector, and leaves their formal comparison outside the paper. This supports the fixed-candidate label of F18. It does not address the inconsistent-mechanism case of RM12. - Qiu, Luedtke & Carone (2021), [*Universal sieve-based strategies for efficient estimation using machine learning tools*](https://doi.org/10.3150/20-BEJ1309), *Bernoulli* 27(4):2300-2336, DOI 10.3150/20-BEJ1309. Read first-hand in [arXiv:2003.01856v2](https://arxiv.org/abs/2003.01856), and the published numbering may differ. Theorem 4, Section 4.4, keeps the ordinary influence function after k-fold cross-validation selects the number of sieve terms. Its conditions must hold for some deterministic number of terms, and Condition C5 must hold for every candidate. Section 3.3 shows by simulation that a cross-validated HAL variation-norm bound does not give an efficient plug-in estimator. The result is a template for a uniform-expansion argument. It does not treat a targeting step or a propensity path. - Bibaut & van der Laan (2017), [*Data-adaptive smoothing for optimal-rate estimation of possibly non-regular parameters*](https://arxiv.org/abs/1706.07408), arXiv:1706.07408v2. Read first-hand. This search found no journal version. Section 2.1 splits the sample into three subsamples, and Theorems 1 and 2 select a scalar smoothing index on subsamples separate from the estimation sample. The targets may be non-regular. The package selects its index on the full sample. - Cai & van der Laan (2020), [*Nonparametric bootstrap inference for the targeted highly adaptive least absolute shrinkage and selection operator (LASSO) estimator*](https://doi.org/10.1515/ijb-2017-0070), *International Journal of Biostatistics* 16(2), DOI 10.1515/ijb-2017-0070. Read first-hand from arXiv:1905.10299. The bootstrap fixes the HAL sectional variation-norm bound at or above the original cross-validation choice; it does not reselect that tuning rule in every bootstrap sample. - Tibshirani, Rinaldo, Tibshirani & Wasserman (2018), [*Uniform asymptotic inference and the bootstrap after model selection*](https://arxiv.org/abs/1506.06266), *Annals of Statistics* 46(3):1255-1287, DOI 10.1214/17-AOS1584. The paper proves a conservative selective bootstrap in fixed-dimensional regression and records failure as dimension grows. It prevents a blanket claim that bootstrap can never work after selection, but does not validate this estimator. - Beran (1997), [*Diagnosing bootstrap success*](https://www.math.utah.edu/~davar/math6070/2013/Beran1997.pdf), *Annals of the Institute of Statistical Mathematics* 49:1-24, DOI 10.1023/A:1003114420352. Read first-hand. In its locally asymptotically normal setting, superefficiency is sufficient for failure of the intuitive bootstrap. This is another reason a refit bootstrap needs its own theorem, not a proof that every bootstrap for an outcome-adaptive estimator fails. - Chernozhukov et al. (2018), [*Double/debiased machine learning for treatment and structural parameters*](https://arxiv.org/abs/1608.00060), *Econometrics Journal* 21:C1-C68, DOI 10.1111/ectj.12097. Orthogonal-score inference permits internally selected nuisance algorithms when each is trained wholly outside its score-evaluation fold and meets the required rates. The package's global stopping depth depends on every row and is then reused for that row, so the simple fold-independence argument does not apply. - Chen, Syrgkanis & Austern (2022), [*Debiased machine learning without sample-splitting for stable estimators*](https://arxiv.org/abs/2206.01825), arXiv:2206.01825. Algorithmic stability is an alternative to honest splitting for orthogonal estimators. No leave-one-out stability or near-tie margin has been proved for the package's discrete argmin. - Li, Qiu, Wang & van der Laan (2025), [*Regularized Targeted Maximum Likelihood Estimation in Highly Adaptive Lasso Implied Working Models*](https://arxiv.org/abs/2506.17214), arXiv:2506.17214, studies explicit working projections and regularized targeting. It does not cover the shipped global candidate-depth selector. The adjacent Xu & van der Laan [arXiv:2605.01671](https://arxiv.org/abs/2605.01671) is marked withdrawn. Its abstract remains online, but the manuscript is not a source for an inference claim. - Hahn & Ridder (2013), [*Asymptotic variance of semiparametric estimators with generated regressors*](https://doi.org/10.3982/ECTA9609), *Econometrica* 81(1):315-340, DOI 10.3982/ECTA9609. The abstract derives the first-step contribution to the influence function when a later regression uses an estimated regressor. This is the general accounting for a generated design. It does not treat a targeted plug-in estimator. - Zhang, Shao, Yu & Wang (2018), [*Impact of sufficient dimension reduction in nonparametric estimation of causal effect*](https://doi.org/10.1080/24754269.2018.1466100), *Statistical Theory and Related Fields* 2(1):89-95, DOI 10.1080/24754269.2018.1466100. This entry records the abstract only. The abstract states that estimating the covariate reduction changes the asymptotic variance, unless the reduction keeps covariates that are superfluous for estimation. It treats nonparametric regression and inverse propensity weighting, and no targeting step. - Ma, Zhu, Zhang, Tsai & Carroll (2019), [*A robust and efficient approach to causal inference based on sparse sufficient dimension reduction*](https://doi.org/10.1214/18-AOS1722), *Annals of Statistics* 47(3):1505-1535, DOI 10.1214/18-AOS1722. This entry records the abstract only. The abstract states that an average-treatment-effect estimator built on the efficient influence function, with both nuisances estimated after a sparse dimension reduction, is asymptotically normal and semiparametrically efficient. It treats no targeting step and no shared multinomial mechanism. - Escanciano & Pérez-Izquierdo (2023), [*Automatic locally robust GMM with machine-learning-generated regressors*](https://arxiv.org/abs/2301.10643), arXiv:2301.10643. Read first-hand. Moment functions orthogonal to the second step remove the *indirect* first-step effect, not the direct effect of learning the generated regressor. The paper constructs corrections for both effects. Its generic GMM result does not imply that the outcome-adaptive TMLE's generated-design contribution is zero. - Rotnitzky, Smucler & Robins (2021), [*Characterization of parameters with a mixed bias property*](https://doi.org/10.1093/biomet/asaa054), *Biometrika* 108(1):231-238, DOI 10.1093/biomet/asaa054. The bias of the one-step estimator is the mean product of the two nuisance errors. This entry records the abstract only. Nobody here has checked the treatment-specific mean against the paper's characterization. - Christgau, Lundborg & Hansen (2025), [*Efficient adjustment for complex covariates: Gaining efficiency with DOPE*](https://arxiv.org/abs/2402.12980), arXiv:2402.12980v2. Read first-hand. The setup allows a finite treatment set and fixed contrasts of treatment-specific means. Algorithm 1 learns an outcome-adapted representation, the outcome regression and propensity, and the final AIPW estimate on three disjoint samples. Theorem 4.3 gives ordinary-influence-function inference centered at the data-adaptive target conditional on the learned representation. Proposition 4.4 shows that root-rate representation learning can add a first-order delta-method variance for a fixed target. Appendix E gives a cross-fitted algorithm but states that the usual proof does not apply directly because the fold oracle terms depend on estimated representations. Thus the multi-arm setup is directly relevant, while the shipped shared-multinomial targeting and fixed-target joint covariance remain outside the proved result. - Waagepetersen, Risom, Hansen & Lundborg (2026), [*Outcome-adapted Automatic Debiased Machine Learning*](https://arxiv.org/abs/2607.03351), arXiv:2607.03351. Read first-hand. The paper decomposes sampling and representation errors and proves sample-split asymptotics for an outcome-adapted AutoDML estimator. Its worked treatment example is a binary ATE, and the authors explicitly leave cross-fitting outside the theory because it introduces dependence across fold representations. It sharpens the generated-representation boundary but does not cover the shipped targeted, shared-multinomial construction. - Rothenhäusler (2024), [*Model selection and inference for estimation of causal parameters*](https://doi.org/10.1214/24-EJS2308), *Electronic Journal of Statistics* 18(2):5449-5483, DOI 10.1214/24-EJS2308. Read first-hand in the published version. The preprint is [arXiv:2008.12892v2](https://arxiv.org/abs/2008.12892), titled *Model selection for estimation of causal parameters*, and its numbering differs. Section 3.4, Theorem 2, is Section 3.5, Theorem 4, of the preprint. The theorem gives intervals after a choice among a fixed finite set of estimators, with a joint normal limit at a fixed parameter. The choice minimizes an estimate of squared deviation from an asymptotically unbiased baseline estimator, and not a cross-validated loss. The published text adds a caveat after the theorem: the inference is "usually not uniformly valid", falls in the "Conservative Model Selection Framework", and must be used "with caution". Section 4 checks coverage by simulation only. Section 3.3, Proposition 1, shows that cross-validation can select a higher-risk estimator with positive probability. This is a neighbor for F18, and not a result for the shipped selector. - Zrnic & Jordan (2023), [*Post-selection inference via algorithmic stability*](https://doi.org/10.1214/23-AOS2303), *Annals of Statistics* 51(4):1666-1691, DOI 10.1214/23-AOS2303, preprint [arXiv:2011.09462](https://arxiv.org/abs/2011.09462). This entry records the abstract only. The abstract corrects classical intervals after a selection that is randomized to make it stable. The shipped selector is not randomized. - Schnitzer, Sango, Ferreira Guerra & van der Laan (2020), [*Data-adaptive longitudinal model selection in causal inference with collaborative targeted minimum loss-based estimation*](https://doi.org/10.1111/biom.13135), *Biometrics* 76(1):145-157, DOI 10.1111/biom.13135. This entry records the abstract only. The abstract describes a longitudinal C-TMLE that selects treatment-model variables, studied by simulation. The abstract states no inference result after selection. - Van Lancker, Díaz & Vansteelandt (2024), [*Automated, efficient and model-free inference for randomized clinical trials via data-driven covariate adjustment*](https://arxiv.org/abs/2404.11150), arXiv:2404.11150v2, revised in May 2026. This entry records the abstract only. The abstract treats data-adaptive covariate adjustment in randomized trials, where the design fixes the treatment law. - Schnitzer, Talbot, Liu et al. (2026), [*Adaptive sparsening and smoothing of the treatment model for longitudinal causal inference using outcome-adaptive LASSO and marginal fused LASSO*](https://doi.org/10.1002/sim.70316), *Statistics in Medicine* 45(1-2):e70316, DOI 10.1002/sim.70316. This entry records the abstract only. The abstract selects covariates for a longitudinal treatment model with an outcome-adaptive LASSO. It fits no mechanism on estimated outcome predictions. - The R `ctmle` 0.1.2 implementation at commit [`18de559`](https://github.com/jucheng1992/ctmle/tree/18de559f47dc1286617350a0668391e80e1dbf7c). `R/ctmle_discrete.R` defines `ctmleDiscrete`, which the pinned selector-parity study calls through `tests/canonical/ctmle_selector/run_ctmle.R`. `R/functions_discrete.R` defines its `stage2` and `cv` helpers. `R/ctmle_general.R` and `R/functions_general.R` define `ctmleGeneral`, `stage2_general`, and `cv_general`. No argument list in those four files takes an observation weight, and no fit, sum, mean, or variance in them applies one. This source supplies no fixed-weight comparison. `R/functions_general.R` gives the indexed construction rule that the `lasso` and `learners` strategies follow: the argmin on line 81, the jump on line 124 and the stop on line 129. `R/functions_glmnet.R` gives the same rule over a penalty grid, on lines 184, 253 and 256. [`ctmleGlmnet`, lines 265-325](https://github.com/jucheng1992/ctmle/blob/18de559f47dc1286617350a0668391e80e1dbf7c/R/ctmle_glmnet.R#L265-L325) is the type-1 final step. `R/build_gn_seq.R` builds the `gn_candidates` and `gn_candidates_cv` pair that `PropensityArrays` mirrors. The [collaborative TMLE page](technical-reference/collaborative-tmle.md#candidate-sequences) lists the R behaviors the package does not reproduce. [`calc_varIC`, lines 39-60](https://github.com/jucheng1992/ctmle/blob/18de559f47dc1286617350a0668391e80e1dbf7c/R/functions.R#L39-L60) adds a binary logistic parameter-estimation term to each candidate's ATE curve. [`ctmleDiscrete`, lines 173-185](https://github.com/jucheng1992/ctmle/blob/18de559f47dc1286617350a0668391e80e1dbf7c/R/ctmle_discrete.R#L173-L185) forms the interval from that variance at `best_k`. Neither block differentiates the cross-validated stopping rule. [`evaluate_candidates`, lines 200-201](https://github.com/jucheng1992/ctmle/blob/18de559f47dc1286617350a0668391e80e1dbf7c/R/functions_discrete.R#L200-L201) calls `calc_varIC(..., ICg = TRUE)` for every candidate, and [`ctmleDiscrete`, lines 181-196](https://github.com/jucheng1992/ctmle/blob/18de559f47dc1286617350a0668391e80e1dbf7c/R/ctmle_discrete.R#L181-L196) reports `var.psi` and `CI` from the second value at `best_k`. `logistic_plugin` reports that value, and `plugin_interval` reports the first. [`stage1`, lines 84-110](https://github.com/jucheng1992/ctmle/blob/18de559f47dc1286617350a0668391e80e1dbf7c/R/functions.R#L84-L110) takes a continuous outcome's bounds from `range(Y)` when the caller supplies none, and `maptoYstar` rescales by the same sample range. [`cv`, lines 446-447](https://github.com/jucheng1992/ctmle/blob/18de559f47dc1286617350a0668391e80e1dbf7c/R/functions_discrete.R#L446-L447) draws its default folds from `sample(1:n, n)` without strata. This source is implementation provenance. It states no result for either rule. Its `select_terms` and `construct_candidates` functions also confirm the forced-addition path: after a new clever-covariate step retargets the offset, the construction retains the best finite addition. That behavior does not make the recorded penalized selection risk monotone. - A 2026-09-21 software-journal and R-ecosystem search found implementation provenance rather than missing theory. The JSS `tmle` article (DOI 10.18637/jss.v051.i13) and JSS `ltmle` article (DOI 10.18637/jss.v081.i01) document ordinary TMLE and longitudinal TMLE. The CRAN `ctmle` 0.1.2 manual and vignette implement the published C-TMLE algorithms without a new inference theorem. The R Journal `CIMTx` article (DOI 10.32614/RJ-2022-058) calls `tmle` for multiple treatments and uses a nonparametric bootstrap; it does not derive the package's shared-multinomial outcome-adaptive construction or its joint covariance. - Labayle et al. (2025), [*TMLE.jl: Targeted Minimum Loss-Based Estimation in Julia*](https://doi.org/10.21105/joss.08446), *Journal of Open Source Software* 10(112):8446, DOI 10.21105/joss.08446, implements greedy and scalable C-TMLE variants and categorical treatments. It is software provenance, not a post-selection theorem for a shared stopping rule. - The `tlverse/ctmle3` implementation at commit [`a4ea77b`](https://github.com/tlverse/ctmle3/tree/a4ea77b07747dfee9b2eecb9cbca88262e0559ea). [`LF_oat`, lines 110-133](https://github.com/tlverse/ctmle3/blob/a4ea77b07747dfee9b2eecb9cbca88262e0559ea/R/LF_oat.R#L110-L133) fits categorical treatment on the complete vector of treatment-specific outcome predictions. `R/tmle3_Spec_TSM_all.R` requests all treatment-specific means. This is the implementation source for `CTMLE(strategy="oat")`, not a published inference derivation. - The `benkeser/drtmle` 1.1.2 implementation at commit [`538a3a2`](https://github.com/benkeser/drtmle/tree/538a3a264c1ca984b6d88978ca7f96165f43152c) supplies multi-arm provenance for the same generated design. Its `adapt_g` option is written by an author of Benkeser, Cai and van der Laan (2020). [`R/estimate.R`, lines 70-92](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/estimate.R#L70-L92) replaces the covariate frame with one column of outcome predictions for each level in `a_0`. [`R/drtmle.R`, line 209](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/drtmle.R#L209) defaults `a_0` to every observed level, so that design is not restricted to two arms. [`R/drtmle.R`, lines 256-262](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/drtmle.R#L256-L262) turns the extra targeting off under `adapt_g`. The reported covariance at [`R/drtmle.R`, lines 775-820](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/drtmle.R#L775-L820) is the sample covariance of the influence-curve matrix divided by `n`. The string `adapt_g` appears in no variance file. `R/inf_functions.R` and `R/confint.R` each contain zero occurrences. This source supplies no generated-design variance term. - C-TMLE inference source audit (RM5, 2026-09-11): no reviewed source derives the exact asymptotic law of the shipped selector or the full multi-arm outcome-adaptive construction. The binary scalar outcome-adaptive construction has a positive theorem after the fold-nesting correction described below. The shared design is a finite-dimensional extension whose exact scalar expansions are not stated in the paper. The per-arm design reduces to the paper's scalar construction arm by arm, and its interval is withheld because condition (v) fails. The contracts carry those separate verdicts. The selector path has outer nuisance, selection, and inner selection-training folds. Its pointwise and simultaneous intervals use a plug-in curve that treats the selected candidate as fixed; no conditional-coverage claim follows. The oracle inequality bounds risk and supplies no limit law. Leeb and Pötscher (2006) give a nonuniformity result in a different regression model, while Markovic, Xia and Taylor (2017) require a joint Gaussian selection-and-statistic limit that has not been shown here. Adaptive debiased machine learning supplies the closest positive framework, but the package's selected depth has not been proved to approximate its required fixed nonrandom oracle model. [F18](roadmap.md#f18-selector-path-c-tmle-inference) records the resulting proof obligations. The outcome-adaptive path selects no candidate. Benkeser, Cai and van der Laan (2020) prove a binary treatment-specific-mean result, explicitly construct the binary vector-design ATE, and outline a cross-validated form. DOPE proves ordinary-curve inference for finite treatment sets after a three-way split, conditional on the learned representation, and also identifies a possible first-order representation term for a fixed target. Its cross-fitted extension is an algorithm without a completed proof. Outcome-adapted AutoDML likewise proves sample-split, not cross-fitted, inference. These results narrow the remaining multi-arm gap but do not cover the shipped shared-multinomial, jointly targeted construction. [F19](roadmap.md#f19-outcome-adaptive-c-tmle-generated-design-inference) records what stays open past those regimes. The 2026-09-11 corrective pass read the theorem text available from arXiv and PubMed Central for van der Laan and Gruber (2010), Ju, Chambaz and van der Laan (2018), Benkeser, Cai and van der Laan (2020), both Leeb and Pötscher impossibility papers, Loftus (2015), Markovic, Xia and Taylor (2017), Cai and van der Laan (2020), adaptive debiased machine learning v2, DOPE v2, outcome-adapted AutoDML, and Escanciano and Pérez-Izquierdo (2023). Entries still marked abstract-only are context, not premises of the F18 or F19 verdicts. Source code was inspected at the pinned commits above. A 2026-09-21 search added Cui and Tchetgen Tchetgen (2024), Qiu, Luedtke and Carone (2021), Bibaut and van der Laan (2017), Ju, Schwab and van der Laan (2019), and Ju, Wyss et al. (2019). It read each one first-hand in the arXiv version its entry names. It also read Theorem 1 of Ju, Benkeser and van der Laan (2020), Liu's 2018 dissertation, the published Benkeser, Cai and van der Laan article and supplement, and the `ctmle` outcome-range and fold code. The accompanying JSS, R Journal and CRAN search found implementation provenance and no additional theorem for the selector or shared-multinomial generated design. It recorded Zhang et al. (2018), Ma et al. (2019), and Bannick et al. (2025) from their abstracts. No source it read closes F18, the cross-fitted multi-arm part of F19, or the fold and outcome-scale rules. A third 2026-09-21 search read Rothenhäusler (2024) first-hand in the published version, and recorded Zrnic and Jordan (2023), Schnitzer et al. (2020), Van Lancker et al. (2024), and Schnitzer et al. (2026) from their abstracts. No source it read closes F18 or F19. RM18 at commit `dea3297e` records its databases, its queries and each verdict, in "What the source search found for the first three asks". ## Longitudinal, survival and marginal structural models - Bang & Robins (2005), *Doubly robust estimation in missing data and causal inference models*, *Biometrics* 61(4):962–972. Section 3, p. 966, gives the missing-data recursion. Section 4, p. 969, steps 1 to 5, gives the causal form. `SequentialGComputation` cites it for the ICE recursion. The paper states the causal form for a marginal structural model parameter. The plain g-formula is a special case. - Lewis & Syrgkanis (2021), *Double/debiased machine learning for dynamic treatment effects via g-estimation*, in *Advances in Neural Information Processing Systems* 34, with the arXiv version (v5). `StructuralNestedMean` cites the supplement, Appendix A: Assumption 1 and Assumption 2 (the linear structural nested mean model), Lemma 6 (the policy value from the blips), and Theorem 8 (the normal limit with a linear blip). It cites the arXiv version for Theorem 4 and Theorem 8 (the variance estimator and product rates) and Corollary 9 (the inference for a policy value). The roadmap item X72 cites Lemma 6 and Corollary 9. The proceedings version has no policy-value inference. - Robins, Hernán & Brumback (2000), *Marginal structural models and causal inference in epidemiology*, *Epidemiology* 11(5):550–560. Section 6.1, p. 554, and Section 7, p. 555, eq. (14), give stabilized weights. The paper does not discuss the normalization, so the Hajek form of `SequentialIPW` rests on `CalcIPTW` in R `ltmle` 1.3-0 and the delta method. - Stefanski & Boos (2002), *The calculus of M-estimation*, *The American Statistician* 56(1):29–38. Read in the 2001 preprint (NCSU Mimeo 2528). Section 2 gives the stacked sandwich variance of a system of estimating equations. The published page and equation numbers are not checked. The stacked curves of the sequential baselines cite it. - Lunceford & Davidian (2004), *Stratification and weighting via the propensity score in estimation of causal treatment effects: a comparative study*, *Statistics in Medicine* 23(19):2937–2960. Section 3.1, p. 2945, eqs. (13)–(16): with a correctly specified propensity fitted by maximum likelihood, the IPW variance is at most the fixed-propensity variance. The result is for a point treatment. - Ertefaie, Hejazi & van der Laan (2023), *Nonparametric inverse-probability-weighted estimators based on the highly adaptive lasso*, *Biometrics* 79(2):1029–1041. Section 3, Theorem 1, gives asymptotic linearity of IPW with an undersmoothed HAL propensity at one time point, for a binary treatment. F35 in the roadmap cites it as the starting point for a longitudinal result. - Robins (1986), *A new approach to causal inference in mortality studies with a sustained exposure period: application to control of the healthy worker survivor effect*, *Mathematical Modelling* 7:1393–1512. Section 3D, p. 1412, states the g-computation algorithm in words. Equation (4.7), Section 4E, p. 1423 (Corollary 4.1), gives the formula. Section 4I, pp. 1426–1427, gives the Monte Carlo evaluation, which averages predicted survival products and draws no deaths. Section 5A, p. 1430, proposes a bootstrap variance. `ParametricGFormula` cites it for the formula and the evaluation. - McGrath, Lin, Zhang, Petito, Logan, Hernán & Young (2020), *gfoRmula: an R package for estimating the effects of sustained treatment strategies via the parametric g-formula*, *Patterns* 1(3):100008, DOI [10.1016/j.patter.2020.100008](https://doi.org/10.1016/j.patter.2020.100008). Supplement 1 (mmc1), p. 6, step 2a: the observed time-0 row is used as is, and only the time-0 treatment is overwritten. Page 8, eq. (10): the outcome is a predicted value. Page 9, C.2: normal covariates are clamped to the observed range. Pages 7 and 12: the interval is the nonparametric bootstrap. Neither the paper nor `gfoRmula` 1.1.1 gives an analytic variance or an account of the Monte Carlo error. The title and the author list are not checked against the publisher page. - Pakes & Pollard (1989), *Simulation and the asymptotics of optimization estimators*, *Econometrica* 57(5):1027–1057. Lemma 2.16, p. 1036, gives stochastic equicontinuity for a Euclidean class with a square-integrable envelope. Lemma 2.17, p. 1037, gives the parametric form that is continuous in $L_2(P)$ at $\theta_0$. Theorem 3.3, p. 1040, gives asymptotic normality, with the proof on pp. 1041–1043. Section 4, from p. 1046, treats simulation estimators. The simulated-estimator step of `ParametricGFormula` cites Lemma 2.17 and Theorem 3.3. The paper does not state the result for this estimator. - Newey & McFadden (1994), *Large sample estimation and hypothesis testing*, *Handbook of Econometrics* IV, chapter 36. Theorem 7.2, p. 2186, covers nonsmooth or simulated GMM under stochastic equicontinuity, condition (v). Theorem 7.3, p. 2188, does not cover a discontinuous simulator, so the primitive conditions come from Pakes & Pollard. Pages 2111–2112 and the proofs of Section 7 are not read. - van der Laan & Gruber (2012), *Targeted minimum loss based estimation of causal effects of multiple time point interventions*, DOI [10.1515/1557-4679.1370](https://doi.org/10.1515/1557-4679.1370). The intervention-specific mean and its sequential conditional-expectation representation are stated for general longitudinal data structures. - Chaffee & van der Laan (2012), *Targeted Maximum Likelihood Estimation for Dynamic Treatment Regimes in Sequentially Randomized Controlled Trials*, DOI [10.1515/1557-4679.1406](https://doi.org/10.1515/1557-4679.1406). Treatment rules map histories into the treatment node's support; the worked examples do not limit the definition to two arms. - Stitelman, De Gruttola & van der Laan (2012), *A General Implementation of TMLE for Longitudinal Data Applied to Causal Inference in Survival Analysis*, DOI [10.1515/1557-4679.1334](https://doi.org/10.1515/1557-4679.1334). - Benkeser, Carone & Gilbert (2018), [*Improved estimation of the cumulative incidence of rare outcomes*](https://doi.org/10.1002/sim.7337), *Statistics in Medicine* 37(2):280–293, DOI 10.1002/sim.7337. Read first-hand in the PubMed Central author manuscript, PMC5735003. Section 2.1 defines the visit structure: one baseline treatment, attendance at each visit before the endpoints, and an endpoint observed at or before a visit. Section 2.3 identifies the cumulative incidence as iterated means. Sections 4.2 to 4.4 give the sequential regressions, the clever covariate $H_k$ and the estimating equations, and Section 5 the asymptotics. The held baseline treatment and the time-to-event converter follow these sections. - R `survtmle` 1.1.1 (CRAN archive, tarball sha256 `d286799265f35f2ae7631f2f1714936ff2b1866cdd95a2848c252482f9ce23d0`). `method="mean"` implements Benkeser, Carone & Gilbert (2018). `makeDataList.R` builds prediction rows for `1:t0`, so an event after `t0` adds no event by `t0`. `censoring_estimate.R` predicts the censoring hazard at `t - 1`, sets `G_dC = 1` at `t = 1`, and takes a `noCens` branch when no censoring is observed. `checkInputs.R` refuses more than two treatment values. The registered study `point-treatment-survival` pairs with it. - Moore & van der Laan (2009), *Increasing power in randomized trials with right censored outcomes through covariate adjustment*, *Journal of Biopharmaceutical Statistics* 19(6):1099–1131, DOI [10.1080/10543400903243017](https://doi.org/10.1080/10543400903243017). Read first-hand in the PubMed Central author manuscript, PMC2895464. The equation numbers below are those of the manuscript. This is a different paper from the Moore & van der Laan (2009) entry in [known treatment mechanisms](#known-treatment-mechanisms). Section 2 defines the visits, the baseline treatment and the coarsening at random. Section 4 gives the log-likelihood (9) and the logistic hazard fluctuation (10). Section 4.1 gives the clever covariates (11) and (12), the joint targeting of both arms (13), and the efficient influence curve (15) and (16). Section 4.1.2 gives the double robustness. `survival_model="hazard"` with `targeting="iterative"` follows Section 4.1. - Cai & van der Laan (2020), [*One-step targeted maximum likelihood estimation for time-to-event outcomes*](https://doi.org/10.1111/biom.13172), *Biometrics* 76(3):722–733, DOI 10.1111/biom.13172. Read first-hand in [arXiv:1802.09479v3](https://arxiv.org/abs/1802.09479v3), because the journal version is not open access. The locators are those of arXiv v3. This is a different paper from the Cai & van der Laan (2020) bootstrap paper in [collaborative TMLE](#collaborative-tmle). Section 2.1, (2) and (3), gives the efficient influence curve and the clever covariate of a survival probability. Section 4.3 and Algorithm 1 give the per-horizon TMLE and say why its curve is not monotone. Section 5, (12) and Algorithm 2, give the universal least favorable submodel and the one-step TMLE of the whole curve. `targeting="one_step"` follows Algorithm 2. - Rytgaard & van der Laan (2024), [*One-step targeted maximum likelihood estimation for targeting cause-specific absolute risks and survival curves*](https://doi.org/10.1093/biomet/asad033), *Biometrika* 111(1):129–145, DOI 10.1093/biomet/asad033. Read first-hand in [arXiv:2107.01537v2](https://arxiv.org/abs/2107.01537v2). The locators are those of arXiv v2. Section 3.1 gives the efficient influence curve and the clever covariates of several causes. Section 3.3, Definition 1, and Section 3.4 give the one-step walk. Remark 2 fixes the metric $\hat\sigma^2 = P_n D^2$ at the initial estimator. Assumption 1 is the positivity condition. The paper works in continuous time, and `cleverly` uses its discrete-time special case. Theorem 1 of Section 4.2 assumes a refining grid, and `cleverly` does not claim it. - Westling, van der Laan & Carone (2020), [*Correcting an estimator of a multivariate monotone function with isotonic regression*](https://doi.org/10.1214/20-EJS1740), *Electronic Journal of Statistics* 14(2), DOI 10.1214/20-EJS1740. Read first-hand in [arXiv:1810.09022v2](https://arxiv.org/abs/1810.09022v2). The locators are those of arXiv v2. Section 2.1 projects an estimate onto a monotone function on a grid, which is PAVA in one dimension, and projects both band limits by the same procedure. Theorem 1 (i) bounds the sup error of the projection by that of the estimate. Theorem 1 (iv) keeps the band's coverage, and Theorem 1 (v) keeps its widths. Theorem 2, Corollary 1 and the sentence after it give the pointwise limit under a strictly increasing truth. `isotonic=True` follows Section 2.1. - R `survtmle` 1.1.1, `method = "hazard"`, from the archive above. Its file `tmle_hazard.R` targets one `t0` per call and loops while `any(abs(meanIC) > tol) & ct <= maxIter`. The file `hazards_estimate.R` fits the sequential pseudo-hazards $\lambda_j = \rho_j (1 - \sum_{i < j} \lambda_i)$, which the initial fit of `survival_model="hazard"` follows. The file `hazards_fluctuate.R` fluctuates one cause at a time on the scale $1 - \lambda_{\neg j}$. The file `survtmle.R` exports `tol = 1/sqrt(n)` and `maxIter = 10`. - The `lmtp` 1.5.4 snapshot above, `R/lmtp_survival.R`. Its function `isotonic_projection` runs `isotone::gpava(1:K, 1 - estimate)` with unit weights over every grid time, and keeps each influence function. `isotonic=True` applies the same arithmetic over the reported horizons. - Díaz, Hoffman, Hejazi & Williams (2024), [*Causal survival analysis under competing risks using longitudinal modified treatment policies*](https://doi.org/10.1007/s10985-023-09606-7), *Lifetime Data Analysis* 30:213–236. The corrected [arXiv v3](https://arxiv.org/abs/2202.03513v3) supplies the version this project follows. Proposition 1 identifies the cause-specific cumulative incidence target. Appendix E gives the cross-fitted TMLE directly: out-of-fold initial nuisances, one all-row fluctuation per node, pooled backward carry, and the score and remainder argument. The [2025 author correction](https://doi.org/10.1007/s10985-025-09651-4) corrects the outcome definition and dependent results in the original article. - Petersen, Schwab, Gruber, Blaser, Schomaker & van der Laan (2014), *Targeted Maximum Likelihood Estimation for Dynamic and Static Longitudinal Marginal Structural Working Models*, DOI [10.1515/jci-2013-0007](https://doi.org/10.1515/jci-2013-0007). Section 3 defines the pooled longitudinal TMLE; Appendix A derives its efficient influence curve. Section 3.6, journal pages 160-161, regresses each targeted later-node prediction at the next node. Section 3.7, journal page 162, gives inference for the completed estimator. - Lendle, Schwab, Petersen & van der Laan (2017), *ltmle: An R Package Implementing Targeted Minimum Loss-Based Estimation for Longitudinal Data*, DOI [10.18637/jss.v081.i01](https://doi.org/10.18637/jss.v081.i01). Section 2.4, page 6, carries an updated later-node regression into each earlier regression. Section 3.3, page 13, defines `gbounds` as bounds on estimated mechanism components. - Landsiedel, Petersen & van der Laan (2026), [*Targeted maximum likelihood estimation for longitudinal two-stage designs with outcome subsampling*](https://arxiv.org/abs/2607.02702), arXiv:2607.02702. The preprint develops IPCW-LTMLE and an alternative plug-in LTMLE for a two-stage outcome-subsampling design, with targeted sampling weights and a different variance construction. It is relevant weighted-longitudinal theory, but it does not certify this package's fixed baseline-selection weights, pooled regimen targeting, or comparator contract. A search on 2026-09-27 found no published version. arXiv lists version 1 of 2 July 2026 alone, with no journal reference, and Crossref returns no record. RM18 design OW of the [roadmap](roadmap.md) cites only the preprint's abstract, which reports coverage as low as 76% for the standard variance estimators. - Williams & Díaz (2023), [*lmtp: An R Package for Estimating the Causal Effects of Modified Treatment Policies*](https://doi.org/10.1353/obs.2023.0019), *Observational Studies* 9(2):103–122. This is the software reference for the comparator used by the registered studies; exact algorithm claims below remain pinned to the named source release. - Williams & Díaz (2025), [*Erratum: lmtp: An R Package for Estimating the Causal Effects of Modified Treatment Policies*](https://doi.org/10.1353/obs.2025.a973072), *Observational Studies* 11(3):365–367. The erratum corrects one identification assumption: exchangeability becomes strong exchangeability, which also needs every common cause of the exposure and the future covariates and exposures measured. Consistency and positivity are unchanged (reproduced Section 2.2 "Identification", Assumption 2, pp. 365-367). It does not change the targeting construction. Code-history claims therefore stay tied to the versioned source and commit below. This entry relays a full read of PMC13155344 by a local research session on 2026-10-14, not a first-hand read by a cloud session. - Schomaker, Luque-Fernandez, Leroy & Davies (2019), [*Using Longitudinal Targeted Maximum Likelihood Estimation in Complex Settings with Dynamic Interventions*](https://doi.org/10.1002/sim.8340), *Statistics in Medicine* 38(24):4888-4911. Sections 3.4 and 4.3.2 define the complete sequential LTMLE algorithm. Section 5.6 and Table 2 compare complete analyses at bounds 0.01 and 0.05. Appendix B, pages 24-25, makes the later targeted prediction the earlier response. - Poulos, Horvitz-Lennon, Zelevinsky et al. (2024), *Targeted learning in observational studies with multi-valued treatments: an evaluation of antipsychotic drug treatment safety*, DOI [10.1002/sim.10003](https://doi.org/10.1002/sim.10003). The accompanying public [`jvpoulos/multi-ltmle`](https://github.com/jvpoulos/multi-ltmle) repository contains longitudinal multi-valued simulation code. The paper's identified parameter and estimator are for one multi-valued treatment assignment. The repository is supporting implementation provenance for the estimator family. It is a simulation repository, so it gives no versioned package entry point for a paired study. - Source audit snapshots (2026-08-16): R `ltmle` at [`338c029`](https://github.com/joshuaschwab/ltmle/tree/338c029dae9692ef20714125773da7037688993b) remains binary implementation provenance. [`CalcCumG`, lines 2009-2011](https://github.com/joshuaschwab/ltmle/blob/338c029dae9692ef20714125773da7037688993b/R/ltmle.R#L2009-L2011) bounds raw cumulative mechanism products. [`FixedTimeTMLE`, lines 748-782](https://github.com/joshuaschwab/ltmle/blob/338c029dae9692ef20714125773da7037688993b/R/ltmle.R#L748-L782) fits and updates each regression, then carries `Qstar` backward. Changing the bound therefore requires every earlier bound-dependent regression to run again. The `tmle3` snapshot at [`ed72f8a`](https://github.com/tlverse/tmle3/tree/ed72f8a20e64c914ab25ffe015d865f7a9963d27) (`LF_static`, `Param_TSM`, `Param_MSM`) confirms equality-density/static-intervention indexing but is not a longitudinal categorical oracle. The companion Poulos repository was inspected at [`0e8dc6e`](https://github.com/jvpoulos/multi-ltmle/tree/0e8dc6eca1012e5a3eab7aa80b772cf432b8f032). - Longitudinal truncation audit (2026-09-10): Schomaker et al. compare separate fixed-bound LTMLE analyses. They do not define a post-fit shortcut that reuses earlier outcome predictions. The reviewed sources support a descriptive grid that reuses raw mechanism predictions and reruns the full recursion. They do not support a preferred bound, simultaneous curve inference, selected-bound inference, or a data-adaptive longitudinal bound. - MSM study audit (2026-08-26): the same pinned `tmle3` `Param_MSM` supplies the Gaussian identity-link point projection after its arm-indicator coefficients and joint influence curves are mapped to the declared basis. Its documented custom-weight path needs a classed function to pass two premature string-sentinel comparisons in this release. The longitudinal comparator fits each plan with the pinned R `ltmle`, then projects the estimates and joint influence curves. Raw `ltmleMSM` coefficients are excluded because its quasibinomial projection is a different parameter. - Source audit snapshot (2026-08-24): R `lmtp` 1.5.4 at [`f04a2b4`](https://github.com/nt-williams/lmtp/tree/f04a2b47f46debc515ce4ae778e05ebfde922c44). Its `cf_tmle` function runs one complete backward recursion per outer fold. Its `estimate_tmle` function fits and targets on training rows, then predicts validation rows. The public API accepts a fold count but not a realized assignment. A paired study therefore needs a pinned internal adapter before it can claim exact fold parity. - Fixed-weight audit of the same `lmtp` snapshot: [`R/tmle.R`, lines 18-96](https://github.com/nt-williams/lmtp/blob/f04a2b47f46debc515ce4ae778e05ebfde922c44/R/tmle.R#L18-L96) keeps task weights on training rows and includes them in each targeting fluctuation. Its `run_ensemble` call on lines 44-48 receives no sampling weights, so the nuisance fits are unweighted. [`R/theta.R`, lines 1-15](https://github.com/nt-williams/lmtp/blob/f04a2b47f46debc515ce4ae778e05ebfde922c44/R/theta.R#L1-L15) supplies the weighted plug-in and influence-function aggregation. These locators support a weight-routing audit for modified treatment policies. The registered comparison is unweighted, and this source does not implement a simulated common-cause surface. - Risk-ratio tilt audit of the same `lmtp` snapshot: [`R/shift.R`, lines 129-148](https://github.com/nt-williams/lmtp/blob/f04a2b47f46debc515ce4ae778e05ebfde922c44/R/shift.R#L129-L148) defines `ipsi(delta)` on a 0/1 treatment. Below one, a unit keeps its treatment when a uniform draw is below `delta`, and otherwise it takes 0. Above one, a unit keeps its treatment when the draw is below `1 / delta`, and otherwise it takes 1. `RiskRatioTilt` implements this rule with the draw as a known two-point randomizer. It is not the odds tilt of Kennedy (2019), which `incremental=` implements. - Clustered inference audit (2026-08-29): the same `lmtp` snapshot passes its task identifier to `ife::ife`. Pinned [`ife` 0.2.3](https://cran.r-project.org/src/contrib/Archive/ife/ife_0.2.3.tar.gz) requires equal identifiers before it subtracts arm objects. That subtraction uses the joint rowwise influence curve. Its cluster standard error uses the variance of cluster means, so the registered study fixes every cluster at ten rows. The fixture pins the source archive by SHA-256. - Categorical longitudinal audit (2026-08-27): the same `lmtp` snapshot accepts categorical treatment at multiple nodes for static and dynamic plans. The ordinary study supplies one all-row fold. The cross-fitted study supplies the exact five-fold assignment. - The audit rejects [`npcausal`](https://rdrr.io/github/ehkennedy/npcausal/man/) for this row. Its public functions cover point effects, continuous-treatment curves, counterfactual densities, instrumental variables, and incremental interventions. They do not expose a deterministic categorical longitudinal regimen estimator. - [`stremr`](https://github.com/romainkp/stremr) supports categorical longitudinal exposures and longitudinal TMLE. It requires long-form input, so it adds a data representation that the paired study does not need. The pinned `lmtp` path is the primary comparator. - The audit also read the Poulos `multi-ltmle` companion. The Poulos entry in the sources above records that verdict. - Competing-risk audit of the same snapshot: its survival path accepts a competing-event column through `compete=`. The returned estimate is one minus the cause-specific cumulative incidence. That value is not a survival probability. It counts a unit that had the competing event. The registered studies transform it to incidence and negate its influence curve. - The registered competing-risk studies replace one internal `lmtp` function. `run_ensemble` becomes a direct single-learner fit. The adapter checks that substitution against `SuperLearner` on each run. - Neugebauer & van der Laan (2007), [*Nonparametric causal effects based on marginal structural models*](https://doi.org/10.1016/j.jspi.2005.12.008), DOI 10.1016/j.jspi.2005.12.008. - Rosenblum & van der Laan (2010), [*Targeted Maximum Likelihood Estimation of the Parameter of a Marginal Structural Model*](https://doi.org/10.2202/1557-4679.1238), DOI 10.2202/1557-4679.1238. The package cites it for the TMLE argument of a working model with baseline modifiers, which a stratified fit applies inside each stratum. Its projection uses the binomial deviance, so it does not define the package's least-squares parameter, which [MSM projections](technical-reference/msm-projections.md) defines. - Martin, Santacatterina & Díaz (2024), [*Non-parametric efficient estimation of marginal structural models with multi-valued time-varying treatments*](https://arxiv.org/html/2409.18782v1), arXiv:2409.18782v1. Definition 1 fixes a user-given transformation and projection distribution. Section 1 says available MSM model-selection methods lack general post-selection inference. Its estimator and projection measure differ from those in `cleverly`; it does not validate a design estimated on the analysis sample. A [Biometrika successor](https://doi.org/10.1093/biomet/asag026) appeared in 2026 under the title *Nonparametric efficient estimation of marginal structural models with continuous time-varying treatments*. The locators above refer to arXiv v1; the accessible journal abstract does not state a result for a design learned from the analysis sample. - Orellana, Rotnitzky & Robins (2010), *Dynamic regime marginal structural mean models for estimation of optimal dynamic treatment regimes*. - Hernán & Robins, [*Causal Inference: What If*](https://miguelhernan.org/whatifbook), Chapman & Hall/CRC. Chapter 20 treats treatment-confounder feedback. Section 20.3, pages 271-273 of the edition dated 19 August 2026, shows why adjustment for that confounder opens a collider path. Cited by the [sequential pricing tutorial](examples/sequential-pricing.ipynb). - Young, Stensrud, Tchetgen Tchetgen & Hernán (2020), [*A causal framework for classical statistical estimands in failure-time settings with competing events*](https://doi.org/10.1002/sim.8471), *Statistics in Medicine* 39(8):1199-1236, DOI 10.1002/sim.8471. The paper defines the total and controlled direct effects on a cause-specific cumulative incidence, and their identifying conditions. Cited by the [time-to-event tutorial](examples/longitudinal-survival.ipynb). Roadmap item [X56](roadmap.md#x56-competing-event-intervention-targets) part (a) reads arXiv:1806.06136v3. Section 4.1, Equations (5) and (6), defines the risk under elimination of competing events. Section 5 treats the competing event as a censoring event for that risk. Section 6.1, Equations (20) to (23), gives the identifying conditions and the g-formula. Section 8.1, Equations (36) and (37), gives the g-formula and IPW estimators of the direct effect. Section 7 states when the direct effect is well defined. - The `lmtp` 1.5.4 snapshot above, [`R/contrasts.R`, lines 19-57](https://github.com/nt-williams/lmtp/blob/f04a2b47f46debc515ce4ae778e05ebfde922c44/R/contrasts.R#L19-L57), forms `lmtp_contrast(type = "rr")` and `type = "or"` from the influence curves of two fits through the operators of `ife` 0.2.3. The curves are $IC_a/\psi_a - IC_b/\psi_b$ and $IC_a/(\psi_a(1-\psi_a)) - IC_b/(\psi_b(1-\psi_b))$, with the interval on the log scale. `LongitudinalResult.ratio` uses the same curves. A numeric reference is not offered. - Royston & Parmar (2013), *Restricted mean survival time: an alternative to the hazard ratio for the design and analysis of randomized trials with a time-to-event outcome*, *BMC Medical Research Methodology* 13:152. The definition of the RMST as the area under the survival curve up to a horizon. Pending source read for the section locator. - Andersen, Hansen & Klein (2004), *Regression analysis of restricted mean survival time based on pseudo-observations*, *Lifetime Data Analysis* 10:335-350. The restricted mean time lost to one cause. Pending source read for the section locator. - The full-refit bootstrap of `LTMLE` has no source for this estimator. The registered [full-refit bootstrap study](technical-reference/method-evidence/full-refit-bootstrap-and-derived-contrasts.md) measures its percentile interval with correctly specified cell-mean nuisances on finite binary laws, at $n = 1000$, and at 1,500 rows in 60 clusters for the cluster bootstrap. Cai & van der Laan (2020), in [collaborative TMLE](#collaborative-tmle), is the warning for a data-adaptive nuisance. ## Incremental interventions - Kennedy (2019), [*Nonparametric causal effects based on incremental propensity score interventions*](https://doi.org/10.1080/01621459.2017.1422737), *Journal of the American Statistical Association* 114(526):645–656, DOI 10.1080/01621459.2017.1422737. The locators below refer to [arXiv v3](https://arxiv.org/html/1704.00211v3). The published version's locators were not read. | locator | what the package reads from it | | --- | --- | | Section 3.1, Equation (1) | the odds tilt $q_t = \delta\pi_t/(\delta\pi_t + 1 - \pi_t)$ | | Section 3.2, Assumptions 1 and 2, Theorem 1 | identification with no positivity, for $\delta$ in a compact subset of $(0, \infty)$ | | Section 3.3, Theorem 2, Remark 2, Corollaries 1 and 2 | the efficient influence function, its mechanism term, and the sequential regression. The section states that double robustness is not possible, and that a known propensity score changes the efficiency bound | | Section 4.2, Algorithm 1 | the cross-fitted estimator. Every nuisance is fitted on the training rows, and the fold means are averaged | | Section 4.3, Theorem 3 | pointwise and uniform asymptotics, with conditions 1 to 4 | | Section 4.4, Theorem 4 | the multiplier band, and the no-effect test that the package does not offer | | Appendix 8.2, Lemmas 2, 3 and 4 | the influence function of a known stochastic intervention, the added term when the intervention reads $P$, and the derivative of $q_t$. The appendix states the lemmas and leaves the proofs of Lemmas 2 and 3 to later work | | Appendix 8.3, Algorithm 2 | the estimator without sample splitting | The point-treatment `TMLE(incremental=...)` is the package's own TMLE construction, not the paper's estimating-equation estimator. With baseline strata it inherits Theorem 2's influence function and Theorem 3's conditions inside each stratum. Section 6 lists effect modification by covariates as future work. That is a conditional curve, and a fixed finite partition is not one. The longitudinal `IPSI` is Algorithm 1, with the pooled mean of Theorem 3 in place of the average of fold means. Cited by [incremental interventions over time](technical-reference/longitudinal-tmle.md#incremental-interventions-over-time). - Kim, Kennedy & Naimi (2021), [*Incremental intervention effects in studies with dropout and many timepoints*](https://doi.org/10.1515/jci-2020-0031), *Journal of Causal Inference* 9(1):302–344, DOI 10.1515/jci-2020-0031. The locators below refer to [arXiv:1907.04004v3](https://arxiv.org/abs/1907.04004). The published version's locators were not read. | locator | what the package reads from it | | --- | --- | | Section 2 | monotone dropout after the treatment at each node, and a time-varying outcome | | Section 3, Assumptions A1, A2-E, A2-M and A3, Theorem 3.1 | identification under dropout, with dropout positivity only | | Section 4, Theorem 4.1 | the efficient influence function with the dropout weights | | Section 5.1, estimator (6) | the average of the fold means | | Section 5.2, Theorem 5.1 | conditions 1 to 4, and the joint process over $\delta$ and $t$ | | Appendix A, Algorithm 1 | the cross-fitted estimator with dropout. Step 4 uses $M_s$ both for the regression target and for the augmentation term | | Appendix F, Lemmas F.2 to F.5 | proofs of Kennedy's Lemmas 2 to 4 with dropout, for a general intervention distribution | Theorem 3.1 at one horizon also identifies the mean of a non-absorbing outcome $Y_t$. The repeated-outcome curve of `IPSI` rests on Theorems 3.1, 4.1 and 5.1: the functional at horizon $h$, its influence function, and the joint process over $\delta$ and $t$, which the package reports on the finite grid of declared tilts and horizons. The repeated-outcome curve of `LTMLE` cites the paper as context only. That curve rests on the end-of-study results of Bang & Robins (2005) and van der Laan & Gruber (2012). Kim's research code, `kwangho-joshua-kim/Incremental-dropout` at commit `6dc23fb4`, has no package and no tag. It is provenance only and no comparator. - Pinned `npcausal` 0.1.0 [`R/ipsi.R`](https://github.com/ehkennedy/npcausal/blob/56a5ac117a29258b67b94874be662a171b5131f7/R/ipsi.R) at commit `56a5ac11` is the comparator of the declared `longitudinal-incremental` study. It fits long data with `id` and `time` and an end-of-study `y`. | lines | what they do | | --- | --- | | 114 | draw the folds. The function takes no fold argument | | 128–139 | fit one pooled treatment regression over every `(id, time)` training row | | 150–156 | build the tilt weights, their cumulative product by `id`, and the mechanism factor `vt` | | 166–197 | regress each node's target on `x.out` and the arm, and form the tilted target `rtp1` | | 199–202 | assemble the influence-function values | | 208 and 212 | the mean over all units, and `sigma` as the standard deviation of the values | | 224–234 | the Rademacher multiplier band with 10,000 draws | Three defects are designed around and never patched. With `nsplits = 1` the training set `slong != split` is empty (lines 114–139). With `fit = "rf"`, lines 178–179 bind `rtp1` of length $n$ to $nT$ rows, so R recycles it across units. Line 255 subtracts `est.eff` recycled down the columns, which is wrong for more than one `delta`. - de Aguas (2026), [*Interpolated Stochastic Interventions Based on Propensity Scores, Target Policies and Treatment-Specific Costs*](https://arxiv.org/html/2511.11353), arXiv:2511.11353v3. The preprint constructs scalar-parameter categorical propensity policies from a reference policy and treatment-specific costs and derives their influence functions. It shows that a multi-arm extension is possible after its extra policy inputs are declared. This package ships a categorical `TMLE(incremental=...)` that tilts the odds of each level by a declared factor. That tilt is a different construction from the paper's interpolated policy, so the paper is background and not a validation of the categorical fit. ## Riesz representation and nested targeted learning - Balkus, Testa & Hejazi (2026), [*A Riesz Representer Perspective on Targeted Learning*](https://arxiv.org/abs/2604.21721), arXiv:2604.21721v1. Equation (1) gives the single-stage Riesz EIF; Theorem 1 and Corollary 1 on pages 5–6 give its general and conditional-mean forms; Theorem 2 on pages 6–8 gives the sequential EIF with cumulative representer products; Algorithm 1 on pages 9–10 gives the nested TMLE order; Sections 5.1–5.2 instantiate point-treatment means and longitudinal treatment regimes. - Chernozhukov, Newey & Singh (2022), [*Automatic Debiased Machine Learning of Causal and Structural Effects*](https://arxiv.org/abs/1809.05224), *Econometrica* 90(3), 967–1027, DOI 10.3982/ECTA18515. Equation (2.4) gives the orthogonal Riesz moment, equation (2.5) its product-bias identity, equations (3.1)–(3.2) the cross-fitted debiased and targeted estimators, and equations (3.3), (3.6), and (3.7) the dictionary moment, Gram matrix, and penalized minimum-distance Riesz learner. - Testa, Balkus & Hejazi, R package [`RieszCML`](https://github.com/nshlab/RieszCML) at commit [`45e8d277`](https://github.com/nshlab/RieszCML/tree/45e8d277930cd0df4eb8a91a7c686ee4c6fdef09). `R/ComposedRieszCurve.R` and `R/riesz_tmle.R` are the pinned implementation locators for innermost-first storage, suffix cumulative products, sequential targeting, and the distinct intervention evaluation `alpha_star`. `tests/testthat/test-double-robustness.R` supplies secondary nonzero mutations for reversed products and observed-state plug-in updates. The pinned code uses the untargeted curve for a targeted estimate's reported variance and falls back to observed `alpha` when `alpha_star` is missing; neither choice is adopted without an independent derivation. ## Sensitivity analysis - Chernozhukov, Cinelli, Newey, Sharma & Syrgkanis (2026), [*Long Story Short: Omitted Variable Bias in Causal Machine Learning*](https://doi.org/10.1162/REST.a.1705), *The Review of Economics and Statistics*, published online on 4 February 2026 with pages 1–45 and no volume or issue. DOI 10.1162/REST.a.1705. This package read the published online appendix and arXiv:2112.13398v6 of 21 September 2026. The publisher's site refused access to the published main text, so this package did not read it. The main-text locators follow v6. The published appendix cites "C.7. Proof of Theorem 2" and "C.10. Proof of Lemma 3 and Theorem 4", which match v6. - Stefanski & Boos (2002), *The calculus of M-estimation*, *The American Statistician* 56(1):29-38. Section 1 treats a partial M-estimator as an M-estimator by stacking. Section 3 gives the two-stage instrumental-variable example and its lower-triangular Jacobian. This package read the submitted version, so it cites sections and no pages. [Parametric per-arm intervals](technical-reference/collaborative-tmle.md#parametric-per-arm-intervals) uses the triangular structure. - van der Vaart (1998), *Asymptotic Statistics*, Cambridge University Press, Section 5.3, Theorem 5.21 (p. 52). A Z-estimator is asymptotically linear under a Lipschitz condition on the estimating function, differentiability of the mean estimating function at the limit with a nonsingular derivative, consistency, and a near-zero sample equation. This package read the theorem through secondary sources, not the book, and it quotes no wording. - Saul & Hudgens (2020), [*The Calculus of M-Estimation in R with geex*](https://www.jstatsoft.org/article/view/v092i02), *Journal of Statistical Software* 92(2), DOI 10.18637/jss.v092.i02. Its general stacked estimating-equation method computes a sandwich variance for specified smooth equations. It supplies a route for parametric plug-in inference, not a curve for arbitrary mechanism learners. - Bjelac, Chernozhukov, Klotz, Kueck & Schmitz (2026), [*Automatic debiased machine learning and sensitivity analysis for sample selection models*](https://proceedings.mlr.press/v323/bjelac26a.html), *Proceedings of Machine Learning Research* 323:353–392. The locators below follow [arXiv:2601.08643v1](https://arxiv.org/abs/2601.08643). Theorem 1 and Section 3.3 extend Riesz bounds to sample selection. Assumption 3 rules out unobserved confounding of treatment assignment. The result points to a response-mechanism specialization; it does not cover the general refusal in this package. - The R package `dml.sensemakr` in the repository `carloscinelli/dml.sensemakr`, [`R/short-parameters.R` at commit `d5293ecb`](https://github.com/carloscinelli/dml.sensemakr/commit/d5293ecb48ee1ea5816b84a01b31b68f2f17fa6a), function `ate.npm`. From that commit its curve of $\nu^2$ carries the influence term of the estimated treatment share. The reference section on the bound's standard error cites it as the implementation this package found with that term. Of the two implementations this package surveyed, the other is DoubleML. At its later commit `58ac44d` it also divides the point estimate of $\nu^2$. - DoubleML for Python, [`doubleml/irm/irm.py` at commit `b69f86ef`](https://github.com/DoubleML/doubleml-for-py/blob/b69f86ef7bdb50d3f9e94fbaf40f18ce050f13d2/doubleml/irm/irm.py), method `_sensitivity_element_est`. Its curve of $\nu^2$ omits the share term, and its ATTE score writes $m(\alpha)$ as $D / (p^2 (1 - \hat m))$. - DoubleML for Python, `doubleml/double_ml.py` on the `main` branch, fetched on 2026-10-14 with no resolvable commit. The hard-stop review read `DoubleML._validate_sensitivity_elements`. When the estimate of $\nu^2$ is not positive, the method warns of a "non-orthogonal" re-estimation and replaces the score of $\nu^2$ by the squared Riesz representer. Roadmap item [F26](roadmap.md#f26-confidence-limits-of-the-plug-in-omitted-variable-bound) cites it. - VanderWeele & Ding (2017), *Sensitivity analysis in observational research: introducing the E-value*. - VanderWeele (2010), [*Bias formulas for sensitivity analysis for direct and indirect effects*](https://doi.org/10.1097/EDE.0b013e3181df191c), *Epidemiology* 21(4):540-551. Read first-hand in the author manuscript ([PMC4231822](https://pmc.ncbi.nlm.nih.gov/articles/PMC4231822/)). Theorem 1 gives the controlled-direct-effect bias formula, with its proof in Appendix 2. It assumes $Y_{am} \perp A \mid C$ and $Y_{am} \perp M \mid A, C, U$, so $U$ confounds only the intermediate-outcome relation. Appendix 1 gives the risk-ratio bias for a binary $U$ with a constant $\gamma$. Roadmap item [X49](roadmap.md#x49-e-value-for-a-controlled-direct-effect) lets $U$ confound the treatment too, so this paper is context for X49 and not its base. - Smith & VanderWeele (2019), [*Mediational E-values: approximate sensitivity analysis for unmeasured mediator-outcome confounding*](https://www.louisahsmith.com/publications/smith2019mediational.pdf), *Epidemiology* 30(6):835-837. The [supplement](https://download.lww.com/wolterskluwer_vitalstream_com/PermaLink/EDE/B/EDE_2019_07_22_SMITH_EDE18-0696R2_SDC1.pdf) gives its natural-effect confounding model. The paper does not map it to this package's fitted population controlled direct effect at fixed intermediate level. - Ding & VanderWeele (2016), [*Sharp sensitivity bounds for mediation under unmeasured mediator-outcome confounding*](https://arxiv.org/html/1601.05155), *Biometrika* 103(2):483-490, DOI 10.1093/biomet/asw012. Sections 2–4 and Appendix D.4 of the arXiv version concern natural effects, including a natural direct effect among unexposed people. - Ding & VanderWeele (2016), [*Sensitivity analysis without assumptions*](https://arxiv.org/html/1507.03984), *Epidemiology* 27(3):368-377. Sections 2–3 and Appendix 2.5 give the bounding factor for an exposure contrast, general confounders, and averaging over measured covariates. The hard-stop review read arXiv:1507.03984v1, Section 2, Result 1 and Equation (1), eAppendix 1, Lemmas A.1 and A.2, and eAppendix 2.2, Propositions A.1 and A.2. The proof of Proposition A.2 bounds a ratio of two integrals with Lemma A.2. Roadmap item [X49](roadmap.md#x49-e-value-for-a-controlled-direct-effect) applies that bound to each arm. - Gilbert, Fong, Kenny & Carone (2023), [*A controlled effects approach to assessing immune correlates of protection*](https://academic.oup.com/biostatistics/article/24/4/850/7320953), *Biostatistics* 24(4):850-865. Its E-value compares marker interventions within one vaccination arm, rather than treatment arms at one fixed marker value. - Mathur, Ding, Riddell & VanderWeele (2018), [*Website and R Package for Computing E-Values*](https://pmc.ncbi.nlm.nih.gov/articles/PMC6066405/), *Epidemiology* 29(5):e45-e47. The article describes ordinary E-values and effect-scale conversions in software. - Tingley, Yamamoto, Hirose, Keele & Imai (2014), [*mediation: R Package for Causal Mediation Analysis*](https://www.jstatsoft.org/article/view/v059i05), *Journal of Statistical Software* 59(5):1-38. Its mediation sensitivity software does not provide an E-value mapping for the fitted controlled direct effect here. - The R package [`EValue` 4.1.4](https://cran.r-project.org/package=EValue), which has no function for mediation or a direct effect. That describes the software API only. - Scharfstein, Rotnitzky & Robins (1999), *Adjusting for nonignorable drop-out using semiparametric nonresponse models*. - Sharma & Kiciman (2020), [*DoWhy: An End-to-End Library for Causal Inference*](https://arxiv.org/abs/2011.04216), arXiv:2011.04216. Pages 3–4 describe a simulated common cause correlated with treatment and outcome. The paper supports a qualitative stress surface. It does not derive sensitivity-adjusted inference or a calibration formula. - Sharma, Syrgkanis, Zhang & Kiciman (2021), [*DoWhy: Addressing Challenges in Expressing and Validating Causal Assumptions*](https://arxiv.org/abs/2108.13518). Pages 4–6 state that these analyses require plausible domain values and cannot validate identification from observed data. - The maintained DoWhy simulated common-cause refuter, source at commit `2116d5c`. [`_include_confounders_effect`, lines 346-419](https://github.com/py-why/dowhy/blob/2116d5cbace5a057937e03b2efba95c13140cc4c/dowhy/causal_refuters/add_unobserved_common_cause.py#L346-L419) supplies the four perturbation branches. [`_simulate_confounders_effect_once`, lines 807-844](https://github.com/py-why/dowhy/blob/2116d5cbace5a057937e03b2efba95c13140cc4c/dowhy/causal_refuters/add_unobserved_common_cause.py#L807-L844) applies a complete fit and effect estimate after the perturbation. Its direct simulation branches supply the binary tail flip, $A'=A+k_AU$, $Y'=Y-k_YU$, and the binomial outcome tail flip. These are secondary finite-sample conventions only. `cleverly` uses original data per cell, one shared latent vector, common refit seeds, an exact zero anchor, explicit grids, and retained failures. It does not copy automatic ranges, categorical encoded-column deletion, or cumulative mutation of shared data. The refuter takes no weight argument in `_include_confounders_effect`, so this source supplies the perturbation and the refit only. It does not supply the weighted evaluation. - Carnegie, Harada and Dorie, R package [`treatSens`](https://github.com/vdorie/treatSens) 3.0 (`DESCRIPTION` dated 2024-02-03), read on the `master` branch. The hard-stop review read `R/genU_contY.R`, `R/treatSensMLM.R` and `man/treatSens.Rd`. `treatSensMLM` declares the latent at the individual or the group level (`trt.level`, lines 4 to 7). `contYZU` in `R/genU_contY.R` draws one latent value per group for a group-level treatment (lines 37 to 84). `man/treatSens.Rd` documents weights recomputed from the propensity of each refit. Roadmap item [X47](roadmap.md#x47-simulated-confounding-laws-for-point-treatment-fits) part (b) cites it as a design precedent for the latent level, not as a base. - Qin and Yang, R package [`mediationsens`](https://cran.r-project.org/package=mediationsens) 0.0.3, read in the CRAN reference manual. `sens()` simulates a pretreatment latent that enters the mediator and outcome models, and the treatment model when the treatment is not randomized. It treats a binary treatment and the natural direct and indirect effects only. Roadmap item [F15](roadmap.md#f15-controlled-direct-effect-simulated-confounding-replay) cites it. - The same DoWhy function branches on treatment and outcome variable types only. It has no branch for a response indicator, intermediate, cluster identifier, longitudinal history, or estimated weight model. These omissions locate the fit-wide refusal boundary. They do not prove that no other method can supply a law. - Díaz and van der Laan (2017), under [DR-TMLE](#doubly-robust-inference-drtmle), define the observed-data model and estimator for randomized trials with missing outcomes. Their response mechanism is part of missing-at-random identification. They do not define a response-indicator perturbation for a simulated common cause. Holding the indicator fixed after treatment changes is therefore not licensed by that estimator source. - Tan (2025), under [proposed methods](#proposed-methods-on-the-roadmap), does not define a time-indexed latent perturbation followed by a complete LTMLE refit. That omission places longitudinal replay in [F13](roadmap.md#f13-longitudinal-simulated-confounding-replay). The entry under proposed methods records what the paper does supply. [F16](roadmap.md#f16-longitudinal-sensitivity-bound-estimation) states the contracts it leaves open. - The same pinned DoWhy refit preserves `effect_modifier_names` and `target_units`. Its [propensity-weighting estimator](https://github.com/py-why/dowhy/blob/2116d5cbace5a057937e03b2efba95c13140cc4c/dowhy/causal_estimators/propensity_score_weighting_estimator.py) rebuilds ATT and ATC weights from the treatment in the supplied dataset. The `estimate_effect` method selects those weights through `target_units="att"` or `"atc"`. Thus observed-treatment membership follows the perturbed data. Fixed baseline strata retain their original membership because the perturbation changes neither their names nor values. These are qualitative composition conventions; they supply no sensitivity-adjusted interval. - Sofrygin and van der Laan (2017), [*Semi-Parametric Estimation and Inference for the Mean Outcome of the Single Time-Point Intervention in a Causally Connected Population*](https://pmc.ncbi.nlm.nih.gov/articles/PMC5650205/), DOI 10.1515/jci-2016-0003. Section 3.2 gives the iid influence curve for a fixed stochastic intervention. The subsection titled "EIC for data-adaptive parameter indexed by fixed stochastic intervention" fixes $q=g^*$ and displays $q/g\,(Y-Q)+E_q Q-\Psi$. The regime stress surface uses this iid formula only. It claims no network inference. Static assignments and baseline rules are degenerate fixed densities. A law-dependent intervention needs the additional derivative that the paper distinguishes. - Fixed-regime replay uses the existing [known-regime contract](technical-reference/point-treatment-tmle.md#known-regimes). That contract cites Díaz & van der Laan (2013) under [point treatment and stochastic interventions](#point-treatment-and-stochastic-interventions). It combines that functional with the pinned DoWhy perturbation and complete refit. Pinned `lmtp` [`R/estimators.R`, lines 109–138](https://github.com/nt-williams/lmtp/blob/f04a2b47f46debc515ce4ae778e05ebfde922c44/R/estimators.R#L109-L138) rebuilds the task and nuisance fits from supplied data. Its [`R/shift.R`, lines 1–45](https://github.com/nt-williams/lmtp/blob/f04a2b47f46debc515ce4ae778e05ebfde922c44/R/shift.R#L1-L45) retains the supplied policy function. `cleverly` freezes validated baseline densities across cells. This is qualitative replay provenance, not a canonical sensitivity comparison. - van der Laan & Gruber (2010) is listed under [collaborative TMLE](#collaborative-tmle). [Section 6](https://pmc.ncbi.nlm.nih.gov/articles/PMC2898626/) defines the fixed-weight least-squares MSM projection and its normalized influence curve. A linear working model gives the existing identity-link projection used by the binary MSM surface. The surface holds its design and $h(a,W)$ fixed while refitting each perturbed dataset. - Pinned `tmle3` [`R/Param_MSM.R`, lines 72–81 and 115–234](https://github.com/tlverse/tmle3/blob/ed72f8a20e64c914ab25ffe015d865f7a9963d27/R/Param_MSM.R#L72-L234) supplies arm-counterfactual, custom-weight, design, and projection implementation provenance. It selects a logistic working projection for binary outcomes and a Gaussian projection otherwise. Its conditional-probability weight default is outside this surface's fixed-weight contract. The binary-outcome identity-link surface therefore claims no coefficient parity with that default. - Incremental replay uses Kennedy (2019), [Section 3.1, equation (1), and Corollaries 1–2](https://arxiv.org/html/1704.00211v3). The multiplier stays fixed while the intervention density depends on the treatment mechanism. Multiplier one leaves that mechanism unchanged. Pinned [`npcausal` `R/ipsi.R`, lines 123–192](https://github.com/ehkennedy/npcausal/blob/56a5ac117a29258b67b94874be662a171b5131f7/R/ipsi.R#L123-L192) rebuilds propensity estimates, tilt weights, and the mechanism contribution for fixed `delta.seq`. This is estimator provenance. Neither source supplies a simulated-confounding bound or interval. - The MSM replay audit uses the existing fixed-weight projection and complete estimator. Van der Laan and Gruber's Section 6 starts with discrete treatment and a differentiable working model. Its worked fluctuation then assumes a coefficient-independent clever covariate. It does not directly validate nonlinear fixed-weight alternation or continuous numerical integration. Pinned `tmle3` evaluates observed-treatment designs and weights separately from counterfactual projection arrays. Its logistic loss and continuous integration differ from this package's fixed-grid least-squares construction. No nonlinear or continuous coefficient parity, new estimator, or interval claim follows from this diagnostic audit. - DoWhy's pinned [calibration helpers](https://github.com/py-why/dowhy/blob/2116d5cbace5a057937e03b2efba95c13140cc4c/dowhy/causal_refuters/add_unobserved_common_cause.py#L213-L340) calibrates encoded coordinates separately. Its binary branch zeros one standardized column. Its continuous branch uses one column's correlation times the perturbed variable's standard deviation. Neither branch defines a logical categorical benchmark on these strength scales. - Fixed-weight binary DR-TMLE surfaces compose that DoWhy perturbation with Benkeser, Carone, van der Laan & Gilbert (2017), Theorem 1. The theorem supplies the complete-outcome corrected curve and remainder conditions. Existing exact-law tests transport every term to the fixed tilt $dP_w=w\,dP/E_P[w]$. The joint law factorizes as $P_w\times\Phi$ because each weight depends only on its observed row. The pinned R `drtmle` 1.1.2 implementation accepts no observation-weight argument, so it supplies no weighted comparison. - Fixed-weight binary C-TMLE surfaces compose the DoWhy perturbation with van der Laan & Gruber (2010), Sections 2, 5.1, and 6. Those sections define C-TMLE for a generic law. The selector scores each candidate path against the empirical outcome loss and an optional influence-curve penalty. The package substitutes the tilted law $dP_w=w\,dP/E_P[w]$ and its normalized empirical measure. `tests/unit/test_simulated_confounding.py::test_fixed_weight_ctmle_selector_components_recompute_from_the_refit` rebuilds the weighted loss, penalty, fold assignment, and nested cross-validated risk of a refit. Component mutations in the same module strip the weights from one production method and move that risk. No exact-law transport test covers this composition. The outcome-adaptive route uses the same measure for its categorical mechanism. The pinned R `ctmle` and archived `ctmle3` sources have no weighted comparison, so this composition claims no parity with either. - Hartman & Huang (2024), [*Sensitivity Analysis for Survey Weights*](https://doi.org/10.1017/pan.2023.12), *Political Analysis* 32(1):1-16. Their method bounds the bias from a confounder that the weighting model omits. It supplies a bound, a robustness value, and a benchmarking procedure. This surface supplies none of those, so it answers a different sensitivity question. - Hu, Zou, Gu, Ji, Lopez & Kale (2022), [*A flexible sensitivity analysis approach for unmeasured confounding with multiple treatments and a binary outcome with application to SEER-Medicare lung cancer data*](https://doi.org/10.1214/21-AOAS1530), *The Annals of Applied Statistics* 16(2):1014–1037, DOI 10.1214/21-AOAS1530. The paper supplies a Monte Carlo sensitivity analysis for multiple treatments and a binary outcome. It keeps the treatment fixed and adjusts the potential outcomes through confounding functions, inside a Bayesian nested multiple-imputation procedure. The abstract on page 1014 states that scope. The method encodes the impact of unmeasured confounding on the potential outcomes, and adjusts the estimates of causal effects. The paper does not perturb the treatment variable. It therefore supplies no category-valued latent treatment perturbation and no refit law for this surface. Roadmap item X47, part (a), cites it as a negative finding. The hard-stop review read arXiv:2012.06093, Sections 2.1 to 2.3.1, Theorem 2.1 and Remark 2. - Ou, Tang & Chang (2023), [*Sensitivity Analysis of Causal Treatment Effect Estimation for Clustered Observational Data with Unmeasured Confounding*](https://arxiv.org/abs/2301.12396v1), arXiv:2301.12396v1. The paper models unmeasured cluster effects through mixed models. It derives a bias correction from those models. That construction does not perturb the treatment and the outcome before a complete TMLE refit. It does not choose between a row-level, a cluster-level, and a mixed latent cause for this surface. Roadmap item X47, part (b), cites it as a negative finding. ## Negative controls - Penning de Vries & Groenwold (2023), [*Negative controls: Concepts and caveats*](https://doi.org/10.1177/09622802231181230), *Statistical Methods in Medical Research* 32(8):1576–1587. Not read here. It is cited for the standard caveat rather than for a derivation. A negative control has limited sensitivity and specificity for unmeasured confounding, and a null association does not establish the null. ## Refutation - Sharma & Kiciman (2020), [*DoWhy: An End-to-End Library for Causal Inference*](https://arxiv.org/abs/2011.04216), arXiv:2011.04216. The paper defines the four-stage framework and describes outcome, bootstrap, and unobserved-confounder refutations. It supports the shipped generated-outcome and bootstrap measurement-error refutations. The sensitivity section records its separate simulated common-cause role. - The maintained DoWhy dummy outcome refuter, source at commit [`2116d5c`](https://github.com/py-why/dowhy/blob/2116d5cbace5a057937e03b2efba95c13140cc4c/dowhy/causal_refuters/dummy_outcome_refuter.py). It supplies secondary control-flow evidence for independent noise and `f(W) + h(A)`. Two of its choices are not adopted. The first is a normal rule below 100 draws, in `perform_normal_distribution_test` in `dowhy/causal_refuter.py`. The second is the absence of any failure policy: the pinned file has no `try` block, and its refits run under `joblib.Parallel`, so one failed refit aborts the refutation. `cleverly` retains each failed refit as a `ReplicationFailure` record and fails the refutation under the recorded rule. - The maintained DoWhy bootstrap refuter, source at commit [`2116d5c`](https://github.com/py-why/dowhy/blob/2116d5cbace5a057937e03b2efba95c13140cc4c/dowhy/causal_refuters/bootstrap_refuter.py). Its measurement-error control flow supplies secondary implementation evidence. The package does not copy its dtype check, categorical probability reuse, or shared simulation seed. The source locator is an implementation reference and not acceptance evidence. ## Simulation studies - Morris, White & Crowther (2019), [*Using simulation studies to evaluate statistical methods*](https://doi.org/10.1002/sim.8086), *Statistics in Medicine* 38(11):2074–2102, DOI 10.1002/sim.8086. Read first-hand in the open-access version of record on PubMed Central, PMC6492164. Table 6 gives the Monte Carlo standard error of each performance measure. For the empirical SE it is `EmpSE / sqrt(2 (n_sim - 1))`. Section 5.2 defines the average model SE as the root mean of the squared model SEs. Section 5.3, Equation (1), sizes a study for coverage as `n_sim = E(Coverage) (1 - E(Coverage)) / MCSE^2`. RM18 of the [roadmap](roadmap.md) reads its re-read budgets off these forms. ## Multiple testing - Benjamini & Hochberg (1995), [*Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing*](https://doi.org/10.1111/j.2517-6161.1995.tb02031.x), DOI 10.1111/j.2517-6161.1995.tb02031.x. ## Calibration of prediction models The [calibration-slope rule](technical-reference/validation-methods.md#calibration-slope-rule) rests on the entries below. No entry gives a fixed band or a rule for cross-fitted nuisance predictions, so the rule is a design decision built from these parts. - Riley, Debray, Collins, Archer, Ensor, van Smeden & Snell (2021), [*Minimum sample size for external validation of a clinical prediction model with a binary outcome*](https://doi.org/10.1002/sim.9025), *Statistics in Medicine* 40(19):4230–4251. Section 2.1.2 and its Equation (2) define the calibration slope as the slope of a logistic regression of the outcome on the linear predictor. The section states that an unpenalized maximum likelihood fit has an apparent slope of 1 in its development data, and reads a slope below 1 on new data as overfitting. Section 3.2, Equations (6) and (7), gives the standard error of the slope from the inverse Fisher information. - Stevens & Poppe (2020), [*Validation of clinical prediction models: what does the "calibration slope" really measure?*](https://doi.org/10.1016/j.jclinepi.2019.09.016), *Journal of Clinical Epidemiology* 118:93–99. Section 2 traces the statistic to Cox (1958), who called it a measure of spread. Sections 3 and 4 show that the slope alone does not measure calibration and must be read with the intercept. - Van Calster, McLernon, van Smeden, Wynants & Steyerberg (2019), [*Calibration: the Achilles heel of predictive analytics*](https://doi.org/10.1186/s12916-019-1466-7), *BMC Medicine* 17:230. The section "How to assess calibration?" reads a slope below 1 as estimated risks that are too extreme and a slope above 1 as risks that are too moderate. Read through the Europe PMC full text, not page by page. - Cox (1958), [*Two further applications of a model for binary regression*](https://doi.org/10.1093/biomet/45.3-4.562), *Biometrika* 45(3–4):562–565. The logistic regression of observed outcomes on the logit of stated probabilities. Not read first-hand here. Stevens & Poppe (2020), Section 2, report its content. ## Doubly-robust inference (`DRTMLE`) The variant rests on three sources. The first two give the estimating equations. The third gives the implementation for the influence curve. The papers are not kept in the repository, so each entry below gives section, equation, theorem, or page locators that resolve without a local copy. Two names are inverted between the papers and the `benkeser/drtmle` source. This package's `ReducedSet.gr1` is R's `grn2`, and `gr2` is R's `grn1`. That is the single easiest thing here to transcribe backwards. No R enters this repository or its CI, so the pinned source is provenance rather than a comparison target. - van der Laan (2014), [*Targeted estimation of nuisance parameters to obtain valid statistical inference*](https://doi.org/10.1515/ijb-2012-0038), International Journal of Biostatistics 10(1):29–57, DOI 10.1515/ijb-2012-0038. It gives the bivariate construction's binary targeted recursion and its asymptotic-linearity result. Benkeser et al. (2017), Section 3.1, cites that iterative algorithm as "Theorem 3 of van der Laan (2014)", with this journal version in its reference list. The RM19 review could not read the journal version, which is not open access. So this repository cites **Theorem 3** through Benkeser et al. (2017), Section 3.1, and gives no page or section locator of its own. The later univariate result remains the default. - Benkeser, Carone, van der Laan & Gilbert (2016), *Doubly-robust Nonparametric Inference on the Average Treatment Effect*, U.C. Berkeley Division of Biostatistics Working Paper Series, paper 356. Read first-hand by the RM19 review. RM40 did not read this version. §3.1 and equation (2) are p. 9; §3.2, Theorem 1 and the recursive algorithm are pp. 10–11; appendix A is pp. 19–20, appendix B p. 21, appendix C pp. 21–22. Theorem 1, pp. 10–11, states nuisance-limit, score, convergence and remainder conditions for asymptotic linearity. It is not an unconditional guarantee. - Benkeser, Carone, van der Laan & Gilbert (2017), [*Doubly robust nonparametric inference on the average treatment effect*](https://pmc.ncbi.nlm.nih.gov/articles/PMC5793673/), *Biometrika* 104(4):863–880. The **published** version of the above, and authoritative wherever the two differ. Read first-hand. Theorem 1 states the score and remainder conditions for asymptotic linearity. Section 3.2 gives Theorem 1 and the recursive algorithm, Steps 1 to 8. Step 2 fluctuates the outcome regression before Step 3 fits any reduced regression. Appendix B gives rates of $o_P(n^{-1/4})$ in $L^2(P_0)$ as one sufficient condition on the second-order terms. The RM19 review read these locators in PMC5793673, formula images included. Section 4 treats doubly robust inference by one-step estimation. Section 5 is the simulation study. Section 5.1 supplies the binary simulation law and its three nuisance scenarios. Section 3.2 and Theorem 1 are also the base result of the [composite indicator](technical-reference/dr-tmle/theorem.md#observational-missing-data-the-composite-indicator): Theorem 1 applies as stated to $(W, C_a, C_a Y)$ with the binary treatment $C_a = \Delta_A \Delta 1\{A = a\}$. The paper mentions no missing data and records no caveat about coarsening. **Source defect: the one-wrong inference claim.** Section 3.2, in the paragraph after Step 8, states: "Thus, valid statistical inference is preserved when one nuisance parameter is inconsistently estimated". Section 6, first paragraph, states that "it is possible to theoretically guarantee doubly robust inference under mild conditions". The conditions are those of Appendices A and B. | locator | content | what RM40 found | | --- | --- | --- | | Appendix A, the display that defines $R_{3n}$ and $R_{4n}$, and the rate list after it | $\bar Q_{0n,r}$ conditions on $(g_n(W), g_0(W))$. The rates on $\bar Q_{0n,r} - \bar Q_{n,r}$, $\bar Q_{n,r} - \bar Q_{0,r}$ and $g_n - g_0$ are $o_P(n^{-1/4})$, "for example" | $R_{3n}$ is linear in $g_n - g_0$ when $\bar Q$ is wrong. The first rate holds then only when $g$ is known, when its error keeps the level sets of $g_0$, or when the law makes the term vanish (H1) | | Appendix B, the display of $\tilde R_{5n}$ and the rate list after it | $g_{1,0n,r}$ and $g_{2,0n,r}$ condition on $(\bar Q_n(W), \bar Q_0(W))$ | $\tilde R_{5n}$ is linear in $\bar Q_n - \bar Q_0$ when $g$ is wrong, with the same three exceptions | | Appendix A, the display that defines $\bar Q_{0n,r}$ | the conditioning omits $A = 1$ under "some abuse of notation" | the first equality of the display that precedes it needs $A = 1$. The [contract](technical-reference/dr-tmle/theorem.md#the-remainder-terms-and-the-rate-conditions) prints it | Each implication in the appendices is correct. Its premise fails in the generic one-wrong case, and no fit can check the cases where it holds, except a declared known mechanism. The [contract](technical-reference/dr-tmle/theorem.md#the-conditioning-terms-are-linear-in-one-error) gives both identities and the case table. The Section 5.1 law is symmetric, so both terms vanish on it ([derivation](technical-reference/dr-tmle/theorem.md#the-conditioning-terms-are-linear-in-one-error), pinned by `tests/unit/test_drtmle_h1_symmetry.py`). Its simulation cannot show the defect. RM40 read both appendices, Section 3.2 and Section 6 in PMC5793673, formula images included. - Benkeser & Hejazi (2023), [*Doubly-Robust Inference in R using `drtmle`*](https://doi.org/10.1353/obs.2023.0017), *Observational Studies* 9(2):43–78, DOI 10.1353/obs.2023.0017. Read first-hand. Multi-level treatments are §4.6, pp. 66–67; cross-validated nuisance regression is §4.7, p. 69. The package vignette describes both reduced-regression choices for user-specified levels of a discrete treatment, and the pinned source implements the bivariate branch inside the same per-level loop; that is the provenance for the multi-arm extension, not an expansion of van der Laan's binary theorem. - Díaz & van der Laan (2017), *Doubly robust inference for targeted minimum loss-based estimation in randomized trials with missing outcome data*, Statistics in Medicine 36:3807–3819, DOI [10.1002/sim.7389](https://doi.org/10.1002/sim.7389). Read first-hand in the arXiv v1 author manuscript. The locators below are that manuscript's pages. This audit did not compare them with the journal version. | locator | content | | --- | --- | | Section 2.1, page 6 | observed data $(W, A, M, MY)$ in the nonparametric model, with `A` a binary arm indicator; "in our application we have four such indicators" | | Assumptions 1–4, pages 6–7 | consistency, treatment independent of the potential outcome given `W`, MAR given `(A, W)`, and positivity | | Assumption 2, page 7 | treatment independent of the potential outcome given `W` | | Section 3, Equation (1), page 10 | the efficient influence function | | Section 3, Equation (3), page 11 | the logistic TMLE among rows with $(A, M) = (1, 1)$ | | Condition 2, page 13, and Condition 3, page 15 | the Donsker condition and the strengthened doubly robust consistency condition | | Equation (6), page 15 | the reductions | | Theorem 1, page 16 | the corrected influence curve `D_dr` | | Steps 1–5, pages 18–20 | the algorithm. Step 3 fits `epsilon_A` by "a logistic regression model of A on Z_A with no intercept and an offset term equal to logit g_A(W) using all observations" | | Equations (11)–(13), page 19 | the three correction equations | | Theorem 2, page 20 | the asymptotic linearity result for one arm indicator | | Appendix A.1, equations (14) to (19), page 26; equations (20) and (21), page 27; the bound on (21), page 28 | the proof of Theorem 1, and the step this entry records as a defect | | Appendix A.2, Lemma 1, page 29; Lemma 2, page 30 | the asymptotic linearity of the drift, and the kernel rates of the reductions | | page 25 | a referee's composite `T = AM` reduction, rejected as "unsatisfactory because it ignores intrinsic properties of the variables A and M" | | page 26 | removing Condition 2 by cross-validation "would follow from trivial extensions" of Zheng and van der Laan (2011) | **Source defect: the step at equation (21).** The proof of Theorem 1, in Appendix A.1, defines $\hat e_0 = E[Y - m_1 \mid A = 1, M = 1, g_0(W), \hat g(W)]$ and replaces it by $e_0 = E[Y - m_1 \mid A = 1, M = 1, g_0(W)]$. Page 28 calls the difference, equation (21), $O_P(\lVert \hat g - g_0 \rVert^2)$. The difference is linear in $\hat g - g_0$ when the error of $\hat g$ breaks the level sets of $g_0$. Lemma 1 and Theorem 2 inherit the step. Lemma 2 bounds the fitted reductions against their limits, which is a different comparison, and is not affected. RM40's audit and the RM40 implementation read Appendix A.1, equations (14) to (21), Lemma 1 and Lemma 2 in the arXiv v1 manuscript. They did not compare the journal version. The [contract](technical-reference/dr-tmle/theorem.md#randomized-trials-with-missing-outcomes) states the consequence for this route. The package applies Theorem 2 to each arm indicator and stacks the arm estimators above two arms. The [multi-arm contract](technical-reference/dr-tmle/theorem.md#more-than-two-arms) gives the steps and the conditions. The [point-treatment entry](#point-treatment-and-stochastic-interventions) for the same paper records its identification and rate locators. The paper establishes the missing-outcome construction for randomized treatment. It does not establish the observational-treatment or missing-treatment compositions, which is an absence and not an objection. The page-25 rejection concerns design information that a randomized trial knows. On an observational law nothing about the treatment mechanism is known, so the composite discards nothing. The package fits those compositions with the composite indicator. Page 4 calls cross-validated results "straightforward extensions of the work of Zheng and van der Laan (2011)". It adds "we do not pursue such results here". Page 26 states that such a development "would follow from trivial extensions" of that work. The `benkeser/drtmle` R package supplies implementation provenance and a bounded numerical comparison. Agreement with it does not establish the theorem or truth-based validity. The registered study asks those questions separately. The inspected source is pinned at [`538a3a2`](https://github.com/benkeser/drtmle/tree/538a3a264c1ca984b6d88978ca7f96165f43152c): `R/estimate.R` loops the reductions over treatment levels and constructs a compatible initial mechanism; `R/fluctuate.R` applies independent one-vs-rest mechanism fluctuations. With missing outcomes, R `drtmle` takes one joint treatment-response mechanism. `fluctuateG` uses the composite response `A == a & DeltaA == 1 & DeltaY == 1` ([`R/fluctuate.R`, line 98](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/fluctuate.R#L98)). `estimateQrn` regresses `Y - Qn` on that joint mechanism among rows with `A == a`, `DeltaA == 1` and `DeltaY == 1` ([`R/estimate.R`, lines 1117–1126](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/estimate.R#L1117-L1126)). This is the composite construction that Díaz and van der Laan reject on page 25. Both randomized missing-outcome studies therefore pair with it at the both-correct limit only. The same composite construction is what the package fits for an observational missing outcome and a missing treatment, so the observational missing-data study pairs with it as one estimator. The source locators are these. | locator | content | | --- | --- | | [`R/drtmle.R`, lines 207-209](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/drtmle.R#L207-L209) | `DeltaA = as.numeric(!is.na(A))` and `a_0 = unique(A[!is.na(A)])`: an `NA` treatment is an unrecorded one | | [`R/drtmle.R`, line 364](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/drtmle.R#L364) | a supplied `gn` skips `estimateG` | | [`R/drtmle.R`, lines 861 and 884](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/drtmle.R#L861-L884) | `out$tmle` is the `fluctuateQ1` fit alone | | [`R/fluctuate.R`, lines 28, 98 and 169-172](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/fluctuate.R#L169-L172) | the indicator `A == a & DeltaA == 1 & DeltaY == 1`, including the bivariate `H2` | | [`R/estimate.R`, lines 116-200](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/estimate.R#L116-L200) | `estimateG`: the three-factor chain `P(DeltaA = 1 \| W) P(A = a \| DeltaA = 1, W) P(DeltaY = 1 \| A = a, DeltaA = 1, W)` | | [`R/estimate.R`, lines 1109-1110](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/estimate.R#L1109-L1110) | each reduced regression sets `Aeqa[is.na(Aeqa)] <- FALSE` | | [`R/estimate.R`, lines 1117-1150](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/estimate.R#L1117-L1150) | the `SL_Qr` branch of `estimateQrn` filters on `trainDeltaA == 1` | | [`R/estimate.R`, lines 1176-1178](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/estimate.R#L1176-L1178) | the `glm_Qr` branch filters on `trainDeltaY == 1 & trainDeltaY == 1`, so `DeltaA` is absent there. With `NA` coding the `Aeqa` line removes every unrecorded row, so the slip has no effect. The package masks by `Delta_A` directly, and `tests/unit/test_composite_missing_data.py` (E12) pins that a coded treatment on an unrecorded row changes nothing | The same commit codes a missing outcome and a missing treatment as one composite indicator. `R/drtmle.R` line 207 sets `DeltaA = as.numeric(!is.na(A))`. `R/fluctuate.R` line 28 builds the clever covariate from `A == a & DeltaA == 1 & DeltaY == 1`, and lines 98 and 169-171 use the same indicator. `R/estimate.R` factorizes the composite mechanism as $P(\Delta_A=1\mid W)\,P(A=a\mid\Delta_A=1,W)\,P(\Delta_Y=1\mid\Delta_A=1,A=a,W)$. In the `glm_Qr` branch of `estimateQrn`, `R/estimate.R` lines 1177-1178 filter on `trainDeltaY == 1 & trainDeltaY == 1`, so `DeltaA` is absent from that subset. A missing `A` is coded `NA`, and `Aeqa[is.na(Aeqa)] <- FALSE` already drops those rows, so the effect is nil under that coding. The [natural-extension verdicts](technical-reference/natural-extension-verdicts.md) use these locators for parts (a) and (b). The same snapshot fixes two post-fit conveniences. [`R/confint.R`, lines 146-167](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/confint.R#L146-L167) forms `ci(contrast = list(f, f_inv, h, fh_grad))` as $f^{-1}(f(h) \pm z\,se)$, with $se$ from the gradient of $f \circ h$. [`R/test.R`, lines 85-183](https://github.com/benkeser/drtmle/blob/538a3a264c1ca984b6d88978ca7f96165f43152c/R/test.R#L85-L183) forms `wald_test(null = )` as $(f(h) - f(\text{null}))/se$. `contrast(transform=)` and `ParameterEstimate.wald_test` reproduce both, and sort the transformed limits. ## The TWINS example The [TWINS notebook](examples/twins-causal-inference.ipynb) cites these sources for the data, the exposure coverage, and the reading of its birth-weight table. - National Center for Health Statistics, linked birth/infant death cohort files for the 1989, 1990, and 1991 birth cohorts, distributed by the [National Bureau of Economic Research](https://www.nber.org/research/data/linked-birthinfant-death-cohort-data). NCHS collected the data, and it is not responsible for any analysis of them. Use of the data signifies agreement with the [NCHS data-use rules](https://www.cdc.gov/nchs/data_access/restrictions.htm): statistical analysis only, and no attempt to identify any person. The 1989 user guide counts the deaths of infants who die before their first birthday (introduction, p. 1, and the note to Table 2, p. 6). The table of items not stated by state of residence in each guide names the states that did not collect the tobacco item: California, Indiana, Louisiana, Nebraska, New York, Oklahoma, and South Dakota in 1989 (guide p. 9); California, Indiana, New York, Oklahoma, and South Dakota in 1990 (p. 12); and California, Indiana, New York, and South Dakota in 1991 (p. 9). - Louizos, Shalit, Mooij, Sontag, Zemel & Welling (2017), [*Causal effect inference with deep latent-variable models*](https://proceedings.neurips.cc/paper/2017/hash/94b5bde6de888ddf9cde6748ad2523d1-Abstract.html), *Advances in Neural Information Processing Systems* 30 (NIPS 2017). Section 4.3 describes the TWINS benchmark. The notebook uses the CSV extraction of the [CEVAE repository](https://github.com/AMLab-Amsterdam/CEVAE/tree/9081f863e24ce21bd34c8d6a41bf0edc7d1b65dd/datasets/TWINS), which holds the same-sex twin pairs of the three cohorts without the pairs of equal birth weight. The repository states no licence. - Hernández-Díaz, Schisterman & Hernán (2006), [*The birth weight "paradox" uncovered?*](https://doi.org/10.1093/aje/kwj275), *American Journal of Epidemiology* 164(11):1115-1120, DOI 10.1093/aje/kwj275. It uses the 1991 US linked file with maternal smoking as the exposure. Figure 3 gives the causal graphs, and the discussion explains the paradox as selection bias from stratification on birth weight, which smoking affects and which shares unmeasured causes, such as birth defects, with infant mortality. The notebook also cites one source for its sensitivity analysis. Its entry is under [sensitivity analysis](#sensitivity-analysis). - Chernozhukov, Cinelli, Newey, Sharma & Syrgkanis (2026), for the omitted-variable bounds. ## Proposed methods on the roadmap These sources locate unshipped methods in the [roadmap](roadmap.md). A roadmap citation does not support a shipped claim. Each item states the remaining source work. - Tan (2025), [*Sensitivity models and bounds under sequential unmeasured confounding in longitudinal studies*](https://doi.org/10.1093/biomet/asae044), *Biometrika* 112(1), DOI 10.1093/biomet/asae044. The hard-stop review read arXiv:2308.15725, Section 3.1, Equation (11), and Section 4.1, Equation (34). The paper treats a terminal outcome under binary, static longitudinal strategies. Section 2 states that it deals with static strategies only. It defines population sensitivity models and observed-data convex representations for sharp or conservative bounds. It keeps the primary, joint, and product models separate. The primary and joint models share the same sharp mean bounds. The product representations are conservative except in the restricted cases the paper states. Section 6.2 treats sharp contrasts over multiple strategies in two periods only. Section 3.2, after Proposition 1, sketches sample analogues under linear parameterizations. That sketch assumes consistent ICE or IPW estimation for a transformed outcome. The same passage leaves estimation with sample data to future work. It also supplies one large-sample property. A misspecified parameterization of the quantile functions still returns a conservative bound. Section 6.3 keeps the paper at the population level. It asks for specialized algorithms, and for sample estimation of the ICE and IPW functionals. The paper reports no sampling inference for any bound. Cited by future investigation [F16](roadmap.md#f16-longitudinal-sensitivity-bound-estimation), which states the missing contracts. - van der Laan, Carone & Luedtke (2024), [*Combining T-learning and DR-learning: a framework for oracle-efficient estimation of causal contrasts*](https://arxiv.org/abs/2402.01972), arXiv:2402.01972. The paper derives EP learning for heterogeneous causal contrasts. Cited by roadmap item P1. - Rust & Rao (1996), [*Variance estimation for complex surveys using replication techniques*](https://doi.org/10.1177/096228029600500305), *Statistical Methods in Medical Research* 5(3):283–310, DOI 10.1177/096228029600500305. The paper reviews jackknife, balanced repeated replication, and bootstrap variance methods. Cited by roadmap item X2. - Díaz, Hejazi, Rudolph & van der Laan (2021), [*Non-parametric efficient causal mediation with intermediate confounders*](https://doi.org/10.1093/biomet/asaa085), *Biometrika* 108(3):627–641, DOI 10.1093/biomet/asaa085. A correction follows at *Biometrika* 111(2):723–726, DOI [10.1093/biomet/asae009](https://doi.org/10.1093/biomet/asae009). Read the correction with the paper. Cited by roadmap item X5. - Rytgaard, Gerds & van der Laan (2022), [*Continuous-time targeted minimum loss-based estimation of intervention-specific mean outcomes*](https://doi.org/10.1214/21-AOS2114), *Annals of Statistics* 50(5):2469–2491, DOI 10.1214/21-AOS2114. Cited by roadmap item X6. - Rytgaard, Eriksson & van der Laan (2023), [*Estimation of time-specific intervention effects on continuously distributed time-to-event outcomes by targeted maximum likelihood estimation*](https://doi.org/10.1111/biom.13856), *Biometrics* 79(4):3038–3049, DOI 10.1111/biom.13856. This is the construction the `concrete` package implements. Cited by roadmap item X6. - Hejazi, van der Laan, Janes, Gilbert & Benkeser (2021), [*Efficient nonparametric inference on the effects of stochastic interventions under two-phase sampling, with applications to vaccine efficacy trials*](https://doi.org/10.1111/biom.13375), *Biometrics* 77(4):1241–1253, DOI 10.1111/biom.13375. Cited by roadmap item X7. - van der Laan (2008), [*Estimation Based on Case-Control Designs with Known Prevalence Probability*](https://doi.org/10.2202/1557-4679.1114), *International Journal of Biostatistics* 4(1), Article 17, DOI 10.2202/1557-4679.1114. Cited by roadmap item X7 for the case-control weighting that `TMLE.jl` implements. The [hard-stop review](technical-reference/hard-stop-review.md) read the sources below. Each entry gives the version whose locators the review used. A review entry supports a roadmap verdict and not a shipped claim. - Smith, Mathur & VanderWeele (2021), [*Multiple-bias sensitivity analysis using bounds*](https://arxiv.org/abs/2005.02908v1), *Epidemiology*, DOI 10.1097/EDE.0000000000001380. Read first-hand in arXiv:2005.02908v1, the only version. Result 1 bounds the observed risk ratio by a product of bias factors. Its selection factor $BF_s$ is a product of one factor for each arm. Cited by roadmap item [X49](roadmap.md#x49-e-value-for-a-controlled-direct-effect) as the structural precedent for a split into one factor for each arm. - Tang & Westling (2024), [*Consistency of the bootstrap for asymptotically linear estimators based on machine learning*](https://arxiv.org/abs/2404.03064v2), arXiv:2404.03064v2. Theorem 3.4 gives bootstrap consistency under conditions (B1) to (B3). Condition (B2) needs the bootstrap nuisance estimator to converge conditionally. Section 2.3 does not treat cross-fitting. Cited by roadmap items [X55](roadmap.md#x55-bootstrap-extensions) part (a) and [F2](roadmap.md#f2-targeted-bootstrap-inference). - Coyle (2017), doctoral dissertation, University of California, Berkeley, [eScholarship 9kh0b9vm](https://escholarship.org/uc/item/9kh0b9vm). Read first-hand. Section 1.4 and Appendix A, in the thesis numbering, define a model-based bootstrap that resamples from the targeted fit and refits and retargets Super Learner and TMLE on each sample. Theorem 9, in Appendix A.3, needs the efficient score solved to $o_P(1/n)$, a negligible remainder, a uniform Donsker class, and $L_2$ convergence of $D^*$. Lemma 2 and Corollary 1 give $o_P(n^{-1/4})$ rates for the treatment-specific mean. The book chapter of Coyle and van der Laan (2018), "Targeted Bootstrap", was not read. Cited by roadmap items [X55](roadmap.md#x55-bootstrap-extensions) part (c) and [F2](roadmap.md#f2-targeted-bootstrap-inference). - Stensrud, Young, Didelez, Robins & Hernán (2022), [*Separable effects for causal inference in the presence of competing events*](https://arxiv.org/abs/1901.09472v2), *Journal of the American Statistical Association* 117(537):175-183. Read in arXiv:1901.09472v2. Section 5.2, formula (5), identifies the separable effects with baseline covariates. Cited by roadmap item [X56](roadmap.md#x56-competing-event-intervention-targets) part (b). - Stensrud, Hernán, Tchetgen Tchetgen, Robins, Didelez & Young (2021), [*A generalized theory of separable effects in competing event settings*](https://doi.org/10.1007/s10985-021-09530-8), *Lifetime Data Analysis* 27(4):588-631, DOI 10.1007/s10985-021-09530-8. Read first-hand in [PMC8536652](https://pmc.ncbi.nlm.nih.gov/articles/PMC8536652/), the published version of arXiv:2004.14824. Section 6.2, Equation (19), identifies the separable effects with time-varying common causes. It is Section 7.2 of the arXiv version. Section 6.3 treats censoring. Cited by roadmap item [X56](roadmap.md#x56-competing-event-intervention-targets) part (c). - Wang, van der Laan, Petersen, Gerds, Kvist & van der Laan (2025), [*Targeted maximum likelihood based estimation for longitudinal mediation analysis*](https://arxiv.org/abs/2304.04904v1), *Journal of Causal Inference* 13(1), DOI 10.1515/jci-2023-0013. Read in arXiv:2304.04904v1, the only version. The abstract names competing risks and survival outcomes. Section 2.1 forces the mediator to follow its law under the control intervention. Theorem 3.1, Equation (2), gives the identified g-formula. Section 2.3 puts competing risks inside $L_t$. Theorem 3.2, in Section 3.4, gives the efficient influence curve. Section 5.3 gives the TMLE and its conditions (B1) to (B3). Cited by roadmap item [X56](roadmap.md#x56-competing-event-intervention-targets) parts (b) and (c) as the estimator. The source audit of those parts is pending. - Hejazi, Rudolph, van der Laan & Díaz (2023), [*Nonparametric causal mediation analysis for stochastic interventional (in)direct effects*](https://arxiv.org/abs/2009.06203v4), *Biostatistics*, DOI 10.1093/biostatistics/kxac002. Read in arXiv:2009.06203v4. Lemma 3 and Theorems 3 and 4 give the identification and the efficient estimation of incremental mediation effects. Cited by roadmap item X5. - Fava (2026), [*Cross-fitting under nonregularity: normality and inference via locality*](https://arxiv.org/abs/2610.02944v1), arXiv:2610.02944v1. The result covers an IPW score with a known propensity only. Cited by future investigation [F27](roadmap.md#f27-learned-policy-value-outside-the-published-conditions). - Fang, Wang, Hu & Li (2025), [*Estimands and doubly robust estimation for cluster-randomized trials with survival outcomes*](https://arxiv.org/abs/2510.08438), arXiv:2510.08438, read in the HTML version of 10 October 2025. The paper treats cluster-randomized trials with survival outcomes. Section 3.3 uses the cluster jackknife as a small-sample variance. Cited by roadmap item [X54](roadmap.md#x54-small-sample-evidence-for-clustered-intervals-and-boundary-nodes) part (c). - Ballinari & Wehrli (2024), [*Semiparametric inference for impulse response functions using double/debiased machine learning*](https://arxiv.org/abs/2411.10009v2), arXiv:2411.10009v2. The paper treats impulse response functions with double machine learning. Section 3.3, Procedure 2, removes a block of observations between the folds. Assumption 3 needs weak stationarity and $\alpha$-mixing. Theorem 4 gives the limit, and Theorem 5 a Newey-West variance. It treats no TMLE. Cited by future investigation [F7](roadmap.md#f7-time-respecting-cross-fitting). - Semenova, Goldman, Chernozhukov & Taddy, [*Estimation and inference on heterogeneous treatment effects in high-dimensional dynamic panels under weak dependence*](https://arxiv.org/abs/1712.09988v6), arXiv:1712.09988v6. Definition 2.1 splits the sample by time blocks. Theorems 3.1 and 3.3 need $\beta$-mixing, and the variance is a cluster-robust estimator over independent panel units. Cited by future investigation [F7](roadmap.md#f7-time-respecting-cross-fitting). - Shen, Bacak & Kennedy (2026), [*Sensitivity analysis for incremental effects, with application to a study of victimization & offending*](https://arxiv.org/abs/2601.17779v1), arXiv:2601.17779v1. The paper treats sensitivity analysis for incremental effects. Section 5.2 establishes the identification of sharp bounds only, and it leaves a practical estimator to future work. Cited by future investigation [F16](roadmap.md#f16-longitudinal-sensitivity-bound-estimation). - Bonvini, Kennedy, Ventura & Wasserman (2022), [*Sensitivity analysis for marginal structural models*](https://arxiv.org/abs/2210.04681v2), arXiv:2210.04681v2. Section 6.1 extends the static methods to time series. It leaves the time-varying constraint to future work. Section 7.2 reports bounds without intervals. Cited by future investigation [F16](roadmap.md#f16-longitudinal-sensitivity-bound-estimation). - Bruns-Smith & Zhou (2025), [*Robust fitted-Q-evaluation and iteration under sequentially exogenous unobserved confounders*](https://arxiv.org/abs/2302.00662v3), arXiv:2302.00662v3. The review read the text up to Section 5. The target is a robust value of a Markov decision process over observed states. The text read gives no interval. The [hard-stop review](technical-reference/hard-stop-review.md) cites it for F16. - Zheng, D'Amour & Franks, [*Copula-based sensitivity analysis for multi-treatment causal inference*](https://arxiv.org/abs/2102.09412), arXiv:2102.09412, read in the HTML version of 25 February 2022. Section 4, Equations (12) to (15), gives a Gaussian-copula outcome law that keeps the support of the outcome. The [hard-stop review](technical-reference/hard-stop-review.md) cites it for roadmap item [X47](roadmap.md#x47-simulated-confounding-laws-for-point-treatment-fits) part (g).